kadircet updated this revision to Diff 232519.
kadircet marked an inline comment as done.
kadircet added a comment.

- Address comments


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70723/new/

https://reviews.llvm.org/D70723

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

Index: clang-tools-extra/clangd/unittests/HoverTests.cpp
===================================================================
--- clang-tools-extra/clangd/unittests/HoverTests.cpp
+++ clang-tools-extra/clangd/unittests/HoverTests.cpp
@@ -32,7 +32,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "foo";
-         HI.Kind = SymbolKind::Function;
+         HI.Kind = index::SymbolKind::Function;
          HI.Documentation = "Best foo ever.";
          HI.Definition = "void foo()";
          HI.ReturnType = "void";
@@ -49,7 +49,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "ns1::ns2::";
          HI.Name = "foo";
-         HI.Kind = SymbolKind::Function;
+         HI.Kind = index::SymbolKind::Function;
          HI.Documentation = "Best foo ever.";
          HI.Definition = "void foo()";
          HI.ReturnType = "void";
@@ -68,7 +68,7 @@
          HI.NamespaceScope = "ns1::ns2::";
          HI.LocalScope = "Foo::";
          HI.Name = "bar";
-         HI.Kind = SymbolKind::Field;
+         HI.Kind = index::SymbolKind::Field;
          HI.Definition = "int bar";
          HI.Type = "int";
        }},
@@ -86,7 +86,7 @@
          HI.NamespaceScope = "ns1::ns2::";
          HI.LocalScope = "Foo::foo::";
          HI.Name = "bar";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Definition = "int bar";
          HI.Type = "int";
        }},
@@ -102,7 +102,7 @@
          HI.NamespaceScope = "ns1::(anonymous)::";
          HI.LocalScope = "(anonymous struct)::";
          HI.Name = "bar";
-         HI.Kind = SymbolKind::Field;
+         HI.Kind = index::SymbolKind::Field;
          HI.Definition = "int bar";
          HI.Type = "int";
        }},
@@ -114,7 +114,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "foo";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Definition = "Foo<int, char, bool> foo = Foo<int, char, bool>(5)";
          HI.Type = "Foo<int, char, bool>";
        }},
@@ -126,7 +126,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "vector";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
          HI.Definition = "template <typename T> class vector {}";
          HI.TemplateParameters = {
              {std::string("typename"), std::string("T"), llvm::None},
@@ -145,7 +145,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "Foo";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
          HI.Definition =
              R"cpp(template <template <typename, bool...> class C, typename = char, int = 0,
           bool Q = false, class... Ts>
@@ -175,7 +175,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "foo";
-         HI.Kind = SymbolKind::Function;
+         HI.Kind = index::SymbolKind::Function;
          HI.Definition =
              R"cpp(template <template <typename, bool...> class C, typename = char, int = 0,
           bool Q = false, class... Ts>
@@ -204,7 +204,7 @@
        [](HoverInfo &HI) {
          HI.NamespaceScope = "";
          HI.Name = "foo";
-         HI.Kind = SymbolKind::Function;
+         HI.Kind = index::SymbolKind::Function;
          HI.Definition = "Foo<bool, true, false> foo(int, bool T = false)";
          HI.ReturnType = "Foo<bool, true, false>";
          HI.Type = "Foo<bool, true, false> (int, bool)";
@@ -225,7 +225,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "foo::";
          HI.Name = "c";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Definition = "auto *c = &b";
          HI.Type = "class (lambda) **";
          HI.ReturnType = "bool";
@@ -246,7 +246,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "foo::";
          HI.Name = "bar";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Parameter;
          HI.Definition = "decltype(lamb) &bar";
          HI.Type = "decltype(lamb) &";
          HI.ReturnType = "bool";
@@ -267,7 +267,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "foo::";
          HI.Name = "bar";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Parameter;
          HI.Definition = "decltype(lamb) bar";
          HI.Type = "class (lambda)";
          HI.ReturnType = "bool";
@@ -290,7 +290,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "foo::";
          HI.Name = "lamb";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Definition = "auto lamb = [&bar](int T, bool B) -> bool {}";
          HI.Type = "class (lambda)";
          HI.ReturnType = "bool";
@@ -310,7 +310,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "foo::(anonymous class)::operator()::";
          HI.Name = "test";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Definition = "int test";
          HI.Type = "int";
        }},
