Beispiel #1
0
        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());
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #8
0
        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>();
        }
Beispiel #9
0
 public Commands(IVsServiceProvider owner)
 {
     this.owner = owner;
 }
Beispiel #10
0
 public OutputWindowTracer([NotNull] IVsServiceProvider serviceProvider)
 {
     Contract.Requires(serviceProvider != null);
     _serviceProvider = serviceProvider;
 }
Beispiel #11
0
 public static void Register(IVsServiceProvider provider)
 {
     _provider = provider;
 }
 public OutputWindowTracer(IVsServiceProvider serviceProvider)
 {
     Contract.Requires(serviceProvider != null);
     _serviceProvider = serviceProvider;
 }
 public static void Register(IVsServiceProvider provider)
 {
     _provider = provider;
 }
        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();
        }