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_clientInterface, return);
|
||||||
QTC_ASSERT(m_state == Initialized, return);
|
QTC_ASSERT(m_state == Initialized, return);
|
||||||
|
if (sendUpdates == SendDocUpdates::Send)
|
||||||
sendPostponedDocumentUpdates();
|
sendPostponedDocumentUpdates();
|
||||||
if (Utils::optional<ResponseHandler> responseHandler = content.responseHandler())
|
if (Utils::optional<ResponseHandler> responseHandler = content.responseHandler())
|
||||||
m_responseHandlers[responseHandler->id] = responseHandler->callback;
|
m_responseHandlers[responseHandler->id] = responseHandler->callback;
|
||||||
@@ -418,7 +419,7 @@ void Client::sendContent(const IContent &content)
|
|||||||
void Client::cancelRequest(const MessageId &id)
|
void Client::cancelRequest(const MessageId &id)
|
||||||
{
|
{
|
||||||
m_responseHandlers.remove(id);
|
m_responseHandlers.remove(id);
|
||||||
sendContent(CancelRequest(CancelParameter(id)));
|
sendContent(CancelRequest(CancelParameter(id)), SendDocUpdates::Ignore);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Client::closeDocument(TextEditor::TextDocument *document)
|
void Client::closeDocument(TextEditor::TextDocument *document)
|
||||||
|
@@ -92,7 +92,11 @@ public:
|
|||||||
Utils::Id id() const { return m_id; }
|
Utils::Id id() const { return m_id; }
|
||||||
void setName(const QString &name) { m_displayName = name; }
|
void setName(const QString &name) { m_displayName = name; }
|
||||||
QString name() const;
|
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);
|
void cancelRequest(const LanguageServerProtocol::MessageId &id);
|
||||||
|
|
||||||
// server state handling
|
// server state handling
|
||||||
|
Reference in New Issue
Block a user