summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clangd/SyncAPI.cpp
diff options
context:
space:
mode:
authorMarc-Andre Laperle <marc-andre.laperle@ericsson.com>2018-07-05 19:35:01 +0000
committerMarc-Andre Laperle <marc-andre.laperle@ericsson.com>2018-07-05 19:35:01 +0000
commit1be69701c3e238d12a53c5b487291c893286025c (patch)
treefa01a576a4e6dd41ec4af2521611fa16dedd3cc0 /clang-tools-extra/unittests/clangd/SyncAPI.cpp
parent7bd8970743f45a006b8f12c97aac92999f41b2c0 (diff)
downloadbcm5719-llvm-1be69701c3e238d12a53c5b487291c893286025c.tar.gz
bcm5719-llvm-1be69701c3e238d12a53c5b487291c893286025c.zip
[clangd] Implementation of textDocument/documentSymbol
Summary: An AST-based approach is used to retrieve the document symbols rather than an in-memory index query. The index is not an ideal fit to achieve this because of the file-centric query being done here whereas the index is suited for project-wide queries. Document symbols also includes more symbols and need to keep the order as seen in the file. Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com> Subscribers: tomgr, ilya-biryukov, ioeric, MaskRay, jkorous, cfe-commits Differential Revision: https://reviews.llvm.org/D47846 llvm-svn: 336386
Diffstat (limited to 'clang-tools-extra/unittests/clangd/SyncAPI.cpp')
-rw-r--r--clang-tools-extra/unittests/clangd/SyncAPI.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang-tools-extra/unittests/clangd/SyncAPI.cpp b/clang-tools-extra/unittests/clangd/SyncAPI.cpp
index fa4f3763c56..ae9ece59069 100644
--- a/clang-tools-extra/unittests/clangd/SyncAPI.cpp
+++ b/clang-tools-extra/unittests/clangd/SyncAPI.cpp
@@ -117,5 +117,12 @@ runWorkspaceSymbols(ClangdServer &Server, StringRef Query, int Limit) {
return std::move(*Result);
}
+llvm::Expected<std::vector<SymbolInformation>>
+runDocumentSymbols(ClangdServer &Server, PathRef File) {
+ llvm::Optional<llvm::Expected<std::vector<SymbolInformation>>> Result;
+ Server.documentSymbols(File, capture(Result));
+ return std::move(*Result);
+}
+
} // namespace clangd
} // namespace clang
OpenPOWER on IntegriCloud