forked from qt-creator/qt-creator
LanguageClient: Do not send document updates when canceling a request
Change-Id: Ied675bb0eca353fd5ffe26540d99bafb6a874c0d Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -400,10 +400,11 @@ 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);
|
||||
if (sendUpdates == SendDocUpdates::Send)
|
||||
sendPostponedDocumentUpdates();
|
||||
if (Utils::optional<ResponseHandler> responseHandler = content.responseHandler())
|
||||
m_responseHandlers[responseHandler->id] = responseHandler->callback;
|
||||
@@ -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)
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user