public ApplyChangesToWorkspaceContext(ConfiguredProject project, IProjectLogger logger, [ImportMany] ExportFactory <IWorkspaceContextHandler>[] workspaceContextHandlerFactories, IConfiguredProjectLanguageServiceTelemetryService languageServiceTelemetryService)
        {
            _project = project;
            _logger  = logger;
            _workspaceContextHandlerFactories = workspaceContextHandlerFactories;
            _languageServiceTelemetryService  = languageServiceTelemetryService;

            CommandLineParsers = new OrderPrecedenceImportCollection <ICommandLineParserService>(projectCapabilityCheckProvider: project);
        }
 public WorkspaceProjectContextHost(ConfiguredProject project,
                                    IProjectThreadingService threadingService,
                                    IUnconfiguredProjectTasksService tasksService,
                                    IProjectSubscriptionService projectSubscriptionService,
                                    IWorkspaceProjectContextProvider workspaceProjectContextProvider,
                                    IActiveEditorContextTracker activeWorkspaceProjectContextTracker,
                                    IActiveConfiguredProjectProvider activeConfiguredProjectProvider,
                                    ExportFactory <IApplyChangesToWorkspaceContext> applyChangesToWorkspaceContextFactory,
                                    IDataProgressTrackerService dataProgressTrackerService,
                                    IConfiguredProjectLanguageServiceTelemetryService languageServiceTelemetryService)
     : base(threadingService.JoinableTaskContext)
 {
     _project                               = project;
     _threadingService                      = threadingService;
     _tasksService                          = tasksService;
     _projectSubscriptionService            = projectSubscriptionService;
     _workspaceProjectContextProvider       = workspaceProjectContextProvider;
     _activeWorkspaceProjectContextTracker  = activeWorkspaceProjectContextTracker;
     _activeConfiguredProjectProvider       = activeConfiguredProjectProvider;
     _applyChangesToWorkspaceContextFactory = applyChangesToWorkspaceContextFactory;
     _dataProgressTrackerService            = dataProgressTrackerService;
     _languageServiceTelemetryService       = languageServiceTelemetryService;
 }
Example #3
0
        private static ApplyChangesToWorkspaceContext CreateInstance(ConfiguredProject?project = null, ICommandLineParserService?commandLineParser = null, IProjectLogger?logger = null, params IWorkspaceContextHandler[] handlers)
        {
            if (project == null)
            {
                var unconfiguredProject = UnconfiguredProjectFactory.ImplementFullPath(@"C:\Project\Project.csproj");

                project = ConfiguredProjectFactory.ImplementUnconfiguredProject(unconfiguredProject);
            }

            commandLineParser ??= ICommandLineParserServiceFactory.Create();
            logger ??= IProjectLoggerFactory.Create();

            var factories = handlers.Select(h => ExportFactoryFactory.ImplementCreateValueWithAutoDispose(() => h))
                            .ToArray();

            IConfiguredProjectLanguageServiceTelemetryService languageServiceTelemetryService = IConfiguredProjectLanguageServiceTelemetryServiceFactory.Create();

            var applyChangesToWorkspaceContext = new ApplyChangesToWorkspaceContext(project, logger, factories, languageServiceTelemetryService);

            applyChangesToWorkspaceContext.CommandLineParsers.Add(commandLineParser);

            return(applyChangesToWorkspaceContext);
        }