forked from qt-creator/qt-creator
LanguageClient: Allow to log to console rather than message window
And make use of that in ClangdClient. When I get a slowdown while typing, it is usually accompanied by the clangd message "Request cancelled because the document was modified" occurring in the message window, often many times in a row. I'd like to find out whether writing to the message window itself is a contributing factor to the slowdown. Change-Id: Iff7c459af0aed27d22366b9aade573f51eb5dbc7 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -1081,6 +1081,7 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir)
|
|||||||
"text/x-c++hdr", "text/x-c++src", "text/x-objc++src", "text/x-objcsrc"};
|
"text/x-c++hdr", "text/x-c++src", "text/x-objc++src", "text/x-objcsrc"};
|
||||||
setSupportedLanguage(langFilter);
|
setSupportedLanguage(langFilter);
|
||||||
setActivateDocumentAutomatically(true);
|
setActivateDocumentAutomatically(true);
|
||||||
|
setLogTarget(LogTarget::Console);
|
||||||
setCompletionAssistProvider(new ClangdCompletionAssistProvider(this));
|
setCompletionAssistProvider(new ClangdCompletionAssistProvider(this));
|
||||||
if (!project) {
|
if (!project) {
|
||||||
QJsonObject initOptions;
|
QJsonObject initOptions;
|
||||||
|
@@ -1133,7 +1133,14 @@ void Client::handleMessage(const BaseMessage &message)
|
|||||||
|
|
||||||
void Client::log(const QString &message) const
|
void Client::log(const QString &message) const
|
||||||
{
|
{
|
||||||
Core::MessageManager::writeFlashing(QString("LanguageClient %1: %2").arg(name(), message));
|
switch (m_logTarget) {
|
||||||
|
case LogTarget::Ui:
|
||||||
|
Core::MessageManager::writeFlashing(QString("LanguageClient %1: %2").arg(name(), message));
|
||||||
|
break;
|
||||||
|
case LogTarget::Console:
|
||||||
|
qCDebug(LOGLSPCLIENT) << message;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const ServerCapabilities &Client::capabilities() const
|
const ServerCapabilities &Client::capabilities() const
|
||||||
|
@@ -189,6 +189,8 @@ public:
|
|||||||
void setCompletionAssistProvider(LanguageClientCompletionAssistProvider *provider);
|
void setCompletionAssistProvider(LanguageClientCompletionAssistProvider *provider);
|
||||||
|
|
||||||
// logging
|
// logging
|
||||||
|
enum class LogTarget { Console, Ui };
|
||||||
|
void setLogTarget(LogTarget target) { m_logTarget = target; }
|
||||||
void log(const QString &message) const;
|
void log(const QString &message) const;
|
||||||
template<typename Error>
|
template<typename Error>
|
||||||
void log(const LanguageServerProtocol::ResponseError<Error> &responseError) const
|
void log(const LanguageServerProtocol::ResponseError<Error> &responseError) const
|
||||||
@@ -288,6 +290,7 @@ private:
|
|||||||
QString m_serverName;
|
QString m_serverName;
|
||||||
QString m_serverVersion;
|
QString m_serverVersion;
|
||||||
LanguageServerProtocol::SymbolStringifier m_symbolStringifier;
|
LanguageServerProtocol::SymbolStringifier m_symbolStringifier;
|
||||||
|
LogTarget m_logTarget = LogTarget::Ui;
|
||||||
bool m_locatorsEnabled = true;
|
bool m_locatorsEnabled = true;
|
||||||
bool m_autoRequestCodeActions = true;
|
bool m_autoRequestCodeActions = true;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user