aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-04-29 10:12:01 +0200
committerDavid Schulz <david.schulz@qt.io>2020-05-04 06:37:46 +0000
commitc16665b9f37c188be23fb13de7036d86eb65113a (patch)
treeba127b93c6b6292ea338bdd5e3f8fb94adcce6e0 /src/plugins/languageclient
parent7ff956f39fe2dc03e65b4cfd7faf4bbd25967259 (diff)
LSP: show tooltips for diagnostics
Change-Id: I9625c77f87c31d3287ab17de42a507a8b068e118 Reviewed-by: Alexis Murzeau <amubtdx@gmail.com> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient')
-rw-r--r--src/plugins/languageclient/languageclienthoverhandler.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp
index a7ffb54978..619473364f 100644
--- a/src/plugins/languageclient/languageclienthoverhandler.cpp
+++ b/src/plugins/languageclient/languageclienthoverhandler.cpp
@@ -65,6 +65,16 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget,
report(Priority_None);
return;
}
+ auto uri = DocumentUri::fromFilePath(editorWidget->textDocument()->filePath());
+ QTextCursor tc = editorWidget->textCursor();
+ tc.setPosition(pos);
+ QList<Diagnostic> diagnostics = m_client->diagnosticsAt(uri, Range(Position(tc), Position(tc)));
+ if (!diagnostics.isEmpty()) {
+ const QStringList messages = Utils::transform(diagnostics, &Diagnostic::message);
+ setToolTip(messages.join('\n'));
+ report(Priority_Diagnostic);
+ return;
+ }
bool sendMessage = m_client->capabilities().hoverProvider().value_or(false);
if (Utils::optional<bool> registered = m_client->dynamicCapabilities().isRegistered(
@@ -86,7 +96,6 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget,
}
m_report = report;
- auto uri = DocumentUri::fromFilePath(editorWidget->textDocument()->filePath());
QTextCursor cursor = editorWidget->textCursor();
cursor.setPosition(pos);
TextDocumentPositionParams params(uri, Position(cursor));