@@ -322,7 +322,7 @@
        [](HoverInfo &HI) {
          HI.Name = "X<T *>";
          HI.NamespaceScope = "";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
          HI.Definition = "template <typename T> class X<T *> {}";
        }},
       // Constructor of partially-specialized class template
@@ -334,7 +334,7 @@
          HI.NamespaceScope = "";
          HI.Name = "X";
          HI.LocalScope = "X<T *>::"; // FIXME: X<T *, void>::
-         HI.Kind = SymbolKind::Constructor;
+         HI.Kind = index::SymbolKind::Constructor;
          HI.ReturnType = "X<T *>";
          HI.Definition = "X()";
          HI.Parameters.emplace();
@@ -344,7 +344,7 @@
          HI.NamespaceScope = "";
          HI.Name = "~X";
          HI.LocalScope = "X::";
-         HI.Kind = SymbolKind::Constructor;
+         HI.Kind = index::SymbolKind::Destructor;
          HI.ReturnType = "void";
          HI.Definition = "~X()";
          HI.Parameters.emplace();
@@ -358,7 +358,7 @@
         )cpp",
        [](HoverInfo &HI) {
          HI.Name = "class (lambda)";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
        }},
       // auto on template instantiation
       {R"cpp(
@@ -369,7 +369,7 @@
         )cpp",
        [](HoverInfo &HI) {
          HI.Name = "class Foo<int>";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
        }},
       // auto on specialized template
       {R"cpp(
@@ -381,7 +381,7 @@
         )cpp",
        [](HoverInfo &HI) {
          HI.Name = "class Foo<int>";
-         HI.Kind = SymbolKind::Class;
+         HI.Kind = index::SymbolKind::Class;
        }},
 
       // macro
@@ -391,7 +391,7 @@
         [[MAC^RO]](int, double d, bool z = false);
         )cpp",
        [](HoverInfo &HI) {
-         HI.Name = "MACRO", HI.Kind = SymbolKind::String,
+         HI.Name = "MACRO", HI.Kind = index::SymbolKind::Macro,
          HI.Definition = "#define MACRO(x, y, z) void foo(x, y, z);";
        }},
 
@@ -403,7 +403,7 @@
        [](HoverInfo &HI) {
          HI.Name = "bar";
          HI.Definition = "int bar = add(1, 2)";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Type = "int";
          HI.NamespaceScope = "";
          HI.Value = "3";
@@ -414,7 +414,7 @@
        [](HoverInfo &HI) {
          HI.Name = "bar";
          HI.Definition = "int bar = sizeof(char)";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Type = "int";
          HI.NamespaceScope = "";
          HI.Value = "1";
@@ -428,7 +428,7 @@
        [](HoverInfo &HI) {
          HI.Name = "bar";
          HI.Definition = "int bar = Add<1, 2>::result";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Type = "int";
          HI.NamespaceScope = "";
          HI.Value = "3";
@@ -442,7 +442,7 @@
          HI.NamespaceScope = "";
          HI.LocalScope = "Color::";
          HI.Definition = "GREEN";
-         HI.Kind = SymbolKind::EnumMember;
+         HI.Kind = index::SymbolKind::EnumConstant;
          HI.Type = "enum Color";
          HI.Value = "1"; // Numeric when hovering on the enumerator name.
        }},
@@ -455,7 +455,7 @@
          HI.Name = "x";
          HI.NamespaceScope = "";
          HI.Definition = "enum Color x = GREEN";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Type = "enum Color";
          HI.Value = "GREEN (1)"; // Symbolic when hovering on an expression.
        }},
