summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/languageserverprotocol/client.h4
-rw-r--r--src/libs/languageserverprotocol/completion.h4
-rw-r--r--src/libs/languageserverprotocol/initializemessages.h2
-rw-r--r--src/libs/languageserverprotocol/jsonrpcmessages.h33
-rw-r--r--src/libs/languageserverprotocol/languagefeatures.h44
-rw-r--r--src/libs/languageserverprotocol/messages.h2
-rw-r--r--src/libs/languageserverprotocol/shutdownmessages.h4
-rw-r--r--src/libs/languageserverprotocol/textsynchronization.h2
-rw-r--r--src/libs/languageserverprotocol/workspace.h10
-rw-r--r--src/plugins/languageclient/baseclient.cpp6
10 files changed, 70 insertions, 41 deletions
diff --git a/src/libs/languageserverprotocol/client.h b/src/libs/languageserverprotocol/client.h
index f8f601f9d4..bf2fe5421a 100644
--- a/src/libs/languageserverprotocol/client.h
+++ b/src/libs/languageserverprotocol/client.h
@@ -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 &params = 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 &params = UnregistrationParams());
diff --git a/src/libs/languageserverprotocol/completion.h b/src/libs/languageserverprotocol/completion.h
index b05825cd00..3db5be4d70 100644
--- a/src/libs/languageserverprotocol/completion.h
+++ b/src/libs/languageserverprotocol/completion.h
@@ -253,7 +253,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT CompletionRequest : public Request<
- CompletionResult, LanguageClientNull, CompletionParams>
+ CompletionResult, std::nullptr_t, CompletionParams>
{
public:
CompletionRequest(const CompletionParams &params = CompletionParams());
@@ -262,7 +262,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT CompletionItemResolveRequest : public Request<
- CompletionItem, LanguageClientNull, CompletionItem>
+ CompletionItem, std::nullptr_t, CompletionItem>
{
public:
CompletionItemResolveRequest(const CompletionItem &params = CompletionItem());
diff --git a/src/libs/languageserverprotocol/initializemessages.h b/src/libs/languageserverprotocol/initializemessages.h
index 2a923179b8..9224cea773 100644
--- a/src/libs/languageserverprotocol/initializemessages.h
+++ b/src/libs/languageserverprotocol/initializemessages.h
@@ -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();
diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h
index d4405b8767..3ce5547443 100644
--- a/src/libs/languageserverprotocol/jsonrpcmessages.h
+++ b/src/libs/languageserverprotocol/jsonrpcmessages.h
@@ -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
{
diff --git a/src/libs/languageserverprotocol/languagefeatures.h b/src/libs/languageserverprotocol/languagefeatures.h
index d585ce8c9f..5b9bd3cf44 100644
--- a/src/libs/languageserverprotocol/languagefeatures.h
+++ b/src/libs/languageserverprotocol/languagefeatures.h
@@ -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 &params = 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 &params = 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 &params = 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 &params = 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 &params = 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 &params = 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 &params = CodeLensParams());
@@ -413,7 +413,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT CodeLensResolveRequest : public Request<
- CodeLens, LanguageClientNull, CodeLens>
+ CodeLens, std::nullptr_t, CodeLens>
{
public:
CodeLensResolveRequest(const CodeLens &params = 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 &params = DocumentLinkParams());
@@ -453,7 +453,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkResolveRequest : public Request<
- DocumentLink, LanguageClientNull, DocumentLink>
+ DocumentLink, std::nullptr_t, DocumentLink>
{
public:
DocumentLinkResolveRequest(const DocumentLink &params = 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 &params = 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 &params = 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 &params = 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 &params = 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 &params = RenameParams());
diff --git a/src/libs/languageserverprotocol/messages.h b/src/libs/languageserverprotocol/messages.h
index 904f78d3ee..9ad06efb9e 100644
--- a/src/libs/languageserverprotocol/messages.h
+++ b/src/libs/languageserverprotocol/messages.h
@@ -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 &params = ShowMessageRequestParams());
diff --git a/src/libs/languageserverprotocol/shutdownmessages.h b/src/libs/languageserverprotocol/shutdownmessages.h
index 57bc2d3bea..be051d5745 100644
--- a/src/libs/languageserverprotocol/shutdownmessages.h
+++ b/src/libs/languageserverprotocol/shutdownmessages.h
@@ -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();
diff --git a/src/libs/languageserverprotocol/textsynchronization.h b/src/libs/languageserverprotocol/textsynchronization.h
index 8569bc6ef9..2b659366cd 100644
--- a/src/libs/languageserverprotocol/textsynchronization.h
+++ b/src/libs/languageserverprotocol/textsynchronization.h
@@ -165,7 +165,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT WillSaveWaitUntilTextDocumentRequest : public Request<
- LanguageClientArray<TextEdit>, LanguageClientNull, WillSaveTextDocumentParams>
+ LanguageClientArray<TextEdit>, std::nullptr_t, WillSaveTextDocumentParams>
{
public:
WillSaveWaitUntilTextDocumentRequest(
diff --git a/src/libs/languageserverprotocol/workspace.h b/src/libs/languageserverprotocol/workspace.h
index 8674165c07..771e6d9d9b 100644
--- a/src/libs/languageserverprotocol/workspace.h
+++ b/src/libs/languageserverprotocol/workspace.h
@@ -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 &params = 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 &params = WorkspaceSymbolParams());
@@ -218,7 +218,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT ExecuteCommandRequest : public Request<
- QJsonValue, LanguageClientNull, ExecuteCommandParams>
+ QJsonValue, std::nullptr_t, ExecuteCommandParams>
{
public:
ExecuteCommandRequest(const ExecuteCommandParams &params = ExecuteCommandParams());
@@ -254,7 +254,7 @@ public:
};
class LANGUAGESERVERPROTOCOL_EXPORT ApplyWorkspaceEditRequest : public Request<
- ApplyWorkspaceEditResponse, LanguageClientNull, ApplyWorkspaceEditParams>
+ ApplyWorkspaceEditResponse, std::nullptr_t, ApplyWorkspaceEditParams>
{
public:
ApplyWorkspaceEditRequest(const ApplyWorkspaceEditParams &params = ApplyWorkspaceEditParams());
diff --git a/src/plugins/languageclient/baseclient.cpp b/src/plugins/languageclient/baseclient.cpp
index 3bae36c25a..e97f468862 100644
--- a/src/plugins/languageclient/baseclient.cpp
+++ b/src/plugins/languageclient/baseclient.cpp
@@ -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;
}