public Solution([NotNull] ITracer tracer, [NotNull] IVsServiceProvider serviceProvider, [NotNull] PerformanceTracer performanceTracer) { Tracer = tracer; _serviceProvider = serviceProvider; _performanceTracer = performanceTracer; SpecificProjectConfigurations = Projects.ObservableSelectMany(prj => prj.SpecificProjectConfigurations); ProjectConfigurations = Projects.ObservableSelectMany(prj => prj.ProjectConfigurations); var solutionEvents = Dte?.Events?.SolutionEvents; if (solutionEvents != null) { solutionEvents.Opened += () => OnSolutionChanged("Solution opened"); solutionEvents.AfterClosing += () => OnSolutionChanged("Solution after closing"); solutionEvents.ProjectAdded += _ => OnSolutionChanged("Project added"); solutionEvents.ProjectRemoved += _ => OnSolutionChanged("Project removed"); solutionEvents.ProjectRenamed += (_, __) => OnSolutionChanged("Project renamed"); } _solutionEvents = solutionEvents; Update(0); CommandManager.RequerySuggested += (_, __) => Projects.ForEach(proj => proj?.InvalidateState()); }
public virtual void Run(IVsServiceProvider vsServiceProvider) { RootContainer = new UnityContainer(); Container = RootContainer; Container.RegisterInstance(vsServiceProvider); Container.RegisterInstance(vsServiceProvider.ErrorList); Container.RegisterInstance(vsServiceProvider.OutliningManagerService); Container.RegisterInstance(vsServiceProvider.ComponentModel); Container.RegisterInstance(vsServiceProvider.EditorAdapterFactory); Container.RegisterInstance(vsServiceProvider.TableManagerProvider); Container.RegisterInstance(new ActiveTextViewProvider(vsServiceProvider.VsTextManager, vsServiceProvider.EditorAdapterFactory)); Container.RegisterSingleton <IDiagnosticProvider, ErrorListDiagnosticProvider>(); Container.RegisterSingleton <IDispatcherServiceFactory, DispatcherServiceFactory>(); Container.RegisterSingleton <ICancellationServiceFactory, CancellationServiceFactory>(); Container.RegisterType <IActiveTextViewProvider, ActiveTextViewProvider>(new ContainerControlledLifetimeManager()); Container.RegisterType <IFoldingManager, FoldingManagerAdapter>(new ContainerControlledLifetimeManager()); Container.RegisterType <CodeStructureOpenCommand>(new ContainerControlledLifetimeManager()); Container.RegisterType <CodeStructureOpenCommand>(new ContainerControlledLifetimeManager()); Task.Run(() => { Container.Resolve <CodeStructureOpenCommand>(); }); _rootContainerTcs.SetResult(RootContainer); }
public Solution([NotNull] ITracer tracer, [NotNull] IVsServiceProvider serviceProvider, [NotNull] PerformanceTracer performanceTracer) { Contract.Requires(tracer != null); Contract.Requires(serviceProvider != null); Contract.Requires(performanceTracer != null); _deferredUpdateThrottle = new DispatcherThrottle(DispatcherPriority.ApplicationIdle, Update); _tracer = tracer; _serviceProvider = serviceProvider; _performanceTracer = performanceTracer; _specificProjectConfigurations = _projects.ObservableSelectMany(prj => prj.SpecificProjectConfigurations); _projectConfigurations = _projects.ObservableSelectMany(prj => prj.ProjectConfigurations); _solutionEvents = Dte?.Events?.SolutionEvents; if (_solutionEvents != null) { _solutionEvents.Opened += () => Solution_Changed("Solution opened"); _solutionEvents.AfterClosing += () => Solution_Changed("Solution after closing"); _solutionEvents.ProjectAdded += _ => Solution_Changed("Project added"); _solutionEvents.ProjectRemoved += _ => Solution_Changed("Project removed"); _solutionEvents.ProjectRenamed += (_, __) => Solution_Changed("Project renamed"); } Update(); }
public Solution(ITracer tracer, IVsServiceProvider serviceProvider) { Contract.Requires(tracer != null); Contract.Requires(serviceProvider != null); _deferredUpdateThrottle = new DispatcherThrottle(DispatcherPriority.ContextIdle, Update); _tracer = tracer; _serviceProvider = serviceProvider; _specificProjectConfigurations = Projects.ObservableSelectMany(prj => prj.SpecificProjectConfigurations); _solutionContexts = SolutionConfigurations.ObservableSelectMany(cfg => cfg.Contexts); _defaultProjectConfigurations = Projects.ObservableSelect(prj => prj.DefaultProjectConfiguration); _projectConfigurations = new ObservableCompositeCollection <ProjectConfiguration>(_defaultProjectConfigurations, _specificProjectConfigurations); _solutionEvents = Dte?.Events?.SolutionEvents; if (_solutionEvents != null) { _solutionEvents.Opened += Solution_Changed; _solutionEvents.AfterClosing += Solution_Changed; _solutionEvents.ProjectAdded += _ => Solution_Changed(); _solutionEvents.ProjectRemoved += _ => Solution_Changed(); _solutionEvents.ProjectRenamed += (_, __) => Solution_Changed(); } Update(); }
public DteSolution(IVsServiceProvider vsServiceProvider, ITracer tracer) { Contract.Requires(vsServiceProvider != null); Contract.Requires(tracer != null); _vsServiceProvider = vsServiceProvider; _tracer = tracer; }
/// <summary> /// Initializes a new instance of the <see cref="CodeStructureOpenCommand"/> class. /// Adds our command handlers for menu (commands must exist in the command table file). /// </summary> /// <param name="vsServiceProvider">The <see cref="IVsServiceProvider"/>.</param> /// <param name="textViewProvider">The <see cref="IActiveTextViewProvider"/>.</param> public CodeStructureOpenCommand( IVsServiceProvider vsServiceProvider, IActiveTextViewProvider textViewProvider) { _textViewProvider = textViewProvider ?? throw new ArgumentNullException(nameof(textViewProvider)); if (vsServiceProvider == null) { throw new ArgumentNullException(nameof(vsServiceProvider)); } _ = RegisterCommandAsync(vsServiceProvider).ConfigureAwait(false); }
private async Threading.Task RegisterCommandAsync(IVsServiceProvider vsServiceProvider) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var commandService = vsServiceProvider.MenuCommandService; if (commandService != null) { var menuCommandID = new CommandID(CommandSet, CommandId); var menuItem = new MenuCommand(MenuItemCallback, menuCommandID); commandService.AddCommand(menuItem); } }
public void Run(IVsServiceProvider vsServiceProvider) { RootContainer = new UnityContainer(); Container = RootContainer; Container.RegisterInstance(vsServiceProvider); Container.RegisterInstance(vsServiceProvider.ErrorList); Container.RegisterInstance(vsServiceProvider.OutliningManagerService); Container.RegisterInstance(vsServiceProvider.ComponentModel); Container.RegisterInstance(vsServiceProvider.EditorAdapterFactory); Container.RegisterInstance(vsServiceProvider.TableManagerProvider); Container.RegisterInstance(new ActiveTextViewProvider(vsServiceProvider.VsTextManager, vsServiceProvider.EditorAdapterFactory)); Container.RegisterType <IDiagnosticProvider, ErrorListDiagnosticProvider>(new ContainerControlledLifetimeManager()); Container.RegisterType <IActiveTextViewProvider, ActiveTextViewProvider>(new ContainerControlledLifetimeManager()); Container.RegisterType <IDispatcherService, DispatcherService>(new ContainerControlledLifetimeManager()); Container.RegisterType <CodeStructureOpenCommand>(new ContainerControlledLifetimeManager()); Container.Resolve <CodeStructureOpenCommand>(); }
public Commands(IVsServiceProvider owner) { this.owner = owner; }
public OutputWindowTracer([NotNull] IVsServiceProvider serviceProvider) { Contract.Requires(serviceProvider != null); _serviceProvider = serviceProvider; }
public static void Register(IVsServiceProvider provider) { _provider = provider; }
public OutputWindowTracer(IVsServiceProvider serviceProvider) { Contract.Requires(serviceProvider != null); _serviceProvider = serviceProvider; }
public Solution(ITracer tracer, IVsServiceProvider serviceProvider) { Contract.Requires(tracer != null); Contract.Requires(serviceProvider != null); _deferredUpdateThrottle = new DispatcherThrottle(DispatcherPriority.ContextIdle, Update); _tracer = tracer; _serviceProvider = serviceProvider; _specificProjectConfigurations = Projects.ObservableSelectMany(prj => prj.SpecificProjectConfigurations); _solutionContexts = SolutionConfigurations.ObservableSelectMany(cfg => cfg.Contexts); _defaultProjectConfigurations = Projects.ObservableSelect(prj => prj.DefaultProjectConfiguration); _projectConfigurations = new ObservableCompositeCollection<ProjectConfiguration>(_defaultProjectConfigurations, _specificProjectConfigurations); _solutionEvents = Dte?.Events?.SolutionEvents; if (_solutionEvents != null) { _solutionEvents.Opened += Solution_Changed; _solutionEvents.AfterClosing += Solution_Changed; _solutionEvents.ProjectAdded += _ => Solution_Changed(); _solutionEvents.ProjectRemoved += _ => Solution_Changed(); _solutionEvents.ProjectRenamed += (_, __) => Solution_Changed(); } Update(); }