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; }
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); }