diff --git a/src/libs/languageserverprotocol/client.h b/src/libs/languageserverprotocol/client.h index 830d1caae43..4c04c2a90e8 100644 --- a/src/libs/languageserverprotocol/client.h +++ b/src/libs/languageserverprotocol/client.h @@ -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()) {} - RegistrationParams(const QList ®istrations) { setRegistrations(registrations); } + explicit RegistrationParams(const QList ®istrations) + { setRegistrations(registrations); } using JsonObject::JsonObject; QList registrations() const { return array(registrationsKey); } @@ -73,7 +74,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT RegisterCapabilityRequest : public Request< std::nullptr_t, std::nullptr_t, RegistrationParams> { public: - RegisterCapabilityRequest(const RegistrationParams ¶ms); + explicit RegisterCapabilityRequest(const RegistrationParams ¶ms); 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 ¶ms); + explicit UnregisterCapabilityRequest(const UnregistrationParams ¶ms); using Request::Request; constexpr static const char methodName[] = "client/unregisterCapability"; }; diff --git a/src/libs/languageserverprotocol/completion.h b/src/libs/languageserverprotocol/completion.h index 4e8d34d1c91..013136b58a0 100644 --- a/src/libs/languageserverprotocol/completion.h +++ b/src/libs/languageserverprotocol/completion.h @@ -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 ¶ms); + explicit CompletionRequest(const CompletionParams ¶ms); 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 ¶ms); + explicit CompletionItemResolveRequest(const CompletionItem ¶ms); using Request::Request; constexpr static const char methodName[] = "completionItem/resolve"; }; diff --git a/src/libs/languageserverprotocol/diagnostics.h b/src/libs/languageserverprotocol/diagnostics.h index 7525871b051..68ede706db5 100644 --- a/src/libs/languageserverprotocol/diagnostics.h +++ b/src/libs/languageserverprotocol/diagnostics.h @@ -49,7 +49,7 @@ public: class LANGUAGESERVERPROTOCOL_EXPORT PublishDiagnosticsNotification : public Notification { public: - PublishDiagnosticsNotification(const PublishDiagnosticsParams ¶ms); + explicit PublishDiagnosticsNotification(const PublishDiagnosticsParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "textDocument/publishDiagnostics"; }; diff --git a/src/libs/languageserverprotocol/icontent.h b/src/libs/languageserverprotocol/icontent.h index f1c02f5a1a2..33ef876510b 100644 --- a/src/libs/languageserverprotocol/icontent.h +++ b/src/libs/languageserverprotocol/icontent.h @@ -47,17 +47,17 @@ class LANGUAGESERVERPROTOCOL_EXPORT MessageId : public Utils::variant { public: - InitializeNotification(const InitializedParams ¶ms); + explicit InitializeNotification(const InitializedParams ¶ms); 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 ¶ms = InitializeParams()); + explicit InitializeRequest(const InitializeParams ¶ms); using Request::Request; constexpr static const char methodName[] = "initialize"; }; diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h index b5d36e4c4f9..f97ed803fc6 100644 --- a/src/libs/languageserverprotocol/jsonrpcmessages.h +++ b/src/libs/languageserverprotocol/jsonrpcmessages.h @@ -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(m_jsonObject.value(methodKey)); } @@ -134,7 +134,7 @@ class Notification : 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 public: Request(const QString &methodName, const Params ¶ms) : Notification(methodName, params) - { setId(QUuid::createUuid().toString()); } - Request(const QJsonObject &jsonObject) : Notification(jsonObject) { } - Request(QJsonObject &&jsonObject) : Notification(std::move(jsonObject)) { } + { setId(MessageId(QUuid::createUuid().toString())); } + explicit Request(const QJsonObject &jsonObject) : Notification(jsonObject) { } + explicit Request(QJsonObject &&jsonObject) : Notification(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 { public: - CancelRequest(const CancelParameter ¶ms); + explicit CancelRequest(const CancelParameter ¶ms); using Notification::Notification; constexpr static const char methodName[] = "$/cancelRequest"; }; diff --git a/src/libs/languageserverprotocol/languagefeatures.h b/src/libs/languageserverprotocol/languagefeatures.h index ee40187a71f..ab1834bbce0 100644 --- a/src/libs/languageserverprotocol/languagefeatures.h +++ b/src/libs/languageserverprotocol/languagefeatures.h @@ -106,7 +106,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT HoverRequest : public Request { public: - HoverRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams()); + explicit HoverRequest(const TextDocumentPositionParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/hover"; }; @@ -201,7 +201,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT SignatureHelpRequest : public Request, std::nullptr_t, TextDocumentPositionParams> { public: - SignatureHelpRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams()); + explicit SignatureHelpRequest(const TextDocumentPositionParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/signatureHelp"; }; @@ -211,7 +211,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT GotoResult : public Utils::variant, 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 { public: - GotoDefinitionRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams()); + explicit GotoDefinitionRequest(const TextDocumentPositionParams ¶ms); 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 ¶ms = TextDocumentPositionParams()); + explicit GotoTypeDefinitionRequest(const TextDocumentPositionParams ¶ms); 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 ¶ms = TextDocumentPositionParams()); + explicit GotoImplementationRequest(const TextDocumentPositionParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/implementation"; }; @@ -277,7 +275,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT FindReferencesRequest : public Request< LanguageClientArray, std::nullptr_t, ReferenceParams> { public: - FindReferencesRequest(const ReferenceParams ¶ms = ReferenceParams()); + explicit FindReferencesRequest(const ReferenceParams ¶ms); 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 ¶ms = TextDocumentPositionParams()); + explicit DocumentHighlightsRequest(const TextDocumentPositionParams ¶ms); 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 { public: - DocumentSymbolsRequest(const DocumentSymbolParams ¶ms = DocumentSymbolParams()); + explicit DocumentSymbolsRequest(const DocumentSymbolParams ¶ms); 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 ¶ms = CodeActionParams()); + explicit CodeActionRequest(const CodeActionParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/codeAction"; }; @@ -507,7 +504,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT CodeLensRequest : public Request< LanguageClientArray, std::nullptr_t, CodeLensParams> { public: - CodeLensRequest(const CodeLensParams ¶ms = CodeLensParams()); + explicit CodeLensRequest(const CodeLensParams ¶ms); 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 ¶ms = CodeLens()); + explicit CodeLensResolveRequest(const CodeLens ¶ms); using Request::Request; constexpr static const char methodName[] = "codeLens/resolve"; }; @@ -547,7 +544,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentLinkRequest : public Request< LanguageClientValue, std::nullptr_t, DocumentLinkParams> { public: - DocumentLinkRequest(const DocumentLinkParams ¶ms = DocumentLinkParams()); + explicit DocumentLinkRequest(const DocumentLinkParams ¶ms); 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 ¶ms = DocumentLink()); + explicit DocumentLinkResolveRequest(const DocumentLink ¶ms); using Request::Request; constexpr static const char methodName[] = "documentLink/resolve"; }; @@ -602,7 +599,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentColorRequest : public Request< QList, std::nullptr_t, DocumentColorParams> { public: - DocumentColorRequest(const DocumentColorParams ¶ms = DocumentColorParams()); + explicit DocumentColorRequest(const DocumentColorParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/documentColor"; }; @@ -656,7 +653,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ColorPresentationRequest : public Request< QList, std::nullptr_t, ColorPresentationParams> { public: - ColorPresentationRequest(const ColorPresentationParams ¶ms = ColorPresentationParams()); + explicit ColorPresentationRequest(const ColorPresentationParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/colorPresentation"; }; @@ -665,8 +662,8 @@ class DocumentFormattingProperty : public Utils::variant { public: DocumentFormattingProperty() = default; - DocumentFormattingProperty(const QJsonValue &value); - DocumentFormattingProperty(const DocumentFormattingProperty &other) + explicit DocumentFormattingProperty(const QJsonValue &value); + explicit DocumentFormattingProperty(const DocumentFormattingProperty &other) : Utils::variant(other) {} using variant::variant; @@ -713,7 +710,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentFormattingRequest : public Request< LanguageClientArray, std::nullptr_t, DocumentFormattingParams> { public: - DocumentFormattingRequest(const DocumentFormattingParams ¶ms = DocumentFormattingParams()); + explicit DocumentFormattingRequest(const DocumentFormattingParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/formatting"; }; @@ -741,7 +738,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentRangeFormattingRequest : public Requ LanguageClientArray, std::nullptr_t, DocumentRangeFormattingParams> { public: - DocumentRangeFormattingRequest(const DocumentRangeFormattingParams ¶ms = DocumentRangeFormattingParams()); + explicit DocumentRangeFormattingRequest(const DocumentRangeFormattingParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/rangeFormatting"; }; @@ -772,8 +769,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DocumentOnTypeFormattingRequest : public Req QList, std::nullptr_t, DocumentFormattingParams> { public: - DocumentOnTypeFormattingRequest( - const DocumentFormattingParams ¶ms = DocumentFormattingParams()); + explicit DocumentOnTypeFormattingRequest(const DocumentFormattingParams ¶ms); using Request::Request; constexpr static const char methodName[] = "textDocument/onTypeFormatting"; }; @@ -803,7 +799,7 @@ public: PrepareRenameResult(const Utils::variant &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 { public: - PrepareRenameRequest(const TextDocumentPositionParams ¶ms = TextDocumentPositionParams()); + explicit PrepareRenameRequest(const TextDocumentPositionParams ¶ms); 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 ¶ms = RenameParams()); + explicit RenameRequest(const RenameParams ¶ms); 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 { public: - SemanticHighlightNotification(const SemanticHighlightingParams ¶ms); + explicit SemanticHighlightNotification(const SemanticHighlightingParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "textDocument/semanticHighlighting"; }; diff --git a/src/libs/languageserverprotocol/lsptypes.h b/src/libs/languageserverprotocol/lsptypes.h index d1c0df7fa22..49f323f0404 100644 --- a/src/libs/languageserverprotocol/lsptypes.h +++ b/src/libs/languageserverprotocol/lsptypes.h @@ -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 &val); + explicit MarkupOrString(const Utils::variant &val); explicit MarkupOrString(const QString &val); explicit MarkupOrString(const MarkupContent &val); MarkupOrString(const QJsonValue &val); diff --git a/src/libs/languageserverprotocol/lsputils.h b/src/libs/languageserverprotocol/lsputils.h index 435d956eeb8..677325448bb 100644 --- a/src/libs/languageserverprotocol/lsputils.h +++ b/src/libs/languageserverprotocol/lsputils.h @@ -73,10 +73,10 @@ public: LanguageClientArray() {} - LanguageClientArray(const QList &list) + explicit LanguageClientArray(const QList &list) { *this = list; } - LanguageClientArray(const QJsonValue &value) + explicit LanguageClientArray(const QJsonValue &value) { if (value.isArray()) { QList values; diff --git a/src/libs/languageserverprotocol/messages.h b/src/libs/languageserverprotocol/messages.h index 0c10b823db3..6a9580e3e56 100644 --- a/src/libs/languageserverprotocol/messages.h +++ b/src/libs/languageserverprotocol/messages.h @@ -56,7 +56,7 @@ public: class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageNotification : public Notification { public: - ShowMessageNotification(const ShowMessageParams ¶ms); + explicit ShowMessageNotification(const ShowMessageParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "window/showMessage"; }; @@ -90,7 +90,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ShowMessageRequest : public Request< LanguageClientValue, std::nullptr_t, ShowMessageRequestParams> { public: - ShowMessageRequest(const ShowMessageRequestParams ¶ms); + explicit ShowMessageRequest(const ShowMessageRequestParams ¶ms); using Request::Request; constexpr static const char methodName[] = "window/showMessageRequest"; }; @@ -100,7 +100,7 @@ using LogMessageParams = ShowMessageParams; class LANGUAGESERVERPROTOCOL_EXPORT LogMessageNotification : public Notification { public: - LogMessageNotification(const LogMessageParams ¶ms); + explicit LogMessageNotification(const LogMessageParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "window/logMessage"; }; @@ -108,7 +108,7 @@ public: class LANGUAGESERVERPROTOCOL_EXPORT TelemetryNotification : public Notification { public: - TelemetryNotification(const JsonObject ¶ms); + explicit TelemetryNotification(const JsonObject ¶ms); using Notification::Notification; constexpr static const char methodName[] = "telemetry/event"; diff --git a/src/libs/languageserverprotocol/textsynchronization.cpp b/src/libs/languageserverprotocol/textsynchronization.cpp index a8760eeae57..ec8ec0963f0 100644 --- a/src/libs/languageserverprotocol/textsynchronization.cpp +++ b/src/libs/languageserverprotocol/textsynchronization.cpp @@ -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); } diff --git a/src/libs/languageserverprotocol/textsynchronization.h b/src/libs/languageserverprotocol/textsynchronization.h index 9656455d6fc..72746ad07de 100644 --- a/src/libs/languageserverprotocol/textsynchronization.h +++ b/src/libs/languageserverprotocol/textsynchronization.h @@ -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(textDocumentKey); } @@ -49,7 +49,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidOpenTextDocumentNotification : public Not DidOpenTextDocumentParams> { public: - DidOpenTextDocumentNotification(const DidOpenTextDocumentParams ¶ms); + explicit DidOpenTextDocumentNotification(const DidOpenTextDocumentParams ¶ms); 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 ¶ms); + explicit DidChangeTextDocumentNotification(const DidChangeTextDocumentParams ¶ms); 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 ¶ms); + explicit WillSaveTextDocumentNotification(const WillSaveTextDocumentParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "textDocument/willSave"; }; @@ -166,7 +167,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT WillSaveWaitUntilTextDocumentRequest : publi LanguageClientArray, std::nullptr_t, WillSaveTextDocumentParams> { public: - WillSaveWaitUntilTextDocumentRequest(const WillSaveTextDocumentParams ¶ms); + explicit WillSaveWaitUntilTextDocumentRequest(const WillSaveTextDocumentParams ¶ms); 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 ¶ms); + explicit DidSaveTextDocumentNotification(const DidSaveTextDocumentParams ¶ms); 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 ¶ms); + explicit DidCloseTextDocumentNotification(const DidCloseTextDocumentParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "textDocument/didClose"; }; diff --git a/src/libs/languageserverprotocol/workspace.h b/src/libs/languageserverprotocol/workspace.h index 00669eba01f..2d07f6c0ace 100644 --- a/src/libs/languageserverprotocol/workspace.h +++ b/src/libs/languageserverprotocol/workspace.h @@ -80,7 +80,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeWorkspaceFoldersNotification : publ DidChangeWorkspaceFoldersParams> { public: - DidChangeWorkspaceFoldersNotification(const DidChangeWorkspaceFoldersParams ¶ms); + explicit DidChangeWorkspaceFoldersNotification(const DidChangeWorkspaceFoldersParams ¶ms); constexpr static const char methodName[] = "workspace/didChangeWorkspaceFolders"; using Notification::Notification; }; @@ -100,7 +100,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT DidChangeConfigurationNotification : public DidChangeConfigurationParams> { public: - DidChangeConfigurationNotification(const DidChangeConfigurationParams ¶ms); + explicit DidChangeConfigurationNotification(const DidChangeConfigurationParams ¶ms); using Notification::Notification; constexpr static const char methodName[] = "workspace/didChangeConfiguration"; }; @@ -136,7 +136,7 @@ class LANGUAGESERVERPROTOCOL_EXPORT ConfigurationRequest : public Request< LanguageClientArray, std::nullptr_t, ConfigurationParams> { public: - ConfigurationRequest(const ConfigurationParams ¶ms); + explicit ConfigurationRequest(const ConfigurationParams ¶ms); 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 ¶ms); + explicit DidChangeWatchedFilesNotification(const DidChangeWatchedFilesParams ¶ms); 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 ¶ms); + explicit ExecuteCommandRequest(const ExecuteCommandParams ¶ms); 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 ¶ms = ApplyWorkspaceEditParams()); + explicit ApplyWorkspaceEditRequest(const ApplyWorkspaceEditParams ¶ms); using Request::Request; constexpr static const char methodName[] = "workspace/applyEdit"; }; diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 01bda90a6f4..82dc7e494ec 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -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(widget), this, uri] (DocumentHighlightsRequest::Response response) @@ -641,7 +642,7 @@ void Client::requestCodeActions(const DocumentUri &uri, const QList 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; diff --git a/src/plugins/languageclient/languageclientcompletionassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp index e354ae4db0c..1d40a38033e 100644 --- a/src/plugins/languageclient/languageclientcompletionassist.cpp +++ b/src/plugins/languageclient/languageclientcompletionassist.cpp @@ -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); diff --git a/src/plugins/languageclient/languageclientformatter.cpp b/src/plugins/languageclient/languageclientformatter.cpp index 300208e8bf9..08586c04ff0 100644 --- a/src/plugins/languageclient/languageclientformatter.cpp +++ b/src/plugins/languageclient/languageclientformatter.cpp @@ -89,7 +89,7 @@ QFutureWatcher *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; diff --git a/src/plugins/languageclient/languageclientfunctionhint.cpp b/src/plugins/languageclient/languageclientfunctionhint.cpp index 37635799e88..e43791dbcda 100644 --- a/src/plugins/languageclient/languageclientfunctionhint.cpp +++ b/src/plugins/languageclient/languageclientfunctionhint.cpp @@ -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(); diff --git a/src/plugins/languageclient/languageclienthoverhandler.cpp b/src/plugins/languageclient/languageclienthoverhandler.cpp index ec1632e7ffd..b0ff1c28644 100644 --- a/src/plugins/languageclient/languageclienthoverhandler.cpp +++ b/src/plugins/languageclient/languageclienthoverhandler.cpp @@ -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); diff --git a/src/plugins/languageclient/languageclientquickfix.cpp b/src/plugins/languageclient/languageclientquickfix.cpp index 6556947dbaf..6eb8359ab08 100644 --- a/src/plugins/languageclient/languageclientquickfix.cpp +++ b/src/plugins/languageclient/languageclientquickfix.cpp @@ -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);