diff options
author | Nathan James <n.james93@hotmail.co.uk> | 2022-08-05 08:42:51 +0100 |
---|---|---|
committer | Tom Stellard <tstellar@redhat.com> | 2022-08-08 12:29:18 -0700 |
commit | 22dc722d6d7c2303865735eaad457ed2f419074a (patch) | |
tree | 804a1cdf04bdf5980d97363eb109a10143715dd0 | |
parent | 0adb0f9a97c7cd6e6d315d533b4db452456ebe13 (diff) | |
download | llvm-22dc722d6d7c2303865735eaad457ed2f419074a.zip llvm-22dc722d6d7c2303865735eaad457ed2f419074a.tar.gz llvm-22dc722d6d7c2303865735eaad457ed2f419074a.tar.bz2 |
[clangd] Change the url for clang-tidy check documentation
In https://github.com/llvm/llvm-project/commit/6e566bc5523f743bc34a7e26f050f1f2b4d699a8, The directory structure of the documentation for clang-tidy checks was changed, however clangd wasn't updated.
Now all the links generated will point to old dead pages.
This updated clangd to use the new page structure.
Reviewed By: sammccall, kadircet
Differential Revision: https://reviews.llvm.org/D128379
(cherry picked from commit 4c106c93eb68f8f9f201202677cd31e326c16823)
-rw-r--r-- | clang-tools-extra/clangd/Diagnostics.cpp | 16 | ||||
-rw-r--r-- | clang-tools-extra/clangd/test/diagnostics-tidy.test | 2 |
2 files changed, 14 insertions, 4 deletions
diff --git a/clang-tools-extra/clangd/Diagnostics.cpp b/clang-tools-extra/clangd/Diagnostics.cpp index e70d457..031192f 100644 --- a/clang-tools-extra/clangd/Diagnostics.cpp +++ b/clang-tools-extra/clangd/Diagnostics.cpp @@ -918,9 +918,19 @@ llvm::Optional<std::string> getDiagnosticDocURI(Diag::DiagSource Source, // information to be worth linking. // https://clang.llvm.org/docs/DiagnosticsReference.html break; - case Diag::ClangTidy: - return {("https://clang.llvm.org/extra/clang-tidy/checks/" + Name + ".html") - .str()}; + case Diag::ClangTidy: { + StringRef Module, Check; + // This won't correctly get the module for clang-analyzer checks, but as we + // don't link in the analyzer that shouldn't be an issue. + // This would also need updating if anyone decides to create a module with a + // '-' in the name. + std::tie(Module, Check) = Name.split('-'); + if (Module.empty() || Check.empty()) + return llvm::None; + return ("https://clang.llvm.org/extra/clang-tidy/checks/" + Module + "/" + + Check + ".html") + .str(); + } case Diag::Clangd: if (Name == "unused-includes") return {"https://clangd.llvm.org/guides/include-cleaner"}; diff --git a/clang-tools-extra/clangd/test/diagnostics-tidy.test b/clang-tools-extra/clangd/test/diagnostics-tidy.test index c7e79b0..a100c9f 100644 --- a/clang-tools-extra/clangd/test/diagnostics-tidy.test +++ b/clang-tools-extra/clangd/test/diagnostics-tidy.test @@ -9,7 +9,7 @@ # CHECK-NEXT: { # CHECK-NEXT: "code": "bugprone-sizeof-expression", # CHECK-NEXT: "codeDescription": { -# CHECK-NEXT: "href": "https://clang.llvm.org/extra/clang-tidy/checks/bugprone-sizeof-expression.html" +# CHECK-NEXT: "href": "https://clang.llvm.org/extra/clang-tidy/checks/bugprone/sizeof-expression.html" # CHECK-NEXT: }, # CHECK-NEXT: "message": "Suspicious usage of 'sizeof(K)'; did you mean 'K'?", # CHECK-NEXT: "range": { |