[PATCH] D149912: [clangd] downgrade missing-includes diagnostic to Information level
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue May 16 06:04:03 PDT 2023
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8f8479789a08: [clangd] downgrade missing-includes diagnostic to Information level (authored by sammccall).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149912/new/
https://reviews.llvm.org/D149912
Files:
clang-tools-extra/clangd/IncludeCleaner.cpp
clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
Index: clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
===================================================================
--- clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
+++ clang-tools-extra/clangd/test/include-cleaner-batch-fix.test
@@ -44,7 +44,7 @@
# CHECK-NEXT: "line": 2
# CHECK-NEXT: }
# CHECK-NEXT: },
-# CHECK-NEXT: "severity": 2,
+# CHECK-NEXT: "severity": 3,
# CHECK-NEXT: "source": "clangd"
# CHECK-NEXT: },
# CHECK-NEXT: {
@@ -60,7 +60,7 @@
# CHECK-NEXT: "line": 2
# CHECK-NEXT: }
# CHECK-NEXT: },
-# CHECK-NEXT: "severity": 2,
+# CHECK-NEXT: "severity": 3,
# CHECK-NEXT: "source": "clangd"
# CHECK-NEXT: },
# CHECK-NEXT: {
@@ -112,7 +112,7 @@
# CHECK-NEXT: "version": 0
# CHECK-NEXT: }
---
-{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///simple.cpp"},"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":4}},"context":{"diagnostics":[{"range":{"start": {"line": 2, "character": 1}, "end": {"line": 2, "character": 4}},"severity":2,"message":"No header providing \"Foo\" is directly included (fixes available)", "code": "missing-includes", "source": "clangd"}]}}}
+{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///simple.cpp"},"range":{"start":{"line":2,"character":1},"end":{"line":2,"character":4}},"context":{"diagnostics":[{"range":{"start": {"line": 2, "character": 1}, "end": {"line": 2, "character": 4}},"severity":3,"message":"No header providing \"Foo\" is directly included (fixes available)", "code": "missing-includes", "source": "clangd"}]}}}
# CHECK: "id": 2,
# CHECK-NEXT: "jsonrpc": "2.0",
# CHECK-NEXT: "result": [
Index: clang-tools-extra/clangd/IncludeCleaner.cpp
===================================================================
--- clang-tools-extra/clangd/IncludeCleaner.cpp
+++ clang-tools-extra/clangd/IncludeCleaner.cpp
@@ -218,7 +218,23 @@
D.Source = Diag::DiagSource::Clangd;
D.File = AST.tuPath();
D.InsideMainFile = true;
- D.Severity = DiagnosticsEngine::Warning;
+ // We avoid the "warning" severity here in favor of LSP's "information".
+ //
+ // Users treat most warnings on code being edited as high-priority.
+ // They don't think of include cleanups the same way: they want to edit
+ // lines with existing violations without fixing them.
+ // Diagnostics at the same level tend to be visually indistinguishable,
+ // and a few missing includes can cause many diagnostics.
+ // Marking these as "information" leaves them visible, but less intrusive.
+ //
+ // (These concerns don't apply to unused #include warnings: these are fewer,
+ // they appear on infrequently-edited lines with few other warnings, and
+ // the 'Unneccesary' tag often result in a different rendering)
+ //
+ // Usually clang's "note" severity usually has special semantics, being
+ // translated into LSP RelatedInformation of a parent diagnostic.
+ // But not here: these aren't processed by clangd's DiagnosticConsumer.
+ D.Severity = DiagnosticsEngine::Note;
D.Range = clangd::Range{
offsetToPosition(Code,
SymbolWithMissingInclude.SymRefRange.beginOffset()),
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D149912.522569.patch
Type: text/x-patch
Size: 3413 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230516/f84b7308/attachment.bin>
More information about the cfe-commits
mailing list