LSP: Explicify API

Change-Id: Id208a420fd3e1e23d3279c4f1f19bdbed994a8d3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2020-07-14 14:31:20 +02:00
parent c4cb5d4039
commit 11ea89d936
19 changed files with 104 additions and 107 deletions

View File

@@ -33,7 +33,7 @@ class Registration : public JsonObject
{
public:
Registration() : Registration(QString()) {}
Registration(const QString &method)
explicit Registration(const QString &method)
{
setId(QUuid::createUuid().toString());
setMethod(method);
@@ -58,7 +58,8 @@ class RegistrationParams : public JsonObject
{
public:
RegistrationParams() : RegistrationParams(QList<Registration>()) {}
RegistrationParams(const QList<Registration> &registrations) { setRegistrations(registrations); }
explicit RegistrationParams(const QList<Registration> &registrations)
{ setRegistrations(registrations); }
using JsonObject::JsonObject;
QList<Registration> registrations() const { return array<Registration>(registrationsKey); }
@@ -73,7 +74,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT RegisterCapabilityRequest : public Request<
std::nullptr_t, std::nullptr_t, RegistrationParams>
{
public:
RegisterCapabilityRequest(const RegistrationParams &params);
explicit RegisterCapabilityRequest(const RegistrationParams &params);
using Request::Request;
constexpr static const char methodName[] = "client/registerCapability";
};
@@ -111,7 +112,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT UnregisterCapabilityRequest : public Request
std::nullptr_t, std::nullptr_t, UnregistrationParams>
{
public:
UnregisterCapabilityRequest(const UnregistrationParams &params);
explicit UnregisterCapabilityRequest(const UnregistrationParams &params);
using Request::Request;
constexpr static const char methodName[] = "client/unregisterCapability";
};

View File

@@ -249,14 +249,14 @@ class LANGUAGESERVERPROTOCOL_EXPORT CompletionResult
{
public:
using variant::variant;
CompletionResult(const QJsonValue &value);
explicit CompletionResult(const QJsonValue &value);
};
class LANGUAGESERVERPROTOCOL_EXPORT CompletionRequest : public Request<
CompletionResult, std::nullptr_t, CompletionParams>
{
public:
CompletionRequest(const CompletionParams &params);
explicit CompletionRequest(const CompletionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/completion";
};
@@ -265,7 +265,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT CompletionItemResolveRequest : public Reques
CompletionItem, std::nullptr_t, CompletionItem>
{
public:
CompletionItemResolveRequest(const CompletionItem &params);
explicit CompletionItemResolveRequest(const CompletionItem &params);
using Request::Request;
constexpr static const char methodName[] = "completionItem/resolve";
};

View File

@@ -49,7 +49,7 @@ public:
class LANGUAGESERVERPROTOCOL_EXPORT PublishDiagnosticsNotification : public Notification<PublishDiagnosticsParams>
{
public:
PublishDiagnosticsNotification(const PublishDiagnosticsParams &params);
explicit PublishDiagnosticsNotification(const PublishDiagnosticsParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/publishDiagnostics";
};

View File

@@ -47,17 +47,17 @@ class LANGUAGESERVERPROTOCOL_EXPORT MessageId : public Utils::variant<int, QStri
{
public:
MessageId() = default;
MessageId(int id) : variant(id) {}
MessageId(QString id) : variant(id) {}
explicit MessageId(int id) : variant(id) {}
explicit MessageId(const QString &id) : variant(id) {}
explicit MessageId(const QJsonValue &value)
{
if (value.isUndefined())
return;
QTC_CHECK(value.isDouble() || value.isString());
if (value.isDouble())
*this = value.toInt();
*this = MessageId(value.toInt());
else if (value.isString())
*this = value.toString();
*this = MessageId(value.toString());
}
QJsonValue toJson() const

View File

@@ -129,7 +129,7 @@ using InitializedParams = JsonObject;
class LANGUAGESERVERPROTOCOL_EXPORT InitializeNotification : public Notification<InitializedParams>
{
public:
InitializeNotification(const InitializedParams &params);
explicit InitializeNotification(const InitializedParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "initialized";
@@ -173,7 +173,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT InitializeRequest : public Request<
InitializeResult, InitializeError, InitializeParams>
{
public:
InitializeRequest(const InitializeParams &params = InitializeParams());
explicit InitializeRequest(const InitializeParams &params);
using Request::Request;
constexpr static const char methodName[] = "initialize";
};

View File

@@ -46,8 +46,8 @@ class LANGUAGESERVERPROTOCOL_EXPORT JsonRpcMessage : public IContent
{
public:
JsonRpcMessage();
JsonRpcMessage(const QJsonObject &jsonObject);
JsonRpcMessage(QJsonObject &&jsonObject);
explicit JsonRpcMessage(const QJsonObject &jsonObject);
explicit JsonRpcMessage(QJsonObject &&jsonObject);
QByteArray toRawData() const final;
QByteArray mimeType() const final;
@@ -94,8 +94,8 @@ public:
setParams(params);
}
Notification(const QJsonObject &jsonObject) : JsonRpcMessage(jsonObject) {}
Notification(QJsonObject &&jsonObject) : JsonRpcMessage(std::move(jsonObject)) {}
explicit Notification(const QJsonObject &jsonObject) : JsonRpcMessage(jsonObject) {}
explicit Notification(QJsonObject &&jsonObject) : JsonRpcMessage(std::move(jsonObject)) {}
QString method() const
{ return fromJsonValue<QString>(m_jsonObject.value(methodKey)); }
@@ -134,7 +134,7 @@ class Notification<std::nullptr_t> : public JsonRpcMessage
{
public:
Notification() : Notification(QString()) {}
Notification(const QString &methodName, const std::nullptr_t &/*params*/ = nullptr)
explicit Notification(const QString &methodName, const std::nullptr_t &/*params*/ = nullptr)
{
setMethod(methodName);
setParams(nullptr);
@@ -270,9 +270,9 @@ class Request : public Notification<Params>
public:
Request(const QString &methodName, const Params &params)
: Notification<Params>(methodName, params)
{ setId(QUuid::createUuid().toString()); }
Request(const QJsonObject &jsonObject) : Notification<Params>(jsonObject) { }
Request(QJsonObject &&jsonObject) : Notification<Params>(std::move(jsonObject)) { }
{ setId(MessageId(QUuid::createUuid().toString())); }
explicit Request(const QJsonObject &jsonObject) : Notification<Params>(jsonObject) { }
explicit Request(QJsonObject &&jsonObject) : Notification<Params>(std::move(jsonObject)) { }
MessageId id() const
{ return MessageId(JsonRpcMessage::m_jsonObject.value(idKey)); }
@@ -323,7 +323,7 @@ private:
class LANGUAGESERVERPROTOCOL_EXPORT CancelParameter : public JsonObject
{
public:
CancelParameter(const MessageId &id) { setId(id); }
explicit CancelParameter(const MessageId &id) { setId(id); }
CancelParameter() = default;
using JsonObject::JsonObject;
@@ -343,7 +343,7 @@ public:
class LANGUAGESERVERPROTOCOL_EXPORT CancelRequest : public Notification<CancelParameter>
{
public:
CancelRequest(const CancelParameter &params);
explicit CancelRequest(const CancelParameter &params);
using Notification::Notification;
constexpr static const char methodName[] = "$/cancelRequest";
};

View File

@@ -106,7 +106,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT HoverRequest
: public Request<Hover, std::nullptr_t, TextDocumentPositionParams>
{
public:
HoverRequest(const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit HoverRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/hover";
};
@@ -201,7 +201,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT SignatureHelpRequest
: public Request<LanguageClientValue<SignatureHelp>, std::nullptr_t, TextDocumentPositionParams>
{
public:
SignatureHelpRequest(const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit SignatureHelpRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/signatureHelp";
};
@@ -211,7 +211,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT GotoResult
: public Utils::variant<Location, QList<Location>, std::nullptr_t>
{
public:
GotoResult(const QJsonValue &value);
explicit GotoResult(const QJsonValue &value);
using variant::variant;
};
@@ -219,7 +219,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT GotoDefinitionRequest
: public Request<GotoResult, std::nullptr_t, TextDocumentPositionParams>
{
public:
GotoDefinitionRequest(const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit GotoDefinitionRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/definition";
};
@@ -228,8 +228,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT GotoTypeDefinitionRequest : public Request<
GotoResult, std::nullptr_t, TextDocumentPositionParams>
{
public:
GotoTypeDefinitionRequest(
const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit GotoTypeDefinitionRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/typeDefinition";
};
@@ -238,8 +237,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT GotoImplementationRequest : public Request<
GotoResult, std::nullptr_t, TextDocumentPositionParams>
{
public:
GotoImplementationRequest(
const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit GotoImplementationRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/implementation";
};
@@ -277,7 +275,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT FindReferencesRequest : public Request<
LanguageClientArray<Location>, std::nullptr_t, ReferenceParams>
{
public:
FindReferencesRequest(const ReferenceParams &params = ReferenceParams());
explicit FindReferencesRequest(const ReferenceParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/references";
};
@@ -310,7 +308,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentHighlightsResult
public:
using variant::variant;
DocumentHighlightsResult() : variant(nullptr) {}
DocumentHighlightsResult(const QJsonValue &value);
explicit DocumentHighlightsResult(const QJsonValue &value);
using variant::operator=;
};
@@ -318,8 +316,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentHighlightsRequest : public Request<
DocumentHighlightsResult, std::nullptr_t, TextDocumentPositionParams>
{
public:
DocumentHighlightsRequest(
const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit DocumentHighlightsRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/documentHighlight";
};
@@ -328,7 +325,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT TextDocumentParams : public JsonObject
{
public:
TextDocumentParams();
TextDocumentParams(const TextDocumentIdentifier &identifier);
explicit TextDocumentParams(const TextDocumentIdentifier &identifier);
using JsonObject::JsonObject;
TextDocumentIdentifier textDocument() const
@@ -348,7 +345,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentSymbolsResult
public:
using variant::variant;
DocumentSymbolsResult() : variant(nullptr) {}
DocumentSymbolsResult(const QJsonValue &value);
explicit DocumentSymbolsResult(const QJsonValue &value);
DocumentSymbolsResult(const DocumentSymbolsResult &other) : variant(other) {}
DocumentSymbolsResult(DocumentSymbolsResult &&other) : variant(std::move(other)) {}
@@ -370,7 +367,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentSymbolsRequest
: public Request<DocumentSymbolsResult, std::nullptr_t, DocumentSymbolParams>
{
public:
DocumentSymbolsRequest(const DocumentSymbolParams &params = DocumentSymbolParams());
explicit DocumentSymbolsRequest(const DocumentSymbolParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/documentSymbol";
};
@@ -476,7 +473,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT CodeActionRequest : public Request<
CodeActionResult, std::nullptr_t, CodeActionParams>
{
public:
CodeActionRequest(const CodeActionParams &params = CodeActionParams());
explicit CodeActionRequest(const CodeActionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/codeAction";
};
@@ -507,7 +504,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT CodeLensRequest : public Request<
LanguageClientArray<CodeLens>, std::nullptr_t, CodeLensParams>
{
public:
CodeLensRequest(const CodeLensParams &params = CodeLensParams());
explicit CodeLensRequest(const CodeLensParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/codeLens";
};
@@ -516,7 +513,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT CodeLensResolveRequest : public Request<
CodeLens, std::nullptr_t, CodeLens>
{
public:
CodeLensResolveRequest(const CodeLens &params = CodeLens());
explicit CodeLensResolveRequest(const CodeLens &params);
using Request::Request;
constexpr static const char methodName[] = "codeLens/resolve";
};
@@ -547,7 +544,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkRequest : public Request<
LanguageClientValue<DocumentLink>, std::nullptr_t, DocumentLinkParams>
{
public:
DocumentLinkRequest(const DocumentLinkParams &params = DocumentLinkParams());
explicit DocumentLinkRequest(const DocumentLinkParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/documentLink";
};
@@ -556,7 +553,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkResolveRequest : public Request<
DocumentLink, std::nullptr_t, DocumentLink>
{
public:
DocumentLinkResolveRequest(const DocumentLink &params = DocumentLink());
explicit DocumentLinkResolveRequest(const DocumentLink &params);
using Request::Request;
constexpr static const char methodName[] = "documentLink/resolve";
};
@@ -602,7 +599,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentColorRequest : public Request<
QList<ColorInformation>, std::nullptr_t, DocumentColorParams>
{
public:
DocumentColorRequest(const DocumentColorParams &params = DocumentColorParams());
explicit DocumentColorRequest(const DocumentColorParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/documentColor";
};
@@ -656,7 +653,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ColorPresentationRequest : public Request<
QList<ColorPresentation>, std::nullptr_t, ColorPresentationParams>
{
public:
ColorPresentationRequest(const ColorPresentationParams &params = ColorPresentationParams());
explicit ColorPresentationRequest(const ColorPresentationParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/colorPresentation";
};
@@ -665,8 +662,8 @@ class DocumentFormattingProperty : public Utils::variant<bool, double, QString>
{
public:
DocumentFormattingProperty() = default;
DocumentFormattingProperty(const QJsonValue &value);
DocumentFormattingProperty(const DocumentFormattingProperty &other)
explicit DocumentFormattingProperty(const QJsonValue &value);
explicit DocumentFormattingProperty(const DocumentFormattingProperty &other)
: Utils::variant<bool, double, QString>(other) {}
using variant::variant;
@@ -713,7 +710,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentFormattingRequest : public Request<
LanguageClientArray<TextEdit>, std::nullptr_t, DocumentFormattingParams>
{
public:
DocumentFormattingRequest(const DocumentFormattingParams &params = DocumentFormattingParams());
explicit DocumentFormattingRequest(const DocumentFormattingParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/formatting";
};
@@ -741,7 +738,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentRangeFormattingRequest : public Requ
LanguageClientArray<TextEdit>, std::nullptr_t, DocumentRangeFormattingParams>
{
public:
DocumentRangeFormattingRequest(const DocumentRangeFormattingParams &params = DocumentRangeFormattingParams());
explicit DocumentRangeFormattingRequest(const DocumentRangeFormattingParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/rangeFormatting";
};
@@ -772,8 +769,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentOnTypeFormattingRequest : public Req
QList<TextEdit>, std::nullptr_t, DocumentFormattingParams>
{
public:
DocumentOnTypeFormattingRequest(
const DocumentFormattingParams &params = DocumentFormattingParams());
explicit DocumentOnTypeFormattingRequest(const DocumentFormattingParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/onTypeFormatting";
};
@@ -803,7 +799,7 @@ public:
PrepareRenameResult(const Utils::variant<PlaceHolderResult, Range, std::nullptr_t> &val);
explicit PrepareRenameResult(const PlaceHolderResult &val);
explicit PrepareRenameResult(const Range &val);
PrepareRenameResult(const QJsonValue &val);
explicit PrepareRenameResult(const QJsonValue &val);
bool isValid(ErrorHierarchy *error) const;
};
@@ -812,7 +808,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT PrepareRenameRequest
: public Request<PrepareRenameResult, std::nullptr_t, TextDocumentPositionParams>
{
public:
PrepareRenameRequest(const TextDocumentPositionParams &params = TextDocumentPositionParams());
explicit PrepareRenameRequest(const TextDocumentPositionParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/prepareRename";
};
@@ -840,7 +836,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT RenameRequest : public Request<
WorkspaceEdit, std::nullptr_t, RenameParams>
{
public:
RenameRequest(const RenameParams &params = RenameParams());
explicit RenameRequest(const RenameParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/rename";
};
@@ -849,7 +845,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT SemanticHighlightToken
{
public:
// Just accepts token with 8 bytes
SemanticHighlightToken(const QByteArray &token);
explicit SemanticHighlightToken(const QByteArray &token);
SemanticHighlightToken() = default;
void appendToByteArray(QByteArray &byteArray) const;
@@ -898,7 +894,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT SemanticHighlightNotification
: public Notification<SemanticHighlightingParams>
{
public:
SemanticHighlightNotification(const SemanticHighlightingParams &params);
explicit SemanticHighlightNotification(const SemanticHighlightingParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/semanticHighlighting";
};

View File

@@ -65,7 +65,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT Position : public JsonObject
public:
Position() = default;
Position(int line, int character);
Position(const QTextCursor &cursor);
explicit Position(const QTextCursor &cursor);
using JsonObject::JsonObject;
// Line position in a document (zero-based).
@@ -233,7 +233,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT TextDocumentIdentifier : public JsonObject
{
public:
TextDocumentIdentifier() : TextDocumentIdentifier(DocumentUri()) {}
TextDocumentIdentifier(const DocumentUri &uri) { setUri(uri); }
explicit TextDocumentIdentifier(const DocumentUri &uri) { setUri(uri); }
using JsonObject::JsonObject;
// The text document's URI.
@@ -393,7 +393,7 @@ public:
MarkupKind(const Value value)
: m_value(value)
{}
MarkupKind(const QJsonValue &value);
explicit MarkupKind(const QJsonValue &value);
operator QJsonValue() const;
Value value() const { return m_value; }
@@ -411,7 +411,7 @@ public:
using JsonObject::JsonObject;
// The type of the Markup
MarkupKind kind() const { return value(kindKey); }
MarkupKind kind() const { return MarkupKind(value(kindKey)); }
void setKind(MarkupKind kind) { insert(kindKey, kind); }
Qt::TextFormat textFormat() const
{ return kind() == MarkupKind::markdown ? Qt::MarkdownText : Qt::PlainText; }
@@ -428,7 +428,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT MarkupOrString : public Utils::variant<QStri
{
public:
MarkupOrString() = default;
MarkupOrString(const Utils::variant<QString, MarkupContent> &val);
explicit MarkupOrString(const Utils::variant<QString, MarkupContent> &val);
explicit MarkupOrString(const QString &val);
explicit MarkupOrString(const MarkupContent &val);
MarkupOrString(const QJsonValue &val);

View File

@@ -73,10 +73,10 @@ public:
LanguageClientArray() {}
LanguageClientArray(const QList<T> &list)
explicit LanguageClientArray(const QList<T> &list)
{ *this = list; }
LanguageClientArray(const QJsonValue &value)
explicit LanguageClientArray(const QJsonValue &value)
{
if (value.isArray()) {
QList<T> values;

View File

@@ -56,7 +56,7 @@ public:
class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageNotification : public Notification<ShowMessageParams>
{
public:
ShowMessageNotification(const ShowMessageParams &params);
explicit ShowMessageNotification(const ShowMessageParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "window/showMessage";
};
@@ -90,7 +90,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageRequest : public Request<
LanguageClientValue<MessageActionItem>, std::nullptr_t, ShowMessageRequestParams>
{
public:
ShowMessageRequest(const ShowMessageRequestParams &params);
explicit ShowMessageRequest(const ShowMessageRequestParams &params);
using Request::Request;
constexpr static const char methodName[] = "window/showMessageRequest";
};
@@ -100,7 +100,7 @@ using LogMessageParams = ShowMessageParams;
class LANGUAGESERVERPROTOCOL_EXPORT LogMessageNotification : public Notification<LogMessageParams>
{
public:
LogMessageNotification(const LogMessageParams &params);
explicit LogMessageNotification(const LogMessageParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "window/logMessage";
};
@@ -108,7 +108,7 @@ public:
class LANGUAGESERVERPROTOCOL_EXPORT TelemetryNotification : public Notification<JsonObject>
{
public:
TelemetryNotification(const JsonObject &params);
explicit TelemetryNotification(const JsonObject &params);
using Notification::Notification;
constexpr static const char methodName[] = "telemetry/event";

View File

@@ -71,7 +71,7 @@ DidChangeTextDocumentParams::DidChangeTextDocumentParams(
const VersionedTextDocumentIdentifier &docId, const QString &text)
{
setTextDocument(docId);
setContentChanges({text});
setContentChanges({TextDocumentContentChangeEvent(text)});
}
bool DidChangeTextDocumentParams::isValid(ErrorHierarchy *error) const
@@ -91,7 +91,7 @@ DidCloseTextDocumentParams::DidCloseTextDocumentParams(const TextDocumentIdentif
}
DidChangeTextDocumentParams::TextDocumentContentChangeEvent::TextDocumentContentChangeEvent(
const QString text)
const QString &text)
{
setText(text);
}

View File

@@ -34,7 +34,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidOpenTextDocumentParams : public JsonObjec
{
public:
DidOpenTextDocumentParams() = default;
DidOpenTextDocumentParams(const TextDocumentItem &document);
explicit DidOpenTextDocumentParams(const TextDocumentItem &document);
using JsonObject::JsonObject;
TextDocumentItem textDocument() const { return typedValue<TextDocumentItem>(textDocumentKey); }
@@ -49,7 +49,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidOpenTextDocumentNotification : public Not
DidOpenTextDocumentParams>
{
public:
DidOpenTextDocumentNotification(const DidOpenTextDocumentParams &params);
explicit DidOpenTextDocumentNotification(const DidOpenTextDocumentParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/didOpen";
};
@@ -58,7 +58,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT TextDocumentChangeRegistrationOptions : publ
{
public:
TextDocumentChangeRegistrationOptions();
TextDocumentChangeRegistrationOptions(TextDocumentSyncKind kind);
explicit TextDocumentChangeRegistrationOptions(TextDocumentSyncKind kind);
using JsonObject::JsonObject;
TextDocumentSyncKind syncKind() const
@@ -73,8 +73,8 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeTextDocumentParams : public JsonObj
{
public:
DidChangeTextDocumentParams();
DidChangeTextDocumentParams(const VersionedTextDocumentIdentifier &docId,
const QString &text = QString());
explicit DidChangeTextDocumentParams(const VersionedTextDocumentIdentifier &docId,
const QString &text = QString());
using JsonObject::JsonObject;
VersionedTextDocumentIdentifier textDocument() const
@@ -90,7 +90,7 @@ public:
*/
public:
TextDocumentContentChangeEvent() = default;
TextDocumentContentChangeEvent(const QString text);
explicit TextDocumentContentChangeEvent(const QString &text);
using JsonObject::JsonObject;
// The range of the document that changed.
@@ -122,7 +122,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeTextDocumentNotification : public N
DidChangeTextDocumentParams>
{
public:
DidChangeTextDocumentNotification(const DidChangeTextDocumentParams &params);
explicit DidChangeTextDocumentNotification(const DidChangeTextDocumentParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/didChange";
};
@@ -137,8 +137,9 @@ public:
};
WillSaveTextDocumentParams() : WillSaveTextDocumentParams(TextDocumentIdentifier()) {}
WillSaveTextDocumentParams(const TextDocumentIdentifier &document,
const TextDocumentSaveReason &reason = TextDocumentSaveReason::Manual);
explicit WillSaveTextDocumentParams(
const TextDocumentIdentifier &document,
const TextDocumentSaveReason &reason = TextDocumentSaveReason::Manual);
using JsonObject::JsonObject;
TextDocumentIdentifier textDocument() const
@@ -157,7 +158,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT WillSaveTextDocumentNotification : public No
WillSaveTextDocumentParams>
{
public:
WillSaveTextDocumentNotification(const WillSaveTextDocumentParams &params);
explicit WillSaveTextDocumentNotification(const WillSaveTextDocumentParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/willSave";
};
@@ -166,7 +167,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT WillSaveWaitUntilTextDocumentRequest : publi
LanguageClientArray<TextEdit>, std::nullptr_t, WillSaveTextDocumentParams>
{
public:
WillSaveWaitUntilTextDocumentRequest(const WillSaveTextDocumentParams &params);
explicit WillSaveWaitUntilTextDocumentRequest(const WillSaveTextDocumentParams &params);
using Request::Request;
constexpr static const char methodName[] = "textDocument/willSaveWaitUntil";
};
@@ -188,7 +189,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidSaveTextDocumentParams : public JsonObjec
{
public:
DidSaveTextDocumentParams() : DidSaveTextDocumentParams(TextDocumentIdentifier()) {}
DidSaveTextDocumentParams(const TextDocumentIdentifier &document);
explicit DidSaveTextDocumentParams(const TextDocumentIdentifier &document);
using JsonObject::JsonObject;
TextDocumentIdentifier textDocument()
@@ -207,7 +208,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidSaveTextDocumentNotification : public Not
DidSaveTextDocumentParams>
{
public:
DidSaveTextDocumentNotification(const DidSaveTextDocumentParams &params);
explicit DidSaveTextDocumentNotification(const DidSaveTextDocumentParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/didSave";
};
@@ -216,7 +217,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidCloseTextDocumentParams : public JsonObje
{
public:
DidCloseTextDocumentParams() = default;
DidCloseTextDocumentParams(const TextDocumentIdentifier &document);
explicit DidCloseTextDocumentParams(const TextDocumentIdentifier &document);
using JsonObject::JsonObject;
TextDocumentIdentifier textDocument() const
@@ -232,7 +233,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidCloseTextDocumentNotification : public No
DidCloseTextDocumentParams>
{
public:
DidCloseTextDocumentNotification(const DidCloseTextDocumentParams &params);
explicit DidCloseTextDocumentNotification(const DidCloseTextDocumentParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "textDocument/didClose";
};

View File

@@ -80,7 +80,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeWorkspaceFoldersNotification : publ
DidChangeWorkspaceFoldersParams>
{
public:
DidChangeWorkspaceFoldersNotification(const DidChangeWorkspaceFoldersParams &params);
explicit DidChangeWorkspaceFoldersNotification(const DidChangeWorkspaceFoldersParams &params);
constexpr static const char methodName[] = "workspace/didChangeWorkspaceFolders";
using Notification::Notification;
};
@@ -100,7 +100,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeConfigurationNotification : public
DidChangeConfigurationParams>
{
public:
DidChangeConfigurationNotification(const DidChangeConfigurationParams &params);
explicit DidChangeConfigurationNotification(const DidChangeConfigurationParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "workspace/didChangeConfiguration";
};
@@ -136,7 +136,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ConfigurationRequest : public Request<
LanguageClientArray<QJsonValue>, std::nullptr_t, ConfigurationParams>
{
public:
ConfigurationRequest(const ConfigurationParams &params);
explicit ConfigurationRequest(const ConfigurationParams &params);
using Request::Request;
constexpr static const char methodName[] = "workspace/configuration";
};
@@ -178,7 +178,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeWatchedFilesNotification : public N
DidChangeWatchedFilesParams>
{
public:
DidChangeWatchedFilesNotification(const DidChangeWatchedFilesParams &params);
explicit DidChangeWatchedFilesNotification(const DidChangeWatchedFilesParams &params);
using Notification::Notification;
constexpr static const char methodName[] = "workspace/didChangeWatchedFiles";
};
@@ -229,7 +229,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ExecuteCommandRequest : public Request<
QJsonValue, std::nullptr_t, ExecuteCommandParams>
{
public:
ExecuteCommandRequest(const ExecuteCommandParams &params);
explicit ExecuteCommandRequest(const ExecuteCommandParams &params);
using Request::Request;
constexpr static const char methodName[] = "workspace/executeCommand";
};
@@ -265,7 +265,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ApplyWorkspaceEditRequest : public Request<
ApplyWorkspaceEditResponse, std::nullptr_t, ApplyWorkspaceEditParams>
{
public:
ApplyWorkspaceEditRequest(const ApplyWorkspaceEditParams &params = ApplyWorkspaceEditParams());
explicit ApplyWorkspaceEditRequest(const ApplyWorkspaceEditParams &params);
using Request::Request;
constexpr static const char methodName[] = "workspace/applyEdit";
};

View File

@@ -257,8 +257,7 @@ void Client::initialize()
QTC_ASSERT(m_clientInterface, return);
QTC_ASSERT(m_state == Uninitialized, return);
qCDebug(LOGLSPCLIENT) << "initializing language server " << m_displayName;
InitializeRequest initRequest;
auto params = initRequest.params().value_or(InitializeParams());
InitializeParams params;
params.setCapabilities(generateClientCapabilities());
params.setInitializationOptions(m_initializationOptions);
if (m_project) {
@@ -267,7 +266,7 @@ void Client::initialize()
return WorkSpaceFolder(pro->projectDirectory().toString(), pro->displayName());
}));
}
initRequest.setParams(params);
InitializeRequest initRequest(params);
initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){
initializeCallback(initResponse);
});
@@ -535,7 +534,8 @@ void Client::documentContentsChanged(TextEditor::TextDocument *document,
change.setText(document->textAt(position, charsAdded));
m_documentsToUpdate[document] << change;
} else {
m_documentsToUpdate[document] = {document->plainText()};
m_documentsToUpdate[document] = {
DidChangeTextDocumentParams::TextDocumentContentChangeEvent(document->plainText())};
}
m_openedDocument[document] = document->plainText();
}
@@ -590,7 +590,8 @@ void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
if (runningRequest != m_highlightRequests.end())
cancelRequest(runningRequest.value());
DocumentHighlightsRequest request(TextDocumentPositionParams(uri, widget->textCursor()));
DocumentHighlightsRequest request(
TextDocumentPositionParams(TextDocumentIdentifier(uri), Position(widget->textCursor())));
request.setResponseCallback(
[widget = QPointer<TextEditor::TextEditorWidget>(widget), this, uri]
(DocumentHighlightsRequest::Response response)
@@ -641,7 +642,7 @@ void Client::requestCodeActions(const DocumentUri &uri, const QList<Diagnostic>
CodeActionParams::CodeActionContext context;
context.setDiagnostics(diagnostics);
codeActionParams.setContext(context);
codeActionParams.setTextDocument(uri);
codeActionParams.setTextDocument(TextDocumentIdentifier(uri));
Position start(0, 0);
const QTextBlock &lastBlock = doc->document()->lastBlock();
Position end(lastBlock.blockNumber(), lastBlock.length() - 1);
@@ -768,7 +769,7 @@ void Client::formatFile(const TextEditor::TextDocument *document)
DocumentFormattingParams params;
const DocumentUri uri = DocumentUri::fromFilePath(filePath);
params.setTextDocument(uri);
params.setTextDocument(TextDocumentIdentifier(uri));
params.setOptions(formattingOptions(document->tabSettings()));
DocumentFormattingRequest request(params);
request.setResponseCallback(
@@ -799,7 +800,7 @@ void Client::formatRange(const TextEditor::TextDocument *document, const QTextCu
}
DocumentRangeFormattingParams params;
const DocumentUri uri = DocumentUri::fromFilePath(filePath);
params.setTextDocument(uri);
params.setTextDocument(TextDocumentIdentifier(uri));
params.setOptions(formattingOptions(document->tabSettings()));
if (!cursor.hasSelection()) {
QTextCursor c = cursor;

View File

@@ -354,8 +354,8 @@ IAssistProposal *LanguageClientCompletionAssistProcessor::perform(const AssistIn
--column; // column is 0 based in the protocol
params.setPosition({line, column});
params.setContext(context);
params.setTextDocument(
DocumentUri::fromFilePath(Utils::FilePath::fromString(interface->fileName())));
params.setTextDocument(TextDocumentIdentifier(
DocumentUri::fromFilePath(Utils::FilePath::fromString(interface->fileName()))));
CompletionRequest completionRequest(params);
completionRequest.setResponseCallback([this](auto response) {
this->handleCompletionResponse(response);

View File

@@ -89,7 +89,7 @@ QFutureWatcher<Utils::Text::Replacements> *LanguageClientFormatter::format(
}
DocumentRangeFormattingParams params;
const DocumentUri uri = DocumentUri::fromFilePath(filePath);
params.setTextDocument(uri);
params.setTextDocument(TextDocumentIdentifier(uri));
params.setOptions(formattingOptions(tabSettings));
if (!cursor.hasSelection()) {
QTextCursor c = cursor;

View File

@@ -86,8 +86,7 @@ IAssistProposal *FunctionHintProcessor::perform(const AssistInterface *interface
QTextCursor cursor(interface->textDocument());
cursor.setPosition(m_pos);
auto uri = DocumentUri::fromFilePath(Utils::FilePath::fromString(interface->fileName()));
SignatureHelpRequest request;
request.setParams(TextDocumentPositionParams(TextDocumentIdentifier(uri), Position(cursor)));
SignatureHelpRequest request((TextDocumentPositionParams(TextDocumentIdentifier(uri), Position(cursor))));
request.setResponseCallback([this](auto response) { this->handleSignatureResponse(response); });
m_client->sendContent(request);
m_currentRequest = request.id();

View File

@@ -98,8 +98,7 @@ void HoverHandler::identifyMatch(TextEditor::TextEditorWidget *editorWidget,
m_report = report;
QTextCursor cursor = editorWidget->textCursor();
cursor.setPosition(pos);
TextDocumentPositionParams params(uri, Position(cursor));
HoverRequest request(params);
HoverRequest request((TextDocumentPositionParams(TextDocumentIdentifier(uri), Position(cursor))));
request.setResponseCallback(
[this](const HoverRequest::Response &response) { handleResponse(response); });
m_client->sendContent(request);

View File

@@ -113,7 +113,7 @@ IAssistProposal *LanguageClientQuickFixAssistProcessor::perform(const AssistInte
Range range(cursor);
params.setRange(range);
auto uri = DocumentUri::fromFilePath(Utils::FilePath::fromString(interface->fileName()));
params.setTextDocument(uri);
params.setTextDocument(TextDocumentIdentifier(uri));
CodeActionParams::CodeActionContext context;
context.setDiagnostics(m_client->diagnosticsAt(uri, range));
params.setContext(context);