public override Task <IEnumerable <Diagnostic> > GetAllDiagnosticsAsync( Project project, CancellationToken cancellationToken ) { var allDiagnosticsBuilder = ArrayBuilder <Diagnostic> .GetInstance(); ImmutableArray <Diagnostic> diagnostics; if (!DocumentDiagnosticsMap.IsEmpty) { foreach (var document in project.Documents) { if (DocumentDiagnosticsMap.TryGetValue(document, out diagnostics)) { allDiagnosticsBuilder.AddRange(diagnostics); } } } if (ProjectDiagnosticsMap.TryGetValue(project, out diagnostics)) { allDiagnosticsBuilder.AddRange(diagnostics); } return(Task.FromResult <IEnumerable <Diagnostic> >( allDiagnosticsBuilder.ToImmutableAndFree() )); }
public override Task <IEnumerable <Diagnostic> > GetDocumentDiagnosticsAsync(Document document, CancellationToken cancellationToken) { if (DocumentDiagnosticsMap.TryGetValue(document, out var diagnostics)) { return(Task.FromResult <IEnumerable <Diagnostic> >(diagnostics)); } return(SpecializedTasks.EmptyEnumerable <Diagnostic>()); }