From 9f21f59e68920310298d488560f899f9912f00a4 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Mon, 4 Nov 2019 17:14:25 +0100 Subject: [PATCH] LanguageClient: Support markdown tool tips with Qt 5.14 Use Qt::MarkdownText if language server returns markdown and it was built against Qt 5.14. Change-Id: I75787cfcb32480cb37bc0dadc4be12d005005099 Reviewed-by: David Schulz --- src/plugins/languageclient/client.cpp | 4 ++++ src/plugins/languageclient/languageclienthoverhandler.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index c036646c59e..a05063ef638 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -222,7 +222,11 @@ static ClientCapabilities generateClientCapabilities() documentCapabilities.setCodeAction(codeActionCapabilities); TextDocumentClientCapabilities::HoverCapabilities hover; +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + hover.setContentFormat({MarkupKind::markdown, MarkupKind::plaintext}); +#else hover.setContentFormat({MarkupKind::plaintext}); +#endif hover.setDynamicRegistration(true); documentCapabilities.setHover(hover); diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp index 9b53e0f9eca..a7ffb549786 100644 --- a/src/plugins/languageclient/languageclienthoverhandler.cpp +++ b/src/plugins/languageclient/languageclienthoverhandler.cpp @@ -129,9 +129,13 @@ void HoverHandler::setContent(const HoverContent &hoverContent) if (markupContent->kind() == MarkupKind::plaintext) { setToolTip(content); } else if (m_client) { +#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0) + setToolTip(content, Qt::MarkdownText); +#else m_client->log(tr("Got unsupported markup hover content: ") + content, Core::MessageManager::Silent); setToolTip(content); +#endif } } else if (auto markedString = Utils::get_if(&hoverContent)) { setToolTip(toolTipForMarkedStrings({*markedString}));