diff options
author | Eric Liu <ioeric@google.com> | 2018-10-17 11:19:02 +0000 |
---|---|---|
committer | Eric Liu <ioeric@google.com> | 2018-10-17 11:19:02 +0000 |
commit | 3fac4ef1fdb4e6b2b4743f33498612c233da325d (patch) | |
tree | f3dbf1cda024228cff98f9e00d8dbd50188144e6 /clang-tools-extra/clangd/AST.cpp | |
parent | e2566b5d877c415f128a9f3d75ef2173bf32c347 (diff) | |
download | bcm5719-llvm-3fac4ef1fdb4e6b2b4743f33498612c233da325d.tar.gz bcm5719-llvm-3fac4ef1fdb4e6b2b4743f33498612c233da325d.zip |
[clangd] Support scope proximity in code completion.
Summary:
This should make all-scope completion more usable. Scope proximity for
indexes will be added in followup patch.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D53131
llvm-svn: 344688
Diffstat (limited to 'clang-tools-extra/clangd/AST.cpp')
-rw-r--r-- | clang-tools-extra/clangd/AST.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/AST.cpp b/clang-tools-extra/clangd/AST.cpp index 661c6aaf403..ffaf63ae760 100644 --- a/clang-tools-extra/clangd/AST.cpp +++ b/clang-tools-extra/clangd/AST.cpp @@ -54,6 +54,14 @@ std::string printQualifiedName(const NamedDecl &ND) { return QName; } +std::string printNamespaceScope(const DeclContext &DC) { + for (const auto *Ctx = &DC; Ctx != nullptr; Ctx = Ctx->getParent()) + if (const auto *NS = dyn_cast<NamespaceDecl>(Ctx)) + if (!NS->isAnonymousNamespace() && !NS->isInlineNamespace()) + return printQualifiedName(*NS) + "::"; + return ""; +} + llvm::Optional<SymbolID> getSymbolID(const Decl *D) { llvm::SmallString<128> USR; if (index::generateUSRForDecl(D, USR)) |