forked from qt-creator/qt-creator
LSP: replace LanguageClientNull with nullptr_t
Prevent implicit converting of the null type to JsonObjects or JsonValues. Change-Id: Ib1b74d8a7962cbb308ad0d1bca117cfd2130fb1b Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -70,7 +70,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT RegisterCapabilityRequest : public Request<
|
||||
LanguageClientNull, LanguageClientNull, RegistrationParams>
|
||||
std::nullptr_t, std::nullptr_t, RegistrationParams>
|
||||
{
|
||||
public:
|
||||
RegisterCapabilityRequest(const RegistrationParams ¶ms = RegistrationParams());
|
||||
@@ -108,7 +108,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT UnregisterCapabilityRequest : public Request<
|
||||
LanguageClientNull, LanguageClientNull, UnregistrationParams>
|
||||
std::nullptr_t, std::nullptr_t, UnregistrationParams>
|
||||
{
|
||||
public:
|
||||
UnregisterCapabilityRequest(const UnregistrationParams ¶ms = UnregistrationParams());
|
||||
|
@@ -253,7 +253,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT CompletionRequest : public Request<
|
||||
CompletionResult, LanguageClientNull, CompletionParams>
|
||||
CompletionResult, std::nullptr_t, CompletionParams>
|
||||
{
|
||||
public:
|
||||
CompletionRequest(const CompletionParams ¶ms = CompletionParams());
|
||||
@@ -262,7 +262,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT CompletionItemResolveRequest : public Request<
|
||||
CompletionItem, LanguageClientNull, CompletionItem>
|
||||
CompletionItem, std::nullptr_t, CompletionItem>
|
||||
{
|
||||
public:
|
||||
CompletionItemResolveRequest(const CompletionItem ¶ms = CompletionItem());
|
||||
|
@@ -124,7 +124,7 @@ public:
|
||||
bool isValid(QStringList *error) const override;
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT InitializeNotification : public Notification<LanguageClientNull>
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT InitializeNotification : public Notification<std::nullptr_t>
|
||||
{
|
||||
public:
|
||||
InitializeNotification();
|
||||
|
@@ -42,8 +42,6 @@
|
||||
|
||||
namespace LanguageServerProtocol {
|
||||
|
||||
using LanguageClientNull = JsonObject;
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT JsonRpcMessage : public IContent
|
||||
{
|
||||
public:
|
||||
@@ -132,6 +130,37 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
class Notification<std::nullptr_t> : public JsonRpcMessage
|
||||
{
|
||||
public:
|
||||
Notification() : Notification(QString()) {}
|
||||
Notification(const QString &methodName, const std::nullptr_t &/*params*/ = nullptr)
|
||||
{ setMethod(methodName); }
|
||||
using JsonRpcMessage::JsonRpcMessage;
|
||||
|
||||
QString method() const
|
||||
{ return fromJsonValue<QString>(m_jsonObject.value(methodKey)); }
|
||||
void setMethod(const QString &method)
|
||||
{ m_jsonObject.insert(methodKey, method); }
|
||||
|
||||
Utils::optional<std::nullptr_t> params() const
|
||||
{ return nullptr; }
|
||||
void setParams(const std::nullptr_t &/*params*/)
|
||||
{ m_jsonObject.insert(parametersKey, QJsonValue::Null); }
|
||||
void clearParams() { m_jsonObject.remove(parametersKey); }
|
||||
|
||||
bool isValid(QString *errorMessage) const override
|
||||
{
|
||||
return JsonRpcMessage::isValid(errorMessage)
|
||||
&& m_jsonObject.value(methodKey).isString()
|
||||
&& parametersAreValid(errorMessage);
|
||||
}
|
||||
|
||||
virtual bool parametersAreValid(QString * /*errorMessage*/) const
|
||||
{ return true; }
|
||||
};
|
||||
|
||||
template <typename Error>
|
||||
class ResponseError : public JsonObject
|
||||
{
|
||||
|
@@ -85,8 +85,8 @@ public:
|
||||
{ return check<MarkedString>(error, contentKey) && checkOptional<Range>(error, rangeKey); }
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT HoverRequest : public Request<
|
||||
Hover, LanguageClientNull, TextDocumentPositionParams>
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT HoverRequest
|
||||
: public Request<Hover, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
HoverRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams());
|
||||
@@ -180,8 +180,8 @@ public:
|
||||
bool isValid(QStringList *error) const override;
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT SignatureHelpRequest : public Request<
|
||||
LanguageClientValue<SignatureHelp>, LanguageClientNull, TextDocumentPositionParams>
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT SignatureHelpRequest
|
||||
: public Request<LanguageClientValue<SignatureHelp>, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
SignatureHelpRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams());
|
||||
@@ -198,8 +198,8 @@ public:
|
||||
using variant::variant;
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT GotoDefinitionRequest : public Request<
|
||||
GotoResult, LanguageClientNull, TextDocumentPositionParams>
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT GotoDefinitionRequest
|
||||
: public Request<GotoResult, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
GotoDefinitionRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams());
|
||||
@@ -208,7 +208,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT GotoTypeDefinitionRequest : public Request<
|
||||
GotoResult, LanguageClientNull, TextDocumentPositionParams>
|
||||
GotoResult, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
GotoTypeDefinitionRequest(
|
||||
@@ -218,7 +218,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT GotoImplementationRequest : public Request<
|
||||
GotoResult, LanguageClientNull, TextDocumentPositionParams>
|
||||
GotoResult, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
GotoImplementationRequest(
|
||||
@@ -254,7 +254,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT FindReferencesRequest : public Request<
|
||||
LanguageClientArray<Location>, LanguageClientNull, ReferenceParams>
|
||||
LanguageClientArray<Location>, std::nullptr_t, ReferenceParams>
|
||||
{
|
||||
public:
|
||||
FindReferencesRequest(const ReferenceParams ¶ms = ReferenceParams());
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentHighlightsRequest : public Request<
|
||||
DocumentHighlightsResult, LanguageClientNull, TextDocumentPositionParams>
|
||||
DocumentHighlightsResult, std::nullptr_t, TextDocumentPositionParams>
|
||||
{
|
||||
public:
|
||||
DocumentHighlightsRequest(
|
||||
@@ -333,7 +333,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentSymbolsRequest
|
||||
: public Request<DocumentSymbolsResult, LanguageClientNull, DocumentSymbolParams>
|
||||
: public Request<DocumentSymbolsResult, std::nullptr_t, DocumentSymbolParams>
|
||||
{
|
||||
public:
|
||||
DocumentSymbolsRequest(const DocumentSymbolParams ¶ms = DocumentSymbolParams());
|
||||
@@ -373,7 +373,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT CodeActionRequest : public Request<
|
||||
LanguageClientArray<Command>, LanguageClientNull, CodeActionParams>
|
||||
LanguageClientArray<Command>, std::nullptr_t, CodeActionParams>
|
||||
{
|
||||
public:
|
||||
CodeActionRequest(const CodeActionParams ¶ms = CodeActionParams());
|
||||
@@ -404,7 +404,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT CodeLensRequest : public Request<
|
||||
LanguageClientArray<CodeLens>, LanguageClientNull, CodeLensParams>
|
||||
LanguageClientArray<CodeLens>, std::nullptr_t, CodeLensParams>
|
||||
{
|
||||
public:
|
||||
CodeLensRequest(const CodeLensParams ¶ms = CodeLensParams());
|
||||
@@ -413,7 +413,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT CodeLensResolveRequest : public Request<
|
||||
CodeLens, LanguageClientNull, CodeLens>
|
||||
CodeLens, std::nullptr_t, CodeLens>
|
||||
{
|
||||
public:
|
||||
CodeLensResolveRequest(const CodeLens ¶ms = CodeLens());
|
||||
@@ -444,7 +444,7 @@ public:
|
||||
using DocumentLinkParams = TextDocumentParams;
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkRequest : public Request<
|
||||
LanguageClientValue<DocumentLink>, LanguageClientNull, DocumentLinkParams>
|
||||
LanguageClientValue<DocumentLink>, std::nullptr_t, DocumentLinkParams>
|
||||
{
|
||||
public:
|
||||
DocumentLinkRequest(const DocumentLinkParams ¶ms = DocumentLinkParams());
|
||||
@@ -453,7 +453,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkResolveRequest : public Request<
|
||||
DocumentLink, LanguageClientNull, DocumentLink>
|
||||
DocumentLink, std::nullptr_t, DocumentLink>
|
||||
{
|
||||
public:
|
||||
DocumentLinkResolveRequest(const DocumentLink ¶ms = DocumentLink());
|
||||
@@ -499,7 +499,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentColorRequest : public Request<
|
||||
QList<ColorInformation>, LanguageClientNull, DocumentColorParams>
|
||||
QList<ColorInformation>, std::nullptr_t, DocumentColorParams>
|
||||
{
|
||||
public:
|
||||
DocumentColorRequest(const DocumentColorParams ¶ms = DocumentColorParams());
|
||||
@@ -553,7 +553,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ColorPresentationRequest : public Request<
|
||||
QList<ColorPresentation>, LanguageClientNull, ColorPresentationParams>
|
||||
QList<ColorPresentation>, std::nullptr_t, ColorPresentationParams>
|
||||
{
|
||||
public:
|
||||
ColorPresentationRequest(const ColorPresentationParams ¶ms = ColorPresentationParams());
|
||||
@@ -610,7 +610,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentFormattingRequest : public Request<
|
||||
LanguageClientArray<TextEdit>, LanguageClientNull, DocumentFormattingParams>
|
||||
LanguageClientArray<TextEdit>, std::nullptr_t, DocumentFormattingParams>
|
||||
{
|
||||
public:
|
||||
DocumentFormattingRequest(const DocumentFormattingParams ¶ms = DocumentFormattingParams());
|
||||
@@ -638,7 +638,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentRangeFormattingRequest : public Request<
|
||||
QList<TextEdit>, LanguageClientNull, DocumentFormattingParams>
|
||||
QList<TextEdit>, std::nullptr_t, DocumentFormattingParams>
|
||||
{
|
||||
public:
|
||||
DocumentRangeFormattingRequest(const DocumentFormattingParams ¶ms = DocumentFormattingParams());
|
||||
@@ -669,7 +669,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT DocumentOnTypeFormattingRequest : public Request<
|
||||
QList<TextEdit>, LanguageClientNull, DocumentFormattingParams>
|
||||
QList<TextEdit>, std::nullptr_t, DocumentFormattingParams>
|
||||
{
|
||||
public:
|
||||
DocumentOnTypeFormattingRequest(
|
||||
@@ -698,7 +698,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT RenameRequest : public Request<
|
||||
WorkspaceEdit, LanguageClientNull, RenameParams>
|
||||
WorkspaceEdit, std::nullptr_t, RenameParams>
|
||||
{
|
||||
public:
|
||||
RenameRequest(const RenameParams ¶ms = RenameParams());
|
||||
|
@@ -87,7 +87,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageRequest : public Request<
|
||||
LanguageClientValue<MessageActionItem>, LanguageClientNull, ShowMessageRequestParams>
|
||||
LanguageClientValue<MessageActionItem>, std::nullptr_t, ShowMessageRequestParams>
|
||||
{
|
||||
public:
|
||||
ShowMessageRequest(const ShowMessageRequestParams ¶ms = ShowMessageRequestParams());
|
||||
|
@@ -30,7 +30,7 @@
|
||||
namespace LanguageServerProtocol {
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ShutdownRequest : public Request<
|
||||
LanguageClientNull, LanguageClientNull, LanguageClientNull>
|
||||
std::nullptr_t, std::nullptr_t, std::nullptr_t>
|
||||
{
|
||||
public:
|
||||
ShutdownRequest();
|
||||
@@ -38,7 +38,7 @@ public:
|
||||
constexpr static const char methodName[] = "shutdown";
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ExitNotification : public Notification<LanguageClientNull>
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ExitNotification : public Notification<std::nullptr_t>
|
||||
{
|
||||
public:
|
||||
ExitNotification();
|
||||
|
@@ -165,7 +165,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT WillSaveWaitUntilTextDocumentRequest : public Request<
|
||||
LanguageClientArray<TextEdit>, LanguageClientNull, WillSaveTextDocumentParams>
|
||||
LanguageClientArray<TextEdit>, std::nullptr_t, WillSaveTextDocumentParams>
|
||||
{
|
||||
public:
|
||||
WillSaveWaitUntilTextDocumentRequest(
|
||||
|
@@ -30,7 +30,7 @@
|
||||
namespace LanguageServerProtocol {
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT WorkSpaceFolderRequest : public Request<
|
||||
Utils::variant<QList<WorkSpaceFolder>, Utils::nullopt_t>, LanguageClientNull, LanguageClientNull>
|
||||
Utils::variant<QList<WorkSpaceFolder>, Utils::nullopt_t>, std::nullptr_t, std::nullptr_t>
|
||||
{
|
||||
public:
|
||||
WorkSpaceFolderRequest();
|
||||
@@ -126,7 +126,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ConfigurationRequest : public Request<
|
||||
LanguageClientArray<QJsonValue>, LanguageClientNull, ConfigurationParams>
|
||||
LanguageClientArray<QJsonValue>, std::nullptr_t, ConfigurationParams>
|
||||
{
|
||||
public:
|
||||
ConfigurationRequest(const ConfigurationParams ¶ms = ConfigurationParams());
|
||||
@@ -188,7 +188,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT WorkspaceSymbolRequest : public Request<
|
||||
LanguageClientArray<SymbolInformation>, LanguageClientNull, WorkspaceSymbolParams>
|
||||
LanguageClientArray<SymbolInformation>, std::nullptr_t, WorkspaceSymbolParams>
|
||||
{
|
||||
public:
|
||||
WorkspaceSymbolRequest(const WorkspaceSymbolParams ¶ms = WorkspaceSymbolParams());
|
||||
@@ -218,7 +218,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ExecuteCommandRequest : public Request<
|
||||
QJsonValue, LanguageClientNull, ExecuteCommandParams>
|
||||
QJsonValue, std::nullptr_t, ExecuteCommandParams>
|
||||
{
|
||||
public:
|
||||
ExecuteCommandRequest(const ExecuteCommandParams ¶ms = ExecuteCommandParams());
|
||||
@@ -254,7 +254,7 @@ public:
|
||||
};
|
||||
|
||||
class LANGUAGESERVERPROTOCOL_EXPORT ApplyWorkspaceEditRequest : public Request<
|
||||
ApplyWorkspaceEditResponse, LanguageClientNull, ApplyWorkspaceEditParams>
|
||||
ApplyWorkspaceEditResponse, std::nullptr_t, ApplyWorkspaceEditParams>
|
||||
{
|
||||
public:
|
||||
ApplyWorkspaceEditRequest(const ApplyWorkspaceEditParams ¶ms = ApplyWorkspaceEditParams());
|
||||
|
@@ -617,7 +617,7 @@ void BaseClient::handleMethod(const QString &method, MessageId id, const IConten
|
||||
} else {
|
||||
ShowMessageRequest::Response response;
|
||||
response.setId(request->id());
|
||||
ResponseError<LanguageClientNull> error;
|
||||
ResponseError<std::nullptr_t> error;
|
||||
const QString errorMessage =
|
||||
QString("Could not parse ShowMessageRequest parameter of '%1': \"%2\"")
|
||||
.arg(request->id().toString(),
|
||||
@@ -696,9 +696,9 @@ void BaseClient::intializeCallback(const InitializeRequest::Response &initRespon
|
||||
void BaseClient::shutDownCallback(const ShutdownRequest::Response &shutdownResponse)
|
||||
{
|
||||
QTC_ASSERT(m_state == ShutdownRequested, return);
|
||||
optional<ResponseError<JsonObject>> errorValue = shutdownResponse.error();
|
||||
optional<ShutdownRequest::Response::Error> errorValue = shutdownResponse.error();
|
||||
if (errorValue.has_value()) {
|
||||
ResponseError<JsonObject> error = errorValue.value();
|
||||
ShutdownRequest::Response::Error error = errorValue.value();
|
||||
qDebug() << error;
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user