forked from qt-creator/qt-creator
LanguageClient: update dynamic capabilities just once
Change-Id: I7149f581e55a25672dce44abc751912e02271135 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -665,23 +665,32 @@ void Client::documentContentsChanged(TextEditor::TextDocument *document,
|
||||
void Client::registerCapabilities(const QList<Registration> ®istrations)
|
||||
{
|
||||
m_dynamicCapabilities.registerCapability(registrations);
|
||||
auto methodRegistered = [&](const QString &method) {
|
||||
return Utils::anyOf(registrations, Utils::equal(&Registration::method, method));
|
||||
};
|
||||
if (methodRegistered(CompletionRequest::methodName)) {
|
||||
for (const Registration ®istration : registrations) {
|
||||
if (registration.method() == CompletionRequest::methodName) {
|
||||
for (auto document : m_openedDocument.keys())
|
||||
updateCompletionProvider(document);
|
||||
}
|
||||
if (methodRegistered(SignatureHelpRequest::methodName)) {
|
||||
if (registration.method() == SignatureHelpRequest::methodName) {
|
||||
for (auto document : m_openedDocument.keys())
|
||||
updateFunctionHintProvider(document);
|
||||
}
|
||||
}
|
||||
emit capabilitiesChanged(m_dynamicCapabilities);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user