diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 05b0ef83475..48cdc0a8378 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -320,23 +320,6 @@ bool Client::openDocument(Core::IDocument *document) documentContentsChanged(textDocument, position, charsRemoved, charsAdded); }); - if (auto completionProvider = qobject_cast( - m_clientProviders.completionAssistProvider)) { - completionProvider->setTriggerCharacters( - m_serverCapabilities.completionProvider() - .value_or(ServerCapabilities::CompletionOptions()) - .triggerCharacters() - .value_or(QList())); - } - if (auto functionHintAssistProvider = qobject_cast( - m_clientProviders.completionAssistProvider)) { - functionHintAssistProvider->setTriggerCharacters( - m_serverCapabilities.signatureHelpProvider() - .value_or(ServerCapabilities::SignatureHelpOptions()) - .triggerCharacters() - .value_or(QList())); - } - auto *oldCompletionProvider = qobject_cast( textDocument->completionAssistProvider()); // only replace the completion assist provider if it is the default one or null @@ -1224,6 +1207,24 @@ void Client::intializeCallback(const InitializeRequest::Response &initResponse) m_serverCapabilities = result.capabilities().value_or(ServerCapabilities()); } + + if (auto completionProvider = qobject_cast( + m_clientProviders.completionAssistProvider)) { + completionProvider->setTriggerCharacters( + m_serverCapabilities.completionProvider() + .value_or(ServerCapabilities::CompletionOptions()) + .triggerCharacters() + .value_or(QList())); + } + if (auto functionHintAssistProvider = qobject_cast( + m_clientProviders.completionAssistProvider)) { + functionHintAssistProvider->setTriggerCharacters( + m_serverCapabilities.signatureHelpProvider() + .value_or(ServerCapabilities::SignatureHelpOptions()) + .triggerCharacters() + .value_or(QList())); + } + qCDebug(LOGLSPCLIENT) << "language server " << m_displayName << " initialized"; m_state = Initialized; sendContent(InitializeNotification());