summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2021-04-08 11:44:12 +0200
committerDavid Schulz <david.schulz@qt.io>2021-04-09 07:48:57 +0000
commit86679c130b2905d4de88669b481f7eb2e9415aa9 (patch)
treecb11c0aad76cf4289d43faa6aa8a5080b35cf3dc
parent7471c3a378cb3115c60ab86c748c00e3101a25ce (diff)
downloadqt-creator-86679c130b2905d4de88669b481f7eb2e9415aa9.tar.gz
LanguageClient: update dynamic capabilities just once
Change-Id: I7149f581e55a25672dce44abc751912e02271135 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/languageclient/client.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp
index 6eca7d8753..9ec611200f 100644
--- a/src/plugins/languageclient/client.cpp
+++ b/src/plugins/languageclient/client.cpp
@@ -665,16 +665,15 @@ void Client::documentContentsChanged(TextEditor::TextDocument *document,
void Client::registerCapabilities(const QList<Registration> &registrations)
{
m_dynamicCapabilities.registerCapability(registrations);
- auto methodRegistered = [&](const QString &method) {
- return Utils::anyOf(registrations, Utils::equal(&Registration::method, method));
- };
- if (methodRegistered(CompletionRequest::methodName)) {
- for (auto document : m_openedDocument.keys())
- updateCompletionProvider(document);
- }
- if (methodRegistered(SignatureHelpRequest::methodName)) {
- for (auto document : m_openedDocument.keys())
- updateFunctionHintProvider(document);
+ for (const Registration &registration : registrations) {
+ if (registration.method() == CompletionRequest::methodName) {
+ for (auto document : m_openedDocument.keys())
+ updateCompletionProvider(document);
+ }
+ if (registration.method() == SignatureHelpRequest::methodName) {
+ for (auto document : m_openedDocument.keys())
+ updateFunctionHintProvider(document);
+ }
}
emit capabilitiesChanged(m_dynamicCapabilities);
}
@@ -682,6 +681,16 @@ void Client::registerCapabilities(const QList<Registration> &registrations)
void Client::unregisterCapabilities(const QList<Unregistration> &unregistrations)
{
m_dynamicCapabilities.unregisterCapability(unregistrations);
+ for (const Unregistration &unregistration : unregistrations) {
+ if (unregistration.method() == CompletionRequest::methodName) {
+ for (auto document : m_openedDocument.keys())
+ updateCompletionProvider(document);
+ }
+ if (unregistration.method() == SignatureHelpRequest::methodName) {
+ for (auto document : m_openedDocument.keys())
+ updateFunctionHintProvider(document);
+ }
+ }
emit capabilitiesChanged(m_dynamicCapabilities);
}