public ProjectScopeFactory() { dteReference = new SynchInitializedInstance <DteWithEvents>( () => { var dtex = new DteWithEvents(VsxHelper.GetDte(ServiceProvider)); dtex.SolutionEvents.AfterClosing += OnSolutionClosed; VisualStudioTracer.Trace("subscribed to solution closed " + Thread.CurrentThread.ManagedThreadId, "ProjectScopeFactory"); return(dtex); }); classificationsReference = new SynchInitializedInstance <GherkinFileEditorClassifications>( () => new GherkinFileEditorClassifications(ClassificationRegistry)); projectScopeCache = new SynchronizedResultCache <Project, string, IProjectScope>( project => new VsProjectScope(project, dteReference.Value, classificationsReference.Value, VisualStudioTracer, IntegrationOptionsProvider, BindingSkeletonProviderFactory), VsxHelper.GetProjectUniqueId); noProjectScopeReference = new SynchInitializedInstance <NoProjectScope>(() => new NoProjectScope(classificationsReference.Value, VisualStudioTracer)); }
public ProjectScopeFactory() { dteReference = new SynchInitializedInstance <DteWithEvents>( () => { ContainerProvider.ObjectContainer.Resolve <InstallServices>().OnPackageUsed(); //TODO: find a better place var dtex = new DteWithEvents(VsxHelper.GetDte(ServiceProvider), VisualStudioTracer); dtex.SolutionEvents.AfterClosing += OnSolutionClosed; dtex.SolutionEventsListener.OnQueryUnloadProject += OnProjectClosed; VisualStudioTracer.Trace("subscribed to solution closed " + Thread.CurrentThread.ManagedThreadId, "ProjectScopeFactory"); return(dtex); }); classificationsReference = new SynchInitializedInstance <GherkinFileEditorClassifications>( () => new GherkinFileEditorClassifications(ClassificationRegistry)); projectScopeCache = new SynchronizedResultCache <Project, string, IProjectScope>( project => new VsProjectScope(project, dteReference.Value, classificationsReference.Value, VisualStudioTracer, IntegrationOptionsProvider), VsxHelper.GetProjectUniqueId); noProjectScopeReference = new SynchInitializedInstance <NoProjectScope>(() => new NoProjectScope(classificationsReference.Value, VisualStudioTracer, IntegrationOptionsProvider)); }
public IntegrationOptions GetOptions() { var dte = VsxHelper.GetDte(ServiceProvider); return(GetOptions(dte)); }