public RoslynWorkspace(HostServices hostServices, string workspaceKind = WorkspaceKind.Host, RoslynHost roslynHost = null) : base(hostServices, workspaceKind) { DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Semantic); RoslynHost = roslynHost; }
protected internal RoslynWorkspace(HostServices host, RoslynHost roslynHost) : base(host, WorkspaceKind.Host) { RoslynHost = roslynHost; DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Semantic); }
public DocumentId AddDocument(SourceTextContainer sourceTextContainer, string workingDirectory, Action <DiagnosticsUpdatedArgs> onDiagnosticsUpdated, Action <SourceText> onTextUpdated) { if (sourceTextContainer == null) { throw new ArgumentNullException(nameof(sourceTextContainer)); } var workspace = new RoslynWorkspace(_host, _nuGetConfiguration, this); if (onTextUpdated != null) { workspace.ApplyingTextChange += (d, s) => onTextUpdated(s); } DiagnosticProvider.Enable(workspace, DiagnosticProvider.Options.Semantic); var currentSolution = workspace.CurrentSolution; var project = CreateSubmissionProject(currentSolution, CreateCompilationOptions(workspace, workingDirectory)); var currentDocument = SetSubmissionDocument(workspace, sourceTextContainer, project); _workspaces.TryAdd(currentDocument.Id, workspace); if (onDiagnosticsUpdated != null) { _diagnosticsUpdatedNotifiers.TryAdd(currentDocument.Id, onDiagnosticsUpdated); } return(currentDocument.Id); }
// public WorkspaceImpl(HostServices hostServices, WorkspaceType workspaceType) //bool isCSharpScript ) : base(hostServices, WorkspaceKind.Host) { this.workspaceType = workspaceType; //this.isCSharpScript = isCSharpScript; DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Semantic); }
public void StartListening(Workspace workspace, object serviceOpt) { if (_globalOptions.GetOption(SolutionCrawlerRegistrationService.EnableSolutionCrawler)) { // misc workspace will enable syntax errors and semantic errors for script files for // all participating projects in the workspace DiagnosticProvider.Enable(workspace, DiagnosticProvider.Options.Syntax | DiagnosticProvider.Options.ScriptSemantic); } }
public void StartListening(Workspace workspace, object serviceOpt) { // misc workspace will enable syntax errors and semantic errors for script files for // all participating projects in the workspace DiagnosticProvider.Enable( workspace, DiagnosticProvider.Options.Syntax | DiagnosticProvider.Options.ScriptSemantic ); }
public static void EnableDiagnostics(this Workspace workspace, DiagnosticOptions options) { var diagnosticProviderOptions = (DiagnosticProvider.Options) 0; if ((options & DiagnosticOptions.Syntax) != 0) { diagnosticProviderOptions |= DiagnosticProvider.Options.Syntax; } if ((options & DiagnosticOptions.Semantic) != 0) { diagnosticProviderOptions |= DiagnosticProvider.Options.Semantic; } DiagnosticProvider.Enable(workspace, diagnosticProviderOptions); }
internal RoslynWorkspace(HostServices host, NuGetConfiguration nuGetConfiguration, CompositionHost compositionContext, string dotnetPath, string sdkPath) : base(host, WorkspaceKind.Host) { this.dotnetPath = dotnetPath; this.sdkPath = sdkPath; _nuGetConfiguration = nuGetConfiguration; _openDocumentTextLoaders = new Dictionary <DocumentId, AvalonEditTextContainer>(); _diagnosticsUpdatedNotifiers = new ConcurrentDictionary <DocumentId, Action <DiagnosticsUpdatedArgs> >(); _compositionContext = compositionContext; _buildNodes = new BlockingCollection <MSBuildHost>(); DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Semantic | DiagnosticProvider.Options.Syntax); //this.EnableDiagnostics(DiagnosticOptions.Semantic | DiagnosticOptions.Syntax); GetService <IDiagnosticService>().DiagnosticsUpdated += OnDiagnosticsUpdated; }
public void SubscribeToDiagnosticsUpdateNotification(DocumentId documentId, Action <DiagnosticsUpdatedArgs> onDiagnosticsUpdated) { if (null == documentId) { throw new ArgumentNullException(nameof(documentId)); } if (null == onDiagnosticsUpdated) { throw new ArgumentNullException(nameof(onDiagnosticsUpdated)); } if (!_diagnosticsUpdatedNotifiers.TryAdd(documentId, onDiagnosticsUpdated)) { if (_diagnosticsUpdatedNotifiers.TryGetValue(documentId, out var handler)) { handler -= onDiagnosticsUpdated; // in case it is already registed handler += onDiagnosticsUpdated; throw new NotImplementedException("The previous code needs verification"); } } // enable diagnostics now, if not already enabled DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Semantic); }
private void StartSolutionCrawler() => DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Syntax);
internal void StartSolutionCrawler() { DiagnosticProvider.Enable(this, DiagnosticProvider.Options.Syntax); }