summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/ClangdLSPServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/ClangdLSPServer.cpp')
-rw-r--r--clang-tools-extra/clangd/ClangdLSPServer.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp
index 4624b7f0eaf..21c69632f01 100644
--- a/clang-tools-extra/clangd/ClangdLSPServer.cpp
+++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp
@@ -118,6 +118,7 @@ void ClangdLSPServer::onInitialize(InitializeParams &Params) {
}},
{"definitionProvider", true},
{"documentHighlightProvider", true},
+ {"hoverProvider", true},
{"renameProvider", true},
{"executeCommandProvider",
json::obj{
@@ -355,6 +356,19 @@ void ClangdLSPServer::onDocumentHighlight(TextDocumentPositionParams &Params) {
});
}
+void ClangdLSPServer::onHover(TextDocumentPositionParams &Params) {
+ Server.findHover(Params.textDocument.uri.file(), Params.position,
+ [](llvm::Expected<Tagged<Hover>> H) {
+ if (!H) {
+ replyError(ErrorCode::InternalError,
+ llvm::toString(H.takeError()));
+ return;
+ }
+
+ reply(H->Value);
+ });
+}
+
ClangdLSPServer::ClangdLSPServer(JSONOutput &Out, unsigned AsyncThreadsCount,
bool StorePreamblesInMemory,
const clangd::CodeCompleteOptions &CCOpts,
OpenPOWER on IntegriCloud