From 9fb46f6ca013be5b79377e36595a59b89ea66abb Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Sun, 27 Oct 2024 15:12:44 +0100 Subject: [PATCH] chore: Add helpers to simplify access to the LSP types --- packages/cxx-gen-lsp/src/MetaModel.ts | 20 + packages/cxx-gen-lsp/src/gen_requests_cc.ts | 20 - packages/cxx-gen-lsp/src/gen_types_cc.ts | 29 +- packages/cxx-gen-lsp/src/gen_types_h.ts | 30 +- src/lsp/cxx/lsp/types.cc | 717 ++- src/lsp/cxx/lsp/types.h | 4497 +++++++++++++++++++ src/lsp/tests/test_types.cc | 44 +- 7 files changed, 4914 insertions(+), 443 deletions(-) diff --git a/packages/cxx-gen-lsp/src/MetaModel.ts b/packages/cxx-gen-lsp/src/MetaModel.ts index 422b1e23..e8c10fee 100644 --- a/packages/cxx-gen-lsp/src/MetaModel.ts +++ b/packages/cxx-gen-lsp/src/MetaModel.ts @@ -143,6 +143,26 @@ export function isRequest(request: Request | Notification): request is Request { return "result" in request; } +export function isStringLike(type: Type, typeAliasByName: Map): boolean { + switch (type.kind) { + case "base": + return type.name === "string"; + + case "reference": { + if (typeAliasByName.has(type.name)) { + return isStringLike(typeAliasByName.get(type.name)!.type, typeAliasByName); + } + return false; + } + + case "stringLiteral": + return true; + + default: + return false; + } // switch +} + export function getEnumBaseType(enumeration: Enumeration) { switch (enumeration.type.name) { case "integer": diff --git a/packages/cxx-gen-lsp/src/gen_requests_cc.ts b/packages/cxx-gen-lsp/src/gen_requests_cc.ts index 461fd19a..67e0c4a1 100644 --- a/packages/cxx-gen-lsp/src/gen_requests_cc.ts +++ b/packages/cxx-gen-lsp/src/gen_requests_cc.ts @@ -165,26 +165,6 @@ class RequestGenerator { return propertyType; } - isStringLike(type: Type): boolean { - switch (type.kind) { - case "base": - return type.name === "string"; - - case "reference": { - if (this.typeAliasByName.has(type.name)) { - return this.isStringLike(this.typeAliasByName.get(type.name)!.type); - } - return false; - } - - case "stringLiteral": - return true; - - default: - return false; - } // switch - } - begin() { this.emit(copyrightHeader); this.emit(); diff --git a/packages/cxx-gen-lsp/src/gen_types_cc.ts b/packages/cxx-gen-lsp/src/gen_types_cc.ts index 83bbdebc..12f445cb 100644 --- a/packages/cxx-gen-lsp/src/gen_types_cc.ts +++ b/packages/cxx-gen-lsp/src/gen_types_cc.ts @@ -76,26 +76,6 @@ class TypeGenerator { return propertyType; } - isStringLike(type: Type): boolean { - switch (type.kind) { - case "base": - return type.name === "string"; - - case "reference": { - if (this.typeAliasByName.has(type.name)) { - return this.isStringLike(this.typeAliasByName.get(type.name)!.type); - } - return false; - } - - case "stringLiteral": - return true; - - default: - return false; - } // switch - } - begin() { this.emit(copyrightHeader); this.emit(); @@ -212,7 +192,8 @@ class TypeGenerator { } // switch this.emit(); - this.emit(`lsp_runtime_error("${structure.name}::${property.name}: not implement yet");`); + + this.emit(`lsp_runtime_error("${structure.name}::${property.name}: not implemented yet");`); } generatePropertyGetterBase({ property }: { structure: Structure; property: Property }): boolean { @@ -362,6 +343,10 @@ class TypeGenerator { if (!this.generatePropertySetterReference({ structure, property, value })) break; return; + case "array": + this.emit(`(*repr_)["${property.name}"] = std::move(${value});`); + return; + case "or": if (!this.generatePropertySetterOr({ structure, property, value })) break; return; @@ -370,7 +355,7 @@ class TypeGenerator { break; } // switch - this.emit(`lsp_runtime_error("${typeName}::${property.name}: not implement yet");`); + this.emit(`lsp_runtime_error("${typeName}::${property.name}: not implemented yet");`); } generatePropertySetterReference({ diff --git a/packages/cxx-gen-lsp/src/gen_types_h.ts b/packages/cxx-gen-lsp/src/gen_types_h.ts index e237c862..95cf75f5 100644 --- a/packages/cxx-gen-lsp/src/gen_types_h.ts +++ b/packages/cxx-gen-lsp/src/gen_types_h.ts @@ -19,7 +19,7 @@ // SOFTWARE. import * as path from "node:path"; -import { getStructureProperties, MetaModel, Property, toCppType } from "./MetaModel.js"; +import { getStructureProperties, isStringLike, MetaModel, Property, toCppType, Type } from "./MetaModel.js"; import { writeFileSync } from "node:fs"; import { copyrightHeader } from "./copyrightHeader.js"; @@ -47,6 +47,17 @@ export function gen_types_h({ model, outputDirectory }: { model: MetaModel; outp emit(`namespace cxx::lsp {`); emit(); + const typeAliasByName = new Map(model.typeAliases.map((t) => [t.name, t])); + + const isOrType = (type: Type) => { + if (type.kind === "or") { + return true; + } else if (type.kind === "reference" && typeAliasByName.has(type.name)) { + return isOrType(typeAliasByName.get(type.name)!.type); + } + return false; + }; + model.structures.forEach((structure) => { const typeName = structure.name; emit(); @@ -63,6 +74,14 @@ export function gen_types_h({ model, outputDirectory }: { model: MetaModel; outp const returnType = getReturnType(property); emit(); emit(` [[nodiscard ]]auto ${propertyName}() const -> ${returnType};`); + if (property.optional || property.type.kind === "or") { + emit(); + emit(`template `); + emit(`[[nodiscard]] auto ${propertyName}() -> T {`); + emit(` auto& value = (*repr_)["${propertyName}"];`); + emit(` return T(value);`); + emit(`}`); + } }); emit(); @@ -71,6 +90,15 @@ export function gen_types_h({ model, outputDirectory }: { model: MetaModel; outp const argumentType = getReturnType(property); emit(); emit(` auto ${propertyName}(${argumentType} ${propertyName}) -> ${typeName}&;`); + + if (property.type.kind === "array" && isStringLike(property.type.element, typeAliasByName)) { + emit(); + emit(` auto ${propertyName}(std::vector ${propertyName}) -> ${typeName}& {`); + emit(` auto& value = (*repr_)["${propertyName}"];`); + emit(` value = std::move(${propertyName});`); + emit(` return *this;`); + emit(` }`); + } }); emit(`};`); diff --git a/src/lsp/cxx/lsp/types.cc b/src/lsp/cxx/lsp/types.cc index 09ae6c39..762aa5e0 100644 --- a/src/lsp/cxx/lsp/types.cc +++ b/src/lsp/cxx/lsp/types.cc @@ -85,7 +85,7 @@ auto ImplementationParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("ImplementationParams::workDoneToken: not implement yet"); + lsp_runtime_error("ImplementationParams::workDoneToken: not implemented yet"); return *this; } @@ -96,7 +96,7 @@ auto ImplementationParams::partialResultToken( return *this; } lsp_runtime_error( - "ImplementationParams::partialResultToken: not implement yet"); + "ImplementationParams::partialResultToken: not implemented yet"); return *this; } @@ -178,8 +178,8 @@ auto ImplementationRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "ImplementationRegistrationOptions::documentSelector: not implement " - "yet"); + "ImplementationRegistrationOptions::documentSelector: not " + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -276,7 +276,7 @@ auto TypeDefinitionParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("TypeDefinitionParams::workDoneToken: not implement yet"); + lsp_runtime_error("TypeDefinitionParams::workDoneToken: not implemented yet"); return *this; } @@ -287,7 +287,7 @@ auto TypeDefinitionParams::partialResultToken( return *this; } lsp_runtime_error( - "TypeDefinitionParams::partialResultToken: not implement yet"); + "TypeDefinitionParams::partialResultToken: not implemented yet"); return *this; } @@ -338,8 +338,8 @@ auto TypeDefinitionRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "TypeDefinitionRegistrationOptions::documentSelector: not implement " - "yet"); + "TypeDefinitionRegistrationOptions::documentSelector: not " + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -440,7 +440,7 @@ auto ConfigurationParams::items() const -> Vector { auto ConfigurationParams::items(Vector items) -> ConfigurationParams& { - lsp_runtime_error("ConfigurationParams::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -494,7 +494,7 @@ auto DocumentColorParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("DocumentColorParams::workDoneToken: not implement yet"); + lsp_runtime_error("DocumentColorParams::workDoneToken: not implemented yet"); return *this; } @@ -505,7 +505,7 @@ auto DocumentColorParams::partialResultToken( return *this; } lsp_runtime_error( - "DocumentColorParams::partialResultToken: not implement yet"); + "DocumentColorParams::partialResultToken: not implemented yet"); return *this; } @@ -585,7 +585,7 @@ auto DocumentColorRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DocumentColorRegistrationOptions::documentSelector: not implement " + "DocumentColorRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -694,7 +694,7 @@ auto ColorPresentationParams::workDoneToken( return *this; } lsp_runtime_error( - "ColorPresentationParams::workDoneToken: not implement yet"); + "ColorPresentationParams::workDoneToken: not implemented yet"); return *this; } @@ -706,7 +706,7 @@ auto ColorPresentationParams::partialResultToken( return *this; } lsp_runtime_error( - "ColorPresentationParams::partialResultToken: not implement yet"); + "ColorPresentationParams::partialResultToken: not implemented yet"); return *this; } @@ -763,8 +763,7 @@ auto ColorPresentation::additionalTextEdits( repr_->erase("additionalTextEdits"); return *this; } - lsp_runtime_error( - "ColorPresentation::additionalTextEdits: not implement yet"); + (*repr_)["additionalTextEdits"] = std::move(additionalTextEdits.value()); return *this; } @@ -818,7 +817,7 @@ auto TextDocumentRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "TextDocumentRegistrationOptions::documentSelector: not implement " + "TextDocumentRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -881,7 +880,7 @@ auto FoldingRangeParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("FoldingRangeParams::workDoneToken: not implement yet"); + lsp_runtime_error("FoldingRangeParams::workDoneToken: not implemented yet"); return *this; } @@ -892,7 +891,7 @@ auto FoldingRangeParams::partialResultToken( return *this; } lsp_runtime_error( - "FoldingRangeParams::partialResultToken: not implement yet"); + "FoldingRangeParams::partialResultToken: not implemented yet"); return *this; } @@ -944,7 +943,7 @@ auto FoldingRange::kind() const -> std::optional { auto& value = (*repr_)["kind"]; - lsp_runtime_error("FoldingRange::kind: not implement yet"); + lsp_runtime_error("FoldingRange::kind: not implemented yet"); } auto FoldingRange::collapsedText() const -> std::optional { @@ -992,7 +991,7 @@ auto FoldingRange::kind(std::optional kind) -> FoldingRange& { repr_->erase("kind"); return *this; } - lsp_runtime_error("FoldingRange::kind: not implement yet"); + lsp_runtime_error("FoldingRange::kind: not implemented yet"); return *this; } @@ -1052,7 +1051,7 @@ auto FoldingRangeRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "FoldingRangeRegistrationOptions::documentSelector: not implement " + "FoldingRangeRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -1147,7 +1146,7 @@ auto DeclarationParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("DeclarationParams::workDoneToken: not implement yet"); + lsp_runtime_error("DeclarationParams::workDoneToken: not implemented yet"); return *this; } @@ -1157,7 +1156,8 @@ auto DeclarationParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("DeclarationParams::partialResultToken: not implement yet"); + lsp_runtime_error( + "DeclarationParams::partialResultToken: not implemented yet"); return *this; } @@ -1217,7 +1217,7 @@ auto DeclarationRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DeclarationRegistrationOptions::documentSelector: not implement " + "DeclarationRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -1295,7 +1295,7 @@ auto SelectionRangeParams::textDocument(TextDocumentIdentifier textDocument) auto SelectionRangeParams::positions(Vector positions) -> SelectionRangeParams& { - lsp_runtime_error("SelectionRangeParams::positions: not implement yet"); + (*repr_)["positions"] = std::move(positions); return *this; } @@ -1305,7 +1305,7 @@ auto SelectionRangeParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("SelectionRangeParams::workDoneToken: not implement yet"); + lsp_runtime_error("SelectionRangeParams::workDoneToken: not implemented yet"); return *this; } @@ -1316,7 +1316,7 @@ auto SelectionRangeParams::partialResultToken( return *this; } lsp_runtime_error( - "SelectionRangeParams::partialResultToken: not implement yet"); + "SelectionRangeParams::partialResultToken: not implemented yet"); return *this; } @@ -1413,8 +1413,8 @@ auto SelectionRangeRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "SelectionRangeRegistrationOptions::documentSelector: not implement " - "yet"); + "SelectionRangeRegistrationOptions::documentSelector: not " + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -1455,7 +1455,7 @@ auto WorkDoneProgressCreateParams::token() const -> ProgressToken { auto WorkDoneProgressCreateParams::token(ProgressToken token) -> WorkDoneProgressCreateParams& { - lsp_runtime_error("WorkDoneProgressCreateParams::token: not implement yet"); + lsp_runtime_error("WorkDoneProgressCreateParams::token: not implemented yet"); return *this; } @@ -1477,7 +1477,7 @@ auto WorkDoneProgressCancelParams::token() const -> ProgressToken { auto WorkDoneProgressCancelParams::token(ProgressToken token) -> WorkDoneProgressCancelParams& { - lsp_runtime_error("WorkDoneProgressCancelParams::token: not implement yet"); + lsp_runtime_error("WorkDoneProgressCancelParams::token: not implemented yet"); return *this; } @@ -1533,7 +1533,7 @@ auto CallHierarchyPrepareParams::workDoneToken( return *this; } lsp_runtime_error( - "CallHierarchyPrepareParams::workDoneToken: not implement yet"); + "CallHierarchyPrepareParams::workDoneToken: not implemented yet"); return *this; } @@ -1625,7 +1625,7 @@ auto CallHierarchyItem::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("CallHierarchyItem::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -1660,7 +1660,7 @@ auto CallHierarchyItem::data(std::optional data) -> CallHierarchyItem& { repr_->erase("data"); return *this; } - lsp_runtime_error("CallHierarchyItem::data: not implement yet"); + lsp_runtime_error("CallHierarchyItem::data: not implemented yet"); return *this; } @@ -1711,7 +1711,7 @@ auto CallHierarchyRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "CallHierarchyRegistrationOptions::documentSelector: not implement " + "CallHierarchyRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -1797,7 +1797,7 @@ auto CallHierarchyIncomingCallsParams::workDoneToken( return *this; } lsp_runtime_error( - "CallHierarchyIncomingCallsParams::workDoneToken: not implement yet"); + "CallHierarchyIncomingCallsParams::workDoneToken: not implemented yet"); return *this; } @@ -1809,7 +1809,7 @@ auto CallHierarchyIncomingCallsParams::partialResultToken( return *this; } lsp_runtime_error( - "CallHierarchyIncomingCallsParams::partialResultToken: not implement " + "CallHierarchyIncomingCallsParams::partialResultToken: not implemented " "yet"); return *this; } @@ -1842,7 +1842,7 @@ auto CallHierarchyIncomingCall::from(CallHierarchyItem from) auto CallHierarchyIncomingCall::fromRanges(Vector fromRanges) -> CallHierarchyIncomingCall& { - lsp_runtime_error("CallHierarchyIncomingCall::fromRanges: not implement yet"); + (*repr_)["fromRanges"] = std::move(fromRanges); return *this; } @@ -1898,7 +1898,7 @@ auto CallHierarchyOutgoingCallsParams::workDoneToken( return *this; } lsp_runtime_error( - "CallHierarchyOutgoingCallsParams::workDoneToken: not implement yet"); + "CallHierarchyOutgoingCallsParams::workDoneToken: not implemented yet"); return *this; } @@ -1910,7 +1910,7 @@ auto CallHierarchyOutgoingCallsParams::partialResultToken( return *this; } lsp_runtime_error( - "CallHierarchyOutgoingCallsParams::partialResultToken: not implement " + "CallHierarchyOutgoingCallsParams::partialResultToken: not implemented " "yet"); return *this; } @@ -1943,7 +1943,7 @@ auto CallHierarchyOutgoingCall::to(CallHierarchyItem to) auto CallHierarchyOutgoingCall::fromRanges(Vector fromRanges) -> CallHierarchyOutgoingCall& { - lsp_runtime_error("CallHierarchyOutgoingCall::fromRanges: not implement yet"); + (*repr_)["fromRanges"] = std::move(fromRanges); return *this; } @@ -1997,7 +1997,7 @@ auto SemanticTokensParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("SemanticTokensParams::workDoneToken: not implement yet"); + lsp_runtime_error("SemanticTokensParams::workDoneToken: not implemented yet"); return *this; } @@ -2008,7 +2008,7 @@ auto SemanticTokensParams::partialResultToken( return *this; } lsp_runtime_error( - "SemanticTokensParams::partialResultToken: not implement yet"); + "SemanticTokensParams::partialResultToken: not implemented yet"); return *this; } @@ -2046,7 +2046,7 @@ auto SemanticTokens::resultId(std::optional resultId) } auto SemanticTokens::data(Vector data) -> SemanticTokens& { - lsp_runtime_error("SemanticTokens::data: not implement yet"); + (*repr_)["data"] = std::move(data); return *this; } @@ -2065,7 +2065,7 @@ auto SemanticTokensPartialResult::data() const -> Vector { auto SemanticTokensPartialResult::data(Vector data) -> SemanticTokensPartialResult& { - lsp_runtime_error("SemanticTokensPartialResult::data: not implement yet"); + (*repr_)["data"] = std::move(data); return *this; } @@ -2149,8 +2149,8 @@ auto SemanticTokensRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "SemanticTokensRegistrationOptions::documentSelector: not implement " - "yet"); + "SemanticTokensRegistrationOptions::documentSelector: not " + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -2184,7 +2184,7 @@ auto SemanticTokensRegistrationOptions::range( void operator()(json range) { lsp_runtime_error( - "SemanticTokensRegistrationOptions::range: not implement yet"); + "SemanticTokensRegistrationOptions::range: not implemented yet"); } } v{repr_}; @@ -2301,7 +2301,7 @@ auto SemanticTokensDeltaParams::workDoneToken( return *this; } lsp_runtime_error( - "SemanticTokensDeltaParams::workDoneToken: not implement yet"); + "SemanticTokensDeltaParams::workDoneToken: not implemented yet"); return *this; } @@ -2313,7 +2313,7 @@ auto SemanticTokensDeltaParams::partialResultToken( return *this; } lsp_runtime_error( - "SemanticTokensDeltaParams::partialResultToken: not implement yet"); + "SemanticTokensDeltaParams::partialResultToken: not implemented yet"); return *this; } @@ -2352,7 +2352,7 @@ auto SemanticTokensDelta::resultId(std::optional resultId) auto SemanticTokensDelta::edits(Vector edits) -> SemanticTokensDelta& { - lsp_runtime_error("SemanticTokensDelta::edits: not implement yet"); + (*repr_)["edits"] = std::move(edits); return *this; } @@ -2372,8 +2372,7 @@ auto SemanticTokensDeltaPartialResult::edits() const auto SemanticTokensDeltaPartialResult::edits(Vector edits) -> SemanticTokensDeltaPartialResult& { - lsp_runtime_error( - "SemanticTokensDeltaPartialResult::edits: not implement yet"); + (*repr_)["edits"] = std::move(edits); return *this; } @@ -2441,7 +2440,7 @@ auto SemanticTokensRangeParams::workDoneToken( return *this; } lsp_runtime_error( - "SemanticTokensRangeParams::workDoneToken: not implement yet"); + "SemanticTokensRangeParams::workDoneToken: not implemented yet"); return *this; } @@ -2453,7 +2452,7 @@ auto SemanticTokensRangeParams::partialResultToken( return *this; } lsp_runtime_error( - "SemanticTokensRangeParams::partialResultToken: not implement yet"); + "SemanticTokensRangeParams::partialResultToken: not implemented yet"); return *this; } @@ -2604,7 +2603,7 @@ auto LinkedEditingRangeParams::workDoneToken( return *this; } lsp_runtime_error( - "LinkedEditingRangeParams::workDoneToken: not implement yet"); + "LinkedEditingRangeParams::workDoneToken: not implemented yet"); return *this; } @@ -2632,7 +2631,7 @@ auto LinkedEditingRanges::wordPattern() const -> std::optional { } auto LinkedEditingRanges::ranges(Vector ranges) -> LinkedEditingRanges& { - lsp_runtime_error("LinkedEditingRanges::ranges: not implement yet"); + (*repr_)["ranges"] = std::move(ranges); return *this; } @@ -2694,7 +2693,7 @@ auto LinkedEditingRangeRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "LinkedEditingRangeRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -2742,7 +2741,7 @@ auto CreateFilesParams::files() const -> Vector { } auto CreateFilesParams::files(Vector files) -> CreateFilesParams& { - lsp_runtime_error("CreateFilesParams::files: not implement yet"); + (*repr_)["files"] = std::move(files); return *this; } @@ -2790,7 +2789,7 @@ auto WorkspaceEdit::changes( repr_->erase("changes"); return *this; } - lsp_runtime_error("WorkspaceEdit::changes: not implement yet"); + lsp_runtime_error("WorkspaceEdit::changes: not implemented yet"); return *this; } @@ -2802,7 +2801,7 @@ auto WorkspaceEdit::documentChanges( repr_->erase("documentChanges"); return *this; } - lsp_runtime_error("WorkspaceEdit::documentChanges: not implement yet"); + (*repr_)["documentChanges"] = std::move(documentChanges.value()); return *this; } @@ -2813,7 +2812,7 @@ auto WorkspaceEdit::changeAnnotations( repr_->erase("changeAnnotations"); return *this; } - lsp_runtime_error("WorkspaceEdit::changeAnnotations: not implement yet"); + lsp_runtime_error("WorkspaceEdit::changeAnnotations: not implemented yet"); return *this; } @@ -2833,8 +2832,7 @@ auto FileOperationRegistrationOptions::filters() const auto FileOperationRegistrationOptions::filters( Vector filters) -> FileOperationRegistrationOptions& { - lsp_runtime_error( - "FileOperationRegistrationOptions::filters: not implement yet"); + (*repr_)["filters"] = std::move(filters); return *this; } @@ -2852,7 +2850,7 @@ auto RenameFilesParams::files() const -> Vector { } auto RenameFilesParams::files(Vector files) -> RenameFilesParams& { - lsp_runtime_error("RenameFilesParams::files: not implement yet"); + (*repr_)["files"] = std::move(files); return *this; } @@ -2870,7 +2868,7 @@ auto DeleteFilesParams::files() const -> Vector { } auto DeleteFilesParams::files(Vector files) -> DeleteFilesParams& { - lsp_runtime_error("DeleteFilesParams::files: not implement yet"); + (*repr_)["files"] = std::move(files); return *this; } @@ -2934,7 +2932,7 @@ auto MonikerParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("MonikerParams::workDoneToken: not implement yet"); + lsp_runtime_error("MonikerParams::workDoneToken: not implemented yet"); return *this; } @@ -2944,7 +2942,7 @@ auto MonikerParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("MonikerParams::partialResultToken: not implement yet"); + lsp_runtime_error("MonikerParams::partialResultToken: not implemented yet"); return *this; } @@ -2975,7 +2973,7 @@ auto Moniker::identifier() const -> std::string { auto Moniker::unique() const -> UniquenessLevel { auto& value = (*repr_)["unique"]; - lsp_runtime_error("Moniker::unique: not implement yet"); + lsp_runtime_error("Moniker::unique: not implemented yet"); } auto Moniker::kind() const -> std::optional { @@ -2983,7 +2981,7 @@ auto Moniker::kind() const -> std::optional { auto& value = (*repr_)["kind"]; - lsp_runtime_error("Moniker::kind: not implement yet"); + lsp_runtime_error("Moniker::kind: not implemented yet"); } auto Moniker::scheme(std::string scheme) -> Moniker& { @@ -2997,7 +2995,7 @@ auto Moniker::identifier(std::string identifier) -> Moniker& { } auto Moniker::unique(UniquenessLevel unique) -> Moniker& { - lsp_runtime_error("Moniker::unique: not implement yet"); + lsp_runtime_error("Moniker::unique: not implemented yet"); return *this; } @@ -3006,7 +3004,7 @@ auto Moniker::kind(std::optional kind) -> Moniker& { repr_->erase("kind"); return *this; } - lsp_runtime_error("Moniker::kind: not implement yet"); + lsp_runtime_error("Moniker::kind: not implemented yet"); return *this; } @@ -3046,7 +3044,7 @@ auto MonikerRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "MonikerRegistrationOptions::documentSelector: not implement yet"); + "MonikerRegistrationOptions::documentSelector: not implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -3121,7 +3119,7 @@ auto TypeHierarchyPrepareParams::workDoneToken( return *this; } lsp_runtime_error( - "TypeHierarchyPrepareParams::workDoneToken: not implement yet"); + "TypeHierarchyPrepareParams::workDoneToken: not implemented yet"); return *this; } @@ -3213,7 +3211,7 @@ auto TypeHierarchyItem::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("TypeHierarchyItem::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -3248,7 +3246,7 @@ auto TypeHierarchyItem::data(std::optional data) -> TypeHierarchyItem& { repr_->erase("data"); return *this; } - lsp_runtime_error("TypeHierarchyItem::data: not implement yet"); + lsp_runtime_error("TypeHierarchyItem::data: not implemented yet"); return *this; } @@ -3299,7 +3297,7 @@ auto TypeHierarchyRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "TypeHierarchyRegistrationOptions::documentSelector: not implement " + "TypeHierarchyRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -3385,7 +3383,7 @@ auto TypeHierarchySupertypesParams::workDoneToken( return *this; } lsp_runtime_error( - "TypeHierarchySupertypesParams::workDoneToken: not implement yet"); + "TypeHierarchySupertypesParams::workDoneToken: not implemented yet"); return *this; } @@ -3397,7 +3395,7 @@ auto TypeHierarchySupertypesParams::partialResultToken( return *this; } lsp_runtime_error( - "TypeHierarchySupertypesParams::partialResultToken: not implement yet"); + "TypeHierarchySupertypesParams::partialResultToken: not implemented yet"); return *this; } @@ -3453,7 +3451,7 @@ auto TypeHierarchySubtypesParams::workDoneToken( return *this; } lsp_runtime_error( - "TypeHierarchySubtypesParams::workDoneToken: not implement yet"); + "TypeHierarchySubtypesParams::workDoneToken: not implemented yet"); return *this; } @@ -3465,7 +3463,7 @@ auto TypeHierarchySubtypesParams::partialResultToken( return *this; } lsp_runtime_error( - "TypeHierarchySubtypesParams::partialResultToken: not implement yet"); + "TypeHierarchySubtypesParams::partialResultToken: not implemented yet"); return *this; } @@ -3530,7 +3528,7 @@ auto InlineValueParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("InlineValueParams::workDoneToken: not implement yet"); + lsp_runtime_error("InlineValueParams::workDoneToken: not implemented yet"); return *this; } @@ -3590,7 +3588,7 @@ auto InlineValueRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "InlineValueRegistrationOptions::documentSelector: not implement " + "InlineValueRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -3662,7 +3660,7 @@ auto InlayHintParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("InlayHintParams::workDoneToken: not implement yet"); + lsp_runtime_error("InlayHintParams::workDoneToken: not implemented yet"); return *this; } @@ -3762,7 +3760,7 @@ auto InlayHint::label( void operator()(std::string label) { (*repr_)["label"] = std::move(label); } void operator()(Vector label) { - lsp_runtime_error("InlayHint::label: not implement yet"); + (*repr_)["label"] = std::move(label); } } v{repr_}; @@ -3786,7 +3784,7 @@ auto InlayHint::textEdits(std::optional> textEdits) repr_->erase("textEdits"); return *this; } - lsp_runtime_error("InlayHint::textEdits: not implement yet"); + (*repr_)["textEdits"] = std::move(textEdits.value()); return *this; } @@ -3836,7 +3834,7 @@ auto InlayHint::data(std::optional data) -> InlayHint& { repr_->erase("data"); return *this; } - lsp_runtime_error("InlayHint::data: not implement yet"); + lsp_runtime_error("InlayHint::data: not implemented yet"); return *this; } @@ -3917,7 +3915,8 @@ auto InlayHintRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "InlayHintRegistrationOptions::documentSelector: not implement yet"); + "InlayHintRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -4033,7 +4032,7 @@ auto DocumentDiagnosticParams::workDoneToken( return *this; } lsp_runtime_error( - "DocumentDiagnosticParams::workDoneToken: not implement yet"); + "DocumentDiagnosticParams::workDoneToken: not implemented yet"); return *this; } @@ -4045,7 +4044,7 @@ auto DocumentDiagnosticParams::partialResultToken( return *this; } lsp_runtime_error( - "DocumentDiagnosticParams::partialResultToken: not implement yet"); + "DocumentDiagnosticParams::partialResultToken: not implemented yet"); return *this; } @@ -4071,8 +4070,8 @@ auto DocumentDiagnosticReportPartialResult::relatedDocuments( UnchangedDocumentDiagnosticReport>> relatedDocuments) -> DocumentDiagnosticReportPartialResult& { lsp_runtime_error( - "DocumentDiagnosticReportPartialResult::relatedDocuments: not implement " - "yet"); + "DocumentDiagnosticReportPartialResult::relatedDocuments: not " + "implemented yet"); return *this; } @@ -4171,7 +4170,8 @@ auto DiagnosticRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DiagnosticRegistrationOptions::documentSelector: not implement yet"); + "DiagnosticRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -4289,8 +4289,7 @@ auto WorkspaceDiagnosticParams::identifier( auto WorkspaceDiagnosticParams::previousResultIds( Vector previousResultIds) -> WorkspaceDiagnosticParams& { - lsp_runtime_error( - "WorkspaceDiagnosticParams::previousResultIds: not implement yet"); + (*repr_)["previousResultIds"] = std::move(previousResultIds); return *this; } @@ -4301,7 +4300,7 @@ auto WorkspaceDiagnosticParams::workDoneToken( return *this; } lsp_runtime_error( - "WorkspaceDiagnosticParams::workDoneToken: not implement yet"); + "WorkspaceDiagnosticParams::workDoneToken: not implemented yet"); return *this; } @@ -4313,7 +4312,7 @@ auto WorkspaceDiagnosticParams::partialResultToken( return *this; } lsp_runtime_error( - "WorkspaceDiagnosticParams::partialResultToken: not implement yet"); + "WorkspaceDiagnosticParams::partialResultToken: not implemented yet"); return *this; } @@ -4334,7 +4333,7 @@ auto WorkspaceDiagnosticReport::items() const auto WorkspaceDiagnosticReport::items( Vector items) -> WorkspaceDiagnosticReport& { - lsp_runtime_error("WorkspaceDiagnosticReport::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -4355,8 +4354,7 @@ auto WorkspaceDiagnosticReportPartialResult::items() const auto WorkspaceDiagnosticReportPartialResult::items( Vector items) -> WorkspaceDiagnosticReportPartialResult& { - lsp_runtime_error( - "WorkspaceDiagnosticReportPartialResult::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -4391,8 +4389,7 @@ auto DidOpenNotebookDocumentParams::notebookDocument( auto DidOpenNotebookDocumentParams::cellTextDocuments( Vector cellTextDocuments) -> DidOpenNotebookDocumentParams& { - lsp_runtime_error( - "DidOpenNotebookDocumentParams::cellTextDocuments: not implement yet"); + (*repr_)["cellTextDocuments"] = std::move(cellTextDocuments); return *this; } @@ -4438,9 +4435,7 @@ auto NotebookDocumentSyncRegistrationOptions::notebookSelector( Vector> notebookSelector) -> NotebookDocumentSyncRegistrationOptions& { - lsp_runtime_error( - "NotebookDocumentSyncRegistrationOptions::notebookSelector: not " - "implement yet"); + (*repr_)["notebookSelector"] = std::move(notebookSelector); return *this; } @@ -4550,8 +4545,7 @@ auto DidCloseNotebookDocumentParams::notebookDocument( auto DidCloseNotebookDocumentParams::cellTextDocuments( Vector cellTextDocuments) -> DidCloseNotebookDocumentParams& { - lsp_runtime_error( - "DidCloseNotebookDocumentParams::cellTextDocuments: not implement yet"); + (*repr_)["cellTextDocuments"] = std::move(cellTextDocuments); return *this; } @@ -4618,7 +4612,8 @@ auto InlineCompletionParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("InlineCompletionParams::workDoneToken: not implement yet"); + lsp_runtime_error( + "InlineCompletionParams::workDoneToken: not implemented yet"); return *this; } @@ -4637,7 +4632,7 @@ auto InlineCompletionList::items() const -> Vector { auto InlineCompletionList::items(Vector items) -> InlineCompletionList& { - lsp_runtime_error("InlineCompletionList::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -4793,7 +4788,7 @@ auto InlineCompletionRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "InlineCompletionRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -4883,8 +4878,7 @@ auto TextDocumentContentRegistrationOptions::id() const auto TextDocumentContentRegistrationOptions::schemes( Vector schemes) -> TextDocumentContentRegistrationOptions& { - lsp_runtime_error( - "TextDocumentContentRegistrationOptions::schemes: not implement yet"); + (*repr_)["schemes"] = std::move(schemes); return *this; } @@ -4933,7 +4927,7 @@ auto RegistrationParams::registrations() const -> Vector { auto RegistrationParams::registrations(Vector registrations) -> RegistrationParams& { - lsp_runtime_error("RegistrationParams::registrations: not implement yet"); + (*repr_)["registrations"] = std::move(registrations); return *this; } @@ -4952,8 +4946,7 @@ auto UnregistrationParams::unregisterations() const -> Vector { auto UnregistrationParams::unregisterations( Vector unregisterations) -> UnregistrationParams& { - lsp_runtime_error( - "UnregistrationParams::unregisterations: not implement yet"); + (*repr_)["unregisterations"] = std::move(unregisterations); return *this; } @@ -5037,7 +5030,7 @@ auto InitializeParams::trace() const -> std::optional { auto& value = (*repr_)["trace"]; - lsp_runtime_error("InitializeParams::trace: not implement yet"); + lsp_runtime_error("InitializeParams::trace: not implemented yet"); } auto InitializeParams::workDoneToken() const -> std::optional { @@ -5161,7 +5154,7 @@ auto InitializeParams::initializationOptions( return *this; } lsp_runtime_error( - "InitializeParams::initializationOptions: not implement yet"); + "InitializeParams::initializationOptions: not implemented yet"); return *this; } @@ -5171,7 +5164,7 @@ auto InitializeParams::trace(std::optional trace) repr_->erase("trace"); return *this; } - lsp_runtime_error("InitializeParams::trace: not implement yet"); + lsp_runtime_error("InitializeParams::trace: not implemented yet"); return *this; } @@ -5181,7 +5174,7 @@ auto InitializeParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("InitializeParams::workDoneToken: not implement yet"); + lsp_runtime_error("InitializeParams::workDoneToken: not implemented yet"); return *this; } @@ -5197,8 +5190,7 @@ auto InitializeParams::workspaceFolders( json* repr_; void operator()(Vector workspaceFolders) { - lsp_runtime_error( - "InitializeParams::workspaceFolders: not implement yet"); + (*repr_)["workspaceFolders"] = std::move(workspaceFolders); } void operator()(std::nullptr_t workspaceFolders) { @@ -5287,7 +5279,7 @@ auto DidChangeConfigurationParams::settings() const -> LSPAny { auto DidChangeConfigurationParams::settings(LSPAny settings) -> DidChangeConfigurationParams& { lsp_runtime_error( - "DidChangeConfigurationParams::settings: not implement yet"); + "DidChangeConfigurationParams::settings: not implemented yet"); return *this; } @@ -5325,9 +5317,7 @@ auto DidChangeConfigurationRegistrationOptions::section( } void operator()(Vector section) { - lsp_runtime_error( - "DidChangeConfigurationRegistrationOptions::section: not implement " - "yet"); + (*repr_)["section"] = std::move(section); } } v{repr_}; @@ -5417,7 +5407,7 @@ auto ShowMessageRequestParams::actions( repr_->erase("actions"); return *this; } - lsp_runtime_error("ShowMessageRequestParams::actions: not implement yet"); + (*repr_)["actions"] = std::move(actions.value()); return *this; } @@ -5521,8 +5511,7 @@ auto DidChangeTextDocumentParams::textDocument( auto DidChangeTextDocumentParams::contentChanges( Vector contentChanges) -> DidChangeTextDocumentParams& { - lsp_runtime_error( - "DidChangeTextDocumentParams::contentChanges: not implement yet"); + (*repr_)["contentChanges"] = std::move(contentChanges); return *this; } @@ -5566,7 +5555,7 @@ auto TextDocumentChangeRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "TextDocumentChangeRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -5673,7 +5662,7 @@ auto TextDocumentSaveRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "TextDocumentSaveRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -5774,7 +5763,7 @@ auto DidChangeWatchedFilesParams::changes() const -> Vector { auto DidChangeWatchedFilesParams::changes(Vector changes) -> DidChangeWatchedFilesParams& { - lsp_runtime_error("DidChangeWatchedFilesParams::changes: not implement yet"); + (*repr_)["changes"] = std::move(changes); return *this; } @@ -5795,8 +5784,7 @@ auto DidChangeWatchedFilesRegistrationOptions::watchers() const auto DidChangeWatchedFilesRegistrationOptions::watchers( Vector watchers) -> DidChangeWatchedFilesRegistrationOptions& { - lsp_runtime_error( - "DidChangeWatchedFilesRegistrationOptions::watchers: not implement yet"); + (*repr_)["watchers"] = std::move(watchers); return *this; } @@ -5850,7 +5838,7 @@ auto PublishDiagnosticsParams::version(std::optional version) auto PublishDiagnosticsParams::diagnostics(Vector diagnostics) -> PublishDiagnosticsParams& { - lsp_runtime_error("PublishDiagnosticsParams::diagnostics: not implement yet"); + (*repr_)["diagnostics"] = std::move(diagnostics); return *this; } @@ -5933,7 +5921,7 @@ auto CompletionParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("CompletionParams::workDoneToken: not implement yet"); + lsp_runtime_error("CompletionParams::workDoneToken: not implemented yet"); return *this; } @@ -5943,7 +5931,8 @@ auto CompletionParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("CompletionParams::partialResultToken: not implement yet"); + lsp_runtime_error( + "CompletionParams::partialResultToken: not implemented yet"); return *this; } @@ -6168,7 +6157,7 @@ auto CompletionItem::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("CompletionItem::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -6316,7 +6305,7 @@ auto CompletionItem::additionalTextEdits( repr_->erase("additionalTextEdits"); return *this; } - lsp_runtime_error("CompletionItem::additionalTextEdits: not implement yet"); + (*repr_)["additionalTextEdits"] = std::move(additionalTextEdits.value()); return *this; } @@ -6326,7 +6315,7 @@ auto CompletionItem::commitCharacters( repr_->erase("commitCharacters"); return *this; } - lsp_runtime_error("CompletionItem::commitCharacters: not implement yet"); + (*repr_)["commitCharacters"] = std::move(commitCharacters.value()); return *this; } @@ -6345,7 +6334,7 @@ auto CompletionItem::data(std::optional data) -> CompletionItem& { repr_->erase("data"); return *this; } - lsp_runtime_error("CompletionItem::data: not implement yet"); + lsp_runtime_error("CompletionItem::data: not implemented yet"); return *this; } @@ -6415,7 +6404,7 @@ auto CompletionList::applyKind( } auto CompletionList::items(Vector items) -> CompletionList& { - lsp_runtime_error("CompletionList::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -6495,7 +6484,8 @@ auto CompletionRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "CompletionRegistrationOptions::documentSelector: not implement yet"); + "CompletionRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -6515,8 +6505,7 @@ auto CompletionRegistrationOptions::triggerCharacters( repr_->erase("triggerCharacters"); return *this; } - lsp_runtime_error( - "CompletionRegistrationOptions::triggerCharacters: not implement yet"); + (*repr_)["triggerCharacters"] = std::move(triggerCharacters.value()); return *this; } @@ -6527,8 +6516,7 @@ auto CompletionRegistrationOptions::allCommitCharacters( repr_->erase("allCommitCharacters"); return *this; } - lsp_runtime_error( - "CompletionRegistrationOptions::allCommitCharacters: not implement yet"); + (*repr_)["allCommitCharacters"] = std::move(allCommitCharacters.value()); return *this; } @@ -6611,7 +6599,7 @@ auto HoverParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("HoverParams::workDoneToken: not implement yet"); + lsp_runtime_error("HoverParams::workDoneToken: not implemented yet"); return *this; } @@ -6649,11 +6637,11 @@ auto Hover::contents( void operator()(MarkupContent contents) { (*repr_)["contents"] = contents; } void operator()(MarkedString contents) { - lsp_runtime_error("Hover::contents: not implement yet"); + lsp_runtime_error("Hover::contents: not implemented yet"); } void operator()(Vector contents) { - lsp_runtime_error("Hover::contents: not implement yet"); + (*repr_)["contents"] = std::move(contents); } } v{repr_}; @@ -6706,7 +6694,7 @@ auto HoverRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "HoverRegistrationOptions::documentSelector: not implement yet"); + "HoverRegistrationOptions::documentSelector: not implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -6797,7 +6785,7 @@ auto SignatureHelpParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("SignatureHelpParams::workDoneToken: not implement yet"); + lsp_runtime_error("SignatureHelpParams::workDoneToken: not implemented yet"); return *this; } @@ -6839,7 +6827,7 @@ auto SignatureHelp::activeParameter() const auto SignatureHelp::signatures(Vector signatures) -> SignatureHelp& { - lsp_runtime_error("SignatureHelp::signatures: not implement yet"); + (*repr_)["signatures"] = std::move(signatures); return *this; } @@ -6934,7 +6922,7 @@ auto SignatureHelpRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "SignatureHelpRegistrationOptions::documentSelector: not implement " + "SignatureHelpRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -6955,8 +6943,7 @@ auto SignatureHelpRegistrationOptions::triggerCharacters( repr_->erase("triggerCharacters"); return *this; } - lsp_runtime_error( - "SignatureHelpRegistrationOptions::triggerCharacters: not implement yet"); + (*repr_)["triggerCharacters"] = std::move(triggerCharacters.value()); return *this; } @@ -6967,9 +6954,7 @@ auto SignatureHelpRegistrationOptions::retriggerCharacters( repr_->erase("retriggerCharacters"); return *this; } - lsp_runtime_error( - "SignatureHelpRegistrationOptions::retriggerCharacters: not implement " - "yet"); + (*repr_)["retriggerCharacters"] = std::move(retriggerCharacters.value()); return *this; } @@ -7044,7 +7029,7 @@ auto DefinitionParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("DefinitionParams::workDoneToken: not implement yet"); + lsp_runtime_error("DefinitionParams::workDoneToken: not implemented yet"); return *this; } @@ -7054,7 +7039,8 @@ auto DefinitionParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("DefinitionParams::partialResultToken: not implement yet"); + lsp_runtime_error( + "DefinitionParams::partialResultToken: not implemented yet"); return *this; } @@ -7094,7 +7080,8 @@ auto DefinitionRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DefinitionRegistrationOptions::documentSelector: not implement yet"); + "DefinitionRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -7190,7 +7177,7 @@ auto ReferenceParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("ReferenceParams::workDoneToken: not implement yet"); + lsp_runtime_error("ReferenceParams::workDoneToken: not implemented yet"); return *this; } @@ -7200,7 +7187,7 @@ auto ReferenceParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("ReferenceParams::partialResultToken: not implement yet"); + lsp_runtime_error("ReferenceParams::partialResultToken: not implemented yet"); return *this; } @@ -7240,7 +7227,8 @@ auto ReferenceRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "ReferenceRegistrationOptions::documentSelector: not implement yet"); + "ReferenceRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -7327,7 +7315,7 @@ auto DocumentHighlightParams::workDoneToken( return *this; } lsp_runtime_error( - "DocumentHighlightParams::workDoneToken: not implement yet"); + "DocumentHighlightParams::workDoneToken: not implemented yet"); return *this; } @@ -7339,7 +7327,7 @@ auto DocumentHighlightParams::partialResultToken( return *this; } lsp_runtime_error( - "DocumentHighlightParams::partialResultToken: not implement yet"); + "DocumentHighlightParams::partialResultToken: not implemented yet"); return *this; } @@ -7415,7 +7403,7 @@ auto DocumentHighlightRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "DocumentHighlightRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -7489,7 +7477,7 @@ auto DocumentSymbolParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("DocumentSymbolParams::workDoneToken: not implement yet"); + lsp_runtime_error("DocumentSymbolParams::workDoneToken: not implemented yet"); return *this; } @@ -7500,7 +7488,7 @@ auto DocumentSymbolParams::partialResultToken( return *this; } lsp_runtime_error( - "DocumentSymbolParams::partialResultToken: not implement yet"); + "DocumentSymbolParams::partialResultToken: not implemented yet"); return *this; } @@ -7592,7 +7580,7 @@ auto SymbolInformation::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("SymbolInformation::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -7705,7 +7693,7 @@ auto DocumentSymbol::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("DocumentSymbol::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -7735,7 +7723,7 @@ auto DocumentSymbol::children(std::optional> children) repr_->erase("children"); return *this; } - lsp_runtime_error("DocumentSymbol::children: not implement yet"); + (*repr_)["children"] = std::move(children.value()); return *this; } @@ -7786,8 +7774,8 @@ auto DocumentSymbolRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DocumentSymbolRegistrationOptions::documentSelector: not implement " - "yet"); + "DocumentSymbolRegistrationOptions::documentSelector: not " + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -7894,7 +7882,7 @@ auto CodeActionParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("CodeActionParams::workDoneToken: not implement yet"); + lsp_runtime_error("CodeActionParams::workDoneToken: not implemented yet"); return *this; } @@ -7904,7 +7892,8 @@ auto CodeActionParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("CodeActionParams::partialResultToken: not implement yet"); + lsp_runtime_error( + "CodeActionParams::partialResultToken: not implemented yet"); return *this; } @@ -7974,7 +7963,7 @@ auto Command::arguments(std::optional> arguments) -> Command& { repr_->erase("arguments"); return *this; } - lsp_runtime_error("Command::arguments: not implement yet"); + (*repr_)["arguments"] = std::move(arguments.value()); return *this; } @@ -7997,7 +7986,7 @@ auto CodeAction::kind() const -> std::optional { auto& value = (*repr_)["kind"]; - lsp_runtime_error("CodeAction::kind: not implement yet"); + lsp_runtime_error("CodeAction::kind: not implemented yet"); } auto CodeAction::diagnostics() const -> std::optional> { @@ -8071,7 +8060,7 @@ auto CodeAction::kind(std::optional kind) -> CodeAction& { repr_->erase("kind"); return *this; } - lsp_runtime_error("CodeAction::kind: not implement yet"); + lsp_runtime_error("CodeAction::kind: not implemented yet"); return *this; } @@ -8081,7 +8070,7 @@ auto CodeAction::diagnostics(std::optional> diagnostics) repr_->erase("diagnostics"); return *this; } - lsp_runtime_error("CodeAction::diagnostics: not implement yet"); + (*repr_)["diagnostics"] = std::move(diagnostics.value()); return *this; } @@ -8127,7 +8116,7 @@ auto CodeAction::data(std::optional data) -> CodeAction& { repr_->erase("data"); return *this; } - lsp_runtime_error("CodeAction::data: not implement yet"); + lsp_runtime_error("CodeAction::data: not implemented yet"); return *this; } @@ -8137,7 +8126,7 @@ auto CodeAction::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("CodeAction::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -8208,7 +8197,8 @@ auto CodeActionRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "CodeActionRegistrationOptions::documentSelector: not implement yet"); + "CodeActionRegistrationOptions::documentSelector: not implemented " + "yet"); } void operator()(std::nullptr_t documentSelector) { @@ -8228,8 +8218,7 @@ auto CodeActionRegistrationOptions::codeActionKinds( repr_->erase("codeActionKinds"); return *this; } - lsp_runtime_error( - "CodeActionRegistrationOptions::codeActionKinds: not implement yet"); + (*repr_)["codeActionKinds"] = std::move(codeActionKinds.value()); return *this; } @@ -8240,8 +8229,7 @@ auto CodeActionRegistrationOptions::documentation( repr_->erase("documentation"); return *this; } - lsp_runtime_error( - "CodeActionRegistrationOptions::documentation: not implement yet"); + (*repr_)["documentation"] = std::move(documentation.value()); return *this; } @@ -8316,7 +8304,8 @@ auto WorkspaceSymbolParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("WorkspaceSymbolParams::workDoneToken: not implement yet"); + lsp_runtime_error( + "WorkspaceSymbolParams::workDoneToken: not implemented yet"); return *this; } @@ -8327,7 +8316,7 @@ auto WorkspaceSymbolParams::partialResultToken( return *this; } lsp_runtime_error( - "WorkspaceSymbolParams::partialResultToken: not implement yet"); + "WorkspaceSymbolParams::partialResultToken: not implemented yet"); return *this; } @@ -8414,7 +8403,7 @@ auto WorkspaceSymbol::data(std::optional data) -> WorkspaceSymbol& { repr_->erase("data"); return *this; } - lsp_runtime_error("WorkspaceSymbol::data: not implement yet"); + lsp_runtime_error("WorkspaceSymbol::data: not implemented yet"); return *this; } @@ -8434,7 +8423,7 @@ auto WorkspaceSymbol::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("WorkspaceSymbol::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -8546,7 +8535,7 @@ auto CodeLensParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("CodeLensParams::workDoneToken: not implement yet"); + lsp_runtime_error("CodeLensParams::workDoneToken: not implemented yet"); return *this; } @@ -8556,7 +8545,7 @@ auto CodeLensParams::partialResultToken( repr_->erase("partialResultToken"); return *this; } - lsp_runtime_error("CodeLensParams::partialResultToken: not implement yet"); + lsp_runtime_error("CodeLensParams::partialResultToken: not implemented yet"); return *this; } @@ -8608,7 +8597,7 @@ auto CodeLens::data(std::optional data) -> CodeLens& { repr_->erase("data"); return *this; } - lsp_runtime_error("CodeLens::data: not implement yet"); + lsp_runtime_error("CodeLens::data: not implemented yet"); return *this; } @@ -8659,7 +8648,7 @@ auto CodeLensRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "CodeLensRegistrationOptions::documentSelector: not implement yet"); + "CodeLensRegistrationOptions::documentSelector: not implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -8741,7 +8730,7 @@ auto DocumentLinkParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("DocumentLinkParams::workDoneToken: not implement yet"); + lsp_runtime_error("DocumentLinkParams::workDoneToken: not implemented yet"); return *this; } @@ -8752,7 +8741,7 @@ auto DocumentLinkParams::partialResultToken( return *this; } lsp_runtime_error( - "DocumentLinkParams::partialResultToken: not implement yet"); + "DocumentLinkParams::partialResultToken: not implemented yet"); return *this; } @@ -8826,7 +8815,7 @@ auto DocumentLink::data(std::optional data) -> DocumentLink& { repr_->erase("data"); return *this; } - lsp_runtime_error("DocumentLink::data: not implement yet"); + lsp_runtime_error("DocumentLink::data: not implemented yet"); return *this; } @@ -8877,7 +8866,7 @@ auto DocumentLinkRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "DocumentLinkRegistrationOptions::documentSelector: not implement " + "DocumentLinkRegistrationOptions::documentSelector: not implemented " "yet"); } @@ -8962,7 +8951,7 @@ auto DocumentFormattingParams::workDoneToken( return *this; } lsp_runtime_error( - "DocumentFormattingParams::workDoneToken: not implement yet"); + "DocumentFormattingParams::workDoneToken: not implemented yet"); return *this; } @@ -9003,7 +8992,7 @@ auto DocumentFormattingRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "DocumentFormattingRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -9093,7 +9082,7 @@ auto DocumentRangeFormattingParams::workDoneToken( return *this; } lsp_runtime_error( - "DocumentRangeFormattingParams::workDoneToken: not implement yet"); + "DocumentRangeFormattingParams::workDoneToken: not implemented yet"); return *this; } @@ -9145,7 +9134,7 @@ auto DocumentRangeFormattingRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "DocumentRangeFormattingRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -9229,8 +9218,7 @@ auto DocumentRangesFormattingParams::textDocument( auto DocumentRangesFormattingParams::ranges(Vector ranges) -> DocumentRangesFormattingParams& { - lsp_runtime_error( - "DocumentRangesFormattingParams::ranges: not implement yet"); + (*repr_)["ranges"] = std::move(ranges); return *this; } @@ -9248,7 +9236,7 @@ auto DocumentRangesFormattingParams::workDoneToken( return *this; } lsp_runtime_error( - "DocumentRangesFormattingParams::workDoneToken: not implement yet"); + "DocumentRangesFormattingParams::workDoneToken: not implemented yet"); return *this; } @@ -9358,7 +9346,7 @@ auto DocumentOnTypeFormattingRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( "DocumentOnTypeFormattingRegistrationOptions::documentSelector: not " - "implement yet"); + "implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -9385,9 +9373,7 @@ auto DocumentOnTypeFormattingRegistrationOptions::moreTriggerCharacter( repr_->erase("moreTriggerCharacter"); return *this; } - lsp_runtime_error( - "DocumentOnTypeFormattingRegistrationOptions::moreTriggerCharacter: not " - "implement yet"); + (*repr_)["moreTriggerCharacter"] = std::move(moreTriggerCharacter.value()); return *this; } @@ -9453,7 +9439,7 @@ auto RenameParams::workDoneToken(std::optional workDoneToken) repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("RenameParams::workDoneToken: not implement yet"); + lsp_runtime_error("RenameParams::workDoneToken: not implemented yet"); return *this; } @@ -9503,7 +9489,7 @@ auto RenameRegistrationOptions::documentSelector( void operator()(DocumentSelector documentSelector) { lsp_runtime_error( - "RenameRegistrationOptions::documentSelector: not implement yet"); + "RenameRegistrationOptions::documentSelector: not implemented yet"); } void operator()(std::nullptr_t documentSelector) { @@ -9585,7 +9571,7 @@ auto PrepareRenameParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("PrepareRenameParams::workDoneToken: not implement yet"); + lsp_runtime_error("PrepareRenameParams::workDoneToken: not implemented yet"); return *this; } @@ -9637,7 +9623,7 @@ auto ExecuteCommandParams::arguments(std::optional> arguments) repr_->erase("arguments"); return *this; } - lsp_runtime_error("ExecuteCommandParams::arguments: not implement yet"); + (*repr_)["arguments"] = std::move(arguments.value()); return *this; } @@ -9647,7 +9633,7 @@ auto ExecuteCommandParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("ExecuteCommandParams::workDoneToken: not implement yet"); + lsp_runtime_error("ExecuteCommandParams::workDoneToken: not implemented yet"); return *this; } @@ -9678,8 +9664,7 @@ auto ExecuteCommandRegistrationOptions::workDoneProgress() const auto ExecuteCommandRegistrationOptions::commands(Vector commands) -> ExecuteCommandRegistrationOptions& { - lsp_runtime_error( - "ExecuteCommandRegistrationOptions::commands: not implement yet"); + (*repr_)["commands"] = std::move(commands); return *this; } @@ -9868,7 +9853,7 @@ auto WorkDoneProgressBegin::percentage() const -> std::optional { } auto WorkDoneProgressBegin::kind(std::string kind) -> WorkDoneProgressBegin& { - lsp_runtime_error("WorkDoneProgressBegin::kind: not implement yet"); + lsp_runtime_error("WorkDoneProgressBegin::kind: not implemented yet"); return *this; } @@ -9953,7 +9938,7 @@ auto WorkDoneProgressReport::percentage() const -> std::optional { } auto WorkDoneProgressReport::kind(std::string kind) -> WorkDoneProgressReport& { - lsp_runtime_error("WorkDoneProgressReport::kind: not implement yet"); + lsp_runtime_error("WorkDoneProgressReport::kind: not implemented yet"); return *this; } @@ -10013,7 +9998,7 @@ auto WorkDoneProgressEnd::message() const -> std::optional { } auto WorkDoneProgressEnd::kind(std::string kind) -> WorkDoneProgressEnd& { - lsp_runtime_error("WorkDoneProgressEnd::kind: not implement yet"); + lsp_runtime_error("WorkDoneProgressEnd::kind: not implemented yet"); return *this; } @@ -10036,11 +10021,11 @@ SetTraceParams::operator bool() const { auto SetTraceParams::value() const -> TraceValue { auto& value = (*repr_)["value"]; - lsp_runtime_error("SetTraceParams::value: not implement yet"); + lsp_runtime_error("SetTraceParams::value: not implemented yet"); } auto SetTraceParams::value(TraceValue value) -> SetTraceParams& { - lsp_runtime_error("SetTraceParams::value: not implement yet"); + lsp_runtime_error("SetTraceParams::value: not implemented yet"); return *this; } @@ -10138,12 +10123,12 @@ auto ProgressParams::value() const -> LSPAny { } auto ProgressParams::token(ProgressToken token) -> ProgressParams& { - lsp_runtime_error("ProgressParams::token: not implement yet"); + lsp_runtime_error("ProgressParams::token: not implemented yet"); return *this; } auto ProgressParams::value(LSPAny value) -> ProgressParams& { - lsp_runtime_error("ProgressParams::value: not implement yet"); + lsp_runtime_error("ProgressParams::value: not implemented yet"); return *this; } @@ -10203,7 +10188,8 @@ auto WorkDoneProgressParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("WorkDoneProgressParams::workDoneToken: not implement yet"); + lsp_runtime_error( + "WorkDoneProgressParams::workDoneToken: not implemented yet"); return *this; } @@ -10232,7 +10218,7 @@ auto PartialResultParams::partialResultToken( return *this; } lsp_runtime_error( - "PartialResultParams::partialResultToken: not implement yet"); + "PartialResultParams::partialResultToken: not implemented yet"); return *this; } @@ -10425,13 +10411,13 @@ auto WorkspaceFoldersChangeEvent::removed() const -> Vector { auto WorkspaceFoldersChangeEvent::added(Vector added) -> WorkspaceFoldersChangeEvent& { - lsp_runtime_error("WorkspaceFoldersChangeEvent::added: not implement yet"); + (*repr_)["added"] = std::move(added); return *this; } auto WorkspaceFoldersChangeEvent::removed(Vector removed) -> WorkspaceFoldersChangeEvent& { - lsp_runtime_error("WorkspaceFoldersChangeEvent::removed: not implement yet"); + (*repr_)["removed"] = std::move(removed); return *this; } @@ -10785,7 +10771,7 @@ auto SemanticTokensOptions::range(std::optional> range) void operator()(bool range) { (*repr_)["range"] = std::move(range); } void operator()(json range) { - lsp_runtime_error("SemanticTokensOptions::range: not implement yet"); + lsp_runtime_error("SemanticTokensOptions::range: not implemented yet"); } } v{repr_}; @@ -10873,7 +10859,7 @@ auto SemanticTokensEdit::data(std::optional> data) repr_->erase("data"); return *this; } - lsp_runtime_error("SemanticTokensEdit::data: not implement yet"); + (*repr_)["data"] = std::move(data.value()); return *this; } @@ -10954,7 +10940,7 @@ auto TextDocumentEdit::textDocument( auto TextDocumentEdit::edits( Vector> edits) -> TextDocumentEdit& { - lsp_runtime_error("TextDocumentEdit::edits: not implement yet"); + (*repr_)["edits"] = std::move(edits); return *this; } @@ -11002,7 +10988,7 @@ auto CreateFile::annotationId() const } auto CreateFile::kind(std::string kind) -> CreateFile& { - lsp_runtime_error("CreateFile::kind: not implement yet"); + lsp_runtime_error("CreateFile::kind: not implemented yet"); return *this; } @@ -11027,7 +11013,7 @@ auto CreateFile::annotationId( repr_->erase("annotationId"); return *this; } - lsp_runtime_error("CreateFile::annotationId: not implement yet"); + lsp_runtime_error("CreateFile::annotationId: not implemented yet"); return *this; } @@ -11084,7 +11070,7 @@ auto RenameFile::annotationId() const } auto RenameFile::kind(std::string kind) -> RenameFile& { - lsp_runtime_error("RenameFile::kind: not implement yet"); + lsp_runtime_error("RenameFile::kind: not implemented yet"); return *this; } @@ -11114,7 +11100,7 @@ auto RenameFile::annotationId( repr_->erase("annotationId"); return *this; } - lsp_runtime_error("RenameFile::annotationId: not implement yet"); + lsp_runtime_error("RenameFile::annotationId: not implemented yet"); return *this; } @@ -11162,7 +11148,7 @@ auto DeleteFile::annotationId() const } auto DeleteFile::kind(std::string kind) -> DeleteFile& { - lsp_runtime_error("DeleteFile::kind: not implement yet"); + lsp_runtime_error("DeleteFile::kind: not implemented yet"); return *this; } @@ -11187,7 +11173,7 @@ auto DeleteFile::annotationId( repr_->erase("annotationId"); return *this; } - lsp_runtime_error("DeleteFile::annotationId: not implement yet"); + lsp_runtime_error("DeleteFile::annotationId: not implemented yet"); return *this; } @@ -11673,7 +11659,7 @@ MarkupContent::operator bool() const { auto MarkupContent::kind() const -> MarkupKind { auto& value = (*repr_)["kind"]; - lsp_runtime_error("MarkupContent::kind: not implement yet"); + lsp_runtime_error("MarkupContent::kind: not implemented yet"); } auto MarkupContent::value() const -> std::string { @@ -11685,7 +11671,7 @@ auto MarkupContent::value() const -> std::string { } auto MarkupContent::kind(MarkupKind kind) -> MarkupContent& { - lsp_runtime_error("MarkupContent::kind: not implement yet"); + lsp_runtime_error("MarkupContent::kind: not implemented yet"); return *this; } @@ -11797,7 +11783,7 @@ auto RelatedFullDocumentDiagnosticReport::relatedDocuments( return *this; } lsp_runtime_error( - "RelatedFullDocumentDiagnosticReport::relatedDocuments: not implement " + "RelatedFullDocumentDiagnosticReport::relatedDocuments: not implemented " "yet"); return *this; } @@ -11805,7 +11791,7 @@ auto RelatedFullDocumentDiagnosticReport::relatedDocuments( auto RelatedFullDocumentDiagnosticReport::kind(std::string kind) -> RelatedFullDocumentDiagnosticReport& { lsp_runtime_error( - "RelatedFullDocumentDiagnosticReport::kind: not implement yet"); + "RelatedFullDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -11822,8 +11808,7 @@ auto RelatedFullDocumentDiagnosticReport::resultId( auto RelatedFullDocumentDiagnosticReport::items(Vector items) -> RelatedFullDocumentDiagnosticReport& { - lsp_runtime_error( - "RelatedFullDocumentDiagnosticReport::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -11876,14 +11861,14 @@ auto RelatedUnchangedDocumentDiagnosticReport::relatedDocuments( } lsp_runtime_error( "RelatedUnchangedDocumentDiagnosticReport::relatedDocuments: not " - "implement yet"); + "implemented yet"); return *this; } auto RelatedUnchangedDocumentDiagnosticReport::kind(std::string kind) -> RelatedUnchangedDocumentDiagnosticReport& { lsp_runtime_error( - "RelatedUnchangedDocumentDiagnosticReport::kind: not implement yet"); + "RelatedUnchangedDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -11929,7 +11914,7 @@ auto FullDocumentDiagnosticReport::items() const -> Vector { auto FullDocumentDiagnosticReport::kind(std::string kind) -> FullDocumentDiagnosticReport& { - lsp_runtime_error("FullDocumentDiagnosticReport::kind: not implement yet"); + lsp_runtime_error("FullDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -11945,7 +11930,7 @@ auto FullDocumentDiagnosticReport::resultId(std::optional resultId) auto FullDocumentDiagnosticReport::items(Vector items) -> FullDocumentDiagnosticReport& { - lsp_runtime_error("FullDocumentDiagnosticReport::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -11976,7 +11961,7 @@ auto UnchangedDocumentDiagnosticReport::resultId() const -> std::string { auto UnchangedDocumentDiagnosticReport::kind(std::string kind) -> UnchangedDocumentDiagnosticReport& { lsp_runtime_error( - "UnchangedDocumentDiagnosticReport::kind: not implement yet"); + "UnchangedDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -12165,12 +12150,12 @@ auto NotebookDocument::metadata(std::optional metadata) repr_->erase("metadata"); return *this; } - lsp_runtime_error("NotebookDocument::metadata: not implement yet"); + lsp_runtime_error("NotebookDocument::metadata: not implemented yet"); return *this; } auto NotebookDocument::cells(Vector cells) -> NotebookDocument& { - lsp_runtime_error("NotebookDocument::cells: not implement yet"); + (*repr_)["cells"] = std::move(cells); return *this; } @@ -12194,7 +12179,7 @@ auto TextDocumentItem::uri() const -> std::string { auto TextDocumentItem::languageId() const -> LanguageKind { auto& value = (*repr_)["languageId"]; - lsp_runtime_error("TextDocumentItem::languageId: not implement yet"); + lsp_runtime_error("TextDocumentItem::languageId: not implemented yet"); } auto TextDocumentItem::version() const -> int { @@ -12220,7 +12205,7 @@ auto TextDocumentItem::uri(std::string uri) -> TextDocumentItem& { auto TextDocumentItem::languageId(LanguageKind languageId) -> TextDocumentItem& { - lsp_runtime_error("TextDocumentItem::languageId: not implement yet"); + lsp_runtime_error("TextDocumentItem::languageId: not implemented yet"); return *this; } @@ -12264,8 +12249,7 @@ auto NotebookDocumentSyncOptions::notebookSelector( Vector> notebookSelector) -> NotebookDocumentSyncOptions& { - lsp_runtime_error( - "NotebookDocumentSyncOptions::notebookSelector: not implement yet"); + (*repr_)["notebookSelector"] = std::move(notebookSelector); return *this; } @@ -12343,7 +12327,8 @@ auto NotebookDocumentChangeEvent::metadata(std::optional metadata) repr_->erase("metadata"); return *this; } - lsp_runtime_error("NotebookDocumentChangeEvent::metadata: not implement yet"); + lsp_runtime_error( + "NotebookDocumentChangeEvent::metadata: not implemented yet"); return *this; } @@ -12442,7 +12427,7 @@ auto StringValue::value() const -> std::string { } auto StringValue::kind(std::string kind) -> StringValue& { - lsp_runtime_error("StringValue::kind: not implement yet"); + lsp_runtime_error("StringValue::kind: not implemented yet"); return *this; } @@ -12491,7 +12476,7 @@ auto TextDocumentContentOptions::schemes() const -> Vector { auto TextDocumentContentOptions::schemes(Vector schemes) -> TextDocumentContentOptions& { - lsp_runtime_error("TextDocumentContentOptions::schemes: not implement yet"); + (*repr_)["schemes"] = std::move(schemes); return *this; } @@ -12543,7 +12528,7 @@ auto Registration::registerOptions(std::optional registerOptions) repr_->erase("registerOptions"); return *this; } - lsp_runtime_error("Registration::registerOptions: not implement yet"); + lsp_runtime_error("Registration::registerOptions: not implemented yet"); return *this; } @@ -12660,7 +12645,7 @@ auto _InitializeParams::trace() const -> std::optional { auto& value = (*repr_)["trace"]; - lsp_runtime_error("_InitializeParams::trace: not implement yet"); + lsp_runtime_error("_InitializeParams::trace: not implemented yet"); } auto _InitializeParams::workDoneToken() const -> std::optional { @@ -12771,7 +12756,7 @@ auto _InitializeParams::initializationOptions( return *this; } lsp_runtime_error( - "_InitializeParams::initializationOptions: not implement yet"); + "_InitializeParams::initializationOptions: not implemented yet"); return *this; } @@ -12781,7 +12766,7 @@ auto _InitializeParams::trace(std::optional trace) repr_->erase("trace"); return *this; } - lsp_runtime_error("_InitializeParams::trace: not implement yet"); + lsp_runtime_error("_InitializeParams::trace: not implemented yet"); return *this; } @@ -12791,7 +12776,7 @@ auto _InitializeParams::workDoneToken( repr_->erase("workDoneToken"); return *this; } - lsp_runtime_error("_InitializeParams::workDoneToken: not implement yet"); + lsp_runtime_error("_InitializeParams::workDoneToken: not implemented yet"); return *this; } @@ -12825,9 +12810,7 @@ auto WorkspaceFoldersInitializeParams::workspaceFolders( json* repr_; void operator()(Vector workspaceFolders) { - lsp_runtime_error( - "WorkspaceFoldersInitializeParams::workspaceFolders: not implement " - "yet"); + (*repr_)["workspaceFolders"] = std::move(workspaceFolders); } void operator()(std::nullptr_t workspaceFolders) { @@ -12851,7 +12834,8 @@ auto ServerCapabilities::positionEncoding() const auto& value = (*repr_)["positionEncoding"]; - lsp_runtime_error("ServerCapabilities::positionEncoding: not implement yet"); + lsp_runtime_error( + "ServerCapabilities::positionEncoding: not implemented yet"); } auto ServerCapabilities::textDocumentSync() const -> std::optional< @@ -13302,7 +13286,8 @@ auto ServerCapabilities::positionEncoding( repr_->erase("positionEncoding"); return *this; } - lsp_runtime_error("ServerCapabilities::positionEncoding: not implement yet"); + lsp_runtime_error( + "ServerCapabilities::positionEncoding: not implemented yet"); return *this; } @@ -14135,7 +14120,7 @@ auto ServerCapabilities::experimental(std::optional experimental) repr_->erase("experimental"); return *this; } - lsp_runtime_error("ServerCapabilities::experimental: not implement yet"); + lsp_runtime_error("ServerCapabilities::experimental: not implemented yet"); return *this; } @@ -14293,7 +14278,7 @@ auto FileSystemWatcher::kind() const -> std::optional { auto FileSystemWatcher::globPattern(GlobPattern globPattern) -> FileSystemWatcher& { - lsp_runtime_error("FileSystemWatcher::globPattern: not implement yet"); + lsp_runtime_error("FileSystemWatcher::globPattern: not implemented yet"); return *this; } @@ -14459,7 +14444,7 @@ auto Diagnostic::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("Diagnostic::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -14470,7 +14455,7 @@ auto Diagnostic::relatedInformation( repr_->erase("relatedInformation"); return *this; } - lsp_runtime_error("Diagnostic::relatedInformation: not implement yet"); + (*repr_)["relatedInformation"] = std::move(relatedInformation.value()); return *this; } @@ -14479,7 +14464,7 @@ auto Diagnostic::data(std::optional data) -> Diagnostic& { repr_->erase("data"); return *this; } - lsp_runtime_error("Diagnostic::data: not implement yet"); + lsp_runtime_error("Diagnostic::data: not implemented yet"); return *this; } @@ -14672,8 +14657,7 @@ auto CompletionItemDefaults::commitCharacters( repr_->erase("commitCharacters"); return *this; } - lsp_runtime_error( - "CompletionItemDefaults::commitCharacters: not implement yet"); + (*repr_)["commitCharacters"] = std::move(commitCharacters.value()); return *this; } @@ -14727,7 +14711,7 @@ auto CompletionItemDefaults::data(std::optional data) repr_->erase("data"); return *this; } - lsp_runtime_error("CompletionItemDefaults::data: not implement yet"); + lsp_runtime_error("CompletionItemDefaults::data: not implemented yet"); return *this; } @@ -14834,7 +14818,7 @@ auto CompletionOptions::triggerCharacters( repr_->erase("triggerCharacters"); return *this; } - lsp_runtime_error("CompletionOptions::triggerCharacters: not implement yet"); + (*repr_)["triggerCharacters"] = std::move(triggerCharacters.value()); return *this; } @@ -14845,8 +14829,7 @@ auto CompletionOptions::allCommitCharacters( repr_->erase("allCommitCharacters"); return *this; } - lsp_runtime_error( - "CompletionOptions::allCommitCharacters: not implement yet"); + (*repr_)["allCommitCharacters"] = std::move(allCommitCharacters.value()); return *this; } @@ -15066,7 +15049,7 @@ auto SignatureInformation::parameters( repr_->erase("parameters"); return *this; } - lsp_runtime_error("SignatureInformation::parameters: not implement yet"); + (*repr_)["parameters"] = std::move(parameters.value()); return *this; } @@ -15137,8 +15120,7 @@ auto SignatureHelpOptions::triggerCharacters( repr_->erase("triggerCharacters"); return *this; } - lsp_runtime_error( - "SignatureHelpOptions::triggerCharacters: not implement yet"); + (*repr_)["triggerCharacters"] = std::move(triggerCharacters.value()); return *this; } @@ -15149,8 +15131,7 @@ auto SignatureHelpOptions::retriggerCharacters( repr_->erase("retriggerCharacters"); return *this; } - lsp_runtime_error( - "SignatureHelpOptions::retriggerCharacters: not implement yet"); + (*repr_)["retriggerCharacters"] = std::move(retriggerCharacters.value()); return *this; } @@ -15316,7 +15297,7 @@ auto BaseSymbolInformation::tags(std::optional> tags) repr_->erase("tags"); return *this; } - lsp_runtime_error("BaseSymbolInformation::tags: not implement yet"); + (*repr_)["tags"] = std::move(tags.value()); return *this; } @@ -15408,7 +15389,7 @@ auto CodeActionContext::triggerKind() const auto CodeActionContext::diagnostics(Vector diagnostics) -> CodeActionContext& { - lsp_runtime_error("CodeActionContext::diagnostics: not implement yet"); + (*repr_)["diagnostics"] = std::move(diagnostics); return *this; } @@ -15418,7 +15399,7 @@ auto CodeActionContext::only(std::optional> only) repr_->erase("only"); return *this; } - lsp_runtime_error("CodeActionContext::only: not implement yet"); + (*repr_)["only"] = std::move(only.value()); return *this; } @@ -15503,7 +15484,7 @@ auto CodeActionOptions::codeActionKinds( repr_->erase("codeActionKinds"); return *this; } - lsp_runtime_error("CodeActionOptions::codeActionKinds: not implement yet"); + (*repr_)["codeActionKinds"] = std::move(codeActionKinds.value()); return *this; } @@ -15514,7 +15495,7 @@ auto CodeActionOptions::documentation( repr_->erase("documentation"); return *this; } - lsp_runtime_error("CodeActionOptions::documentation: not implement yet"); + (*repr_)["documentation"] = std::move(documentation.value()); return *this; } @@ -15897,9 +15878,7 @@ auto DocumentOnTypeFormattingOptions::moreTriggerCharacter( repr_->erase("moreTriggerCharacter"); return *this; } - lsp_runtime_error( - "DocumentOnTypeFormattingOptions::moreTriggerCharacter: not implement " - "yet"); + (*repr_)["moreTriggerCharacter"] = std::move(moreTriggerCharacter.value()); return *this; } @@ -16025,7 +16004,7 @@ auto ExecuteCommandOptions::workDoneProgress() const -> std::optional { auto ExecuteCommandOptions::commands(Vector commands) -> ExecuteCommandOptions& { - lsp_runtime_error("ExecuteCommandOptions::commands: not implement yet"); + (*repr_)["commands"] = std::move(commands); return *this; } @@ -16087,13 +16066,13 @@ auto SemanticTokensLegend::tokenModifiers() const -> Vector { auto SemanticTokensLegend::tokenTypes(Vector tokenTypes) -> SemanticTokensLegend& { - lsp_runtime_error("SemanticTokensLegend::tokenTypes: not implement yet"); + (*repr_)["tokenTypes"] = std::move(tokenTypes); return *this; } auto SemanticTokensLegend::tokenModifiers(Vector tokenModifiers) -> SemanticTokensLegend& { - lsp_runtime_error("SemanticTokensLegend::tokenModifiers: not implement yet"); + (*repr_)["tokenModifiers"] = std::move(tokenModifiers); return *this; } @@ -16204,7 +16183,7 @@ auto AnnotatedTextEdit::newText() const -> std::string { auto AnnotatedTextEdit::annotationId(ChangeAnnotationIdentifier annotationId) -> AnnotatedTextEdit& { - lsp_runtime_error("AnnotatedTextEdit::annotationId: not implement yet"); + lsp_runtime_error("AnnotatedTextEdit::annotationId: not implemented yet"); return *this; } @@ -16265,7 +16244,7 @@ auto SnippetTextEdit::annotationId( repr_->erase("annotationId"); return *this; } - lsp_runtime_error("SnippetTextEdit::annotationId: not implement yet"); + lsp_runtime_error("SnippetTextEdit::annotationId: not implemented yet"); return *this; } @@ -16306,7 +16285,7 @@ auto ResourceOperation::annotationId( repr_->erase("annotationId"); return *this; } - lsp_runtime_error("ResourceOperation::annotationId: not implement yet"); + lsp_runtime_error("ResourceOperation::annotationId: not implemented yet"); return *this; } @@ -16465,7 +16444,7 @@ auto FileOperationPattern::matches() const auto& value = (*repr_)["matches"]; - lsp_runtime_error("FileOperationPattern::matches: not implement yet"); + lsp_runtime_error("FileOperationPattern::matches: not implemented yet"); } auto FileOperationPattern::options() const @@ -16488,7 +16467,7 @@ auto FileOperationPattern::matches( repr_->erase("matches"); return *this; } - lsp_runtime_error("FileOperationPattern::matches: not implement yet"); + lsp_runtime_error("FileOperationPattern::matches: not implemented yet"); return *this; } @@ -16586,7 +16565,7 @@ auto WorkspaceFullDocumentDiagnosticReport::version( auto WorkspaceFullDocumentDiagnosticReport::kind(std::string kind) -> WorkspaceFullDocumentDiagnosticReport& { lsp_runtime_error( - "WorkspaceFullDocumentDiagnosticReport::kind: not implement yet"); + "WorkspaceFullDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -16603,8 +16582,7 @@ auto WorkspaceFullDocumentDiagnosticReport::resultId( auto WorkspaceFullDocumentDiagnosticReport::items(Vector items) -> WorkspaceFullDocumentDiagnosticReport& { - lsp_runtime_error( - "WorkspaceFullDocumentDiagnosticReport::items: not implement yet"); + (*repr_)["items"] = std::move(items); return *this; } @@ -16681,7 +16659,7 @@ auto WorkspaceUnchangedDocumentDiagnosticReport::version( auto WorkspaceUnchangedDocumentDiagnosticReport::kind(std::string kind) -> WorkspaceUnchangedDocumentDiagnosticReport& { lsp_runtime_error( - "WorkspaceUnchangedDocumentDiagnosticReport::kind: not implement yet"); + "WorkspaceUnchangedDocumentDiagnosticReport::kind: not implemented yet"); return *this; } @@ -16745,7 +16723,7 @@ auto NotebookCell::metadata(std::optional metadata) repr_->erase("metadata"); return *this; } - lsp_runtime_error("NotebookCell::metadata: not implement yet"); + lsp_runtime_error("NotebookCell::metadata: not implemented yet"); return *this; } @@ -16798,7 +16776,7 @@ auto NotebookDocumentFilterWithNotebook::notebook( void operator()(NotebookDocumentFilter notebook) { lsp_runtime_error( - "NotebookDocumentFilterWithNotebook::notebook: not implement yet"); + "NotebookDocumentFilterWithNotebook::notebook: not implemented yet"); } } v{repr_}; @@ -16814,8 +16792,7 @@ auto NotebookDocumentFilterWithNotebook::cells( repr_->erase("cells"); return *this; } - lsp_runtime_error( - "NotebookDocumentFilterWithNotebook::cells: not implement yet"); + (*repr_)["cells"] = std::move(cells.value()); return *this; } @@ -16863,7 +16840,7 @@ auto NotebookDocumentFilterWithCells::notebook( void operator()(NotebookDocumentFilter notebook) { lsp_runtime_error( - "NotebookDocumentFilterWithCells::notebook: not implement yet"); + "NotebookDocumentFilterWithCells::notebook: not implemented yet"); } } v{repr_}; @@ -16874,8 +16851,7 @@ auto NotebookDocumentFilterWithCells::notebook( auto NotebookDocumentFilterWithCells::cells(Vector cells) -> NotebookDocumentFilterWithCells& { - lsp_runtime_error( - "NotebookDocumentFilterWithCells::cells: not implement yet"); + (*repr_)["cells"] = std::move(cells); return *this; } @@ -16930,7 +16906,7 @@ auto NotebookDocumentCellChanges::data(std::optional> data) repr_->erase("data"); return *this; } - lsp_runtime_error("NotebookDocumentCellChanges::data: not implement yet"); + (*repr_)["data"] = std::move(data.value()); return *this; } @@ -16941,8 +16917,7 @@ auto NotebookDocumentCellChanges::textContent( repr_->erase("textContent"); return *this; } - lsp_runtime_error( - "NotebookDocumentCellChanges::textContent: not implement yet"); + (*repr_)["textContent"] = std::move(textContent.value()); return *this; } @@ -17133,7 +17108,7 @@ auto ClientCapabilities::experimental(std::optional experimental) repr_->erase("experimental"); return *this; } - lsp_runtime_error("ClientCapabilities::experimental: not implement yet"); + lsp_runtime_error("ClientCapabilities::experimental: not implemented yet"); return *this; } @@ -17599,7 +17574,7 @@ auto ParameterInformation::label( void operator()(std::string label) { (*repr_)["label"] = std::move(label); } void operator()(std::tuple label) { - lsp_runtime_error("ParameterInformation::label: not implement yet"); + lsp_runtime_error("ParameterInformation::label: not implemented yet"); } } v{repr_}; @@ -17643,7 +17618,7 @@ CodeActionKindDocumentation::operator bool() const { auto CodeActionKindDocumentation::kind() const -> CodeActionKind { auto& value = (*repr_)["kind"]; - lsp_runtime_error("CodeActionKindDocumentation::kind: not implement yet"); + lsp_runtime_error("CodeActionKindDocumentation::kind: not implemented yet"); } auto CodeActionKindDocumentation::command() const -> Command { @@ -17654,7 +17629,7 @@ auto CodeActionKindDocumentation::command() const -> Command { auto CodeActionKindDocumentation::kind(CodeActionKind kind) -> CodeActionKindDocumentation& { - lsp_runtime_error("CodeActionKindDocumentation::kind: not implement yet"); + lsp_runtime_error("CodeActionKindDocumentation::kind: not implemented yet"); return *this; } @@ -17704,7 +17679,7 @@ auto NotebookCellTextDocumentFilter::notebook( void operator()(NotebookDocumentFilter notebook) { lsp_runtime_error( - "NotebookCellTextDocumentFilter::notebook: not implement yet"); + "NotebookCellTextDocumentFilter::notebook: not implemented yet"); } } v{repr_}; @@ -17854,8 +17829,7 @@ auto NotebookDocumentCellChangeStructure::didOpen( repr_->erase("didOpen"); return *this; } - lsp_runtime_error( - "NotebookDocumentCellChangeStructure::didOpen: not implement yet"); + (*repr_)["didOpen"] = std::move(didOpen.value()); return *this; } @@ -17866,8 +17840,7 @@ auto NotebookDocumentCellChangeStructure::didClose( repr_->erase("didClose"); return *this; } - lsp_runtime_error( - "NotebookDocumentCellChangeStructure::didClose: not implement yet"); + (*repr_)["didClose"] = std::move(didClose.value()); return *this; } @@ -17903,8 +17876,7 @@ auto NotebookDocumentCellContentChanges::document( auto NotebookDocumentCellContentChanges::changes( Vector changes) -> NotebookDocumentCellContentChanges& { - lsp_runtime_error( - "NotebookDocumentCellContentChanges::changes: not implement yet"); + (*repr_)["changes"] = std::move(changes); return *this; } @@ -19046,8 +19018,7 @@ auto GeneralClientCapabilities::positionEncodings( repr_->erase("positionEncodings"); return *this; } - lsp_runtime_error( - "GeneralClientCapabilities::positionEncodings: not implement yet"); + (*repr_)["positionEncodings"] = std::move(positionEncodings.value()); return *this; } @@ -19284,7 +19255,7 @@ auto RelativePattern::baseUri( } auto RelativePattern::pattern(Pattern pattern) -> RelativePattern& { - lsp_runtime_error("RelativePattern::pattern: not implement yet"); + lsp_runtime_error("RelativePattern::pattern: not implemented yet"); return *this; } @@ -19346,7 +19317,7 @@ auto TextDocumentFilterLanguage::pattern(std::optional pattern) repr_->erase("pattern"); return *this; } - lsp_runtime_error("TextDocumentFilterLanguage::pattern: not implement yet"); + lsp_runtime_error("TextDocumentFilterLanguage::pattern: not implemented yet"); return *this; } @@ -19408,7 +19379,7 @@ auto TextDocumentFilterScheme::pattern(std::optional pattern) repr_->erase("pattern"); return *this; } - lsp_runtime_error("TextDocumentFilterScheme::pattern: not implement yet"); + lsp_runtime_error("TextDocumentFilterScheme::pattern: not implemented yet"); return *this; } @@ -19470,7 +19441,7 @@ auto TextDocumentFilterPattern::scheme(std::optional scheme) auto TextDocumentFilterPattern::pattern(GlobPattern pattern) -> TextDocumentFilterPattern& { - lsp_runtime_error("TextDocumentFilterPattern::pattern: not implement yet"); + lsp_runtime_error("TextDocumentFilterPattern::pattern: not implemented yet"); return *this; } @@ -19535,7 +19506,7 @@ auto NotebookDocumentFilterNotebookType::pattern( return *this; } lsp_runtime_error( - "NotebookDocumentFilterNotebookType::pattern: not implement yet"); + "NotebookDocumentFilterNotebookType::pattern: not implemented yet"); return *this; } @@ -19599,7 +19570,8 @@ auto NotebookDocumentFilterScheme::pattern(std::optional pattern) repr_->erase("pattern"); return *this; } - lsp_runtime_error("NotebookDocumentFilterScheme::pattern: not implement yet"); + lsp_runtime_error( + "NotebookDocumentFilterScheme::pattern: not implemented yet"); return *this; } @@ -19664,7 +19636,7 @@ auto NotebookDocumentFilterPattern::scheme(std::optional scheme) auto NotebookDocumentFilterPattern::pattern(GlobPattern pattern) -> NotebookDocumentFilterPattern& { lsp_runtime_error( - "NotebookDocumentFilterPattern::pattern: not implement yet"); + "NotebookDocumentFilterPattern::pattern: not implemented yet"); return *this; } @@ -19718,7 +19690,7 @@ auto NotebookCellArrayChange::cells(std::optional> cells) repr_->erase("cells"); return *this; } - lsp_runtime_error("NotebookCellArrayChange::cells: not implement yet"); + (*repr_)["cells"] = std::move(cells.value()); return *this; } @@ -19755,7 +19727,7 @@ auto WorkspaceEditClientCapabilities::failureHandling() const auto& value = (*repr_)["failureHandling"]; lsp_runtime_error( - "WorkspaceEditClientCapabilities::failureHandling: not implement yet"); + "WorkspaceEditClientCapabilities::failureHandling: not implemented yet"); } auto WorkspaceEditClientCapabilities::normalizesLineEndings() const @@ -19817,8 +19789,7 @@ auto WorkspaceEditClientCapabilities::resourceOperations( repr_->erase("resourceOperations"); return *this; } - lsp_runtime_error( - "WorkspaceEditClientCapabilities::resourceOperations: not implement yet"); + (*repr_)["resourceOperations"] = std::move(resourceOperations.value()); return *this; } @@ -19830,7 +19801,7 @@ auto WorkspaceEditClientCapabilities::failureHandling( return *this; } lsp_runtime_error( - "WorkspaceEditClientCapabilities::failureHandling: not implement yet"); + "WorkspaceEditClientCapabilities::failureHandling: not implemented yet"); return *this; } @@ -20696,8 +20667,7 @@ auto HoverClientCapabilities::contentFormat( repr_->erase("contentFormat"); return *this; } - lsp_runtime_error( - "HoverClientCapabilities::contentFormat: not implement yet"); + (*repr_)["contentFormat"] = std::move(contentFormat.value()); return *this; } @@ -22016,22 +21986,19 @@ auto SemanticTokensClientCapabilities::requests( auto SemanticTokensClientCapabilities::tokenTypes( Vector tokenTypes) -> SemanticTokensClientCapabilities& { - lsp_runtime_error( - "SemanticTokensClientCapabilities::tokenTypes: not implement yet"); + (*repr_)["tokenTypes"] = std::move(tokenTypes); return *this; } auto SemanticTokensClientCapabilities::tokenModifiers( Vector tokenModifiers) -> SemanticTokensClientCapabilities& { - lsp_runtime_error( - "SemanticTokensClientCapabilities::tokenModifiers: not implement yet"); + (*repr_)["tokenModifiers"] = std::move(tokenModifiers); return *this; } auto SemanticTokensClientCapabilities::formats(Vector formats) -> SemanticTokensClientCapabilities& { - lsp_runtime_error( - "SemanticTokensClientCapabilities::formats: not implement yet"); + (*repr_)["formats"] = std::move(formats); return *this; } @@ -22518,8 +22485,7 @@ auto StaleRequestSupportOptions::cancel(bool cancel) auto StaleRequestSupportOptions::retryOnContentModified( Vector retryOnContentModified) -> StaleRequestSupportOptions& { - lsp_runtime_error( - "StaleRequestSupportOptions::retryOnContentModified: not implement yet"); + (*repr_)["retryOnContentModified"] = std::move(retryOnContentModified); return *this; } @@ -22553,7 +22519,7 @@ auto RegularExpressionsClientCapabilities::engine( RegularExpressionEngineKind engine) -> RegularExpressionsClientCapabilities& { lsp_runtime_error( - "RegularExpressionsClientCapabilities::engine: not implement yet"); + "RegularExpressionsClientCapabilities::engine: not implemented yet"); return *this; } @@ -22625,8 +22591,7 @@ auto MarkdownClientCapabilities::allowedTags( repr_->erase("allowedTags"); return *this; } - lsp_runtime_error( - "MarkdownClientCapabilities::allowedTags: not implement yet"); + (*repr_)["allowedTags"] = std::move(allowedTags.value()); return *this; } @@ -22677,7 +22642,7 @@ auto ClientSymbolKindOptions::valueSet( repr_->erase("valueSet"); return *this; } - lsp_runtime_error("ClientSymbolKindOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet.value()); return *this; } @@ -22696,7 +22661,7 @@ auto ClientSymbolTagOptions::valueSet() const -> Vector { auto ClientSymbolTagOptions::valueSet(Vector valueSet) -> ClientSymbolTagOptions& { - lsp_runtime_error("ClientSymbolTagOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } @@ -22715,8 +22680,7 @@ auto ClientSymbolResolveOptions::properties() const -> Vector { auto ClientSymbolResolveOptions::properties(Vector properties) -> ClientSymbolResolveOptions& { - lsp_runtime_error( - "ClientSymbolResolveOptions::properties: not implement yet"); + (*repr_)["properties"] = std::move(properties); return *this; } @@ -22857,8 +22821,7 @@ auto ClientCompletionItemOptions::documentationFormat( repr_->erase("documentationFormat"); return *this; } - lsp_runtime_error( - "ClientCompletionItemOptions::documentationFormat: not implement yet"); + (*repr_)["documentationFormat"] = std::move(documentationFormat.value()); return *this; } @@ -22957,8 +22920,7 @@ auto ClientCompletionItemOptionsKind::valueSet( repr_->erase("valueSet"); return *this; } - lsp_runtime_error( - "ClientCompletionItemOptionsKind::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet.value()); return *this; } @@ -22995,8 +22957,7 @@ auto CompletionListCapabilities::itemDefaults( repr_->erase("itemDefaults"); return *this; } - lsp_runtime_error( - "CompletionListCapabilities::itemDefaults: not implement yet"); + (*repr_)["itemDefaults"] = std::move(itemDefaults.value()); return *this; } @@ -23063,9 +23024,7 @@ auto ClientSignatureInformationOptions::documentationFormat( repr_->erase("documentationFormat"); return *this; } - lsp_runtime_error( - "ClientSignatureInformationOptions::documentationFormat: not implement " - "yet"); + (*repr_)["documentationFormat"] = std::move(documentationFormat.value()); return *this; } @@ -23139,8 +23098,7 @@ auto ClientCodeActionResolveOptions::properties() const -> Vector { auto ClientCodeActionResolveOptions::properties(Vector properties) -> ClientCodeActionResolveOptions& { - lsp_runtime_error( - "ClientCodeActionResolveOptions::properties: not implement yet"); + (*repr_)["properties"] = std::move(properties); return *this; } @@ -23159,7 +23117,7 @@ auto CodeActionTagOptions::valueSet() const -> Vector { auto CodeActionTagOptions::valueSet(Vector valueSet) -> CodeActionTagOptions& { - lsp_runtime_error("CodeActionTagOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } @@ -23178,8 +23136,7 @@ auto ClientCodeLensResolveOptions::properties() const -> Vector { auto ClientCodeLensResolveOptions::properties(Vector properties) -> ClientCodeLensResolveOptions& { - lsp_runtime_error( - "ClientCodeLensResolveOptions::properties: not implement yet"); + (*repr_)["properties"] = std::move(properties); return *this; } @@ -23205,8 +23162,7 @@ auto ClientFoldingRangeKindOptions::valueSet( repr_->erase("valueSet"); return *this; } - lsp_runtime_error( - "ClientFoldingRangeKindOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet.value()); return *this; } @@ -23369,7 +23325,7 @@ auto ClientSemanticTokensRequestOptions::range( void operator()(json range) { lsp_runtime_error( - "ClientSemanticTokensRequestOptions::range: not implement yet"); + "ClientSemanticTokensRequestOptions::range: not implemented yet"); } } v{repr_}; @@ -23416,8 +23372,7 @@ auto ClientInlayHintResolveOptions::properties() const -> Vector { auto ClientInlayHintResolveOptions::properties(Vector properties) -> ClientInlayHintResolveOptions& { - lsp_runtime_error( - "ClientInlayHintResolveOptions::properties: not implement yet"); + (*repr_)["properties"] = std::move(properties); return *this; } @@ -23464,7 +23419,7 @@ auto CompletionItemTagOptions::valueSet() const -> Vector { auto CompletionItemTagOptions::valueSet(Vector valueSet) -> CompletionItemTagOptions& { - lsp_runtime_error("CompletionItemTagOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } @@ -23484,8 +23439,7 @@ auto ClientCompletionItemResolveOptions::properties() const auto ClientCompletionItemResolveOptions::properties( Vector properties) -> ClientCompletionItemResolveOptions& { - lsp_runtime_error( - "ClientCompletionItemResolveOptions::properties: not implement yet"); + (*repr_)["properties"] = std::move(properties); return *this; } @@ -23506,8 +23460,7 @@ auto ClientCompletionItemInsertTextModeOptions::valueSet() const auto ClientCompletionItemInsertTextModeOptions::valueSet( Vector valueSet) -> ClientCompletionItemInsertTextModeOptions& { - lsp_runtime_error( - "ClientCompletionItemInsertTextModeOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } @@ -23553,7 +23506,7 @@ auto ClientCodeActionKindOptions::valueSet() const -> Vector { auto ClientCodeActionKindOptions::valueSet(Vector valueSet) -> ClientCodeActionKindOptions& { - lsp_runtime_error("ClientCodeActionKindOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } @@ -23572,7 +23525,7 @@ auto ClientDiagnosticsTagOptions::valueSet() const -> Vector { auto ClientDiagnosticsTagOptions::valueSet(Vector valueSet) -> ClientDiagnosticsTagOptions& { - lsp_runtime_error("ClientDiagnosticsTagOptions::valueSet: not implement yet"); + (*repr_)["valueSet"] = std::move(valueSet); return *this; } diff --git a/src/lsp/cxx/lsp/types.h b/src/lsp/cxx/lsp/types.h index 87144c52..0f92584f 100644 --- a/src/lsp/cxx/lsp/types.h +++ b/src/lsp/cxx/lsp/types.h @@ -36,8 +36,20 @@ class ImplementationParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> ImplementationParams&; @@ -74,10 +86,28 @@ class ImplementationRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> ImplementationRegistrationOptions&; @@ -100,8 +130,20 @@ class TypeDefinitionParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> TypeDefinitionParams&; @@ -123,10 +165,28 @@ class TypeDefinitionRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> TypeDefinitionRegistrationOptions&; @@ -185,8 +245,20 @@ class DocumentColorParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentColorParams&; @@ -221,10 +293,28 @@ class DocumentColorRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentColorRegistrationOptions&; @@ -249,8 +339,20 @@ class ColorPresentationParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> ColorPresentationParams&; @@ -275,9 +377,21 @@ class ColorPresentation final : public LSPObject { [[nodiscard]] auto textEdit() const -> std::optional; + template + [[nodiscard]] auto textEdit() -> T { + auto& value = (*repr_)["textEdit"]; + return T(value); + } + [[nodiscard]] auto additionalTextEdits() const -> std::optional>; + template + [[nodiscard]] auto additionalTextEdits() -> T { + auto& value = (*repr_)["additionalTextEdits"]; + return T(value); + } + auto label(std::string label) -> ColorPresentation&; auto textEdit(std::optional textEdit) -> ColorPresentation&; @@ -294,6 +408,12 @@ class WorkDoneProgressOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> WorkDoneProgressOptions&; }; @@ -307,6 +427,12 @@ class TextDocumentRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> TextDocumentRegistrationOptions&; @@ -322,8 +448,20 @@ class FoldingRangeParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> FoldingRangeParams&; auto workDoneToken(std::optional workDoneToken) @@ -343,14 +481,38 @@ class FoldingRange final : public LSPObject { [[nodiscard]] auto startCharacter() const -> std::optional; + template + [[nodiscard]] auto startCharacter() -> T { + auto& value = (*repr_)["startCharacter"]; + return T(value); + } + [[nodiscard]] auto endLine() const -> long; [[nodiscard]] auto endCharacter() const -> std::optional; + template + [[nodiscard]] auto endCharacter() -> T { + auto& value = (*repr_)["endCharacter"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + [[nodiscard]] auto collapsedText() const -> std::optional; + template + [[nodiscard]] auto collapsedText() -> T { + auto& value = (*repr_)["collapsedText"]; + return T(value); + } + auto startLine(long startLine) -> FoldingRange&; auto startCharacter(std::optional startCharacter) -> FoldingRange&; @@ -373,10 +535,28 @@ class FoldingRangeRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> FoldingRangeRegistrationOptions&; @@ -399,8 +579,20 @@ class DeclarationParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DeclarationParams&; auto position(Position position) -> DeclarationParams&; @@ -420,11 +612,29 @@ class DeclarationRegistrationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DeclarationRegistrationOptions&; @@ -447,8 +657,20 @@ class SelectionRangeParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> SelectionRangeParams&; @@ -471,6 +693,12 @@ class SelectionRange final : public LSPObject { [[nodiscard]] auto parent() const -> std::optional; + template + [[nodiscard]] auto parent() -> T { + auto& value = (*repr_)["parent"]; + return T(value); + } + auto range(Range range) -> SelectionRange&; auto parent(std::optional parent) -> SelectionRange&; @@ -484,11 +712,29 @@ class SelectionRangeRegistrationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> SelectionRangeRegistrationOptions&; @@ -533,6 +779,12 @@ class CallHierarchyPrepareParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> CallHierarchyPrepareParams&; @@ -554,8 +806,20 @@ class CallHierarchyItem final : public LSPObject { [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto detail() const -> std::optional; + template + [[nodiscard]] auto detail() -> T { + auto& value = (*repr_)["detail"]; + return T(value); + } + [[nodiscard]] auto uri() const -> std::string; [[nodiscard]] auto range() const -> Range; @@ -564,6 +828,12 @@ class CallHierarchyItem final : public LSPObject { [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto name(std::string name) -> CallHierarchyItem&; auto kind(SymbolKind kind) -> CallHierarchyItem&; @@ -590,10 +860,28 @@ class CallHierarchyRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> CallHierarchyRegistrationOptions&; @@ -614,8 +902,20 @@ class CallHierarchyIncomingCallsParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto item(CallHierarchyItem item) -> CallHierarchyIncomingCallsParams&; auto workDoneToken(std::optional workDoneToken) @@ -650,8 +950,20 @@ class CallHierarchyOutgoingCallsParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto item(CallHierarchyItem item) -> CallHierarchyOutgoingCallsParams&; auto workDoneToken(std::optional workDoneToken) @@ -686,8 +998,20 @@ class SemanticTokensParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> SemanticTokensParams&; @@ -706,6 +1030,12 @@ class SemanticTokens final : public LSPObject { [[nodiscard]] auto resultId() const -> std::optional; + template + [[nodiscard]] auto resultId() -> T { + auto& value = (*repr_)["resultId"]; + return T(value); + } + [[nodiscard]] auto data() const -> Vector; auto resultId(std::optional resultId) -> SemanticTokens&; @@ -733,17 +1063,47 @@ class SemanticTokensRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto legend() const -> SemanticTokensLegend; [[nodiscard]] auto range() const -> std::optional>; + template + [[nodiscard]] auto range() -> T { + auto& value = (*repr_)["range"]; + return T(value); + } + [[nodiscard]] auto full() const -> std::optional>; + template + [[nodiscard]] auto full() -> T { + auto& value = (*repr_)["full"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> SemanticTokensRegistrationOptions&; @@ -775,8 +1135,20 @@ class SemanticTokensDeltaParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> SemanticTokensDeltaParams&; @@ -798,6 +1170,12 @@ class SemanticTokensDelta final : public LSPObject { [[nodiscard]] auto resultId() const -> std::optional; + template + [[nodiscard]] auto resultId() -> T { + auto& value = (*repr_)["resultId"]; + return T(value); + } + [[nodiscard]] auto edits() const -> Vector; auto resultId(std::optional resultId) -> SemanticTokensDelta&; @@ -829,8 +1207,20 @@ class SemanticTokensRangeParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> SemanticTokensRangeParams&; @@ -853,10 +1243,28 @@ class ShowDocumentParams final : public LSPObject { [[nodiscard]] auto external() const -> std::optional; + template + [[nodiscard]] auto external() -> T { + auto& value = (*repr_)["external"]; + return T(value); + } + [[nodiscard]] auto takeFocus() const -> std::optional; + template + [[nodiscard]] auto takeFocus() -> T { + auto& value = (*repr_)["takeFocus"]; + return T(value); + } + [[nodiscard]] auto selection() const -> std::optional; + template + [[nodiscard]] auto selection() -> T { + auto& value = (*repr_)["selection"]; + return T(value); + } + auto uri(std::string uri) -> ShowDocumentParams&; auto external(std::optional external) -> ShowDocumentParams&; @@ -889,6 +1297,12 @@ class LinkedEditingRangeParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> LinkedEditingRangeParams&; @@ -908,6 +1322,12 @@ class LinkedEditingRanges final : public LSPObject { [[nodiscard]] auto wordPattern() const -> std::optional; + template + [[nodiscard]] auto wordPattern() -> T { + auto& value = (*repr_)["wordPattern"]; + return T(value); + } + auto ranges(Vector ranges) -> LinkedEditingRanges&; auto wordPattern(std::optional wordPattern) @@ -923,10 +1343,28 @@ class LinkedEditingRangeRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> LinkedEditingRangeRegistrationOptions&; @@ -958,12 +1396,30 @@ class WorkspaceEdit final : public LSPObject { [[nodiscard]] auto changes() const -> std::optional>>; + template + [[nodiscard]] auto changes() -> T { + auto& value = (*repr_)["changes"]; + return T(value); + } + [[nodiscard]] auto documentChanges() const -> std::optional>>; + template + [[nodiscard]] auto documentChanges() -> T { + auto& value = (*repr_)["documentChanges"]; + return T(value); + } + [[nodiscard]] auto changeAnnotations() const -> std::optional>; + template + [[nodiscard]] auto changeAnnotations() -> T { + auto& value = (*repr_)["changeAnnotations"]; + return T(value); + } + auto changes(std::optional>> changes) -> WorkspaceEdit&; @@ -1023,8 +1479,20 @@ class MonikerParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> MonikerParams&; auto position(Position position) -> MonikerParams&; @@ -1050,6 +1518,12 @@ class Moniker final : public LSPObject { [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + auto scheme(std::string scheme) -> Moniker&; auto identifier(std::string identifier) -> Moniker&; @@ -1068,8 +1542,20 @@ class MonikerRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> MonikerRegistrationOptions&; @@ -1090,6 +1576,12 @@ class TypeHierarchyPrepareParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> TypeHierarchyPrepareParams&; @@ -1111,8 +1603,20 @@ class TypeHierarchyItem final : public LSPObject { [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto detail() const -> std::optional; + template + [[nodiscard]] auto detail() -> T { + auto& value = (*repr_)["detail"]; + return T(value); + } + [[nodiscard]] auto uri() const -> std::string; [[nodiscard]] auto range() const -> Range; @@ -1121,6 +1625,12 @@ class TypeHierarchyItem final : public LSPObject { [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto name(std::string name) -> TypeHierarchyItem&; auto kind(SymbolKind kind) -> TypeHierarchyItem&; @@ -1147,10 +1657,28 @@ class TypeHierarchyRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> TypeHierarchyRegistrationOptions&; @@ -1171,8 +1699,20 @@ class TypeHierarchySupertypesParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto item(TypeHierarchyItem item) -> TypeHierarchySupertypesParams&; auto workDoneToken(std::optional workDoneToken) @@ -1192,8 +1732,20 @@ class TypeHierarchySubtypesParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto item(TypeHierarchyItem item) -> TypeHierarchySubtypesParams&; auto workDoneToken(std::optional workDoneToken) @@ -1217,6 +1769,12 @@ class InlineValueParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> InlineValueParams&; auto range(Range range) -> InlineValueParams&; @@ -1235,11 +1793,29 @@ class InlineValueRegistrationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> InlineValueRegistrationOptions&; @@ -1262,6 +1838,12 @@ class InlayHintParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> InlayHintParams&; auto range(Range range) -> InlayHintParams&; @@ -1281,19 +1863,61 @@ class InlayHint final : public LSPObject { [[nodiscard]] auto label() const -> std::variant>; + template + [[nodiscard]] auto label() -> T { + auto& value = (*repr_)["label"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + [[nodiscard]] auto textEdits() const -> std::optional>; + template + [[nodiscard]] auto textEdits() -> T { + auto& value = (*repr_)["textEdits"]; + return T(value); + } + [[nodiscard]] auto tooltip() const -> std::optional>; + template + [[nodiscard]] auto tooltip() -> T { + auto& value = (*repr_)["tooltip"]; + return T(value); + } + [[nodiscard]] auto paddingLeft() const -> std::optional; + template + [[nodiscard]] auto paddingLeft() -> T { + auto& value = (*repr_)["paddingLeft"]; + return T(value); + } + [[nodiscard]] auto paddingRight() const -> std::optional; + template + [[nodiscard]] auto paddingRight() -> T { + auto& value = (*repr_)["paddingRight"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto position(Position position) -> InlayHint&; auto label(std::variant> label) @@ -1321,13 +1945,37 @@ class InlayHintRegistrationOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> InlayHintRegistrationOptions&; @@ -1351,12 +1999,36 @@ class DocumentDiagnosticParams final : public LSPObject { [[nodiscard]] auto identifier() const -> std::optional; + template + [[nodiscard]] auto identifier() -> T { + auto& value = (*repr_)["identifier"]; + return T(value); + } + [[nodiscard]] auto previousResultId() const -> std::optional; + template + [[nodiscard]] auto previousResultId() -> T { + auto& value = (*repr_)["previousResultId"]; + return T(value); + } + [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentDiagnosticParams&; @@ -1410,16 +2082,40 @@ class DiagnosticRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto identifier() const -> std::optional; + template + [[nodiscard]] auto identifier() -> T { + auto& value = (*repr_)["identifier"]; + return T(value); + } + [[nodiscard]] auto interFileDependencies() const -> bool; [[nodiscard]] auto workspaceDiagnostics() const -> bool; [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DiagnosticRegistrationOptions&; @@ -1447,12 +2143,30 @@ class WorkspaceDiagnosticParams final : public LSPObject { [[nodiscard]] auto identifier() const -> std::optional; + template + [[nodiscard]] auto identifier() -> T { + auto& value = (*repr_)["identifier"]; + return T(value); + } + [[nodiscard]] auto previousResultIds() const -> Vector; [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto identifier(std::optional identifier) -> WorkspaceDiagnosticParams&; @@ -1519,8 +2233,20 @@ class NotebookDocumentSyncRegistrationOptions final : public LSPObject { [[nodiscard]] auto save() const -> std::optional; + template + [[nodiscard]] auto save() -> T { + auto& value = (*repr_)["save"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto notebookSelector(Vector> notebookSelector) @@ -1595,6 +2321,12 @@ class InlineCompletionParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto context(InlineCompletionContext context) -> InlineCompletionParams&; auto textDocument(TextDocumentIdentifier textDocument) @@ -1626,12 +2358,36 @@ class InlineCompletionItem final : public LSPObject { [[nodiscard]] auto insertText() const -> std::variant; + template + [[nodiscard]] auto insertText() -> T { + auto& value = (*repr_)["insertText"]; + return T(value); + } + [[nodiscard]] auto filterText() const -> std::optional; + template + [[nodiscard]] auto filterText() -> T { + auto& value = (*repr_)["filterText"]; + return T(value); + } + [[nodiscard]] auto range() const -> std::optional; + template + [[nodiscard]] auto range() -> T { + auto& value = (*repr_)["range"]; + return T(value); + } + [[nodiscard]] auto command() const -> std::optional; + template + [[nodiscard]] auto command() -> T { + auto& value = (*repr_)["command"]; + return T(value); + } + auto insertText(std::variant insertText) -> InlineCompletionItem&; @@ -1651,11 +2407,29 @@ class InlineCompletionRegistrationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> InlineCompletionRegistrationOptions&; @@ -1699,9 +2473,22 @@ class TextDocumentContentRegistrationOptions final : public LSPObject { [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto schemes(Vector schemes) -> TextDocumentContentRegistrationOptions&; + auto schemes(std::vector schemes) + -> TextDocumentContentRegistrationOptions& { + auto& value = (*repr_)["schemes"]; + value = std::move(schemes); + return *this; + } + auto id(std::optional id) -> TextDocumentContentRegistrationOptions&; }; @@ -1748,27 +2535,81 @@ class InitializeParams final : public LSPObject { [[nodiscard]] auto processId() const -> std::variant; + template + [[nodiscard]] auto processId() -> T { + auto& value = (*repr_)["processId"]; + return T(value); + } + [[nodiscard]] auto clientInfo() const -> std::optional; + template + [[nodiscard]] auto clientInfo() -> T { + auto& value = (*repr_)["clientInfo"]; + return T(value); + } + [[nodiscard]] auto locale() const -> std::optional; + template + [[nodiscard]] auto locale() -> T { + auto& value = (*repr_)["locale"]; + return T(value); + } + [[nodiscard]] auto rootPath() const -> std::optional>; + template + [[nodiscard]] auto rootPath() -> T { + auto& value = (*repr_)["rootPath"]; + return T(value); + } + [[nodiscard]] auto rootUri() const -> std::variant; + template + [[nodiscard]] auto rootUri() -> T { + auto& value = (*repr_)["rootUri"]; + return T(value); + } + [[nodiscard]] auto capabilities() const -> ClientCapabilities; [[nodiscard]] auto initializationOptions() const -> std::optional; + template + [[nodiscard]] auto initializationOptions() -> T { + auto& value = (*repr_)["initializationOptions"]; + return T(value); + } + [[nodiscard]] auto trace() const -> std::optional; + template + [[nodiscard]] auto trace() -> T { + auto& value = (*repr_)["trace"]; + return T(value); + } + [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto workspaceFolders() const -> std::optional, std::nullptr_t>>; + template + [[nodiscard]] auto workspaceFolders() -> T { + auto& value = (*repr_)["workspaceFolders"]; + return T(value); + } + auto processId(std::variant processId) -> InitializeParams&; @@ -1808,6 +2649,12 @@ class InitializeResult final : public LSPObject { [[nodiscard]] auto serverInfo() const -> std::optional; + template + [[nodiscard]] auto serverInfo() -> T { + auto& value = (*repr_)["serverInfo"]; + return T(value); + } + auto capabilities(ServerCapabilities capabilities) -> InitializeResult&; auto serverInfo(std::optional serverInfo) -> InitializeResult&; @@ -1851,6 +2698,12 @@ class DidChangeConfigurationRegistrationOptions final : public LSPObject { [[nodiscard]] auto section() const -> std::optional>>; + template + [[nodiscard]] auto section() -> T { + auto& value = (*repr_)["section"]; + return T(value); + } + auto section( std::optional>> section) -> DidChangeConfigurationRegistrationOptions&; @@ -1884,6 +2737,12 @@ class ShowMessageRequestParams final : public LSPObject { [[nodiscard]] auto actions() const -> std::optional>; + template + [[nodiscard]] auto actions() -> T { + auto& value = (*repr_)["actions"]; + return T(value); + } + auto type(MessageType type) -> ShowMessageRequestParams&; auto message(std::string message) -> ShowMessageRequestParams&; @@ -1959,6 +2818,12 @@ class TextDocumentChangeRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + auto syncKind(TextDocumentSyncKind syncKind) -> TextDocumentChangeRegistrationOptions&; @@ -1989,6 +2854,12 @@ class DidSaveTextDocumentParams final : public LSPObject { [[nodiscard]] auto text() const -> std::optional; + template + [[nodiscard]] auto text() -> T { + auto& value = (*repr_)["text"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DidSaveTextDocumentParams&; @@ -2004,8 +2875,20 @@ class TextDocumentSaveRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto includeText() const -> std::optional; + template + [[nodiscard]] auto includeText() -> T { + auto& value = (*repr_)["includeText"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> TextDocumentSaveRegistrationOptions&; @@ -2078,6 +2961,12 @@ class PublishDiagnosticsParams final : public LSPObject { [[nodiscard]] auto version() const -> std::optional; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + [[nodiscard]] auto diagnostics() const -> Vector; auto uri(std::string uri) -> PublishDiagnosticsParams&; @@ -2095,14 +2984,32 @@ class CompletionParams final : public LSPObject { [[nodiscard]] auto context() const -> std::optional; + template + [[nodiscard]] auto context() -> T { + auto& value = (*repr_)["context"]; + return T(value); + } + [[nodiscard]] auto textDocument() const -> TextDocumentIdentifier; [[nodiscard]] auto position() const -> Position; [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto context(std::optional context) -> CompletionParams&; auto textDocument(TextDocumentIdentifier textDocument) -> CompletionParams&; @@ -2127,45 +3034,153 @@ class CompletionItem final : public LSPObject { [[nodiscard]] auto labelDetails() const -> std::optional; + template + [[nodiscard]] auto labelDetails() -> T { + auto& value = (*repr_)["labelDetails"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto detail() const -> std::optional; + template + [[nodiscard]] auto detail() -> T { + auto& value = (*repr_)["detail"]; + return T(value); + } + [[nodiscard]] auto documentation() const -> std::optional>; + template + [[nodiscard]] auto documentation() -> T { + auto& value = (*repr_)["documentation"]; + return T(value); + } + [[nodiscard]] auto deprecated() const -> std::optional; + template + [[nodiscard]] auto deprecated() -> T { + auto& value = (*repr_)["deprecated"]; + return T(value); + } + [[nodiscard]] auto preselect() const -> std::optional; + template + [[nodiscard]] auto preselect() -> T { + auto& value = (*repr_)["preselect"]; + return T(value); + } + [[nodiscard]] auto sortText() const -> std::optional; + template + [[nodiscard]] auto sortText() -> T { + auto& value = (*repr_)["sortText"]; + return T(value); + } + [[nodiscard]] auto filterText() const -> std::optional; + template + [[nodiscard]] auto filterText() -> T { + auto& value = (*repr_)["filterText"]; + return T(value); + } + [[nodiscard]] auto insertText() const -> std::optional; + template + [[nodiscard]] auto insertText() -> T { + auto& value = (*repr_)["insertText"]; + return T(value); + } + [[nodiscard]] auto insertTextFormat() const -> std::optional; + template + [[nodiscard]] auto insertTextFormat() -> T { + auto& value = (*repr_)["insertTextFormat"]; + return T(value); + } + [[nodiscard]] auto insertTextMode() const -> std::optional; + template + [[nodiscard]] auto insertTextMode() -> T { + auto& value = (*repr_)["insertTextMode"]; + return T(value); + } + [[nodiscard]] auto textEdit() const -> std::optional>; + template + [[nodiscard]] auto textEdit() -> T { + auto& value = (*repr_)["textEdit"]; + return T(value); + } + [[nodiscard]] auto textEditText() const -> std::optional; + template + [[nodiscard]] auto textEditText() -> T { + auto& value = (*repr_)["textEditText"]; + return T(value); + } + [[nodiscard]] auto additionalTextEdits() const -> std::optional>; + template + [[nodiscard]] auto additionalTextEdits() -> T { + auto& value = (*repr_)["additionalTextEdits"]; + return T(value); + } + [[nodiscard]] auto commitCharacters() const -> std::optional>; + template + [[nodiscard]] auto commitCharacters() -> T { + auto& value = (*repr_)["commitCharacters"]; + return T(value); + } + [[nodiscard]] auto command() const -> std::optional; + template + [[nodiscard]] auto command() -> T { + auto& value = (*repr_)["command"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto label(std::string label) -> CompletionItem&; auto labelDetails(std::optional labelDetails) @@ -2209,6 +3224,13 @@ class CompletionItem final : public LSPObject { auto commitCharacters(std::optional> commitCharacters) -> CompletionItem&; + auto commitCharacters(std::vector commitCharacters) + -> CompletionItem& { + auto& value = (*repr_)["commitCharacters"]; + value = std::move(commitCharacters); + return *this; + } + auto command(std::optional command) -> CompletionItem&; auto data(std::optional data) -> CompletionItem&; @@ -2225,9 +3247,21 @@ class CompletionList final : public LSPObject { [[nodiscard]] auto itemDefaults() const -> std::optional; + template + [[nodiscard]] auto itemDefaults() -> T { + auto& value = (*repr_)["itemDefaults"]; + return T(value); + } + [[nodiscard]] auto applyKind() const -> std::optional; + template + [[nodiscard]] auto applyKind() -> T { + auto& value = (*repr_)["applyKind"]; + return T(value); + } + [[nodiscard]] auto items() const -> Vector; auto isIncomplete(bool isIncomplete) -> CompletionList&; @@ -2250,19 +3284,55 @@ class CompletionRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto triggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto triggerCharacters() -> T { + auto& value = (*repr_)["triggerCharacters"]; + return T(value); + } + [[nodiscard]] auto allCommitCharacters() const -> std::optional>; + template + [[nodiscard]] auto allCommitCharacters() -> T { + auto& value = (*repr_)["allCommitCharacters"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto completionItem() const -> std::optional; + template + [[nodiscard]] auto completionItem() -> T { + auto& value = (*repr_)["completionItem"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> CompletionRegistrationOptions&; @@ -2270,10 +3340,24 @@ class CompletionRegistrationOptions final : public LSPObject { auto triggerCharacters(std::optional> triggerCharacters) -> CompletionRegistrationOptions&; + auto triggerCharacters(std::vector triggerCharacters) + -> CompletionRegistrationOptions& { + auto& value = (*repr_)["triggerCharacters"]; + value = std::move(triggerCharacters); + return *this; + } + auto allCommitCharacters( std::optional> allCommitCharacters) -> CompletionRegistrationOptions&; + auto allCommitCharacters(std::vector allCommitCharacters) + -> CompletionRegistrationOptions& { + auto& value = (*repr_)["allCommitCharacters"]; + value = std::move(allCommitCharacters); + return *this; + } + auto resolveProvider(std::optional resolveProvider) -> CompletionRegistrationOptions&; @@ -2296,6 +3380,12 @@ class HoverParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> HoverParams&; auto position(Position position) -> HoverParams&; @@ -2313,8 +3403,20 @@ class Hover final : public LSPObject { [[nodiscard]] auto contents() const -> std::variant>; + template + [[nodiscard]] auto contents() -> T { + auto& value = (*repr_)["contents"]; + return T(value); + } + [[nodiscard]] auto range() const -> std::optional; + template + [[nodiscard]] auto range() -> T { + auto& value = (*repr_)["range"]; + return T(value); + } + auto contents( std::variant> contents) -> Hover&; @@ -2331,8 +3433,20 @@ class HoverRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> HoverRegistrationOptions&; @@ -2349,12 +3463,24 @@ class SignatureHelpParams final : public LSPObject { [[nodiscard]] auto context() const -> std::optional; + template + [[nodiscard]] auto context() -> T { + auto& value = (*repr_)["context"]; + return T(value); + } + [[nodiscard]] auto textDocument() const -> TextDocumentIdentifier; [[nodiscard]] auto position() const -> Position; [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto context(std::optional context) -> SignatureHelpParams&; @@ -2377,9 +3503,21 @@ class SignatureHelp final : public LSPObject { [[nodiscard]] auto activeSignature() const -> std::optional; + template + [[nodiscard]] auto activeSignature() -> T { + auto& value = (*repr_)["activeSignature"]; + return T(value); + } + [[nodiscard]] auto activeParameter() const -> std::optional>; + template + [[nodiscard]] auto activeParameter() -> T { + auto& value = (*repr_)["activeParameter"]; + return T(value); + } + auto signatures(Vector signatures) -> SignatureHelp&; auto activeSignature(std::optional activeSignature) -> SignatureHelp&; @@ -2398,14 +3536,38 @@ class SignatureHelpRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto triggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto triggerCharacters() -> T { + auto& value = (*repr_)["triggerCharacters"]; + return T(value); + } + [[nodiscard]] auto retriggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto retriggerCharacters() -> T { + auto& value = (*repr_)["retriggerCharacters"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> SignatureHelpRegistrationOptions&; @@ -2413,10 +3575,24 @@ class SignatureHelpRegistrationOptions final : public LSPObject { auto triggerCharacters(std::optional> triggerCharacters) -> SignatureHelpRegistrationOptions&; + auto triggerCharacters(std::vector triggerCharacters) + -> SignatureHelpRegistrationOptions& { + auto& value = (*repr_)["triggerCharacters"]; + value = std::move(triggerCharacters); + return *this; + } + auto retriggerCharacters( std::optional> retriggerCharacters) -> SignatureHelpRegistrationOptions&; + auto retriggerCharacters(std::vector retriggerCharacters) + -> SignatureHelpRegistrationOptions& { + auto& value = (*repr_)["retriggerCharacters"]; + value = std::move(retriggerCharacters); + return *this; + } + auto workDoneProgress(std::optional workDoneProgress) -> SignatureHelpRegistrationOptions&; }; @@ -2433,8 +3609,20 @@ class DefinitionParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DefinitionParams&; auto position(Position position) -> DefinitionParams&; @@ -2455,8 +3643,20 @@ class DefinitionRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DefinitionRegistrationOptions&; @@ -2479,8 +3679,20 @@ class ReferenceParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto context(ReferenceContext context) -> ReferenceParams&; auto textDocument(TextDocumentIdentifier textDocument) -> ReferenceParams&; @@ -2503,8 +3715,20 @@ class ReferenceRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> ReferenceRegistrationOptions&; @@ -2525,8 +3749,20 @@ class DocumentHighlightParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentHighlightParams&; @@ -2549,6 +3785,12 @@ class DocumentHighlight final : public LSPObject { [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + auto range(Range range) -> DocumentHighlight&; auto kind(std::optional kind) -> DocumentHighlight&; @@ -2563,8 +3805,20 @@ class DocumentHighlightRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentHighlightRegistrationOptions&; @@ -2583,8 +3837,20 @@ class DocumentSymbolParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentSymbolParams&; @@ -2603,6 +3869,12 @@ class SymbolInformation final : public LSPObject { [[nodiscard]] auto deprecated() const -> std::optional; + template + [[nodiscard]] auto deprecated() -> T { + auto& value = (*repr_)["deprecated"]; + return T(value); + } + [[nodiscard]] auto location() const -> Location; [[nodiscard]] auto name() const -> std::string; @@ -2611,8 +3883,20 @@ class SymbolInformation final : public LSPObject { [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto containerName() const -> std::optional; + template + [[nodiscard]] auto containerName() -> T { + auto& value = (*repr_)["containerName"]; + return T(value); + } + auto deprecated(std::optional deprecated) -> SymbolInformation&; auto location(Location location) -> SymbolInformation&; @@ -2637,18 +3921,42 @@ class DocumentSymbol final : public LSPObject { [[nodiscard]] auto detail() const -> std::optional; + template + [[nodiscard]] auto detail() -> T { + auto& value = (*repr_)["detail"]; + return T(value); + } + [[nodiscard]] auto kind() const -> SymbolKind; [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto deprecated() const -> std::optional; + template + [[nodiscard]] auto deprecated() -> T { + auto& value = (*repr_)["deprecated"]; + return T(value); + } + [[nodiscard]] auto range() const -> Range; [[nodiscard]] auto selectionRange() const -> Range; [[nodiscard]] auto children() const -> std::optional>; + template + [[nodiscard]] auto children() -> T { + auto& value = (*repr_)["children"]; + return T(value); + } + auto name(std::string name) -> DocumentSymbol&; auto detail(std::optional detail) -> DocumentSymbol&; @@ -2676,10 +3984,28 @@ class DocumentSymbolRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto label() const -> std::optional; + template + [[nodiscard]] auto label() -> T { + auto& value = (*repr_)["label"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentSymbolRegistrationOptions&; @@ -2705,8 +4031,20 @@ class CodeActionParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> CodeActionParams&; auto range(Range range) -> CodeActionParams&; @@ -2730,10 +4068,22 @@ class Command final : public LSPObject { [[nodiscard]] auto tooltip() const -> std::optional; + template + [[nodiscard]] auto tooltip() -> T { + auto& value = (*repr_)["tooltip"]; + return T(value); + } + [[nodiscard]] auto command() const -> std::string; [[nodiscard]] auto arguments() const -> std::optional>; + template + [[nodiscard]] auto arguments() -> T { + auto& value = (*repr_)["arguments"]; + return T(value); + } + auto title(std::string title) -> Command&; auto tooltip(std::optional tooltip) -> Command&; @@ -2753,20 +4103,68 @@ class CodeAction final : public LSPObject { [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + [[nodiscard]] auto diagnostics() const -> std::optional>; + template + [[nodiscard]] auto diagnostics() -> T { + auto& value = (*repr_)["diagnostics"]; + return T(value); + } + [[nodiscard]] auto isPreferred() const -> std::optional; + template + [[nodiscard]] auto isPreferred() -> T { + auto& value = (*repr_)["isPreferred"]; + return T(value); + } + [[nodiscard]] auto disabled() const -> std::optional; + template + [[nodiscard]] auto disabled() -> T { + auto& value = (*repr_)["disabled"]; + return T(value); + } + [[nodiscard]] auto edit() const -> std::optional; + template + [[nodiscard]] auto edit() -> T { + auto& value = (*repr_)["edit"]; + return T(value); + } + [[nodiscard]] auto command() const -> std::optional; + template + [[nodiscard]] auto command() -> T { + auto& value = (*repr_)["command"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + auto title(std::string title) -> CodeAction&; auto kind(std::optional kind) -> CodeAction&; @@ -2796,16 +4194,46 @@ class CodeActionRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto codeActionKinds() const -> std::optional>; + template + [[nodiscard]] auto codeActionKinds() -> T { + auto& value = (*repr_)["codeActionKinds"]; + return T(value); + } + [[nodiscard]] auto documentation() const -> std::optional>; + template + [[nodiscard]] auto documentation() -> T { + auto& value = (*repr_)["documentation"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> CodeActionRegistrationOptions&; @@ -2834,8 +4262,20 @@ class WorkspaceSymbolParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto query(std::string query) -> WorkspaceSymbolParams&; auto workDoneToken(std::optional workDoneToken) @@ -2854,16 +4294,40 @@ class WorkspaceSymbol final : public LSPObject { [[nodiscard]] auto location() const -> std::variant; + template + [[nodiscard]] auto location() -> T { + auto& value = (*repr_)["location"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + [[nodiscard]] auto name() const -> std::string; [[nodiscard]] auto kind() const -> SymbolKind; [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto containerName() const -> std::optional; + template + [[nodiscard]] auto containerName() -> T { + auto& value = (*repr_)["containerName"]; + return T(value); + } + auto location(std::variant location) -> WorkspaceSymbol&; @@ -2887,8 +4351,20 @@ class WorkspaceSymbolRegistrationOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> WorkspaceSymbolRegistrationOptions&; @@ -2906,8 +4382,20 @@ class CodeLensParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> CodeLensParams&; auto workDoneToken(std::optional workDoneToken) @@ -2927,8 +4415,20 @@ class CodeLens final : public LSPObject { [[nodiscard]] auto command() const -> std::optional; + template + [[nodiscard]] auto command() -> T { + auto& value = (*repr_)["command"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto range(Range range) -> CodeLens&; auto command(std::optional command) -> CodeLens&; @@ -2945,10 +4445,28 @@ class CodeLensRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> CodeLensRegistrationOptions&; @@ -2970,8 +4488,20 @@ class DocumentLinkParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentLinkParams&; auto workDoneToken(std::optional workDoneToken) @@ -2991,10 +4521,28 @@ class DocumentLink final : public LSPObject { [[nodiscard]] auto target() const -> std::optional; + template + [[nodiscard]] auto target() -> T { + auto& value = (*repr_)["target"]; + return T(value); + } + [[nodiscard]] auto tooltip() const -> std::optional; + template + [[nodiscard]] auto tooltip() -> T { + auto& value = (*repr_)["tooltip"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto range(Range range) -> DocumentLink&; auto target(std::optional target) -> DocumentLink&; @@ -3013,10 +4561,28 @@ class DocumentLinkRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentLinkRegistrationOptions&; @@ -3040,6 +4606,12 @@ class DocumentFormattingParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentFormattingParams&; @@ -3058,8 +4630,20 @@ class DocumentFormattingRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentFormattingRegistrationOptions&; @@ -3082,6 +4666,12 @@ class DocumentRangeFormattingParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentRangeFormattingParams&; @@ -3102,10 +4692,28 @@ class DocumentRangeFormattingRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto rangesSupport() const -> std::optional; + template + [[nodiscard]] auto rangesSupport() -> T { + auto& value = (*repr_)["rangesSupport"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentRangeFormattingRegistrationOptions&; @@ -3131,6 +4739,12 @@ class DocumentRangesFormattingParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> DocumentRangesFormattingParams&; @@ -3175,11 +4789,23 @@ class DocumentOnTypeFormattingRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto firstTriggerCharacter() const -> std::string; [[nodiscard]] auto moreTriggerCharacter() const -> std::optional>; + template + [[nodiscard]] auto moreTriggerCharacter() -> T { + auto& value = (*repr_)["moreTriggerCharacter"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> DocumentOnTypeFormattingRegistrationOptions&; @@ -3190,6 +4816,13 @@ class DocumentOnTypeFormattingRegistrationOptions final : public LSPObject { auto moreTriggerCharacter( std::optional> moreTriggerCharacter) -> DocumentOnTypeFormattingRegistrationOptions&; + + auto moreTriggerCharacter(std::vector moreTriggerCharacter) + -> DocumentOnTypeFormattingRegistrationOptions& { + auto& value = (*repr_)["moreTriggerCharacter"]; + value = std::move(moreTriggerCharacter); + return *this; + } }; class RenameParams final : public LSPObject { @@ -3206,6 +4839,12 @@ class RenameParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> RenameParams&; auto position(Position position) -> RenameParams&; @@ -3225,10 +4864,28 @@ class RenameRegistrationOptions final : public LSPObject { [[nodiscard]] auto documentSelector() const -> std::variant; + template + [[nodiscard]] auto documentSelector() -> T { + auto& value = (*repr_)["documentSelector"]; + return T(value); + } + [[nodiscard]] auto prepareProvider() const -> std::optional; + template + [[nodiscard]] auto prepareProvider() -> T { + auto& value = (*repr_)["prepareProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto documentSelector( std::variant documentSelector) -> RenameRegistrationOptions&; @@ -3252,6 +4909,12 @@ class PrepareRenameParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto textDocument(TextDocumentIdentifier textDocument) -> PrepareRenameParams&; @@ -3271,8 +4934,20 @@ class ExecuteCommandParams final : public LSPObject { [[nodiscard]] auto arguments() const -> std::optional>; + template + [[nodiscard]] auto arguments() -> T { + auto& value = (*repr_)["arguments"]; + return T(value); + } + [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto command(std::string command) -> ExecuteCommandParams&; auto arguments(std::optional> arguments) @@ -3292,9 +4967,22 @@ class ExecuteCommandRegistrationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto commands(Vector commands) -> ExecuteCommandRegistrationOptions&; + auto commands(std::vector commands) + -> ExecuteCommandRegistrationOptions& { + auto& value = (*repr_)["commands"]; + value = std::move(commands); + return *this; + } + auto workDoneProgress(std::optional workDoneProgress) -> ExecuteCommandRegistrationOptions&; }; @@ -3307,10 +4995,22 @@ class ApplyWorkspaceEditParams final : public LSPObject { [[nodiscard]] auto label() const -> std::optional; + template + [[nodiscard]] auto label() -> T { + auto& value = (*repr_)["label"]; + return T(value); + } + [[nodiscard]] auto edit() const -> WorkspaceEdit; [[nodiscard]] auto metadata() const -> std::optional; + template + [[nodiscard]] auto metadata() -> T { + auto& value = (*repr_)["metadata"]; + return T(value); + } + auto label(std::optional label) -> ApplyWorkspaceEditParams&; auto edit(WorkspaceEdit edit) -> ApplyWorkspaceEditParams&; @@ -3329,8 +5029,20 @@ class ApplyWorkspaceEditResult final : public LSPObject { [[nodiscard]] auto failureReason() const -> std::optional; + template + [[nodiscard]] auto failureReason() -> T { + auto& value = (*repr_)["failureReason"]; + return T(value); + } + [[nodiscard]] auto failedChange() const -> std::optional; + template + [[nodiscard]] auto failedChange() -> T { + auto& value = (*repr_)["failedChange"]; + return T(value); + } + auto applied(bool applied) -> ApplyWorkspaceEditResult&; auto failureReason(std::optional failureReason) @@ -3352,10 +5064,28 @@ class WorkDoneProgressBegin final : public LSPObject { [[nodiscard]] auto cancellable() const -> std::optional; + template + [[nodiscard]] auto cancellable() -> T { + auto& value = (*repr_)["cancellable"]; + return T(value); + } + [[nodiscard]] auto message() const -> std::optional; + template + [[nodiscard]] auto message() -> T { + auto& value = (*repr_)["message"]; + return T(value); + } + [[nodiscard]] auto percentage() const -> std::optional; + template + [[nodiscard]] auto percentage() -> T { + auto& value = (*repr_)["percentage"]; + return T(value); + } + auto kind(std::string kind) -> WorkDoneProgressBegin&; auto title(std::string title) -> WorkDoneProgressBegin&; @@ -3377,10 +5107,28 @@ class WorkDoneProgressReport final : public LSPObject { [[nodiscard]] auto cancellable() const -> std::optional; + template + [[nodiscard]] auto cancellable() -> T { + auto& value = (*repr_)["cancellable"]; + return T(value); + } + [[nodiscard]] auto message() const -> std::optional; + template + [[nodiscard]] auto message() -> T { + auto& value = (*repr_)["message"]; + return T(value); + } + [[nodiscard]] auto percentage() const -> std::optional; + template + [[nodiscard]] auto percentage() -> T { + auto& value = (*repr_)["percentage"]; + return T(value); + } + auto kind(std::string kind) -> WorkDoneProgressReport&; auto cancellable(std::optional cancellable) -> WorkDoneProgressReport&; @@ -3400,6 +5148,12 @@ class WorkDoneProgressEnd final : public LSPObject { [[nodiscard]] auto message() const -> std::optional; + template + [[nodiscard]] auto message() -> T { + auto& value = (*repr_)["message"]; + return T(value); + } + auto kind(std::string kind) -> WorkDoneProgressEnd&; auto message(std::optional message) -> WorkDoneProgressEnd&; @@ -3426,6 +5180,12 @@ class LogTraceParams final : public LSPObject { [[nodiscard]] auto verbose() const -> std::optional; + template + [[nodiscard]] auto verbose() -> T { + auto& value = (*repr_)["verbose"]; + return T(value); + } + auto message(std::string message) -> LogTraceParams&; auto verbose(std::optional verbose) -> LogTraceParams&; @@ -3439,6 +5199,12 @@ class CancelParams final : public LSPObject { [[nodiscard]] auto id() const -> std::variant; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto id(std::variant id) -> CancelParams&; }; @@ -3481,6 +5247,12 @@ class WorkDoneProgressParams final : public LSPObject { [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto workDoneToken(std::optional workDoneToken) -> WorkDoneProgressParams&; }; @@ -3493,6 +5265,12 @@ class PartialResultParams final : public LSPObject { [[nodiscard]] auto partialResultToken() const -> std::optional; + template + [[nodiscard]] auto partialResultToken() -> T { + auto& value = (*repr_)["partialResultToken"]; + return T(value); + } + auto partialResultToken(std::optional partialResultToken) -> PartialResultParams&; }; @@ -3505,6 +5283,12 @@ class LocationLink final : public LSPObject { [[nodiscard]] auto originSelectionRange() const -> std::optional; + template + [[nodiscard]] auto originSelectionRange() -> T { + auto& value = (*repr_)["originSelectionRange"]; + return T(value); + } + [[nodiscard]] auto targetUri() const -> std::string; [[nodiscard]] auto targetRange() const -> Range; @@ -3544,6 +5328,12 @@ class ImplementationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> ImplementationOptions&; }; @@ -3556,6 +5346,12 @@ class StaticRegistrationOptions final : public LSPObject { [[nodiscard]] auto id() const -> std::optional; + template + [[nodiscard]] auto id() -> T { + auto& value = (*repr_)["id"]; + return T(value); + } + auto id(std::optional id) -> StaticRegistrationOptions&; }; @@ -3567,6 +5363,12 @@ class TypeDefinitionOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> TypeDefinitionOptions&; }; @@ -3594,8 +5396,20 @@ class ConfigurationItem final : public LSPObject { [[nodiscard]] auto scopeUri() const -> std::optional; + template + [[nodiscard]] auto scopeUri() -> T { + auto& value = (*repr_)["scopeUri"]; + return T(value); + } + [[nodiscard]] auto section() const -> std::optional; + template + [[nodiscard]] auto section() -> T { + auto& value = (*repr_)["section"]; + return T(value); + } + auto scopeUri(std::optional scopeUri) -> ConfigurationItem&; auto section(std::optional section) -> ConfigurationItem&; @@ -3643,6 +5457,12 @@ class DocumentColorOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DocumentColorOptions&; }; @@ -3655,6 +5475,12 @@ class FoldingRangeOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> FoldingRangeOptions&; }; @@ -3667,6 +5493,12 @@ class DeclarationOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DeclarationOptions&; }; @@ -3694,6 +5526,12 @@ class SelectionRangeOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> SelectionRangeOptions&; }; @@ -3706,6 +5544,12 @@ class CallHierarchyOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> CallHierarchyOptions&; }; @@ -3720,11 +5564,29 @@ class SemanticTokensOptions final : public LSPObject { [[nodiscard]] auto range() const -> std::optional>; + template + [[nodiscard]] auto range() -> T { + auto& value = (*repr_)["range"]; + return T(value); + } + [[nodiscard]] auto full() const -> std::optional>; + template + [[nodiscard]] auto full() -> T { + auto& value = (*repr_)["full"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto legend(SemanticTokensLegend legend) -> SemanticTokensOptions&; auto range(std::optional> range) @@ -3749,6 +5611,12 @@ class SemanticTokensEdit final : public LSPObject { [[nodiscard]] auto data() const -> std::optional>; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto start(long start) -> SemanticTokensEdit&; auto deleteCount(long deleteCount) -> SemanticTokensEdit&; @@ -3764,6 +5632,12 @@ class LinkedEditingRangeOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> LinkedEditingRangeOptions&; }; @@ -3811,9 +5685,21 @@ class CreateFile final : public LSPObject { [[nodiscard]] auto options() const -> std::optional; + template + [[nodiscard]] auto options() -> T { + auto& value = (*repr_)["options"]; + return T(value); + } + [[nodiscard]] auto annotationId() const -> std::optional; + template + [[nodiscard]] auto annotationId() -> T { + auto& value = (*repr_)["annotationId"]; + return T(value); + } + auto kind(std::string kind) -> CreateFile&; auto uri(std::string uri) -> CreateFile&; @@ -3838,9 +5724,21 @@ class RenameFile final : public LSPObject { [[nodiscard]] auto options() const -> std::optional; + template + [[nodiscard]] auto options() -> T { + auto& value = (*repr_)["options"]; + return T(value); + } + [[nodiscard]] auto annotationId() const -> std::optional; + template + [[nodiscard]] auto annotationId() -> T { + auto& value = (*repr_)["annotationId"]; + return T(value); + } + auto kind(std::string kind) -> RenameFile&; auto oldUri(std::string oldUri) -> RenameFile&; @@ -3865,9 +5763,21 @@ class DeleteFile final : public LSPObject { [[nodiscard]] auto options() const -> std::optional; + template + [[nodiscard]] auto options() -> T { + auto& value = (*repr_)["options"]; + return T(value); + } + [[nodiscard]] auto annotationId() const -> std::optional; + template + [[nodiscard]] auto annotationId() -> T { + auto& value = (*repr_)["annotationId"]; + return T(value); + } + auto kind(std::string kind) -> DeleteFile&; auto uri(std::string uri) -> DeleteFile&; @@ -3888,8 +5798,20 @@ class ChangeAnnotation final : public LSPObject { [[nodiscard]] auto needsConfirmation() const -> std::optional; + template + [[nodiscard]] auto needsConfirmation() -> T { + auto& value = (*repr_)["needsConfirmation"]; + return T(value); + } + [[nodiscard]] auto description() const -> std::optional; + template + [[nodiscard]] auto description() -> T { + auto& value = (*repr_)["description"]; + return T(value); + } + auto label(std::string label) -> ChangeAnnotation&; auto needsConfirmation(std::optional needsConfirmation) @@ -3906,6 +5828,12 @@ class FileOperationFilter final : public LSPObject { [[nodiscard]] auto scheme() const -> std::optional; + template + [[nodiscard]] auto scheme() -> T { + auto& value = (*repr_)["scheme"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> FileOperationPattern; auto scheme(std::optional scheme) -> FileOperationFilter&; @@ -3947,6 +5875,12 @@ class MonikerOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> MonikerOptions&; }; @@ -3959,6 +5893,12 @@ class TypeHierarchyOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> TypeHierarchyOptions&; }; @@ -4003,6 +5943,12 @@ class InlineValueVariableLookup final : public LSPObject { [[nodiscard]] auto variableName() const -> std::optional; + template + [[nodiscard]] auto variableName() -> T { + auto& value = (*repr_)["variableName"]; + return T(value); + } + [[nodiscard]] auto caseSensitiveLookup() const -> bool; auto range(Range range) -> InlineValueVariableLookup&; @@ -4024,6 +5970,12 @@ class InlineValueEvaluatableExpression final : public LSPObject { [[nodiscard]] auto expression() const -> std::optional; + template + [[nodiscard]] auto expression() -> T { + auto& value = (*repr_)["expression"]; + return T(value); + } + auto range(Range range) -> InlineValueEvaluatableExpression&; auto expression(std::optional expression) @@ -4038,6 +5990,12 @@ class InlineValueOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> InlineValueOptions&; }; @@ -4053,10 +6011,28 @@ class InlayHintLabelPart final : public LSPObject { [[nodiscard]] auto tooltip() const -> std::optional>; + template + [[nodiscard]] auto tooltip() -> T { + auto& value = (*repr_)["tooltip"]; + return T(value); + } + [[nodiscard]] auto location() const -> std::optional; + template + [[nodiscard]] auto location() -> T { + auto& value = (*repr_)["location"]; + return T(value); + } + [[nodiscard]] auto command() const -> std::optional; + template + [[nodiscard]] auto command() -> T { + auto& value = (*repr_)["command"]; + return T(value); + } + auto value(std::string value) -> InlayHintLabelPart&; auto tooltip(std::optional> tooltip) @@ -4090,8 +6066,20 @@ class InlayHintOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> InlayHintOptions&; @@ -4109,10 +6097,22 @@ class RelatedFullDocumentDiagnosticReport final : public LSPObject { Map>>; + template + [[nodiscard]] auto relatedDocuments() -> T { + auto& value = (*repr_)["relatedDocuments"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::string; [[nodiscard]] auto resultId() const -> std::optional; + template + [[nodiscard]] auto resultId() -> T { + auto& value = (*repr_)["resultId"]; + return T(value); + } + [[nodiscard]] auto items() const -> Vector; auto relatedDocuments( @@ -4139,6 +6139,12 @@ class RelatedUnchangedDocumentDiagnosticReport final : public LSPObject { Map>>; + template + [[nodiscard]] auto relatedDocuments() -> T { + auto& value = (*repr_)["relatedDocuments"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::string; [[nodiscard]] auto resultId() const -> std::string; @@ -4165,6 +6171,12 @@ class FullDocumentDiagnosticReport final : public LSPObject { [[nodiscard]] auto resultId() const -> std::optional; + template + [[nodiscard]] auto resultId() -> T { + auto& value = (*repr_)["resultId"]; + return T(value); + } + [[nodiscard]] auto items() const -> Vector; auto kind(std::string kind) -> FullDocumentDiagnosticReport&; @@ -4198,12 +6210,24 @@ class DiagnosticOptions final : public LSPObject { [[nodiscard]] auto identifier() const -> std::optional; + template + [[nodiscard]] auto identifier() -> T { + auto& value = (*repr_)["identifier"]; + return T(value); + } + [[nodiscard]] auto interFileDependencies() const -> bool; [[nodiscard]] auto workspaceDiagnostics() const -> bool; [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto identifier(std::optional identifier) -> DiagnosticOptions&; auto interFileDependencies(bool interFileDependencies) -> DiagnosticOptions&; @@ -4243,6 +6267,12 @@ class NotebookDocument final : public LSPObject { [[nodiscard]] auto metadata() const -> std::optional; + template + [[nodiscard]] auto metadata() -> T { + auto& value = (*repr_)["metadata"]; + return T(value); + } + [[nodiscard]] auto cells() const -> Vector; auto uri(std::string uri) -> NotebookDocument&; @@ -4291,6 +6321,12 @@ class NotebookDocumentSyncOptions final : public LSPObject { [[nodiscard]] auto save() const -> std::optional; + template + [[nodiscard]] auto save() -> T { + auto& value = (*repr_)["save"]; + return T(value); + } + auto notebookSelector(Vector> notebookSelector) -> NotebookDocumentSyncOptions&; @@ -4321,9 +6357,21 @@ class NotebookDocumentChangeEvent final : public LSPObject { [[nodiscard]] auto metadata() const -> std::optional; + template + [[nodiscard]] auto metadata() -> T { + auto& value = (*repr_)["metadata"]; + return T(value); + } + [[nodiscard]] auto cells() const -> std::optional; + template + [[nodiscard]] auto cells() -> T { + auto& value = (*repr_)["cells"]; + return T(value); + } + auto metadata(std::optional metadata) -> NotebookDocumentChangeEvent&; @@ -4353,6 +6401,12 @@ class InlineCompletionContext final : public LSPObject { [[nodiscard]] auto selectedCompletionInfo() const -> std::optional; + template + [[nodiscard]] auto selectedCompletionInfo() -> T { + auto& value = (*repr_)["selectedCompletionInfo"]; + return T(value); + } + auto triggerKind(InlineCompletionTriggerKind triggerKind) -> InlineCompletionContext&; @@ -4384,6 +6438,12 @@ class InlineCompletionOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> InlineCompletionOptions&; }; @@ -4397,6 +6457,13 @@ class TextDocumentContentOptions final : public LSPObject { [[nodiscard]] auto schemes() const -> Vector; auto schemes(Vector schemes) -> TextDocumentContentOptions&; + + auto schemes(std::vector schemes) + -> TextDocumentContentOptions& { + auto& value = (*repr_)["schemes"]; + value = std::move(schemes); + return *this; + } }; class Registration final : public LSPObject { @@ -4411,6 +6478,12 @@ class Registration final : public LSPObject { [[nodiscard]] auto registerOptions() const -> std::optional; + template + [[nodiscard]] auto registerOptions() -> T { + auto& value = (*repr_)["registerOptions"]; + return T(value); + } + auto id(std::string id) -> Registration&; auto method(std::string method) -> Registration&; @@ -4441,24 +6514,72 @@ class _InitializeParams final : public LSPObject { [[nodiscard]] auto processId() const -> std::variant; + template + [[nodiscard]] auto processId() -> T { + auto& value = (*repr_)["processId"]; + return T(value); + } + [[nodiscard]] auto clientInfo() const -> std::optional; + template + [[nodiscard]] auto clientInfo() -> T { + auto& value = (*repr_)["clientInfo"]; + return T(value); + } + [[nodiscard]] auto locale() const -> std::optional; + template + [[nodiscard]] auto locale() -> T { + auto& value = (*repr_)["locale"]; + return T(value); + } + [[nodiscard]] auto rootPath() const -> std::optional>; + template + [[nodiscard]] auto rootPath() -> T { + auto& value = (*repr_)["rootPath"]; + return T(value); + } + [[nodiscard]] auto rootUri() const -> std::variant; + template + [[nodiscard]] auto rootUri() -> T { + auto& value = (*repr_)["rootUri"]; + return T(value); + } + [[nodiscard]] auto capabilities() const -> ClientCapabilities; [[nodiscard]] auto initializationOptions() const -> std::optional; + template + [[nodiscard]] auto initializationOptions() -> T { + auto& value = (*repr_)["initializationOptions"]; + return T(value); + } + [[nodiscard]] auto trace() const -> std::optional; + template + [[nodiscard]] auto trace() -> T { + auto& value = (*repr_)["trace"]; + return T(value); + } + [[nodiscard]] auto workDoneToken() const -> std::optional; + template + [[nodiscard]] auto workDoneToken() -> T { + auto& value = (*repr_)["workDoneToken"]; + return T(value); + } + auto processId(std::variant processId) -> _InitializeParams&; @@ -4493,6 +6614,12 @@ class WorkspaceFoldersInitializeParams final : public LSPObject { [[nodiscard]] auto workspaceFolders() const -> std::optional, std::nullptr_t>>; + template + [[nodiscard]] auto workspaceFolders() -> T { + auto& value = (*repr_)["workspaceFolders"]; + return T(value); + } + auto workspaceFolders( std::optional, std::nullptr_t>> workspaceFolders) -> WorkspaceFoldersInitializeParams&; @@ -4507,116 +6634,332 @@ class ServerCapabilities final : public LSPObject { [[nodiscard]] auto positionEncoding() const -> std::optional; + template + [[nodiscard]] auto positionEncoding() -> T { + auto& value = (*repr_)["positionEncoding"]; + return T(value); + } + [[nodiscard]] auto textDocumentSync() const -> std::optional< std::variant>; + template + [[nodiscard]] auto textDocumentSync() -> T { + auto& value = (*repr_)["textDocumentSync"]; + return T(value); + } + [[nodiscard]] auto notebookDocumentSync() const -> std::optional>; + template + [[nodiscard]] auto notebookDocumentSync() -> T { + auto& value = (*repr_)["notebookDocumentSync"]; + return T(value); + } + [[nodiscard]] auto completionProvider() const -> std::optional; + template + [[nodiscard]] auto completionProvider() -> T { + auto& value = (*repr_)["completionProvider"]; + return T(value); + } + [[nodiscard]] auto hoverProvider() const -> std::optional>; + template + [[nodiscard]] auto hoverProvider() -> T { + auto& value = (*repr_)["hoverProvider"]; + return T(value); + } + [[nodiscard]] auto signatureHelpProvider() const -> std::optional; + template + [[nodiscard]] auto signatureHelpProvider() -> T { + auto& value = (*repr_)["signatureHelpProvider"]; + return T(value); + } + [[nodiscard]] auto declarationProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto declarationProvider() -> T { + auto& value = (*repr_)["declarationProvider"]; + return T(value); + } + [[nodiscard]] auto definitionProvider() const -> std::optional>; + template + [[nodiscard]] auto definitionProvider() -> T { + auto& value = (*repr_)["definitionProvider"]; + return T(value); + } + [[nodiscard]] auto typeDefinitionProvider() const -> std::optional>; + template + [[nodiscard]] auto typeDefinitionProvider() -> T { + auto& value = (*repr_)["typeDefinitionProvider"]; + return T(value); + } + [[nodiscard]] auto implementationProvider() const -> std::optional>; + template + [[nodiscard]] auto implementationProvider() -> T { + auto& value = (*repr_)["implementationProvider"]; + return T(value); + } + [[nodiscard]] auto referencesProvider() const -> std::optional>; + template + [[nodiscard]] auto referencesProvider() -> T { + auto& value = (*repr_)["referencesProvider"]; + return T(value); + } + [[nodiscard]] auto documentHighlightProvider() const -> std::optional>; + template + [[nodiscard]] auto documentHighlightProvider() -> T { + auto& value = (*repr_)["documentHighlightProvider"]; + return T(value); + } + [[nodiscard]] auto documentSymbolProvider() const -> std::optional>; + template + [[nodiscard]] auto documentSymbolProvider() -> T { + auto& value = (*repr_)["documentSymbolProvider"]; + return T(value); + } + [[nodiscard]] auto codeActionProvider() const -> std::optional>; + template + [[nodiscard]] auto codeActionProvider() -> T { + auto& value = (*repr_)["codeActionProvider"]; + return T(value); + } + [[nodiscard]] auto codeLensProvider() const -> std::optional; + template + [[nodiscard]] auto codeLensProvider() -> T { + auto& value = (*repr_)["codeLensProvider"]; + return T(value); + } + [[nodiscard]] auto documentLinkProvider() const -> std::optional; + template + [[nodiscard]] auto documentLinkProvider() -> T { + auto& value = (*repr_)["documentLinkProvider"]; + return T(value); + } + [[nodiscard]] auto colorProvider() const -> std::optional>; + template + [[nodiscard]] auto colorProvider() -> T { + auto& value = (*repr_)["colorProvider"]; + return T(value); + } + [[nodiscard]] auto workspaceSymbolProvider() const -> std::optional>; + template + [[nodiscard]] auto workspaceSymbolProvider() -> T { + auto& value = (*repr_)["workspaceSymbolProvider"]; + return T(value); + } + [[nodiscard]] auto documentFormattingProvider() const -> std::optional>; + template + [[nodiscard]] auto documentFormattingProvider() -> T { + auto& value = (*repr_)["documentFormattingProvider"]; + return T(value); + } + [[nodiscard]] auto documentRangeFormattingProvider() const -> std::optional>; + template + [[nodiscard]] auto documentRangeFormattingProvider() -> T { + auto& value = (*repr_)["documentRangeFormattingProvider"]; + return T(value); + } + [[nodiscard]] auto documentOnTypeFormattingProvider() const -> std::optional; + template + [[nodiscard]] auto documentOnTypeFormattingProvider() -> T { + auto& value = (*repr_)["documentOnTypeFormattingProvider"]; + return T(value); + } + [[nodiscard]] auto renameProvider() const -> std::optional>; + template + [[nodiscard]] auto renameProvider() -> T { + auto& value = (*repr_)["renameProvider"]; + return T(value); + } + [[nodiscard]] auto foldingRangeProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto foldingRangeProvider() -> T { + auto& value = (*repr_)["foldingRangeProvider"]; + return T(value); + } + [[nodiscard]] auto selectionRangeProvider() const -> std::optional>; + template + [[nodiscard]] auto selectionRangeProvider() -> T { + auto& value = (*repr_)["selectionRangeProvider"]; + return T(value); + } + [[nodiscard]] auto executeCommandProvider() const -> std::optional; + template + [[nodiscard]] auto executeCommandProvider() -> T { + auto& value = (*repr_)["executeCommandProvider"]; + return T(value); + } + [[nodiscard]] auto callHierarchyProvider() const -> std::optional>; + template + [[nodiscard]] auto callHierarchyProvider() -> T { + auto& value = (*repr_)["callHierarchyProvider"]; + return T(value); + } + [[nodiscard]] auto linkedEditingRangeProvider() const -> std::optional>; + template + [[nodiscard]] auto linkedEditingRangeProvider() -> T { + auto& value = (*repr_)["linkedEditingRangeProvider"]; + return T(value); + } + [[nodiscard]] auto semanticTokensProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto semanticTokensProvider() -> T { + auto& value = (*repr_)["semanticTokensProvider"]; + return T(value); + } + [[nodiscard]] auto monikerProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto monikerProvider() -> T { + auto& value = (*repr_)["monikerProvider"]; + return T(value); + } + [[nodiscard]] auto typeHierarchyProvider() const -> std::optional>; + template + [[nodiscard]] auto typeHierarchyProvider() -> T { + auto& value = (*repr_)["typeHierarchyProvider"]; + return T(value); + } + [[nodiscard]] auto inlineValueProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto inlineValueProvider() -> T { + auto& value = (*repr_)["inlineValueProvider"]; + return T(value); + } + [[nodiscard]] auto inlayHintProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto inlayHintProvider() -> T { + auto& value = (*repr_)["inlayHintProvider"]; + return T(value); + } + [[nodiscard]] auto diagnosticProvider() const -> std::optional< std::variant>; + template + [[nodiscard]] auto diagnosticProvider() -> T { + auto& value = (*repr_)["diagnosticProvider"]; + return T(value); + } + [[nodiscard]] auto inlineCompletionProvider() const -> std::optional>; + template + [[nodiscard]] auto inlineCompletionProvider() -> T { + auto& value = (*repr_)["inlineCompletionProvider"]; + return T(value); + } + [[nodiscard]] auto workspace() const -> std::optional; + template + [[nodiscard]] auto workspace() -> T { + auto& value = (*repr_)["workspace"]; + return T(value); + } + [[nodiscard]] auto experimental() const -> std::optional; + template + [[nodiscard]] auto experimental() -> T { + auto& value = (*repr_)["experimental"]; + return T(value); + } + auto positionEncoding(std::optional positionEncoding) -> ServerCapabilities&; @@ -4781,6 +7124,12 @@ class ServerInfo final : public LSPObject { [[nodiscard]] auto version() const -> std::optional; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + auto name(std::string name) -> ServerInfo&; auto version(std::optional version) -> ServerInfo&; @@ -4809,6 +7158,12 @@ class SaveOptions final : public LSPObject { [[nodiscard]] auto includeText() const -> std::optional; + template + [[nodiscard]] auto includeText() -> T { + auto& value = (*repr_)["includeText"]; + return T(value); + } + auto includeText(std::optional includeText) -> SaveOptions&; }; @@ -4837,6 +7192,12 @@ class FileSystemWatcher final : public LSPObject { [[nodiscard]] auto kind() const -> std::optional; + template + [[nodiscard]] auto kind() -> T { + auto& value = (*repr_)["kind"]; + return T(value); + } + auto globPattern(GlobPattern globPattern) -> FileSystemWatcher&; auto kind(std::optional kind) -> FileSystemWatcher&; @@ -4852,22 +7213,64 @@ class Diagnostic final : public LSPObject { [[nodiscard]] auto severity() const -> std::optional; + template + [[nodiscard]] auto severity() -> T { + auto& value = (*repr_)["severity"]; + return T(value); + } + [[nodiscard]] auto code() const -> std::optional>; + template + [[nodiscard]] auto code() -> T { + auto& value = (*repr_)["code"]; + return T(value); + } + [[nodiscard]] auto codeDescription() const -> std::optional; + template + [[nodiscard]] auto codeDescription() -> T { + auto& value = (*repr_)["codeDescription"]; + return T(value); + } + [[nodiscard]] auto source() const -> std::optional; + template + [[nodiscard]] auto source() -> T { + auto& value = (*repr_)["source"]; + return T(value); + } + [[nodiscard]] auto message() const -> std::string; [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto relatedInformation() const -> std::optional>; + template + [[nodiscard]] auto relatedInformation() -> T { + auto& value = (*repr_)["relatedInformation"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto range(Range range) -> Diagnostic&; auto severity(std::optional severity) -> Diagnostic&; @@ -4900,6 +7303,12 @@ class CompletionContext final : public LSPObject { [[nodiscard]] auto triggerCharacter() const -> std::optional; + template + [[nodiscard]] auto triggerCharacter() -> T { + auto& value = (*repr_)["triggerCharacter"]; + return T(value); + } + auto triggerKind(CompletionTriggerKind triggerKind) -> CompletionContext&; auto triggerCharacter(std::optional triggerCharacter) @@ -4914,8 +7323,20 @@ class CompletionItemLabelDetails final : public LSPObject { [[nodiscard]] auto detail() const -> std::optional; + template + [[nodiscard]] auto detail() -> T { + auto& value = (*repr_)["detail"]; + return T(value); + } + [[nodiscard]] auto description() const -> std::optional; + template + [[nodiscard]] auto description() -> T { + auto& value = (*repr_)["description"]; + return T(value); + } + auto detail(std::optional detail) -> CompletionItemLabelDetails&; auto description(std::optional description) @@ -4950,19 +7371,56 @@ class CompletionItemDefaults final : public LSPObject { [[nodiscard]] auto commitCharacters() const -> std::optional>; + template + [[nodiscard]] auto commitCharacters() -> T { + auto& value = (*repr_)["commitCharacters"]; + return T(value); + } + [[nodiscard]] auto editRange() const -> std::optional>; + template + [[nodiscard]] auto editRange() -> T { + auto& value = (*repr_)["editRange"]; + return T(value); + } + [[nodiscard]] auto insertTextFormat() const -> std::optional; + template + [[nodiscard]] auto insertTextFormat() -> T { + auto& value = (*repr_)["insertTextFormat"]; + return T(value); + } + [[nodiscard]] auto insertTextMode() const -> std::optional; + template + [[nodiscard]] auto insertTextMode() -> T { + auto& value = (*repr_)["insertTextMode"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto commitCharacters(std::optional> commitCharacters) -> CompletionItemDefaults&; + auto commitCharacters(std::vector commitCharacters) + -> CompletionItemDefaults& { + auto& value = (*repr_)["commitCharacters"]; + value = std::move(commitCharacters); + return *this; + } + auto editRange( std::optional> editRange) -> CompletionItemDefaults&; @@ -4984,8 +7442,20 @@ class CompletionItemApplyKinds final : public LSPObject { [[nodiscard]] auto commitCharacters() const -> std::optional; + template + [[nodiscard]] auto commitCharacters() -> T { + auto& value = (*repr_)["commitCharacters"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + auto commitCharacters(std::optional commitCharacters) -> CompletionItemApplyKinds&; @@ -5001,23 +7471,67 @@ class CompletionOptions final : public LSPObject { [[nodiscard]] auto triggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto triggerCharacters() -> T { + auto& value = (*repr_)["triggerCharacters"]; + return T(value); + } + [[nodiscard]] auto allCommitCharacters() const -> std::optional>; + template + [[nodiscard]] auto allCommitCharacters() -> T { + auto& value = (*repr_)["allCommitCharacters"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto completionItem() const -> std::optional; + template + [[nodiscard]] auto completionItem() -> T { + auto& value = (*repr_)["completionItem"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto triggerCharacters(std::optional> triggerCharacters) -> CompletionOptions&; + auto triggerCharacters(std::vector triggerCharacters) + -> CompletionOptions& { + auto& value = (*repr_)["triggerCharacters"]; + value = std::move(triggerCharacters); + return *this; + } + auto allCommitCharacters( std::optional> allCommitCharacters) -> CompletionOptions&; + auto allCommitCharacters(std::vector allCommitCharacters) + -> CompletionOptions& { + auto& value = (*repr_)["allCommitCharacters"]; + value = std::move(allCommitCharacters); + return *this; + } + auto resolveProvider(std::optional resolveProvider) -> CompletionOptions&; @@ -5036,6 +7550,12 @@ class HoverOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> HoverOptions&; }; @@ -5049,11 +7569,23 @@ class SignatureHelpContext final : public LSPObject { [[nodiscard]] auto triggerCharacter() const -> std::optional; + template + [[nodiscard]] auto triggerCharacter() -> T { + auto& value = (*repr_)["triggerCharacter"]; + return T(value); + } + [[nodiscard]] auto isRetrigger() const -> bool; [[nodiscard]] auto activeSignatureHelp() const -> std::optional; + template + [[nodiscard]] auto activeSignatureHelp() -> T { + auto& value = (*repr_)["activeSignatureHelp"]; + return T(value); + } + auto triggerKind(SignatureHelpTriggerKind triggerKind) -> SignatureHelpContext&; @@ -5077,12 +7609,30 @@ class SignatureInformation final : public LSPObject { [[nodiscard]] auto documentation() const -> std::optional>; + template + [[nodiscard]] auto documentation() -> T { + auto& value = (*repr_)["documentation"]; + return T(value); + } + [[nodiscard]] auto parameters() const -> std::optional>; + template + [[nodiscard]] auto parameters() -> T { + auto& value = (*repr_)["parameters"]; + return T(value); + } + [[nodiscard]] auto activeParameter() const -> std::optional>; + template + [[nodiscard]] auto activeParameter() -> T { + auto& value = (*repr_)["activeParameter"]; + return T(value); + } + auto label(std::string label) -> SignatureInformation&; auto documentation( @@ -5106,18 +7656,50 @@ class SignatureHelpOptions final : public LSPObject { [[nodiscard]] auto triggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto triggerCharacters() -> T { + auto& value = (*repr_)["triggerCharacters"]; + return T(value); + } + [[nodiscard]] auto retriggerCharacters() const -> std::optional>; + template + [[nodiscard]] auto retriggerCharacters() -> T { + auto& value = (*repr_)["retriggerCharacters"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto triggerCharacters(std::optional> triggerCharacters) -> SignatureHelpOptions&; + auto triggerCharacters(std::vector triggerCharacters) + -> SignatureHelpOptions& { + auto& value = (*repr_)["triggerCharacters"]; + value = std::move(triggerCharacters); + return *this; + } + auto retriggerCharacters( std::optional> retriggerCharacters) -> SignatureHelpOptions&; + auto retriggerCharacters(std::vector retriggerCharacters) + -> SignatureHelpOptions& { + auto& value = (*repr_)["retriggerCharacters"]; + value = std::move(retriggerCharacters); + return *this; + } + auto workDoneProgress(std::optional workDoneProgress) -> SignatureHelpOptions&; }; @@ -5130,6 +7712,12 @@ class DefinitionOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DefinitionOptions&; }; @@ -5153,6 +7741,12 @@ class ReferenceOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> ReferenceOptions&; }; @@ -5165,6 +7759,12 @@ class DocumentHighlightOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DocumentHighlightOptions&; }; @@ -5181,8 +7781,20 @@ class BaseSymbolInformation final : public LSPObject { [[nodiscard]] auto tags() const -> std::optional>; + template + [[nodiscard]] auto tags() -> T { + auto& value = (*repr_)["tags"]; + return T(value); + } + [[nodiscard]] auto containerName() const -> std::optional; + template + [[nodiscard]] auto containerName() -> T { + auto& value = (*repr_)["containerName"]; + return T(value); + } + auto name(std::string name) -> BaseSymbolInformation&; auto kind(SymbolKind kind) -> BaseSymbolInformation&; @@ -5201,8 +7813,20 @@ class DocumentSymbolOptions final : public LSPObject { [[nodiscard]] auto label() const -> std::optional; + template + [[nodiscard]] auto label() -> T { + auto& value = (*repr_)["label"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto label(std::optional label) -> DocumentSymbolOptions&; auto workDoneProgress(std::optional workDoneProgress) @@ -5219,9 +7843,21 @@ class CodeActionContext final : public LSPObject { [[nodiscard]] auto only() const -> std::optional>; + template + [[nodiscard]] auto only() -> T { + auto& value = (*repr_)["only"]; + return T(value); + } + [[nodiscard]] auto triggerKind() const -> std::optional; + template + [[nodiscard]] auto triggerKind() -> T { + auto& value = (*repr_)["triggerKind"]; + return T(value); + } + auto diagnostics(Vector diagnostics) -> CodeActionContext&; auto only(std::optional> only) -> CodeActionContext&; @@ -5250,13 +7886,37 @@ class CodeActionOptions final : public LSPObject { [[nodiscard]] auto codeActionKinds() const -> std::optional>; + template + [[nodiscard]] auto codeActionKinds() -> T { + auto& value = (*repr_)["codeActionKinds"]; + return T(value); + } + [[nodiscard]] auto documentation() const -> std::optional>; + template + [[nodiscard]] auto documentation() -> T { + auto& value = (*repr_)["documentation"]; + return T(value); + } + [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto codeActionKinds(std::optional> codeActionKinds) -> CodeActionOptions&; @@ -5290,8 +7950,20 @@ class WorkspaceSymbolOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> WorkspaceSymbolOptions&; @@ -5307,8 +7979,20 @@ class CodeLensOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> CodeLensOptions&; auto workDoneProgress(std::optional workDoneProgress) @@ -5323,8 +8007,20 @@ class DocumentLinkOptions final : public LSPObject { [[nodiscard]] auto resolveProvider() const -> std::optional; + template + [[nodiscard]] auto resolveProvider() -> T { + auto& value = (*repr_)["resolveProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto resolveProvider(std::optional resolveProvider) -> DocumentLinkOptions&; @@ -5344,10 +8040,28 @@ class FormattingOptions final : public LSPObject { [[nodiscard]] auto trimTrailingWhitespace() const -> std::optional; + template + [[nodiscard]] auto trimTrailingWhitespace() -> T { + auto& value = (*repr_)["trimTrailingWhitespace"]; + return T(value); + } + [[nodiscard]] auto insertFinalNewline() const -> std::optional; + template + [[nodiscard]] auto insertFinalNewline() -> T { + auto& value = (*repr_)["insertFinalNewline"]; + return T(value); + } + [[nodiscard]] auto trimFinalNewlines() const -> std::optional; + template + [[nodiscard]] auto trimFinalNewlines() -> T { + auto& value = (*repr_)["trimFinalNewlines"]; + return T(value); + } + auto tabSize(long tabSize) -> FormattingOptions&; auto insertSpaces(bool insertSpaces) -> FormattingOptions&; @@ -5370,6 +8084,12 @@ class DocumentFormattingOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> DocumentFormattingOptions&; }; @@ -5382,8 +8102,20 @@ class DocumentRangeFormattingOptions final : public LSPObject { [[nodiscard]] auto rangesSupport() const -> std::optional; + template + [[nodiscard]] auto rangesSupport() -> T { + auto& value = (*repr_)["rangesSupport"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto rangesSupport(std::optional rangesSupport) -> DocumentRangeFormattingOptions&; @@ -5402,12 +8134,25 @@ class DocumentOnTypeFormattingOptions final : public LSPObject { [[nodiscard]] auto moreTriggerCharacter() const -> std::optional>; + template + [[nodiscard]] auto moreTriggerCharacter() -> T { + auto& value = (*repr_)["moreTriggerCharacter"]; + return T(value); + } + auto firstTriggerCharacter(std::string firstTriggerCharacter) -> DocumentOnTypeFormattingOptions&; auto moreTriggerCharacter( std::optional> moreTriggerCharacter) -> DocumentOnTypeFormattingOptions&; + + auto moreTriggerCharacter(std::vector moreTriggerCharacter) + -> DocumentOnTypeFormattingOptions& { + auto& value = (*repr_)["moreTriggerCharacter"]; + value = std::move(moreTriggerCharacter); + return *this; + } }; class RenameOptions final : public LSPObject { @@ -5418,8 +8163,20 @@ class RenameOptions final : public LSPObject { [[nodiscard]] auto prepareProvider() const -> std::optional; + template + [[nodiscard]] auto prepareProvider() -> T { + auto& value = (*repr_)["prepareProvider"]; + return T(value); + } + [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto prepareProvider(std::optional prepareProvider) -> RenameOptions&; auto workDoneProgress(std::optional workDoneProgress) -> RenameOptions&; @@ -5461,8 +8218,20 @@ class ExecuteCommandOptions final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + auto commands(Vector commands) -> ExecuteCommandOptions&; + auto commands(std::vector commands) -> ExecuteCommandOptions& { + auto& value = (*repr_)["commands"]; + value = std::move(commands); + return *this; + } + auto workDoneProgress(std::optional workDoneProgress) -> ExecuteCommandOptions&; }; @@ -5475,6 +8244,12 @@ class WorkspaceEditMetadata final : public LSPObject { [[nodiscard]] auto isRefactoring() const -> std::optional; + template + [[nodiscard]] auto isRefactoring() -> T { + auto& value = (*repr_)["isRefactoring"]; + return T(value); + } + auto isRefactoring(std::optional isRefactoring) -> WorkspaceEditMetadata&; }; @@ -5491,8 +8266,22 @@ class SemanticTokensLegend final : public LSPObject { auto tokenTypes(Vector tokenTypes) -> SemanticTokensLegend&; + auto tokenTypes(std::vector tokenTypes) + -> SemanticTokensLegend& { + auto& value = (*repr_)["tokenTypes"]; + value = std::move(tokenTypes); + return *this; + } + auto tokenModifiers(Vector tokenModifiers) -> SemanticTokensLegend&; + + auto tokenModifiers(std::vector tokenModifiers) + -> SemanticTokensLegend& { + auto& value = (*repr_)["tokenModifiers"]; + value = std::move(tokenModifiers); + return *this; + } }; class SemanticTokensFullDelta final : public LSPObject { @@ -5503,6 +8292,12 @@ class SemanticTokensFullDelta final : public LSPObject { [[nodiscard]] auto delta() const -> std::optional; + template + [[nodiscard]] auto delta() -> T { + auto& value = (*repr_)["delta"]; + return T(value); + } + auto delta(std::optional delta) -> SemanticTokensFullDelta&; }; @@ -5514,6 +8309,12 @@ class OptionalVersionedTextDocumentIdentifier final : public LSPObject { [[nodiscard]] auto version() const -> std::variant; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + [[nodiscard]] auto uri() const -> std::string; auto version(std::variant version) @@ -5555,6 +8356,12 @@ class SnippetTextEdit final : public LSPObject { [[nodiscard]] auto annotationId() const -> std::optional; + template + [[nodiscard]] auto annotationId() -> T { + auto& value = (*repr_)["annotationId"]; + return T(value); + } + auto range(Range range) -> SnippetTextEdit&; auto snippet(StringValue snippet) -> SnippetTextEdit&; @@ -5574,6 +8381,12 @@ class ResourceOperation final : public LSPObject { [[nodiscard]] auto annotationId() const -> std::optional; + template + [[nodiscard]] auto annotationId() -> T { + auto& value = (*repr_)["annotationId"]; + return T(value); + } + auto kind(std::string kind) -> ResourceOperation&; auto annotationId(std::optional annotationId) @@ -5588,8 +8401,20 @@ class CreateFileOptions final : public LSPObject { [[nodiscard]] auto overwrite() const -> std::optional; + template + [[nodiscard]] auto overwrite() -> T { + auto& value = (*repr_)["overwrite"]; + return T(value); + } + [[nodiscard]] auto ignoreIfExists() const -> std::optional; + template + [[nodiscard]] auto ignoreIfExists() -> T { + auto& value = (*repr_)["ignoreIfExists"]; + return T(value); + } + auto overwrite(std::optional overwrite) -> CreateFileOptions&; auto ignoreIfExists(std::optional ignoreIfExists) -> CreateFileOptions&; @@ -5603,8 +8428,20 @@ class RenameFileOptions final : public LSPObject { [[nodiscard]] auto overwrite() const -> std::optional; + template + [[nodiscard]] auto overwrite() -> T { + auto& value = (*repr_)["overwrite"]; + return T(value); + } + [[nodiscard]] auto ignoreIfExists() const -> std::optional; + template + [[nodiscard]] auto ignoreIfExists() -> T { + auto& value = (*repr_)["ignoreIfExists"]; + return T(value); + } + auto overwrite(std::optional overwrite) -> RenameFileOptions&; auto ignoreIfExists(std::optional ignoreIfExists) -> RenameFileOptions&; @@ -5618,8 +8455,20 @@ class DeleteFileOptions final : public LSPObject { [[nodiscard]] auto recursive() const -> std::optional; + template + [[nodiscard]] auto recursive() -> T { + auto& value = (*repr_)["recursive"]; + return T(value); + } + [[nodiscard]] auto ignoreIfNotExists() const -> std::optional; + template + [[nodiscard]] auto ignoreIfNotExists() -> T { + auto& value = (*repr_)["ignoreIfNotExists"]; + return T(value); + } + auto recursive(std::optional recursive) -> DeleteFileOptions&; auto ignoreIfNotExists(std::optional ignoreIfNotExists) @@ -5636,9 +8485,21 @@ class FileOperationPattern final : public LSPObject { [[nodiscard]] auto matches() const -> std::optional; + template + [[nodiscard]] auto matches() -> T { + auto& value = (*repr_)["matches"]; + return T(value); + } + [[nodiscard]] auto options() const -> std::optional; + template + [[nodiscard]] auto options() -> T { + auto& value = (*repr_)["options"]; + return T(value); + } + auto glob(std::string glob) -> FileOperationPattern&; auto matches(std::optional matches) @@ -5658,10 +8519,22 @@ class WorkspaceFullDocumentDiagnosticReport final : public LSPObject { [[nodiscard]] auto version() const -> std::variant; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::string; [[nodiscard]] auto resultId() const -> std::optional; + template + [[nodiscard]] auto resultId() -> T { + auto& value = (*repr_)["resultId"]; + return T(value); + } + [[nodiscard]] auto items() const -> Vector; auto uri(std::string uri) -> WorkspaceFullDocumentDiagnosticReport&; @@ -5688,6 +8561,12 @@ class WorkspaceUnchangedDocumentDiagnosticReport final : public LSPObject { [[nodiscard]] auto version() const -> std::variant; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + [[nodiscard]] auto kind() const -> std::string; [[nodiscard]] auto resultId() const -> std::string; @@ -5715,9 +8594,21 @@ class NotebookCell final : public LSPObject { [[nodiscard]] auto metadata() const -> std::optional; + template + [[nodiscard]] auto metadata() -> T { + auto& value = (*repr_)["metadata"]; + return T(value); + } + [[nodiscard]] auto executionSummary() const -> std::optional; + template + [[nodiscard]] auto executionSummary() -> T { + auto& value = (*repr_)["executionSummary"]; + return T(value); + } + auto kind(NotebookCellKind kind) -> NotebookCell&; auto document(std::string document) -> NotebookCell&; @@ -5737,9 +8628,21 @@ class NotebookDocumentFilterWithNotebook final : public LSPObject { [[nodiscard]] auto notebook() const -> std::variant; + template + [[nodiscard]] auto notebook() -> T { + auto& value = (*repr_)["notebook"]; + return T(value); + } + [[nodiscard]] auto cells() const -> std::optional>; + template + [[nodiscard]] auto cells() -> T { + auto& value = (*repr_)["cells"]; + return T(value); + } + auto notebook(std::variant notebook) -> NotebookDocumentFilterWithNotebook&; @@ -5756,6 +8659,12 @@ class NotebookDocumentFilterWithCells final : public LSPObject { [[nodiscard]] auto notebook() const -> std::optional>; + template + [[nodiscard]] auto notebook() -> T { + auto& value = (*repr_)["notebook"]; + return T(value); + } + [[nodiscard]] auto cells() const -> Vector; auto notebook( @@ -5775,11 +8684,29 @@ class NotebookDocumentCellChanges final : public LSPObject { [[nodiscard]] auto structure() const -> std::optional; + template + [[nodiscard]] auto structure() -> T { + auto& value = (*repr_)["structure"]; + return T(value); + } + [[nodiscard]] auto data() const -> std::optional>; + template + [[nodiscard]] auto data() -> T { + auto& value = (*repr_)["data"]; + return T(value); + } + [[nodiscard]] auto textContent() const -> std::optional>; + template + [[nodiscard]] auto textContent() -> T { + auto& value = (*repr_)["textContent"]; + return T(value); + } + auto structure(std::optional structure) -> NotebookDocumentCellChanges&; @@ -5816,6 +8743,12 @@ class ClientInfo final : public LSPObject { [[nodiscard]] auto version() const -> std::optional; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + auto name(std::string name) -> ClientInfo&; auto version(std::optional version) -> ClientInfo&; @@ -5830,19 +8763,55 @@ class ClientCapabilities final : public LSPObject { [[nodiscard]] auto workspace() const -> std::optional; + template + [[nodiscard]] auto workspace() -> T { + auto& value = (*repr_)["workspace"]; + return T(value); + } + [[nodiscard]] auto textDocument() const -> std::optional; + template + [[nodiscard]] auto textDocument() -> T { + auto& value = (*repr_)["textDocument"]; + return T(value); + } + [[nodiscard]] auto notebookDocument() const -> std::optional; + template + [[nodiscard]] auto notebookDocument() -> T { + auto& value = (*repr_)["notebookDocument"]; + return T(value); + } + [[nodiscard]] auto window() const -> std::optional; + template + [[nodiscard]] auto window() -> T { + auto& value = (*repr_)["window"]; + return T(value); + } + [[nodiscard]] auto general() const -> std::optional; + template + [[nodiscard]] auto general() -> T { + auto& value = (*repr_)["general"]; + return T(value); + } + [[nodiscard]] auto experimental() const -> std::optional; + template + [[nodiscard]] auto experimental() -> T { + auto& value = (*repr_)["experimental"]; + return T(value); + } + auto workspace(std::optional workspace) -> ClientCapabilities&; @@ -5870,15 +8839,45 @@ class TextDocumentSyncOptions final : public LSPObject { [[nodiscard]] auto openClose() const -> std::optional; + template + [[nodiscard]] auto openClose() -> T { + auto& value = (*repr_)["openClose"]; + return T(value); + } + [[nodiscard]] auto change() const -> std::optional; + template + [[nodiscard]] auto change() -> T { + auto& value = (*repr_)["change"]; + return T(value); + } + [[nodiscard]] auto willSave() const -> std::optional; + template + [[nodiscard]] auto willSave() -> T { + auto& value = (*repr_)["willSave"]; + return T(value); + } + [[nodiscard]] auto willSaveWaitUntil() const -> std::optional; + template + [[nodiscard]] auto willSaveWaitUntil() -> T { + auto& value = (*repr_)["willSaveWaitUntil"]; + return T(value); + } + [[nodiscard]] auto save() const -> std::optional>; + template + [[nodiscard]] auto save() -> T { + auto& value = (*repr_)["save"]; + return T(value); + } + auto openClose(std::optional openClose) -> TextDocumentSyncOptions&; auto change(std::optional change) @@ -5902,13 +8901,31 @@ class WorkspaceOptions final : public LSPObject { [[nodiscard]] auto workspaceFolders() const -> std::optional; + template + [[nodiscard]] auto workspaceFolders() -> T { + auto& value = (*repr_)["workspaceFolders"]; + return T(value); + } + [[nodiscard]] auto fileOperations() const -> std::optional; + template + [[nodiscard]] auto fileOperations() -> T { + auto& value = (*repr_)["fileOperations"]; + return T(value); + } + [[nodiscard]] auto textDocumentContent() const -> std::optional>; + template + [[nodiscard]] auto textDocumentContent() -> T { + auto& value = (*repr_)["textDocumentContent"]; + return T(value); + } + auto workspaceFolders( std::optional workspaceFolders) -> WorkspaceOptions&; @@ -5932,6 +8949,12 @@ class TextDocumentContentChangePartial final : public LSPObject { [[nodiscard]] auto rangeLength() const -> std::optional; + template + [[nodiscard]] auto rangeLength() -> T { + auto& value = (*repr_)["rangeLength"]; + return T(value); + } + [[nodiscard]] auto text() const -> std::string; auto range(Range range) -> TextDocumentContentChangePartial&; @@ -6002,6 +9025,12 @@ class ServerCompletionItemOptions final : public LSPObject { [[nodiscard]] auto labelDetailsSupport() const -> std::optional; + template + [[nodiscard]] auto labelDetailsSupport() -> T { + auto& value = (*repr_)["labelDetailsSupport"]; + return T(value); + } + auto labelDetailsSupport(std::optional labelDetailsSupport) -> ServerCompletionItemOptions&; }; @@ -6030,9 +9059,21 @@ class ParameterInformation final : public LSPObject { [[nodiscard]] auto label() const -> std::variant>; + template + [[nodiscard]] auto label() -> T { + auto& value = (*repr_)["label"]; + return T(value); + } + [[nodiscard]] auto documentation() const -> std::optional>; + template + [[nodiscard]] auto documentation() -> T { + auto& value = (*repr_)["documentation"]; + return T(value); + } + auto label(std::variant> label) -> ParameterInformation&; @@ -6065,8 +9106,20 @@ class NotebookCellTextDocumentFilter final : public LSPObject { [[nodiscard]] auto notebook() const -> std::variant; + template + [[nodiscard]] auto notebook() -> T { + auto& value = (*repr_)["notebook"]; + return T(value); + } + [[nodiscard]] auto language() const -> std::optional; + template + [[nodiscard]] auto language() -> T { + auto& value = (*repr_)["language"]; + return T(value); + } + auto notebook(std::variant notebook) -> NotebookCellTextDocumentFilter&; @@ -6082,6 +9135,12 @@ class FileOperationPatternOptions final : public LSPObject { [[nodiscard]] auto ignoreCase() const -> std::optional; + template + [[nodiscard]] auto ignoreCase() -> T { + auto& value = (*repr_)["ignoreCase"]; + return T(value); + } + auto ignoreCase(std::optional ignoreCase) -> FileOperationPatternOptions&; }; @@ -6096,6 +9155,12 @@ class ExecutionSummary final : public LSPObject { [[nodiscard]] auto success() const -> std::optional; + template + [[nodiscard]] auto success() -> T { + auto& value = (*repr_)["success"]; + return T(value); + } + auto executionOrder(long executionOrder) -> ExecutionSummary&; auto success(std::optional success) -> ExecutionSummary&; @@ -6122,9 +9187,21 @@ class NotebookDocumentCellChangeStructure final : public LSPObject { [[nodiscard]] auto didOpen() const -> std::optional>; + template + [[nodiscard]] auto didOpen() -> T { + auto& value = (*repr_)["didOpen"]; + return T(value); + } + [[nodiscard]] auto didClose() const -> std::optional>; + template + [[nodiscard]] auto didClose() -> T { + auto& value = (*repr_)["didClose"]; + return T(value); + } + auto array(NotebookCellArrayChange array) -> NotebookDocumentCellChangeStructure&; @@ -6160,49 +9237,145 @@ class WorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto applyEdit() const -> std::optional; + template + [[nodiscard]] auto applyEdit() -> T { + auto& value = (*repr_)["applyEdit"]; + return T(value); + } + [[nodiscard]] auto workspaceEdit() const -> std::optional; + template + [[nodiscard]] auto workspaceEdit() -> T { + auto& value = (*repr_)["workspaceEdit"]; + return T(value); + } + [[nodiscard]] auto didChangeConfiguration() const -> std::optional; + template + [[nodiscard]] auto didChangeConfiguration() -> T { + auto& value = (*repr_)["didChangeConfiguration"]; + return T(value); + } + [[nodiscard]] auto didChangeWatchedFiles() const -> std::optional; + template + [[nodiscard]] auto didChangeWatchedFiles() -> T { + auto& value = (*repr_)["didChangeWatchedFiles"]; + return T(value); + } + [[nodiscard]] auto symbol() const -> std::optional; + template + [[nodiscard]] auto symbol() -> T { + auto& value = (*repr_)["symbol"]; + return T(value); + } + [[nodiscard]] auto executeCommand() const -> std::optional; + template + [[nodiscard]] auto executeCommand() -> T { + auto& value = (*repr_)["executeCommand"]; + return T(value); + } + [[nodiscard]] auto workspaceFolders() const -> std::optional; + template + [[nodiscard]] auto workspaceFolders() -> T { + auto& value = (*repr_)["workspaceFolders"]; + return T(value); + } + [[nodiscard]] auto configuration() const -> std::optional; + template + [[nodiscard]] auto configuration() -> T { + auto& value = (*repr_)["configuration"]; + return T(value); + } + [[nodiscard]] auto semanticTokens() const -> std::optional; + template + [[nodiscard]] auto semanticTokens() -> T { + auto& value = (*repr_)["semanticTokens"]; + return T(value); + } + [[nodiscard]] auto codeLens() const -> std::optional; + template + [[nodiscard]] auto codeLens() -> T { + auto& value = (*repr_)["codeLens"]; + return T(value); + } + [[nodiscard]] auto fileOperations() const -> std::optional; + template + [[nodiscard]] auto fileOperations() -> T { + auto& value = (*repr_)["fileOperations"]; + return T(value); + } + [[nodiscard]] auto inlineValue() const -> std::optional; + template + [[nodiscard]] auto inlineValue() -> T { + auto& value = (*repr_)["inlineValue"]; + return T(value); + } + [[nodiscard]] auto inlayHint() const -> std::optional; + template + [[nodiscard]] auto inlayHint() -> T { + auto& value = (*repr_)["inlayHint"]; + return T(value); + } + [[nodiscard]] auto diagnostics() const -> std::optional; + template + [[nodiscard]] auto diagnostics() -> T { + auto& value = (*repr_)["diagnostics"]; + return T(value); + } + [[nodiscard]] auto foldingRange() const -> std::optional; + template + [[nodiscard]] auto foldingRange() -> T { + auto& value = (*repr_)["foldingRange"]; + return T(value); + } + [[nodiscard]] auto textDocumentContent() const -> std::optional; + template + [[nodiscard]] auto textDocumentContent() -> T { + auto& value = (*repr_)["textDocumentContent"]; + return T(value); + } + auto applyEdit(std::optional applyEdit) -> WorkspaceClientCapabilities&; auto workspaceEdit( @@ -6270,97 +9443,289 @@ class TextDocumentClientCapabilities final : public LSPObject { [[nodiscard]] auto synchronization() const -> std::optional; + template + [[nodiscard]] auto synchronization() -> T { + auto& value = (*repr_)["synchronization"]; + return T(value); + } + [[nodiscard]] auto filters() const -> std::optional; + template + [[nodiscard]] auto filters() -> T { + auto& value = (*repr_)["filters"]; + return T(value); + } + [[nodiscard]] auto completion() const -> std::optional; + template + [[nodiscard]] auto completion() -> T { + auto& value = (*repr_)["completion"]; + return T(value); + } + [[nodiscard]] auto hover() const -> std::optional; + template + [[nodiscard]] auto hover() -> T { + auto& value = (*repr_)["hover"]; + return T(value); + } + [[nodiscard]] auto signatureHelp() const -> std::optional; + template + [[nodiscard]] auto signatureHelp() -> T { + auto& value = (*repr_)["signatureHelp"]; + return T(value); + } + [[nodiscard]] auto declaration() const -> std::optional; + template + [[nodiscard]] auto declaration() -> T { + auto& value = (*repr_)["declaration"]; + return T(value); + } + [[nodiscard]] auto definition() const -> std::optional; + template + [[nodiscard]] auto definition() -> T { + auto& value = (*repr_)["definition"]; + return T(value); + } + [[nodiscard]] auto typeDefinition() const -> std::optional; + template + [[nodiscard]] auto typeDefinition() -> T { + auto& value = (*repr_)["typeDefinition"]; + return T(value); + } + [[nodiscard]] auto implementation() const -> std::optional; + template + [[nodiscard]] auto implementation() -> T { + auto& value = (*repr_)["implementation"]; + return T(value); + } + [[nodiscard]] auto references() const -> std::optional; + template + [[nodiscard]] auto references() -> T { + auto& value = (*repr_)["references"]; + return T(value); + } + [[nodiscard]] auto documentHighlight() const -> std::optional; + template + [[nodiscard]] auto documentHighlight() -> T { + auto& value = (*repr_)["documentHighlight"]; + return T(value); + } + [[nodiscard]] auto documentSymbol() const -> std::optional; + template + [[nodiscard]] auto documentSymbol() -> T { + auto& value = (*repr_)["documentSymbol"]; + return T(value); + } + [[nodiscard]] auto codeAction() const -> std::optional; + template + [[nodiscard]] auto codeAction() -> T { + auto& value = (*repr_)["codeAction"]; + return T(value); + } + [[nodiscard]] auto codeLens() const -> std::optional; + template + [[nodiscard]] auto codeLens() -> T { + auto& value = (*repr_)["codeLens"]; + return T(value); + } + [[nodiscard]] auto documentLink() const -> std::optional; + template + [[nodiscard]] auto documentLink() -> T { + auto& value = (*repr_)["documentLink"]; + return T(value); + } + [[nodiscard]] auto colorProvider() const -> std::optional; + template + [[nodiscard]] auto colorProvider() -> T { + auto& value = (*repr_)["colorProvider"]; + return T(value); + } + [[nodiscard]] auto formatting() const -> std::optional; + template + [[nodiscard]] auto formatting() -> T { + auto& value = (*repr_)["formatting"]; + return T(value); + } + [[nodiscard]] auto rangeFormatting() const -> std::optional; + template + [[nodiscard]] auto rangeFormatting() -> T { + auto& value = (*repr_)["rangeFormatting"]; + return T(value); + } + [[nodiscard]] auto onTypeFormatting() const -> std::optional; + template + [[nodiscard]] auto onTypeFormatting() -> T { + auto& value = (*repr_)["onTypeFormatting"]; + return T(value); + } + [[nodiscard]] auto rename() const -> std::optional; + template + [[nodiscard]] auto rename() -> T { + auto& value = (*repr_)["rename"]; + return T(value); + } + [[nodiscard]] auto foldingRange() const -> std::optional; + template + [[nodiscard]] auto foldingRange() -> T { + auto& value = (*repr_)["foldingRange"]; + return T(value); + } + [[nodiscard]] auto selectionRange() const -> std::optional; + template + [[nodiscard]] auto selectionRange() -> T { + auto& value = (*repr_)["selectionRange"]; + return T(value); + } + [[nodiscard]] auto publishDiagnostics() const -> std::optional; + template + [[nodiscard]] auto publishDiagnostics() -> T { + auto& value = (*repr_)["publishDiagnostics"]; + return T(value); + } + [[nodiscard]] auto callHierarchy() const -> std::optional; + template + [[nodiscard]] auto callHierarchy() -> T { + auto& value = (*repr_)["callHierarchy"]; + return T(value); + } + [[nodiscard]] auto semanticTokens() const -> std::optional; + template + [[nodiscard]] auto semanticTokens() -> T { + auto& value = (*repr_)["semanticTokens"]; + return T(value); + } + [[nodiscard]] auto linkedEditingRange() const -> std::optional; + template + [[nodiscard]] auto linkedEditingRange() -> T { + auto& value = (*repr_)["linkedEditingRange"]; + return T(value); + } + [[nodiscard]] auto moniker() const -> std::optional; + template + [[nodiscard]] auto moniker() -> T { + auto& value = (*repr_)["moniker"]; + return T(value); + } + [[nodiscard]] auto typeHierarchy() const -> std::optional; + template + [[nodiscard]] auto typeHierarchy() -> T { + auto& value = (*repr_)["typeHierarchy"]; + return T(value); + } + [[nodiscard]] auto inlineValue() const -> std::optional; + template + [[nodiscard]] auto inlineValue() -> T { + auto& value = (*repr_)["inlineValue"]; + return T(value); + } + [[nodiscard]] auto inlayHint() const -> std::optional; + template + [[nodiscard]] auto inlayHint() -> T { + auto& value = (*repr_)["inlayHint"]; + return T(value); + } + [[nodiscard]] auto diagnostic() const -> std::optional; + template + [[nodiscard]] auto diagnostic() -> T { + auto& value = (*repr_)["diagnostic"]; + return T(value); + } + [[nodiscard]] auto inlineCompletion() const -> std::optional; + template + [[nodiscard]] auto inlineCompletion() -> T { + auto& value = (*repr_)["inlineCompletion"]; + return T(value); + } + auto synchronization( std::optional synchronization) -> TextDocumentClientCapabilities&; @@ -6496,12 +9861,30 @@ class WindowClientCapabilities final : public LSPObject { [[nodiscard]] auto workDoneProgress() const -> std::optional; + template + [[nodiscard]] auto workDoneProgress() -> T { + auto& value = (*repr_)["workDoneProgress"]; + return T(value); + } + [[nodiscard]] auto showMessage() const -> std::optional; + template + [[nodiscard]] auto showMessage() -> T { + auto& value = (*repr_)["showMessage"]; + return T(value); + } + [[nodiscard]] auto showDocument() const -> std::optional; + template + [[nodiscard]] auto showDocument() -> T { + auto& value = (*repr_)["showDocument"]; + return T(value); + } + auto workDoneProgress(std::optional workDoneProgress) -> WindowClientCapabilities&; @@ -6522,15 +9905,39 @@ class GeneralClientCapabilities final : public LSPObject { [[nodiscard]] auto staleRequestSupport() const -> std::optional; + template + [[nodiscard]] auto staleRequestSupport() -> T { + auto& value = (*repr_)["staleRequestSupport"]; + return T(value); + } + [[nodiscard]] auto regularExpressions() const -> std::optional; + template + [[nodiscard]] auto regularExpressions() -> T { + auto& value = (*repr_)["regularExpressions"]; + return T(value); + } + [[nodiscard]] auto markdown() const -> std::optional; + template + [[nodiscard]] auto markdown() -> T { + auto& value = (*repr_)["markdown"]; + return T(value); + } + [[nodiscard]] auto positionEncodings() const -> std::optional>; + template + [[nodiscard]] auto positionEncodings() -> T { + auto& value = (*repr_)["positionEncodings"]; + return T(value); + } + auto staleRequestSupport( std::optional staleRequestSupport) -> GeneralClientCapabilities&; @@ -6555,9 +9962,21 @@ class WorkspaceFoldersServerCapabilities final : public LSPObject { [[nodiscard]] auto supported() const -> std::optional; + template + [[nodiscard]] auto supported() -> T { + auto& value = (*repr_)["supported"]; + return T(value); + } + [[nodiscard]] auto changeNotifications() const -> std::optional>; + template + [[nodiscard]] auto changeNotifications() -> T { + auto& value = (*repr_)["changeNotifications"]; + return T(value); + } + auto supported(std::optional supported) -> WorkspaceFoldersServerCapabilities&; @@ -6575,21 +9994,57 @@ class FileOperationOptions final : public LSPObject { [[nodiscard]] auto didCreate() const -> std::optional; + template + [[nodiscard]] auto didCreate() -> T { + auto& value = (*repr_)["didCreate"]; + return T(value); + } + [[nodiscard]] auto willCreate() const -> std::optional; + template + [[nodiscard]] auto willCreate() -> T { + auto& value = (*repr_)["willCreate"]; + return T(value); + } + [[nodiscard]] auto didRename() const -> std::optional; + template + [[nodiscard]] auto didRename() -> T { + auto& value = (*repr_)["didRename"]; + return T(value); + } + [[nodiscard]] auto willRename() const -> std::optional; + template + [[nodiscard]] auto willRename() -> T { + auto& value = (*repr_)["willRename"]; + return T(value); + } + [[nodiscard]] auto didDelete() const -> std::optional; + template + [[nodiscard]] auto didDelete() -> T { + auto& value = (*repr_)["didDelete"]; + return T(value); + } + [[nodiscard]] auto willDelete() const -> std::optional; + template + [[nodiscard]] auto willDelete() -> T { + auto& value = (*repr_)["willDelete"]; + return T(value); + } + auto didCreate(std::optional didCreate) -> FileOperationOptions&; @@ -6618,6 +10073,12 @@ class RelativePattern final : public LSPObject { [[nodiscard]] auto baseUri() const -> std::variant; + template + [[nodiscard]] auto baseUri() -> T { + auto& value = (*repr_)["baseUri"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> Pattern; auto baseUri(std::variant baseUri) @@ -6636,8 +10097,20 @@ class TextDocumentFilterLanguage final : public LSPObject { [[nodiscard]] auto scheme() const -> std::optional; + template + [[nodiscard]] auto scheme() -> T { + auto& value = (*repr_)["scheme"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> std::optional; + template + [[nodiscard]] auto pattern() -> T { + auto& value = (*repr_)["pattern"]; + return T(value); + } + auto language(std::string language) -> TextDocumentFilterLanguage&; auto scheme(std::optional scheme) -> TextDocumentFilterLanguage&; @@ -6654,10 +10127,22 @@ class TextDocumentFilterScheme final : public LSPObject { [[nodiscard]] auto language() const -> std::optional; + template + [[nodiscard]] auto language() -> T { + auto& value = (*repr_)["language"]; + return T(value); + } + [[nodiscard]] auto scheme() const -> std::string; [[nodiscard]] auto pattern() const -> std::optional; + template + [[nodiscard]] auto pattern() -> T { + auto& value = (*repr_)["pattern"]; + return T(value); + } + auto language(std::optional language) -> TextDocumentFilterScheme&; @@ -6674,8 +10159,20 @@ class TextDocumentFilterPattern final : public LSPObject { [[nodiscard]] auto language() const -> std::optional; + template + [[nodiscard]] auto language() -> T { + auto& value = (*repr_)["language"]; + return T(value); + } + [[nodiscard]] auto scheme() const -> std::optional; + template + [[nodiscard]] auto scheme() -> T { + auto& value = (*repr_)["scheme"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> GlobPattern; auto language(std::optional language) @@ -6696,8 +10193,20 @@ class NotebookDocumentFilterNotebookType final : public LSPObject { [[nodiscard]] auto scheme() const -> std::optional; + template + [[nodiscard]] auto scheme() -> T { + auto& value = (*repr_)["scheme"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> std::optional; + template + [[nodiscard]] auto pattern() -> T { + auto& value = (*repr_)["pattern"]; + return T(value); + } + auto notebookType(std::string notebookType) -> NotebookDocumentFilterNotebookType&; @@ -6716,10 +10225,22 @@ class NotebookDocumentFilterScheme final : public LSPObject { [[nodiscard]] auto notebookType() const -> std::optional; + template + [[nodiscard]] auto notebookType() -> T { + auto& value = (*repr_)["notebookType"]; + return T(value); + } + [[nodiscard]] auto scheme() const -> std::string; [[nodiscard]] auto pattern() const -> std::optional; + template + [[nodiscard]] auto pattern() -> T { + auto& value = (*repr_)["pattern"]; + return T(value); + } + auto notebookType(std::optional notebookType) -> NotebookDocumentFilterScheme&; @@ -6737,8 +10258,20 @@ class NotebookDocumentFilterPattern final : public LSPObject { [[nodiscard]] auto notebookType() const -> std::optional; + template + [[nodiscard]] auto notebookType() -> T { + auto& value = (*repr_)["notebookType"]; + return T(value); + } + [[nodiscard]] auto scheme() const -> std::optional; + template + [[nodiscard]] auto scheme() -> T { + auto& value = (*repr_)["scheme"]; + return T(value); + } + [[nodiscard]] auto pattern() const -> GlobPattern; auto notebookType(std::optional notebookType) @@ -6762,6 +10295,12 @@ class NotebookCellArrayChange final : public LSPObject { [[nodiscard]] auto cells() const -> std::optional>; + template + [[nodiscard]] auto cells() -> T { + auto& value = (*repr_)["cells"]; + return T(value); + } + auto start(long start) -> NotebookCellArrayChange&; auto deleteCount(long deleteCount) -> NotebookCellArrayChange&; @@ -6778,21 +10317,63 @@ class WorkspaceEditClientCapabilities final : public LSPObject { [[nodiscard]] auto documentChanges() const -> std::optional; + template + [[nodiscard]] auto documentChanges() -> T { + auto& value = (*repr_)["documentChanges"]; + return T(value); + } + [[nodiscard]] auto resourceOperations() const -> std::optional>; + template + [[nodiscard]] auto resourceOperations() -> T { + auto& value = (*repr_)["resourceOperations"]; + return T(value); + } + [[nodiscard]] auto failureHandling() const -> std::optional; + template + [[nodiscard]] auto failureHandling() -> T { + auto& value = (*repr_)["failureHandling"]; + return T(value); + } + [[nodiscard]] auto normalizesLineEndings() const -> std::optional; + template + [[nodiscard]] auto normalizesLineEndings() -> T { + auto& value = (*repr_)["normalizesLineEndings"]; + return T(value); + } + [[nodiscard]] auto changeAnnotationSupport() const -> std::optional; + template + [[nodiscard]] auto changeAnnotationSupport() -> T { + auto& value = (*repr_)["changeAnnotationSupport"]; + return T(value); + } + [[nodiscard]] auto metadataSupport() const -> std::optional; + template + [[nodiscard]] auto metadataSupport() -> T { + auto& value = (*repr_)["metadataSupport"]; + return T(value); + } + [[nodiscard]] auto snippetEditSupport() const -> std::optional; + template + [[nodiscard]] auto snippetEditSupport() -> T { + auto& value = (*repr_)["snippetEditSupport"]; + return T(value); + } + auto documentChanges(std::optional documentChanges) -> WorkspaceEditClientCapabilities&; @@ -6825,6 +10406,12 @@ class DidChangeConfigurationClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DidChangeConfigurationClientCapabilities&; }; @@ -6837,8 +10424,20 @@ class DidChangeWatchedFilesClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto relativePatternSupport() const -> std::optional; + template + [[nodiscard]] auto relativePatternSupport() -> T { + auto& value = (*repr_)["relativePatternSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DidChangeWatchedFilesClientCapabilities&; @@ -6854,15 +10453,39 @@ class WorkspaceSymbolClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto symbolKind() const -> std::optional; + template + [[nodiscard]] auto symbolKind() -> T { + auto& value = (*repr_)["symbolKind"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto resolveSupport() const -> std::optional; + template + [[nodiscard]] auto resolveSupport() -> T { + auto& value = (*repr_)["resolveSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> WorkspaceSymbolClientCapabilities&; @@ -6884,6 +10507,12 @@ class ExecuteCommandClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> ExecuteCommandClientCapabilities&; }; @@ -6896,6 +10525,12 @@ class SemanticTokensWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> SemanticTokensWorkspaceClientCapabilities&; }; @@ -6908,6 +10543,12 @@ class CodeLensWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> CodeLensWorkspaceClientCapabilities&; }; @@ -6920,18 +10561,60 @@ class FileOperationClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto didCreate() const -> std::optional; + template + [[nodiscard]] auto didCreate() -> T { + auto& value = (*repr_)["didCreate"]; + return T(value); + } + [[nodiscard]] auto willCreate() const -> std::optional; + template + [[nodiscard]] auto willCreate() -> T { + auto& value = (*repr_)["willCreate"]; + return T(value); + } + [[nodiscard]] auto didRename() const -> std::optional; + template + [[nodiscard]] auto didRename() -> T { + auto& value = (*repr_)["didRename"]; + return T(value); + } + [[nodiscard]] auto willRename() const -> std::optional; + template + [[nodiscard]] auto willRename() -> T { + auto& value = (*repr_)["willRename"]; + return T(value); + } + [[nodiscard]] auto didDelete() const -> std::optional; + template + [[nodiscard]] auto didDelete() -> T { + auto& value = (*repr_)["didDelete"]; + return T(value); + } + [[nodiscard]] auto willDelete() const -> std::optional; + template + [[nodiscard]] auto willDelete() -> T { + auto& value = (*repr_)["willDelete"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> FileOperationClientCapabilities&; @@ -6962,6 +10645,12 @@ class InlineValueWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> InlineValueWorkspaceClientCapabilities&; }; @@ -6974,6 +10663,12 @@ class InlayHintWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> InlayHintWorkspaceClientCapabilities&; }; @@ -6986,6 +10681,12 @@ class DiagnosticWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> DiagnosticWorkspaceClientCapabilities&; }; @@ -6998,6 +10699,12 @@ class FoldingRangeWorkspaceClientCapabilities final : public LSPObject { [[nodiscard]] auto refreshSupport() const -> std::optional; + template + [[nodiscard]] auto refreshSupport() -> T { + auto& value = (*repr_)["refreshSupport"]; + return T(value); + } + auto refreshSupport(std::optional refreshSupport) -> FoldingRangeWorkspaceClientCapabilities&; }; @@ -7010,6 +10717,12 @@ class TextDocumentContentClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> TextDocumentContentClientCapabilities&; }; @@ -7022,12 +10735,36 @@ class TextDocumentSyncClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto willSave() const -> std::optional; + template + [[nodiscard]] auto willSave() -> T { + auto& value = (*repr_)["willSave"]; + return T(value); + } + [[nodiscard]] auto willSaveWaitUntil() const -> std::optional; + template + [[nodiscard]] auto willSaveWaitUntil() -> T { + auto& value = (*repr_)["willSaveWaitUntil"]; + return T(value); + } + [[nodiscard]] auto didSave() const -> std::optional; + template + [[nodiscard]] auto didSave() -> T { + auto& value = (*repr_)["didSave"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> TextDocumentSyncClientCapabilities&; @@ -7049,6 +10786,12 @@ class TextDocumentFilterClientCapabilities final : public LSPObject { [[nodiscard]] auto relativePatternSupport() const -> std::optional; + template + [[nodiscard]] auto relativePatternSupport() -> T { + auto& value = (*repr_)["relativePatternSupport"]; + return T(value); + } + auto relativePatternSupport(std::optional relativePatternSupport) -> TextDocumentFilterClientCapabilities&; }; @@ -7061,19 +10804,55 @@ class CompletionClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto completionItem() const -> std::optional; + template + [[nodiscard]] auto completionItem() -> T { + auto& value = (*repr_)["completionItem"]; + return T(value); + } + [[nodiscard]] auto completionItemKind() const -> std::optional; + template + [[nodiscard]] auto completionItemKind() -> T { + auto& value = (*repr_)["completionItemKind"]; + return T(value); + } + [[nodiscard]] auto insertTextMode() const -> std::optional; + template + [[nodiscard]] auto insertTextMode() -> T { + auto& value = (*repr_)["insertTextMode"]; + return T(value); + } + [[nodiscard]] auto contextSupport() const -> std::optional; + template + [[nodiscard]] auto contextSupport() -> T { + auto& value = (*repr_)["contextSupport"]; + return T(value); + } + [[nodiscard]] auto completionList() const -> std::optional; + template + [[nodiscard]] auto completionList() -> T { + auto& value = (*repr_)["completionList"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> CompletionClientCapabilities&; @@ -7102,8 +10881,20 @@ class HoverClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto contentFormat() const -> std::optional>; + template + [[nodiscard]] auto contentFormat() -> T { + auto& value = (*repr_)["contentFormat"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> HoverClientCapabilities&; @@ -7119,11 +10910,29 @@ class SignatureHelpClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto signatureInformation() const -> std::optional; + template + [[nodiscard]] auto signatureInformation() -> T { + auto& value = (*repr_)["signatureInformation"]; + return T(value); + } + [[nodiscard]] auto contextSupport() const -> std::optional; + template + [[nodiscard]] auto contextSupport() -> T { + auto& value = (*repr_)["contextSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> SignatureHelpClientCapabilities&; @@ -7143,8 +10952,20 @@ class DeclarationClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto linkSupport() const -> std::optional; + template + [[nodiscard]] auto linkSupport() -> T { + auto& value = (*repr_)["linkSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DeclarationClientCapabilities&; @@ -7160,8 +10981,20 @@ class DefinitionClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto linkSupport() const -> std::optional; + template + [[nodiscard]] auto linkSupport() -> T { + auto& value = (*repr_)["linkSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DefinitionClientCapabilities&; @@ -7177,8 +11010,20 @@ class TypeDefinitionClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto linkSupport() const -> std::optional; + template + [[nodiscard]] auto linkSupport() -> T { + auto& value = (*repr_)["linkSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> TypeDefinitionClientCapabilities&; @@ -7194,8 +11039,20 @@ class ImplementationClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto linkSupport() const -> std::optional; + template + [[nodiscard]] auto linkSupport() -> T { + auto& value = (*repr_)["linkSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> ImplementationClientCapabilities&; @@ -7211,6 +11068,12 @@ class ReferenceClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> ReferenceClientCapabilities&; }; @@ -7223,6 +11086,12 @@ class DocumentHighlightClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentHighlightClientCapabilities&; }; @@ -7235,17 +11104,47 @@ class DocumentSymbolClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto symbolKind() const -> std::optional; + template + [[nodiscard]] auto symbolKind() -> T { + auto& value = (*repr_)["symbolKind"]; + return T(value); + } + [[nodiscard]] auto hierarchicalDocumentSymbolSupport() const -> std::optional; + template + [[nodiscard]] auto hierarchicalDocumentSymbolSupport() -> T { + auto& value = (*repr_)["hierarchicalDocumentSymbolSupport"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto labelSupport() const -> std::optional; + template + [[nodiscard]] auto labelSupport() -> T { + auto& value = (*repr_)["labelSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentSymbolClientCapabilities&; @@ -7271,24 +11170,78 @@ class CodeActionClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto codeActionLiteralSupport() const -> std::optional; + template + [[nodiscard]] auto codeActionLiteralSupport() -> T { + auto& value = (*repr_)["codeActionLiteralSupport"]; + return T(value); + } + [[nodiscard]] auto isPreferredSupport() const -> std::optional; + template + [[nodiscard]] auto isPreferredSupport() -> T { + auto& value = (*repr_)["isPreferredSupport"]; + return T(value); + } + [[nodiscard]] auto disabledSupport() const -> std::optional; + template + [[nodiscard]] auto disabledSupport() -> T { + auto& value = (*repr_)["disabledSupport"]; + return T(value); + } + [[nodiscard]] auto dataSupport() const -> std::optional; + template + [[nodiscard]] auto dataSupport() -> T { + auto& value = (*repr_)["dataSupport"]; + return T(value); + } + [[nodiscard]] auto resolveSupport() const -> std::optional; + template + [[nodiscard]] auto resolveSupport() -> T { + auto& value = (*repr_)["resolveSupport"]; + return T(value); + } + [[nodiscard]] auto honorsChangeAnnotations() const -> std::optional; + template + [[nodiscard]] auto honorsChangeAnnotations() -> T { + auto& value = (*repr_)["honorsChangeAnnotations"]; + return T(value); + } + [[nodiscard]] auto documentationSupport() const -> std::optional; + template + [[nodiscard]] auto documentationSupport() -> T { + auto& value = (*repr_)["documentationSupport"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> CodeActionClientCapabilities&; @@ -7327,9 +11280,21 @@ class CodeLensClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto resolveSupport() const -> std::optional; + template + [[nodiscard]] auto resolveSupport() -> T { + auto& value = (*repr_)["resolveSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> CodeLensClientCapabilities&; @@ -7346,8 +11311,20 @@ class DocumentLinkClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto tooltipSupport() const -> std::optional; + template + [[nodiscard]] auto tooltipSupport() -> T { + auto& value = (*repr_)["tooltipSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentLinkClientCapabilities&; @@ -7363,6 +11340,12 @@ class DocumentColorClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentColorClientCapabilities&; }; @@ -7375,6 +11358,12 @@ class DocumentFormattingClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentFormattingClientCapabilities&; }; @@ -7387,8 +11376,20 @@ class DocumentRangeFormattingClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto rangesSupport() const -> std::optional; + template + [[nodiscard]] auto rangesSupport() -> T { + auto& value = (*repr_)["rangesSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentRangeFormattingClientCapabilities&; @@ -7404,6 +11405,12 @@ class DocumentOnTypeFormattingClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DocumentOnTypeFormattingClientCapabilities&; }; @@ -7416,13 +11423,37 @@ class RenameClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto prepareSupport() const -> std::optional; + template + [[nodiscard]] auto prepareSupport() -> T { + auto& value = (*repr_)["prepareSupport"]; + return T(value); + } + [[nodiscard]] auto prepareSupportDefaultBehavior() const -> std::optional; + template + [[nodiscard]] auto prepareSupportDefaultBehavior() -> T { + auto& value = (*repr_)["prepareSupportDefaultBehavior"]; + return T(value); + } + [[nodiscard]] auto honorsChangeAnnotations() const -> std::optional; + template + [[nodiscard]] auto honorsChangeAnnotations() -> T { + auto& value = (*repr_)["honorsChangeAnnotations"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> RenameClientCapabilities&; @@ -7445,16 +11476,46 @@ class FoldingRangeClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto rangeLimit() const -> std::optional; + template + [[nodiscard]] auto rangeLimit() -> T { + auto& value = (*repr_)["rangeLimit"]; + return T(value); + } + [[nodiscard]] auto lineFoldingOnly() const -> std::optional; + template + [[nodiscard]] auto lineFoldingOnly() -> T { + auto& value = (*repr_)["lineFoldingOnly"]; + return T(value); + } + [[nodiscard]] auto foldingRangeKind() const -> std::optional; + template + [[nodiscard]] auto foldingRangeKind() -> T { + auto& value = (*repr_)["foldingRangeKind"]; + return T(value); + } + [[nodiscard]] auto foldingRange() const -> std::optional; + template + [[nodiscard]] auto foldingRange() -> T { + auto& value = (*repr_)["foldingRange"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> FoldingRangeClientCapabilities&; @@ -7480,6 +11541,12 @@ class SelectionRangeClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> SelectionRangeClientCapabilities&; }; @@ -7492,15 +11559,45 @@ class PublishDiagnosticsClientCapabilities final : public LSPObject { [[nodiscard]] auto versionSupport() const -> std::optional; + template + [[nodiscard]] auto versionSupport() -> T { + auto& value = (*repr_)["versionSupport"]; + return T(value); + } + [[nodiscard]] auto relatedInformation() const -> std::optional; + template + [[nodiscard]] auto relatedInformation() -> T { + auto& value = (*repr_)["relatedInformation"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto codeDescriptionSupport() const -> std::optional; + template + [[nodiscard]] auto codeDescriptionSupport() -> T { + auto& value = (*repr_)["codeDescriptionSupport"]; + return T(value); + } + [[nodiscard]] auto dataSupport() const -> std::optional; + template + [[nodiscard]] auto dataSupport() -> T { + auto& value = (*repr_)["dataSupport"]; + return T(value); + } + auto versionSupport(std::optional versionSupport) -> PublishDiagnosticsClientCapabilities&; @@ -7525,6 +11622,12 @@ class CallHierarchyClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> CallHierarchyClientCapabilities&; }; @@ -7537,6 +11640,12 @@ class SemanticTokensClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto requests() const -> ClientSemanticTokensRequestOptions; [[nodiscard]] auto tokenTypes() const -> Vector; @@ -7547,12 +11656,36 @@ class SemanticTokensClientCapabilities final : public LSPObject { [[nodiscard]] auto overlappingTokenSupport() const -> std::optional; + template + [[nodiscard]] auto overlappingTokenSupport() -> T { + auto& value = (*repr_)["overlappingTokenSupport"]; + return T(value); + } + [[nodiscard]] auto multilineTokenSupport() const -> std::optional; + template + [[nodiscard]] auto multilineTokenSupport() -> T { + auto& value = (*repr_)["multilineTokenSupport"]; + return T(value); + } + [[nodiscard]] auto serverCancelSupport() const -> std::optional; + template + [[nodiscard]] auto serverCancelSupport() -> T { + auto& value = (*repr_)["serverCancelSupport"]; + return T(value); + } + [[nodiscard]] auto augmentsSyntaxTokens() const -> std::optional; + template + [[nodiscard]] auto augmentsSyntaxTokens() -> T { + auto& value = (*repr_)["augmentsSyntaxTokens"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> SemanticTokensClientCapabilities&; @@ -7562,9 +11695,23 @@ class SemanticTokensClientCapabilities final : public LSPObject { auto tokenTypes(Vector tokenTypes) -> SemanticTokensClientCapabilities&; + auto tokenTypes(std::vector tokenTypes) + -> SemanticTokensClientCapabilities& { + auto& value = (*repr_)["tokenTypes"]; + value = std::move(tokenTypes); + return *this; + } + auto tokenModifiers(Vector tokenModifiers) -> SemanticTokensClientCapabilities&; + auto tokenModifiers(std::vector tokenModifiers) + -> SemanticTokensClientCapabilities& { + auto& value = (*repr_)["tokenModifiers"]; + value = std::move(tokenModifiers); + return *this; + } + auto formats(Vector formats) -> SemanticTokensClientCapabilities&; @@ -7589,6 +11736,12 @@ class LinkedEditingRangeClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> LinkedEditingRangeClientCapabilities&; }; @@ -7601,6 +11754,12 @@ class MonikerClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> MonikerClientCapabilities&; }; @@ -7613,6 +11772,12 @@ class TypeHierarchyClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> TypeHierarchyClientCapabilities&; }; @@ -7625,6 +11790,12 @@ class InlineValueClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> InlineValueClientCapabilities&; }; @@ -7637,9 +11808,21 @@ class InlayHintClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto resolveSupport() const -> std::optional; + template + [[nodiscard]] auto resolveSupport() -> T { + auto& value = (*repr_)["resolveSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> InlayHintClientCapabilities&; @@ -7656,17 +11839,53 @@ class DiagnosticClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto relatedDocumentSupport() const -> std::optional; + template + [[nodiscard]] auto relatedDocumentSupport() -> T { + auto& value = (*repr_)["relatedDocumentSupport"]; + return T(value); + } + [[nodiscard]] auto relatedInformation() const -> std::optional; + template + [[nodiscard]] auto relatedInformation() -> T { + auto& value = (*repr_)["relatedInformation"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto codeDescriptionSupport() const -> std::optional; + template + [[nodiscard]] auto codeDescriptionSupport() -> T { + auto& value = (*repr_)["codeDescriptionSupport"]; + return T(value); + } + [[nodiscard]] auto dataSupport() const -> std::optional; + template + [[nodiscard]] auto dataSupport() -> T { + auto& value = (*repr_)["dataSupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> DiagnosticClientCapabilities&; @@ -7694,6 +11913,12 @@ class InlineCompletionClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> InlineCompletionClientCapabilities&; }; @@ -7706,8 +11931,20 @@ class NotebookDocumentSyncClientCapabilities final : public LSPObject { [[nodiscard]] auto dynamicRegistration() const -> std::optional; + template + [[nodiscard]] auto dynamicRegistration() -> T { + auto& value = (*repr_)["dynamicRegistration"]; + return T(value); + } + [[nodiscard]] auto executionSummarySupport() const -> std::optional; + template + [[nodiscard]] auto executionSummarySupport() -> T { + auto& value = (*repr_)["executionSummarySupport"]; + return T(value); + } + auto dynamicRegistration(std::optional dynamicRegistration) -> NotebookDocumentSyncClientCapabilities&; @@ -7724,6 +11961,12 @@ class ShowMessageRequestClientCapabilities final : public LSPObject { [[nodiscard]] auto messageActionItem() const -> std::optional; + template + [[nodiscard]] auto messageActionItem() -> T { + auto& value = (*repr_)["messageActionItem"]; + return T(value); + } + auto messageActionItem( std::optional messageActionItem) -> ShowMessageRequestClientCapabilities&; @@ -7754,6 +11997,13 @@ class StaleRequestSupportOptions final : public LSPObject { auto retryOnContentModified(Vector retryOnContentModified) -> StaleRequestSupportOptions&; + + auto retryOnContentModified(std::vector retryOnContentModified) + -> StaleRequestSupportOptions& { + auto& value = (*repr_)["retryOnContentModified"]; + value = std::move(retryOnContentModified); + return *this; + } }; class RegularExpressionsClientCapabilities final : public LSPObject { @@ -7766,6 +12016,12 @@ class RegularExpressionsClientCapabilities final : public LSPObject { [[nodiscard]] auto version() const -> std::optional; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + auto engine(RegularExpressionEngineKind engine) -> RegularExpressionsClientCapabilities&; @@ -7783,8 +12039,20 @@ class MarkdownClientCapabilities final : public LSPObject { [[nodiscard]] auto version() const -> std::optional; + template + [[nodiscard]] auto version() -> T { + auto& value = (*repr_)["version"]; + return T(value); + } + [[nodiscard]] auto allowedTags() const -> std::optional>; + template + [[nodiscard]] auto allowedTags() -> T { + auto& value = (*repr_)["allowedTags"]; + return T(value); + } + auto parser(std::string parser) -> MarkdownClientCapabilities&; auto version(std::optional version) @@ -7792,6 +12060,13 @@ class MarkdownClientCapabilities final : public LSPObject { auto allowedTags(std::optional> allowedTags) -> MarkdownClientCapabilities&; + + auto allowedTags(std::vector allowedTags) + -> MarkdownClientCapabilities& { + auto& value = (*repr_)["allowedTags"]; + value = std::move(allowedTags); + return *this; + } }; class ChangeAnnotationsSupportOptions final : public LSPObject { @@ -7802,6 +12077,12 @@ class ChangeAnnotationsSupportOptions final : public LSPObject { [[nodiscard]] auto groupsOnLabel() const -> std::optional; + template + [[nodiscard]] auto groupsOnLabel() -> T { + auto& value = (*repr_)["groupsOnLabel"]; + return T(value); + } + auto groupsOnLabel(std::optional groupsOnLabel) -> ChangeAnnotationsSupportOptions&; }; @@ -7814,6 +12095,12 @@ class ClientSymbolKindOptions final : public LSPObject { [[nodiscard]] auto valueSet() const -> std::optional>; + template + [[nodiscard]] auto valueSet() -> T { + auto& value = (*repr_)["valueSet"]; + return T(value); + } + auto valueSet(std::optional> valueSet) -> ClientSymbolKindOptions&; }; @@ -7839,6 +12126,13 @@ class ClientSymbolResolveOptions final : public LSPObject { auto properties(Vector properties) -> ClientSymbolResolveOptions&; + + auto properties(std::vector properties) + -> ClientSymbolResolveOptions& { + auto& value = (*repr_)["properties"]; + value = std::move(properties); + return *this; + } }; class ClientCompletionItemOptions final : public LSPObject { @@ -7849,28 +12143,88 @@ class ClientCompletionItemOptions final : public LSPObject { [[nodiscard]] auto snippetSupport() const -> std::optional; + template + [[nodiscard]] auto snippetSupport() -> T { + auto& value = (*repr_)["snippetSupport"]; + return T(value); + } + [[nodiscard]] auto commitCharactersSupport() const -> std::optional; + template + [[nodiscard]] auto commitCharactersSupport() -> T { + auto& value = (*repr_)["commitCharactersSupport"]; + return T(value); + } + [[nodiscard]] auto documentationFormat() const -> std::optional>; + template + [[nodiscard]] auto documentationFormat() -> T { + auto& value = (*repr_)["documentationFormat"]; + return T(value); + } + [[nodiscard]] auto deprecatedSupport() const -> std::optional; + template + [[nodiscard]] auto deprecatedSupport() -> T { + auto& value = (*repr_)["deprecatedSupport"]; + return T(value); + } + [[nodiscard]] auto preselectSupport() const -> std::optional; + template + [[nodiscard]] auto preselectSupport() -> T { + auto& value = (*repr_)["preselectSupport"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto insertReplaceSupport() const -> std::optional; + template + [[nodiscard]] auto insertReplaceSupport() -> T { + auto& value = (*repr_)["insertReplaceSupport"]; + return T(value); + } + [[nodiscard]] auto resolveSupport() const -> std::optional; + template + [[nodiscard]] auto resolveSupport() -> T { + auto& value = (*repr_)["resolveSupport"]; + return T(value); + } + [[nodiscard]] auto insertTextModeSupport() const -> std::optional; + template + [[nodiscard]] auto insertTextModeSupport() -> T { + auto& value = (*repr_)["insertTextModeSupport"]; + return T(value); + } + [[nodiscard]] auto labelDetailsSupport() const -> std::optional; + template + [[nodiscard]] auto labelDetailsSupport() -> T { + auto& value = (*repr_)["labelDetailsSupport"]; + return T(value); + } + auto snippetSupport(std::optional snippetSupport) -> ClientCompletionItemOptions&; @@ -7914,6 +12268,12 @@ class ClientCompletionItemOptionsKind final : public LSPObject { [[nodiscard]] auto valueSet() const -> std::optional>; + template + [[nodiscard]] auto valueSet() -> T { + auto& value = (*repr_)["valueSet"]; + return T(value); + } + auto valueSet(std::optional> valueSet) -> ClientCompletionItemOptionsKind&; }; @@ -7926,11 +12286,30 @@ class CompletionListCapabilities final : public LSPObject { [[nodiscard]] auto itemDefaults() const -> std::optional>; + template + [[nodiscard]] auto itemDefaults() -> T { + auto& value = (*repr_)["itemDefaults"]; + return T(value); + } + [[nodiscard]] auto applyKindSupport() const -> std::optional; + template + [[nodiscard]] auto applyKindSupport() -> T { + auto& value = (*repr_)["applyKindSupport"]; + return T(value); + } + auto itemDefaults(std::optional> itemDefaults) -> CompletionListCapabilities&; + auto itemDefaults(std::vector itemDefaults) + -> CompletionListCapabilities& { + auto& value = (*repr_)["itemDefaults"]; + value = std::move(itemDefaults); + return *this; + } + auto applyKindSupport(std::optional applyKindSupport) -> CompletionListCapabilities&; }; @@ -7944,13 +12323,37 @@ class ClientSignatureInformationOptions final : public LSPObject { [[nodiscard]] auto documentationFormat() const -> std::optional>; + template + [[nodiscard]] auto documentationFormat() -> T { + auto& value = (*repr_)["documentationFormat"]; + return T(value); + } + [[nodiscard]] auto parameterInformation() const -> std::optional; + template + [[nodiscard]] auto parameterInformation() -> T { + auto& value = (*repr_)["parameterInformation"]; + return T(value); + } + [[nodiscard]] auto activeParameterSupport() const -> std::optional; + template + [[nodiscard]] auto activeParameterSupport() -> T { + auto& value = (*repr_)["activeParameterSupport"]; + return T(value); + } + [[nodiscard]] auto noActiveParameterSupport() const -> std::optional; + template + [[nodiscard]] auto noActiveParameterSupport() -> T { + auto& value = (*repr_)["noActiveParameterSupport"]; + return T(value); + } + auto documentationFormat( std::optional> documentationFormat) -> ClientSignatureInformationOptions&; @@ -7988,6 +12391,13 @@ class ClientCodeActionResolveOptions final : public LSPObject { auto properties(Vector properties) -> ClientCodeActionResolveOptions&; + + auto properties(std::vector properties) + -> ClientCodeActionResolveOptions& { + auto& value = (*repr_)["properties"]; + value = std::move(properties); + return *this; + } }; class CodeActionTagOptions final : public LSPObject { @@ -8011,6 +12421,13 @@ class ClientCodeLensResolveOptions final : public LSPObject { auto properties(Vector properties) -> ClientCodeLensResolveOptions&; + + auto properties(std::vector properties) + -> ClientCodeLensResolveOptions& { + auto& value = (*repr_)["properties"]; + value = std::move(properties); + return *this; + } }; class ClientFoldingRangeKindOptions final : public LSPObject { @@ -8022,6 +12439,12 @@ class ClientFoldingRangeKindOptions final : public LSPObject { [[nodiscard]] auto valueSet() const -> std::optional>; + template + [[nodiscard]] auto valueSet() -> T { + auto& value = (*repr_)["valueSet"]; + return T(value); + } + auto valueSet(std::optional> valueSet) -> ClientFoldingRangeKindOptions&; }; @@ -8034,6 +12457,12 @@ class ClientFoldingRangeOptions final : public LSPObject { [[nodiscard]] auto collapsedText() const -> std::optional; + template + [[nodiscard]] auto collapsedText() -> T { + auto& value = (*repr_)["collapsedText"]; + return T(value); + } + auto collapsedText(std::optional collapsedText) -> ClientFoldingRangeOptions&; }; @@ -8046,13 +12475,37 @@ class DiagnosticsCapabilities final : public LSPObject { [[nodiscard]] auto relatedInformation() const -> std::optional; + template + [[nodiscard]] auto relatedInformation() -> T { + auto& value = (*repr_)["relatedInformation"]; + return T(value); + } + [[nodiscard]] auto tagSupport() const -> std::optional; + template + [[nodiscard]] auto tagSupport() -> T { + auto& value = (*repr_)["tagSupport"]; + return T(value); + } + [[nodiscard]] auto codeDescriptionSupport() const -> std::optional; + template + [[nodiscard]] auto codeDescriptionSupport() -> T { + auto& value = (*repr_)["codeDescriptionSupport"]; + return T(value); + } + [[nodiscard]] auto dataSupport() const -> std::optional; + template + [[nodiscard]] auto dataSupport() -> T { + auto& value = (*repr_)["dataSupport"]; + return T(value); + } + auto relatedInformation(std::optional relatedInformation) -> DiagnosticsCapabilities&; @@ -8073,9 +12526,21 @@ class ClientSemanticTokensRequestOptions final : public LSPObject { [[nodiscard]] auto range() const -> std::optional>; + template + [[nodiscard]] auto range() -> T { + auto& value = (*repr_)["range"]; + return T(value); + } + [[nodiscard]] auto full() const -> std::optional< std::variant>; + template + [[nodiscard]] auto full() -> T { + auto& value = (*repr_)["full"]; + return T(value); + } + auto range(std::optional> range) -> ClientSemanticTokensRequestOptions&; @@ -8094,6 +12559,13 @@ class ClientInlayHintResolveOptions final : public LSPObject { auto properties(Vector properties) -> ClientInlayHintResolveOptions&; + + auto properties(std::vector properties) + -> ClientInlayHintResolveOptions& { + auto& value = (*repr_)["properties"]; + value = std::move(properties); + return *this; + } }; class ClientShowMessageActionItemOptions final : public LSPObject { @@ -8104,6 +12576,12 @@ class ClientShowMessageActionItemOptions final : public LSPObject { [[nodiscard]] auto additionalPropertiesSupport() const -> std::optional; + template + [[nodiscard]] auto additionalPropertiesSupport() -> T { + auto& value = (*repr_)["additionalPropertiesSupport"]; + return T(value); + } + auto additionalPropertiesSupport( std::optional additionalPropertiesSupport) -> ClientShowMessageActionItemOptions&; @@ -8131,6 +12609,13 @@ class ClientCompletionItemResolveOptions final : public LSPObject { auto properties(Vector properties) -> ClientCompletionItemResolveOptions&; + + auto properties(std::vector properties) + -> ClientCompletionItemResolveOptions& { + auto& value = (*repr_)["properties"]; + value = std::move(properties); + return *this; + } }; class ClientCompletionItemInsertTextModeOptions final : public LSPObject { @@ -8153,6 +12638,12 @@ class ClientSignatureParameterInformationOptions final : public LSPObject { [[nodiscard]] auto labelOffsetSupport() const -> std::optional; + template + [[nodiscard]] auto labelOffsetSupport() -> T { + auto& value = (*repr_)["labelOffsetSupport"]; + return T(value); + } + auto labelOffsetSupport(std::optional labelOffsetSupport) -> ClientSignatureParameterInformationOptions&; }; @@ -8188,6 +12679,12 @@ class ClientSemanticTokensRequestFullDelta final : public LSPObject { [[nodiscard]] auto delta() const -> std::optional; + template + [[nodiscard]] auto delta() -> T { + auto& value = (*repr_)["delta"]; + return T(value); + } + auto delta(std::optional delta) -> ClientSemanticTokensRequestFullDelta&; }; diff --git a/src/lsp/tests/test_types.cc b/src/lsp/tests/test_types.cc index 6c95a81b..a02693c9 100644 --- a/src/lsp/tests/test_types.cc +++ b/src/lsp/tests/test_types.cc @@ -10,19 +10,19 @@ using namespace cxx::lsp; TEST(LSP, Initialization) { // storage - auto store1 = json::object(); - auto store2 = json::object(); - auto store3 = json::object(); + auto storage = json::object(); - InitializeResult initializeResult{store1}; + InitializeResult initializeResult{storage}; ASSERT_TRUE(!initializeResult); - auto serverInfo = ServerInfo{store2}.name("cxx").version("0.1.0"); + auto serverInfo = + initializeResult.serverInfo().name("cxx").version("0.1.0"); + + ASSERT_TRUE(initializeResult.serverInfo().has_value()); ASSERT_EQ(serverInfo.name(), "cxx"); ASSERT_EQ(serverInfo.version(), "0.1.0"); - ASSERT_TRUE(serverInfo); - auto capabilities = ServerCapabilities{store3}.textDocumentSync( + auto capabilities = initializeResult.capabilities().textDocumentSync( TextDocumentSyncKind::kIncremental); ASSERT_TRUE(capabilities); @@ -35,10 +35,24 @@ TEST(LSP, Initialization) { ASSERT_EQ(std::get(*capabilities.textDocumentSync()), TextDocumentSyncKind::kIncremental); - initializeResult.serverInfo(std::move(serverInfo)); - ASSERT_TRUE(initializeResult.serverInfo()); + capabilities.completionProvider().triggerCharacters( + std::vector{".", ">", ":"}); + + ASSERT_TRUE(capabilities.completionProvider().has_value()); + + auto completionProvider = + capabilities.completionProvider(); + + ASSERT_TRUE(completionProvider.triggerCharacters().has_value()); - initializeResult.capabilities(std::move(capabilities)); + auto triggerCharacters = *completionProvider.triggerCharacters(); + + ASSERT_EQ(triggerCharacters.size(), 3); + ASSERT_EQ(triggerCharacters.at(0), "."); + ASSERT_EQ(triggerCharacters.at(1), ">"); + ASSERT_EQ(triggerCharacters.at(2), ":"); + + ASSERT_TRUE(initializeResult.serverInfo()); ASSERT_TRUE(initializeResult.capabilities()); ASSERT_TRUE(initializeResult); @@ -227,14 +241,10 @@ TEST(LSP, CreateCompletionList) { item.kind(CompletionItemKind::kSnippet); item.label(" include"); - auto labelDetailsStorage = json::object(); - - item.labelDetails(CompletionItemLabelDetails(labelDetailsStorage)) - .detail(" \"header\""); + item.labelDetails().detail(" \"header\""); item.sortText("000000001"); - auto textEditStorage = json::object(); - auto textEdit = TextEdit{textEditStorage}; + auto textEdit = item.textEdit(); textEdit.newText("include \"$0\""); auto range = textEdit.range(); @@ -243,8 +253,6 @@ TEST(LSP, CreateCompletionList) { range.end().line(0); range.end().character(4); - item.textEdit(std::move(textEdit)); - ASSERT_TRUE(completionList); // std::cout << completionList.get().dump(2) << std::endl;