aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/languageclient/client.cpp')
-rw-r--r--src/plugins/languageclient/client.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp
index 0d7826307a..f56538d6cb 100644
--- a/src/plugins/languageclient/client.cpp
+++ b/src/plugins/languageclient/client.cpp
@@ -903,7 +903,8 @@ void ClientPrivate::requestDocumentHighlightsNow(TextEditor::TextEditorWidget *w
= m_serverCapabilities.documentHighlightProvider();
if (!provider.has_value())
return;
- if (std::holds_alternative<bool>(*provider) && !std::get<bool>(*provider))
+ const auto boolvalue = std::get_if<bool>(&*provider);
+ if (boolvalue && !*boolvalue)
return;
}
@@ -935,7 +936,8 @@ void ClientPrivate::requestDocumentHighlightsNow(TextEditor::TextEditorWidget *w
const QTextCharFormat &format =
widget->textDocument()->fontSettings().toTextCharFormat(TextEditor::C_OCCURRENCES);
QTextDocument *document = widget->document();
- for (const auto &highlight : std::get<QList<DocumentHighlight>>(*result)) {
+ const auto highlights = std::get_if<QList<DocumentHighlight>>(&*result);
+ for (const auto &highlight : *highlights) {
QTextEdit::ExtraSelection selection{widget->textCursor(), format};
const int &start = highlight.range().start().toPositionInDocument(document);
const int &end = highlight.range().end().toPositionInDocument(document);
@@ -1435,7 +1437,8 @@ void Client::requestCodeActions(const CodeActionRequest &request)
} else {
std::variant<bool, CodeActionOptions> provider
= d->m_serverCapabilities.codeActionProvider().value_or(false);
- if (!(std::holds_alternative<CodeActionOptions>(provider) || std::get<bool>(provider)))
+ const auto boolvalue = std::get_if<bool>(&provider);
+ if (boolvalue && !*boolvalue)
return;
}
@@ -1661,8 +1664,8 @@ bool Client::supportsDocumentSymbols(const TextEditor::TextDocument *doc) const
= capabilities().documentSymbolProvider();
if (!provider.has_value())
return false;
- if (std::holds_alternative<bool>(*provider))
- return std::get<bool>(*provider);
+ if (const auto boolvalue = std::get_if<bool>(&*provider))
+ return *boolvalue;
return true;
}
@@ -2233,10 +2236,10 @@ bool ClientPrivate::sendWorkspceFolderChanges() const
if (auto folder = workspace->workspaceFolders()) {
if (folder->supported().value_or(false)) {
// holds either the Id for deregistration or whether it is registered
- auto notification = folder->changeNotifications().value_or(false);
- return std::holds_alternative<QString>(notification)
- || (std::holds_alternative<bool>(notification)
- && std::get<bool>(notification));
+ const std::variant<QString, bool> notification
+ = folder->changeNotifications().value_or(false);
+ const auto boolvalue = std::get_if<bool>(&notification);
+ return !boolvalue || *boolvalue;
}
}
}