[clang-tools-extra] 21b6da3 - [clangd] Don't show header for namespace decl in Hover

Haojian Wu via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 29 08:11:32 PDT 2023


Author: Haojian Wu
Date: 2023-06-29T17:11:19+02:00
New Revision: 21b6da35f1d5c8ee50c14fa4e498b6c46ac4bc0f

URL: https://github.com/llvm/llvm-project/commit/21b6da35f1d5c8ee50c14fa4e498b6c46ac4bc0f
DIFF: https://github.com/llvm/llvm-project/commit/21b6da35f1d5c8ee50c14fa4e498b6c46ac4bc0f.diff

LOG: [clangd] Don't show header for namespace decl in Hover

The header for namespace symbol is barely useful.

Differential Revision: https://reviews.llvm.org/D154068

Added: 
    

Modified: 
    clang-tools-extra/clangd/Hover.cpp
    clang-tools-extra/clangd/unittests/HoverTests.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/Hover.cpp b/clang-tools-extra/clangd/Hover.cpp
index 5184fcbe4b5813..fbd0be07961651 100644
--- a/clang-tools-extra/clangd/Hover.cpp
+++ b/clang-tools-extra/clangd/Hover.cpp
@@ -1374,7 +1374,10 @@ std::optional<HoverInfo> getHover(ParsedAST &AST, Position Pos,
         if (!HI->Value)
           HI->Value = printExprValue(N, AST.getASTContext()).PrintedValue;
         maybeAddCalleeArgInfo(N, *HI, PP);
-        maybeAddSymbolProviders(AST, *HI, include_cleaner::Symbol{*DeclToUse});
+
+        if (!isa<NamespaceDecl>(DeclToUse))
+          maybeAddSymbolProviders(AST, *HI,
+                                  include_cleaner::Symbol{*DeclToUse});
       } else if (const Expr *E = N->ASTNode.get<Expr>()) {
         HoverCountMetric.record(1, "expr");
         HI = getHoverContents(N, E, AST, PP, Index);

diff  --git a/clang-tools-extra/clangd/unittests/HoverTests.cpp b/clang-tools-extra/clangd/unittests/HoverTests.cpp
index 7002e27e9938ff..0f45e7851bc87e 100644
--- a/clang-tools-extra/clangd/unittests/HoverTests.cpp
+++ b/clang-tools-extra/clangd/unittests/HoverTests.cpp
@@ -3059,7 +3059,13 @@ TEST(Hover, Providers) {
                   }
                   ns::F^oo d;
                 )cpp",
-                [](HoverInfo &HI) { HI.Provider = "\"foo.h\""; }}};
+                [](HoverInfo &HI) { HI.Provider = "\"foo.h\""; }},
+                {R"cpp(
+                  namespace foo {};
+                  using namespace fo^o;
+                )cpp",
+                [](HoverInfo &HI) { HI.Provider = ""; }},
+                };
 
   for (const auto &Case : Cases) {
     Annotations Code{Case.Code};


        


More information about the cfe-commits mailing list