public ProjectSystem( IOmniSharpEnvironment environment, OmniSharpWorkspace workspace, IMSBuildLocator msbuildLocator, IDotNetCliService dotNetCliService, SdksPathResolver sdksPathResolver, MetadataFileReferenceCache metadataFileReferenceCache, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, FileSystemHelper fileSystemHelper, ILoggerFactory loggerFactory, CachingCodeFixProviderForProjects codeFixesForProjects, RulesetsForProjects rulesetsForProjects, IAnalyzerAssemblyLoader assemblyLoader, [ImportMany] IEnumerable <IMSBuildEventSink> eventSinks) { _environment = environment; _workspace = workspace; _propertyOverrides = msbuildLocator.RegisteredInstance.PropertyOverrides; _dotNetCli = dotNetCliService; _sdksPathResolver = sdksPathResolver; _metadataFileReferenceCache = metadataFileReferenceCache; _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _fileSystemHelper = fileSystemHelper; _loggerFactory = loggerFactory; _rulesetsForProjects = rulesetsForProjects; _eventSinks = eventSinks.ToImmutableArray(); _projectsToProcess = new Queue <ProjectFileInfo>(); _logger = loggerFactory.CreateLogger <ProjectSystem>(); _assemblyLoader = assemblyLoader; }
public CsharpDiagnosticWorkerComposer( OmniSharpWorkspace workspace, [ImportMany] IEnumerable <ICodeActionProvider> providers, ILoggerFactory loggerFactory, DiagnosticEventForwarder forwarder, RulesetsForProjects rulesetsForProjects, OmniSharpOptions options) { if (options.RoslynExtensionsOptions.EnableAnalyzersSupport) { _implementation = new CSharpDiagnosticWorkerWithAnalyzers(workspace, providers, loggerFactory, forwarder, rulesetsForProjects); } else { _implementation = new CSharpDiagnosticWorker(workspace, forwarder, loggerFactory); } _workspace = workspace; }
public ProjectManager( ILoggerFactory loggerFactory, MSBuildOptions options, IEventEmitter eventEmitter, IFileSystemWatcher fileSystemWatcher, MetadataFileReferenceCache metadataFileReferenceCache, PackageDependencyChecker packageDependencyChecker, ProjectLoader projectLoader, OmniSharpWorkspace workspace, RulesetsForProjects rulesetsForProjects, IAnalyzerAssemblyLoader assemblyLoader, ImmutableArray <IMSBuildEventSink> eventSinks) { _logger = loggerFactory.CreateLogger <ProjectManager>(); _options = options ?? new MSBuildOptions(); _eventEmitter = eventEmitter; _fileSystemWatcher = fileSystemWatcher; _metadataFileReferenceCache = metadataFileReferenceCache; _packageDependencyChecker = packageDependencyChecker; _projectFiles = new ProjectFileInfoCollection(); _failedToLoadProjectFiles = new HashSet <string>(StringComparer.OrdinalIgnoreCase); _projectsRequestedOnDemand = new ConcurrentDictionary <string, int>(StringComparer.OrdinalIgnoreCase); _projectLoader = projectLoader; _workspace = workspace; _eventSinks = eventSinks; _queue = new BufferBlock <ProjectToUpdate>(); _processLoopCancellation = new CancellationTokenSource(); _processLoopTask = Task.Run(() => ProcessLoopAsync(_processLoopCancellation.Token)); _assemblyLoader = assemblyLoader; _onDirectoryFileChanged = OnDirectoryFileChanged; _rulesetsForProjects = rulesetsForProjects; if (_options.LoadProjectsOnDemand) { _workspace.AddWaitForProjectModelReadyHandler(WaitForProjectModelReadyAsync); } }