LSP: add convenient log function for a response error

Change-Id: I50c6667af572e7e8133da587c75d3e55a0f2cac4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2018-11-20 09:44:22 +01:00
parent 7c56b2c310
commit d7e249a5e1
3 changed files with 8 additions and 4 deletions

View File

@@ -155,6 +155,8 @@ public:
&& checkOptional<Error>(error, dataKey); && checkOptional<Error>(error, dataKey);
} }
QString toString() const { return errorCodesToString(code()) + ": " + message(); }
// predefined error codes // predefined error codes
enum ErrorCodes { enum ErrorCodes {
// Defined by JSON RPC // Defined by JSON RPC
@@ -320,8 +322,6 @@ template <typename Error>
inline QDebug operator<<(QDebug stream, inline QDebug operator<<(QDebug stream,
const LanguageServerProtocol::ResponseError<Error> &error) const LanguageServerProtocol::ResponseError<Error> &error)
{ {
stream.nospace() << LanguageServerProtocol::ResponseError<Error>::errorCodesToString(error.code()) stream.nospace() << error.toString();
<< ":"
<< error.message();
return stream; return stream;
} }

View File

@@ -120,6 +120,10 @@ public:
void log(const QString &message, void log(const QString &message,
Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch); Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch);
template<typename Error>
void log(const LanguageServerProtocol::ResponseError<Error> &responseError,
Core::MessageManager::PrintToOutputPaneFlag flag = Core::MessageManager::NoModeSwitch)
{ log(responseError.toString(), flag); }
signals: signals:
void initialized(LanguageServerProtocol::ServerCapabilities capabilities); void initialized(LanguageServerProtocol::ServerCapabilities capabilities);

View File

@@ -350,7 +350,7 @@ void LanguageClientCompletionAssistProcessor::handleCompletionResponse(
m_running = false; m_running = false;
QTC_ASSERT(m_client, return); QTC_ASSERT(m_client, return);
if (auto error = response.error()) { if (auto error = response.error()) {
m_client->log(error.value().message()); m_client->log(error.value());
return; return;
} }
const Utils::optional<CompletionResult> &result = response.result(); const Utils::optional<CompletionResult> &result = response.result();