From c16665b9f37c188be23fb13de7036d86eb65113a Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 29 Apr 2020 10:12:01 +0200 Subject: LSP: show tooltips for diagnostics Change-Id: I9625c77f87c31d3287ab17de42a507a8b068e118 Reviewed-by: Alexis Murzeau Reviewed-by: Christian Stenger --- src/plugins/languageclient/languageclienthoverhandler.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/plugins/languageclient') diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp index a7ffb549786..619473364f4 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 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 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)); -- cgit v1.2.3