diff options
| author | Sam McCall <sam.mccall@gmail.com> | 2018-09-05 11:53:07 +0000 |
|---|---|---|
| committer | Sam McCall <sam.mccall@gmail.com> | 2018-09-05 11:53:07 +0000 |
| commit | 1ad142fe260566f9d14e65cb2a48a2123e2edee0 (patch) | |
| tree | 4ffc1b274dcfac3b331b4f49f0753c531a055f1e /clang-tools-extra/clangd/ClangdServer.cpp | |
| parent | 837f93af7d907f4ddaed6745eb749d4954c4f962 (diff) | |
| download | bcm5719-llvm-1ad142fe260566f9d14e65cb2a48a2123e2edee0.tar.gz bcm5719-llvm-1ad142fe260566f9d14e65cb2a48a2123e2edee0.zip | |
[clangd] Add xrefs LSP boilerplate implementation.
Reviewers: ilya-biryukov, ioeric
Subscribers: MaskRay, jkorous, arphaman, cfe-commits
Differential Revision: https://reviews.llvm.org/D50896
llvm-svn: 341462
Diffstat (limited to 'clang-tools-extra/clangd/ClangdServer.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/ClangdServer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/ClangdServer.cpp b/clang-tools-extra/clangd/ClangdServer.cpp index 5bd2a910dff..0a8e748b2f8 100644 --- a/clang-tools-extra/clangd/ClangdServer.cpp +++ b/clang-tools-extra/clangd/ClangdServer.cpp @@ -560,6 +560,18 @@ void ClangdServer::documentSymbols( Bind(Action, std::move(CB))); } +void ClangdServer::findReferences(PathRef File, Position Pos, + Callback<std::vector<Location>> CB) { + auto Action = [Pos, this](Callback<std::vector<Location>> CB, + llvm::Expected<InputsAndAST> InpAST) { + if (!InpAST) + return CB(InpAST.takeError()); + CB(clangd::findReferences(InpAST->AST, Pos, Index)); + }; + + WorkScheduler.runWithAST("References", File, Bind(Action, std::move(CB))); +} + std::vector<std::pair<Path, std::size_t>> ClangdServer::getUsedBytesPerFile() const { return WorkScheduler.getUsedBytesPerFile(); |

