LSP: remove optional from required properties

Change-Id: Id13dee6d09ee32f0aa6718efdc42ce56bf04e2c5
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2021-03-02 12:13:11 +01:00
parent d17277b546
commit 3cb6d17d5a
2 changed files with 10 additions and 9 deletions

View File

@@ -141,11 +141,12 @@ class LANGUAGESERVERPROTOCOL_EXPORT InitializeResult : public JsonObject
public: public:
using JsonObject::JsonObject; using JsonObject::JsonObject;
Utils::optional<ServerCapabilities> capabilities() const ServerCapabilities capabilities() const
{ return optionalValue<ServerCapabilities>(capabilitiesKey); } { return typedValue<ServerCapabilities>(capabilitiesKey); }
void setCapabilities(const ServerCapabilities &capabilities) void setCapabilities(const ServerCapabilities &capabilities)
{ insert(capabilitiesKey, capabilities); } { insert(capabilitiesKey, capabilities); }
void clearCapabilities() { remove(capabilitiesKey); }
bool isValid() const override { return contains(capabilitiesKey); }
}; };
class LANGUAGESERVERPROTOCOL_EXPORT InitializeError : public JsonObject class LANGUAGESERVERPROTOCOL_EXPORT InitializeError : public JsonObject
@@ -159,9 +160,10 @@ public:
* (2) user selects retry or cancel * (2) user selects retry or cancel
* (3) if user selected retry the initialize method is sent again. * (3) if user selected retry the initialize method is sent again.
*/ */
Utils::optional<bool> retry() const { return optionalValue<bool>(retryKey); } bool retry() const { return typedValue<bool>(retryKey); }
void setRetry(bool retry) { insert(retryKey, retry); } void setRetry(const bool &retry) { insert(retryKey, retry); }
void clearRetry() { remove(retryKey); }
bool isValid() const override { return contains(retryKey); }
}; };
class LANGUAGESERVERPROTOCOL_EXPORT InitializeRequest : public Request< class LANGUAGESERVERPROTOCOL_EXPORT InitializeRequest : public Request<

View File

@@ -1184,8 +1184,7 @@ void Client::initializeCallback(const InitializeRequest::Response &initResponse)
{ {
QTC_ASSERT(m_state == InitializeRequested, return); QTC_ASSERT(m_state == InitializeRequested, return);
if (optional<ResponseError<InitializeError>> error = initResponse.error()) { if (optional<ResponseError<InitializeError>> error = initResponse.error()) {
if (error.value().data().has_value() if (error.value().data().has_value() && error.value().data().value().retry()) {
&& error.value().data().value().retry().value_or(false)) {
const QString title(tr("Language Server \"%1\" Initialize Error").arg(m_displayName)); const QString title(tr("Language Server \"%1\" Initialize Error").arg(m_displayName));
auto result = QMessageBox::warning(Core::ICore::dialogParent(), auto result = QMessageBox::warning(Core::ICore::dialogParent(),
title, title,
@@ -1212,7 +1211,7 @@ void Client::initializeCallback(const InitializeRequest::Response &initResponse)
+ tr("Initialize result is not valid")); + tr("Initialize result is not valid"));
} }
m_serverCapabilities = result.capabilities().value_or(ServerCapabilities()); m_serverCapabilities = result.capabilities();
} }
if (auto completionProvider = qobject_cast<LanguageClientCompletionAssistProvider *>( if (auto completionProvider = qobject_cast<LanguageClientCompletionAssistProvider *>(