diff options
Diffstat (limited to 'src/plugins/languageclient/languageclienthoverhandler.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclienthoverhandler.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp index e878a62749..429c89e511 100644 --- a/src/plugins/languageclient/languageclienthoverhandler.cpp +++ b/src/plugins/languageclient/languageclienthoverhandler.cpp @@ -87,9 +87,8 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget, const std::optional<std::variant<bool, WorkDoneProgressOptions>> &provider = m_client->capabilities().hoverProvider(); - bool sendMessage = provider.has_value(); - if (sendMessage && std::holds_alternative<bool>(*provider)) - sendMessage = std::get<bool>(*provider); + const bool *boolvalue = provider.has_value() ? std::get_if<bool>(&*provider) : nullptr; + bool sendMessage = provider.has_value() && (!boolvalue || *boolvalue); if (std::optional<bool> registered = m_client->dynamicCapabilities().isRegistered( HoverRequest::methodName)) { sendMessage = *registered; |