diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index a7868be19ab..aaf8d3caba5 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -400,11 +400,12 @@ void Client::openDocument(TextEditor::TextDocument *document) } } -void Client::sendContent(const IContent &content) +void Client::sendContent(const IContent &content, SendDocUpdates sendUpdates) { QTC_ASSERT(m_clientInterface, return); QTC_ASSERT(m_state == Initialized, return); - sendPostponedDocumentUpdates(); + if (sendUpdates == SendDocUpdates::Send) + sendPostponedDocumentUpdates(); if (Utils::optional responseHandler = content.responseHandler()) m_responseHandlers[responseHandler->id] = responseHandler->callback; QString error; @@ -418,7 +419,7 @@ void Client::sendContent(const IContent &content) void Client::cancelRequest(const MessageId &id) { m_responseHandlers.remove(id); - sendContent(CancelRequest(CancelParameter(id))); + sendContent(CancelRequest(CancelParameter(id)), SendDocUpdates::Ignore); } void Client::closeDocument(TextEditor::TextDocument *document) diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index 650f0155102..c783e76aafa 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -92,7 +92,11 @@ public: Utils::Id id() const { return m_id; } void setName(const QString &name) { m_displayName = name; } QString name() const; - void sendContent(const LanguageServerProtocol::IContent &content); + + enum class SendDocUpdates { Send, Ignore }; + void sendContent(const LanguageServerProtocol::IContent &content, + SendDocUpdates sendUpdates = SendDocUpdates::Send); + void cancelRequest(const LanguageServerProtocol::MessageId &id); // server state handling