diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h index e4a9b993a3e..d1c0df7fa22 100644 --- a/src/libs/languageserverprotocol/lsptypes.h +++ b/src/libs/languageserverprotocol/lsptypes.h @@ -413,6 +413,8 @@ public: // The type of the Markup MarkupKind kind() const { return value(kindKey); } void setKind(MarkupKind kind) { insert(kindKey, kind); } + Qt::TextFormat textFormat() const + { return kind() == MarkupKind::markdown ? Qt::MarkdownText : Qt::PlainText; } // The content itself QString content() const { return typedValue(contentKey); } diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index acfd0d3a693..df91b152971 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -232,11 +232,7 @@ 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 619473364f4..ec1632e7ffd 100644 --- a/src/plugins/languageclient/languageclienthoverhandler.cpp +++ b/src/plugins/languageclient/languageclienthoverhandler.cpp @@ -133,24 +133,12 @@ static QString toolTipForMarkedStrings(const QList &markedStrings) void HoverHandler::setContent(const HoverContent &hoverContent) { - if (auto markupContent = Utils::get_if(&hoverContent)) { - const QString &content = markupContent->content(); - 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)) { + if (auto markupContent = Utils::get_if(&hoverContent)) + setToolTip(markupContent->content(), markupContent->textFormat()); + else if (auto markedString = Utils::get_if(&hoverContent)) setToolTip(toolTipForMarkedStrings({*markedString})); - } else if (auto markedStrings = Utils::get_if>(&hoverContent)) { + else if (auto markedStrings = Utils::get_if>(&hoverContent)) setToolTip(toolTipForMarkedStrings(*markedStrings)); - } } } // namespace LanguageClient