Esempio n. 1
0
 static LanguageServer.Protocol.Diagnostic ConvertToLspDiagnostic(DiagnosticData diagnosticData, SourceText text)
 {
     return(new LanguageServer.Protocol.Diagnostic
     {
         Code = diagnosticData.Id,
         Message = diagnosticData.Message,
         Severity = ProtocolConversions.DiagnosticSeverityToLspDiagnositcSeverity(diagnosticData.Severity),
         Range = GetDiagnosticRange(diagnosticData.DataLocation, text),
         // Only the unnecessary diagnostic tag is currently supported via LSP.
         Tags = diagnosticData.CustomTags.Contains(WellKnownDiagnosticTags.Unnecessary)
             ? new DiagnosticTag[] { DiagnosticTag.Unnecessary }
             : Array.Empty <DiagnosticTag>()
     });
 }
Esempio n. 2
0
        private async Task <LSP.Diagnostic[]> GetDiagnosticsAsync(Solution solution, Document document, CancellationToken cancellationToken)
        {
            var diagnostics = _diagnosticService.GetDiagnostics(solution.Workspace, document.Project.Id, document.Id, null, false, cancellationToken);
            var text        = await document.GetTextAsync(cancellationToken).ConfigureAwait(false);

            return(diagnostics.Select(diag => new RoslynDiagnostic
            {
                Code = diag.Id,
                Message = diag.Message,
                Severity = ProtocolConversions.DiagnosticSeverityToLspDiagnositcSeverity(diag.Severity),
                Range = ProtocolConversions.TextSpanToRange(diag.GetExistingOrCalculatedTextSpan(text), text),
                Tags = diag.CustomTags.Where(s => s == "Unnecessary").ToArray()
            }).ToArray());
        }
Esempio n. 3
0
        private async Task <LanguageServer.Protocol.Diagnostic[]> GetDiagnosticsAsync(Solution solution, Document document, CancellationToken cancellationToken)
        {
            var diagnostics = _diagnosticService.GetDiagnostics(solution.Workspace, document.Project.Id, document.Id, null, false, cancellationToken);
            var text        = await document.GetTextAsync(cancellationToken).ConfigureAwait(false);

            return(diagnostics.Select(diagnostic => new LanguageServer.Protocol.Diagnostic
            {
                Code = diagnostic.Id,
                Message = diagnostic.Message,
                Severity = ProtocolConversions.DiagnosticSeverityToLspDiagnositcSeverity(diagnostic.Severity),
                Range = ProtocolConversions.TextSpanToRange(DiagnosticData.GetExistingOrCalculatedTextSpan(diagnostic.DataLocation, text), text),
                // Only the unnecessary diagnostic tag is currently supported via LSP.
                Tags = diagnostic.CustomTags.Contains("Unnecessary") ? new DiagnosticTag[] { DiagnosticTag.Unnecessary } : Array.Empty <DiagnosticTag>()
            }).ToArray());
        }