From 5c7793b07b8fc51e08dd0d471b8af58d486f5f59 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 17 Dec 2020 10:24:33 +0100 Subject: [PATCH] LanguageClient: Do not pop up general messages pane General messages pane should only be opened on direct user interaction. Task-number: QTCREATORBUG-24430 Change-Id: I526659110fc67c627cb60fe56e1f709f064667c2 Reviewed-by: David Schulz --- src/plugins/languageclient/client.cpp | 16 +++++++--------- src/plugins/languageclient/client.h | 13 ++++++------- .../languageclient/languageclientmanager.cpp | 5 ++--- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index a4af7c37b93..9991cb1c88c 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -329,7 +329,7 @@ void Client::sendContent(const IContent &content) m_responseHandlers[responseHandler->id] = responseHandler->callback; QString error; if (!QTC_GUARD(content.isValid(&error))) - Core::MessageManager::write(error); + Core::MessageManager::writeFlashing(error); const BaseMessage message = content.toBaseMessage(); LanguageClientManager::logBaseMessage(LspLogMessage::ClientMessage, name(), message); m_clientInterface->sendMessage(message); @@ -947,9 +947,9 @@ void Client::handleMessage(const BaseMessage &message) } } -void Client::log(const QString &message, Core::MessageManager::PrintToOutputPaneFlag flag) +void Client::log(const QString &message) { - Core::MessageManager::write(QString("LanguageClient %1: %2").arg(name(), message), flag); + Core::MessageManager::writeFlashing(QString("LanguageClient %1: %2").arg(name(), message)); } const ServerCapabilities &Client::capabilities() const @@ -977,10 +977,9 @@ HoverHandler *Client::hoverHandler() return &m_hoverHandler; } -void Client::log(const ShowMessageParams &message, - Core::MessageManager::PrintToOutputPaneFlag flag) +void Client::log(const ShowMessageParams &message) { - log(message.toString(), flag); + log(message.toString()); } void Client::showMessageBox(const ShowMessageRequestParams &message, const MessageId &id) @@ -1073,8 +1072,7 @@ void Client::handleMethod(const QString &method, const MessageId &id, const ICon ErrorHierarchy error; auto logError = [&](const JsonObject &content) { log(QJsonDocument(content).toJson(QJsonDocument::Indented) + '\n' - + tr("Invalid parameter in \"%1\": %2").arg(method, error.toString()), - Core::MessageManager::Flash); + + tr("Invalid parameter in \"%1\": %2").arg(method, error.toString())); }; if (method == PublishDiagnosticsNotification::methodName) { @@ -1086,7 +1084,7 @@ void Client::handleMethod(const QString &method, const MessageId &id, const ICon } else if (method == LogMessageNotification::methodName) { auto params = dynamic_cast(content)->params().value_or(LogMessageParams()); if (params.isValid(&error)) - log(params, Core::MessageManager::Flash); + log(params); else logError(params); } else if (method == SemanticHighlightNotification::methodName) { diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index b22bb56a101..dd445cf3aa2 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -159,12 +159,12 @@ public: bool start(); bool reset(); - void log(const QString &message, - Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch); + void log(const QString &message); template - void log(const LanguageServerProtocol::ResponseError &responseError, - Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch) - { log(responseError.toString(), flag); } + void log(const LanguageServerProtocol::ResponseError &responseError) + { + log(responseError.toString()); + } const LanguageServerProtocol::ServerCapabilities &capabilities() const; const DynamicCapabilities &dynamicCapabilities() const; @@ -196,8 +196,7 @@ private: void initializeCallback(const LanguageServerProtocol::InitializeRequest::Response &initResponse); void shutDownCallback(const LanguageServerProtocol::ShutdownRequest::Response &shutdownResponse); bool sendWorkspceFolderChanges() const; - void log(const LanguageServerProtocol::ShowMessageParams &message, - Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch); + void log(const LanguageServerProtocol::ShowMessageParams &message); void showMessageBox(const LanguageServerProtocol::ShowMessageRequestParams &message, const LanguageServerProtocol::MessageId &id); diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 362255d74ea..6c9df52b91b 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -385,14 +385,13 @@ void LanguageClientManager::clientFinished(Client *client) && client->state() != Client::ShutdownRequested; if (unexpectedFinish && !m_shuttingDown && client->reset()) { client->disconnect(this); - client->log(tr("Unexpectedly finished. Restarting in %1 seconds.").arg(restartTimeoutS), - Core::MessageManager::Flash); + client->log(tr("Unexpectedly finished. Restarting in %1 seconds.").arg(restartTimeoutS)); QTimer::singleShot(restartTimeoutS * 1000, client, [client]() { startClient(client); }); for (auto it = m_clientForDocument.cbegin(); it != m_clientForDocument.cend(); ++it) client->deactivateDocument(it.key()); } else { if (unexpectedFinish && !m_shuttingDown) - client->log(tr("Unexpectedly finished."), Core::MessageManager::Flash); + client->log(tr("Unexpectedly finished.")); for (auto it = m_clientForDocument.cbegin(); it != m_clientForDocument.cend(); ++it) m_clientForDocument.remove(it.key()); deleteClient(client);