[clang-tools-extra] 7759f70 - [clangd] Support typeHierarchy/resolve for children of parents as well

Nathan Ridge via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 15 09:01:40 PDT 2020


Author: Nathan Ridge
Date: 2020-06-15T11:59:23-04:00
New Revision: 7759f70fb0ee2cd6752d9188bd2578cc3d9a7a2e

URL: https://github.com/llvm/llvm-project/commit/7759f70fb0ee2cd6752d9188bd2578cc3d9a7a2e
DIFF: https://github.com/llvm/llvm-project/commit/7759f70fb0ee2cd6752d9188bd2578cc3d9a7a2e.diff

LOG: [clangd] Support typeHierarchy/resolve for children of parents as well

Summary:
The initial implementation of typeHierarchy/resolve only supported
cases where an initial request was made for children, and then
typeHierarchy/resolve was used to get additional levels of children.

However, a client may also want to make an initial request for
parents, and then show other children of those parents, so support
typeHierarchy/resolve for items returned in response to a request
for parents as well.

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

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

Added: 
    

Modified: 
    clang-tools-extra/clangd/XRefs.cpp

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/XRefs.cpp b/clang-tools-extra/clangd/XRefs.cpp
index df2c7a7c7228..6aa031541846 100644
--- a/clang-tools-extra/clangd/XRefs.cpp
+++ b/clang-tools-extra/clangd/XRefs.cpp
@@ -1225,6 +1225,14 @@ declToTypeHierarchyItem(ASTContext &Ctx, const NamedDecl &ND,
 
   THI.uri = URIForFile::canonicalize(*FilePath, *TUPath);
 
+  // Compute the SymbolID and store it in the 'data' field.
+  // This allows typeHierarchy/resolve to be used to
+  // resolve children of items returned in a previous request
+  // for parents.
+  if (auto ID = getSymbolID(&ND)) {
+    THI.data = ID->str();
+  }
+
   return THI;
 }
 


        


More information about the cfe-commits mailing list