@@ -470,7 +470,7 @@
        [](HoverInfo &HI) {
          HI.Name = "result";
          HI.Definition = "static constexpr int result = a + b";
-         HI.Kind = SymbolKind::Property;
+         HI.Kind = index::SymbolKind::StaticProperty;
          HI.Type = "const int";
          HI.NamespaceScope = "";
          HI.LocalScope = "Add<a, b>::";
@@ -483,7 +483,7 @@
        [](HoverInfo &HI) {
          HI.Name = "answer";
          HI.Definition = "constexpr int answer()";
-         HI.Kind = SymbolKind::Function;
+         HI.Kind = index::SymbolKind::Function;
          HI.Type = "int ()";
          HI.ReturnType = "int";
          HI.Parameters.emplace();
@@ -496,7 +496,7 @@
        [](HoverInfo &HI) {
          HI.Name = "bar";
          HI.Definition = "const char *bar = \"1234\"";
-         HI.Kind = SymbolKind::Variable;
+         HI.Kind = index::SymbolKind::Variable;
          HI.Type = "const char *";
          HI.NamespaceScope = "";
          HI.Value = "&\"1234\"[0]";
Index: clang-tools-extra/clangd/Hover.h
===================================================================
--- clang-tools-extra/clangd/Hover.h
+++ clang-tools-extra/clangd/Hover.h
@@ -28,7 +28,7 @@
   /// - template <ParamType Name = DefaultType> class Foo {};
   struct Param {
     /// The pretty-printed parameter type, e.g. "int", or "typename" (in
-    /// TemplateParameters)
+    /// TemplateParameters), might be None for macro parameters.
     llvm::Optional<std::string> Type;
     /// None for unnamed parameters.
     llvm::Optional<std::string> Name;
@@ -53,9 +53,7 @@
   /// Name of the symbol, does not contain any "::".
   std::string Name;
   llvm::Optional<Range> SymRange;
-  /// Scope containing the symbol. e.g, "global namespace", "function x::Y"
-  /// - None for deduced types, e.g "auto", "decltype" keywords.
-  SymbolKind Kind;
+  index::SymbolKind Kind;
   std::string Documentation;
   /// Source code containing the definition of the symbol.
   std::string Definition;
Index: clang-tools-extra/clangd/Hover.cpp
===================================================================
--- clang-tools-extra/clangd/Hover.cpp
+++ clang-tools-extra/clangd/Hover.cpp
@@ -20,6 +20,8 @@
 #include "clang/AST/ASTTypeTraits.h"
 #include "clang/AST/DeclTemplate.h"
 #include "clang/AST/PrettyPrinter.h"
+#include "clang/Index/IndexSymbol.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace clangd {
@@ -298,7 +300,7 @@
     HI.Name = printName(Ctx, *ND);
   }
 
-  HI.Kind = indexSymbolKindToSymbolKind(index::getSymbolInfo(D).Kind);
+  HI.Kind = index::getSymbolInfo(D).Kind;
 
   // Fill in template params.
   if (const TemplateDecl *TD = D->getDescribedTemplate()) {
@@ -347,7 +349,7 @@
   OS.flush();
 
   if (D) {
-    HI.Kind = indexSymbolKindToSymbolKind(index::getSymbolInfo(D).Kind);
+    HI.Kind = index::getSymbolInfo(D).Kind;
     enhanceFromIndex(HI, D, Index);
   }
   return HI;
@@ -358,8 +360,7 @@
   HoverInfo HI;
   SourceManager &SM = AST.getSourceManager();
   HI.Name = Macro.Name;
-  HI.Kind = indexSymbolKindToSymbolKind(
-      index::getSymbolInfoForMacro(*Macro.Info).Kind);
+  HI.Kind = index::SymbolKind::Macro;
   // FIXME: Populate documentation
   // FIXME: Pupulate parameters
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D70723: [cl... Kadir Cetinkaya via Phabricator via cfe-commits

Reply via email to