From 98bacd661ff452d3164cdc6b67dac290c796b6d4 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:35:11 -0700 Subject: [PATCH 1/7] Disallow explicit null for optional fields --- internal/lsp/lsproto/_generate/generate.mts | 79 +- internal/lsp/lsproto/lsp_generated.go | 8896 ++++++++++++++++--- internal/lsp/lsproto/lsp_json_test.go | 389 + 3 files changed, 8265 insertions(+), 1099 deletions(-) create mode 100644 internal/lsp/lsproto/lsp_json_test.go diff --git a/internal/lsp/lsproto/_generate/generate.mts b/internal/lsp/lsproto/_generate/generate.mts index 68c31665226..eefb9fab46d 100755 --- a/internal/lsp/lsproto/_generate/generate.mts +++ b/internal/lsp/lsproto/_generate/generate.mts @@ -1247,6 +1247,35 @@ function goKindCasesForJsonKind(kind: string): string { } } +/** + * Checks if a meta model Type can represent a JSON null value. + * Used to determine if null should be rejected for optional pointer fields. + */ +function typeCanBeNull(type: Type): boolean { + switch (type.kind) { + case "base": + return type.name === "null"; + case "reference": { + const override = typeAliasOverrides.get(type.name); + if (override) { + return override.name === "any"; + } + if (nonResolvedAliases.has(type.name)) { + const customAlias = customTypeAliases.find(t => t.name === type.name); + if (customAlias) return typeCanBeNull(customAlias.type); + return false; + } + const aliased = typeInfo.typeAliasMap.get(type.name); + if (aliased) return typeCanBeNull(aliased); + return false; + } + case "or": + return type.items.some(item => typeCanBeNull(item)); + default: + return false; + } +} + /** * For a group of union entries that share the same JSON kind (e.g., all objects), * find a discriminator field — a JSON property whose string literal type differs @@ -1728,21 +1757,25 @@ function generateCode() { if (p.omitzeroValue) return false; return true; }) || []; - if (requiredProps.length > 0 && structure.name !== "Registration") { + // Check if any optional pointer fields need null rejection + const hasNullRejectableFields = structure.properties?.some(p => p.optional && !p.omitzeroValue && !typeCanBeNull(p.type)) || false; + if ((requiredProps.length > 0 || hasNullRejectableFields) && structure.name !== "Registration") { writeLine(`\tvar _ json.UnmarshalerFrom = (*${structure.name})(nil)`); writeLine(""); writeLine(`func (s *${structure.name}) UnmarshalJSONFrom(dec *json.Decoder) error {`); - writeLine(`\tconst (`); - for (let i = 0; i < requiredProps.length; i++) { - const prop = requiredProps[i]; - const iotaPrefix = i === 0 ? " uint = 1 << iota" : ""; - writeLine(`\t\tmissing${titleCase(prop.name)}${iotaPrefix}`); + if (requiredProps.length > 0) { + writeLine(`\tconst (`); + for (let i = 0; i < requiredProps.length; i++) { + const prop = requiredProps[i]; + const iotaPrefix = i === 0 ? " uint = 1 << iota" : ""; + writeLine(`\t\tmissing${titleCase(prop.name)}${iotaPrefix}`); + } + writeLine(`\t\t_missingLast`); + writeLine(`\t)`); + writeLine(`\tmissing := _missingLast - 1`); + writeLine(""); } - writeLine(`\t\t_missingLast`); - writeLine(`\t)`); - writeLine(`\tmissing := _missingLast - 1`); - writeLine(""); writeLine(`\tif k := dec.PeekKind(); k != '{' {`); writeLine(`\t\treturn fmt.Errorf("expected object start, but encountered %v", k)`); @@ -1764,6 +1797,12 @@ function generateCode() { if (!prop.optional && !prop.omitzeroValue) { writeLine(`\t\t\tmissing &^= missing${titleCase(prop.name)}`); } + // Reject null for optional pointer fields whose types cannot represent null + if (prop.optional && !prop.omitzeroValue && !typeCanBeNull(prop.type)) { + writeLine(`\t\t\tif dec.PeekKind() == 'n' {`); + writeLine(`\t\t\t\treturn fmt.Errorf("null value is not allowed for field \\"${prop.name}\\"")`); + writeLine(`\t\t\t}`); + } writeLine(`\t\t\tif err := json.UnmarshalDecode(dec, &s.${titleCase(prop.name)}); err != nil {`); writeLine(`\t\t\t\treturn err`); writeLine(`\t\t\t}`); @@ -1782,17 +1821,19 @@ function generateCode() { writeLine(`\t}`); writeLine(""); - writeLine(`\tif missing != 0 {`); - writeLine(`\t\tvar missingProps []string`); - for (const prop of requiredProps) { - writeLine(`\t\tif missing&missing${titleCase(prop.name)} != 0 {`); - writeLine(`\t\t\tmissingProps = append(missingProps, "${prop.name}")`); - writeLine(`\t\t}`); + if (requiredProps.length > 0) { + writeLine(`\tif missing != 0 {`); + writeLine(`\t\tvar missingProps []string`); + for (const prop of requiredProps) { + writeLine(`\t\tif missing&missing${titleCase(prop.name)} != 0 {`); + writeLine(`\t\t\tmissingProps = append(missingProps, "${prop.name}")`); + writeLine(`\t\t}`); + } + writeLine(`\t\treturn fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", "))`); + writeLine(`\t}`); + writeLine(""); } - writeLine(`\t\treturn fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", "))`); - writeLine(`\t}`); - writeLine(""); writeLine(`\treturn nil`); writeLine(`}`); writeLine(""); diff --git a/internal/lsp/lsproto/lsp_generated.go b/internal/lsp/lsproto/lsp_generated.go index 9cf61bdad3f..1cc79b8fadd 100644 --- a/internal/lsp/lsproto/lsp_generated.go +++ b/internal/lsp/lsproto/lsp_generated.go @@ -70,10 +70,16 @@ func (s *ImplementationParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -212,10 +218,16 @@ func (s *ImplementationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -298,10 +310,16 @@ func (s *TypeDefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -370,10 +388,16 @@ func (s *TypeDefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -616,10 +640,16 @@ func (s *DocumentColorParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -757,10 +787,16 @@ func (s *DocumentColorRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -834,10 +870,16 @@ func (s *ColorPresentationParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -928,10 +970,16 @@ func (s *ColorPresentation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"textEdit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textEdit\"") + } if err := json.UnmarshalDecode(dec, &s.TextEdit); err != nil { return err } case `"additionalTextEdits"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"additionalTextEdits\"") + } if err := json.UnmarshalDecode(dec, &s.AdditionalTextEdits); err != nil { return err } @@ -961,6 +1009,43 @@ type WorkDoneProgressOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkDoneProgressOptions)(nil) + +func (s *WorkDoneProgressOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // General text document registration options. type TextDocumentRegistrationOptions struct { // A document selector to identify the scope of the registration. If set to null @@ -1057,10 +1142,16 @@ func (s *FoldingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -1150,6 +1241,9 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"startCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"startCharacter\"") + } if err := json.UnmarshalDecode(dec, &s.StartCharacter); err != nil { return err } @@ -1159,14 +1253,23 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"endCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"endCharacter\"") + } if err := json.UnmarshalDecode(dec, &s.EndCharacter); err != nil { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"collapsedText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"collapsedText\"") + } if err := json.UnmarshalDecode(dec, &s.CollapsedText); err != nil { return err } @@ -1235,10 +1338,16 @@ func (s *FoldingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -1321,10 +1430,16 @@ func (s *DeclarationParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -1388,6 +1503,9 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -1397,6 +1515,9 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -1466,10 +1587,16 @@ func (s *SelectionRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -1546,6 +1673,9 @@ func (s *SelectionRange) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"parent"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"parent\"") + } if err := json.UnmarshalDecode(dec, &s.Parent); err != nil { return err } @@ -1606,6 +1736,9 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -1615,6 +1748,9 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -1804,6 +1940,9 @@ func (s *CallHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -1908,10 +2047,16 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"detail\"") + } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } @@ -1931,6 +2076,9 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -2011,10 +2159,16 @@ func (s *CallHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -2077,10 +2231,16 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -2218,10 +2378,16 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -2363,10 +2529,16 @@ func (s *SemanticTokensParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -2432,6 +2604,9 @@ func (s *SemanticTokens) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"resultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resultId\"") + } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err } @@ -2568,6 +2743,9 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -2577,14 +2755,23 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"range"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"range\"") + } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"full"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"full\"") + } if err := json.UnmarshalDecode(dec, &s.Full); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -2658,10 +2845,16 @@ func (s *SemanticTokensDeltaParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -2731,6 +2924,9 @@ func (s *SemanticTokensDelta) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"resultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resultId\"") + } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err } @@ -2859,10 +3055,16 @@ func (s *SemanticTokensRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -2954,14 +3156,23 @@ func (s *ShowDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"external"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"external\"") + } if err := json.UnmarshalDecode(dec, &s.External); err != nil { return err } case `"takeFocus"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"takeFocus\"") + } if err := json.UnmarshalDecode(dec, &s.TakeFocus); err != nil { return err } case `"selection"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"selection\"") + } if err := json.UnmarshalDecode(dec, &s.Selection); err != nil { return err } @@ -3097,6 +3308,9 @@ func (s *LinkedEditingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -3167,6 +3381,9 @@ func (s *LinkedEditingRanges) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"wordPattern"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"wordPattern\"") + } if err := json.UnmarshalDecode(dec, &s.WordPattern); err != nil { return err } @@ -3232,10 +3449,16 @@ func (s *LinkedEditingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -3356,6 +3579,57 @@ type WorkspaceEdit struct { ChangeAnnotations *map[string]*ChangeAnnotation `json:"changeAnnotations,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkspaceEdit)(nil) + +func (s *WorkspaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"changes"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"changes\"") + } + if err := json.UnmarshalDecode(dec, &s.Changes); err != nil { + return err + } + case `"documentChanges"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentChanges\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentChanges); err != nil { + return err + } + case `"changeAnnotations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"changeAnnotations\"") + } + if err := json.UnmarshalDecode(dec, &s.ChangeAnnotations); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The options to register for file operations. // // Since: 3.16.0 @@ -3587,10 +3861,16 @@ func (s *MonikerParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -3677,6 +3957,9 @@ func (s *Moniker) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } @@ -3744,6 +4027,9 @@ func (s *MonikerRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -3825,6 +4111,9 @@ func (s *TypeHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -3930,10 +4219,16 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"detail\"") + } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } @@ -3953,6 +4248,9 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -4033,10 +4331,16 @@ func (s *TypeHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -4099,10 +4403,16 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -4170,10 +4480,16 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -4251,6 +4567,9 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -4335,6 +4654,9 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -4344,6 +4666,9 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -4411,6 +4736,9 @@ func (s *InlayHintParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -4532,26 +4860,44 @@ func (s *InlayHint) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"textEdits"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textEdits\"") + } if err := json.UnmarshalDecode(dec, &s.TextEdits); err != nil { return err } case `"tooltip"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tooltip\"") + } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"paddingLeft"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"paddingLeft\"") + } if err := json.UnmarshalDecode(dec, &s.PaddingLeft); err != nil { return err } case `"paddingRight"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"paddingRight\"") + } if err := json.UnmarshalDecode(dec, &s.PaddingRight); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -4622,10 +4968,16 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } @@ -4635,6 +4987,9 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -4708,10 +5063,16 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -4721,10 +5082,16 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"identifier"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"identifier\"") + } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err } case `"previousResultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"previousResultId\"") + } if err := json.UnmarshalDecode(dec, &s.PreviousResultId); err != nil { return err } @@ -4920,10 +5287,16 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"identifier"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"identifier\"") + } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err } @@ -4938,6 +5311,9 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -5011,14 +5387,23 @@ func (s *WorkspaceDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } case `"identifier"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"identifier\"") + } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err } @@ -5224,6 +5609,9 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -5366,14 +5754,23 @@ func (s *InlineCompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"filterText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"filterText\"") + } if err := json.UnmarshalDecode(dec, &s.FilterText); err != nil { return err } case `"range"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"range\"") + } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"command"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } @@ -5439,6 +5836,9 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -5448,6 +5848,9 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -5636,6 +6039,9 @@ func (s *TextDocumentContentRegistrationOptions) UnmarshalJSONFrom(dec *json.Dec return err } case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") + } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } @@ -5909,6 +6315,9 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -5918,10 +6327,16 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"clientInfo"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"clientInfo\"") + } if err := json.UnmarshalDecode(dec, &s.ClientInfo); err != nil { return err } case `"locale"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"locale\"") + } if err := json.UnmarshalDecode(dec, &s.Locale); err != nil { return err } @@ -5940,10 +6355,16 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"initializationOptions"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"initializationOptions\"") + } if err := json.UnmarshalDecode(dec, &s.InitializationOptions); err != nil { return err } case `"trace"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"trace\"") + } if err := json.UnmarshalDecode(dec, &s.Trace); err != nil { return err } @@ -6018,6 +6439,9 @@ func (s *InitializeResult) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"serverInfo"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"serverInfo\"") + } if err := json.UnmarshalDecode(dec, &s.ServerInfo); err != nil { return err } @@ -6163,6 +6587,43 @@ type DidChangeConfigurationRegistrationOptions struct { Section *StringOrStrings `json:"section,omitzero"` } +var _ json.UnmarshalerFrom = (*DidChangeConfigurationRegistrationOptions)(nil) + +func (s *DidChangeConfigurationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"section"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"section\"") + } + if err := json.UnmarshalDecode(dec, &s.Section); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The parameters of a notification message. type ShowMessageParams struct { // The message type. See MessageType @@ -6275,6 +6736,9 @@ func (s *ShowMessageRequestParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"actions"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"actions\"") + } if err := json.UnmarshalDecode(dec, &s.Actions); err != nil { return err } @@ -6727,6 +7191,9 @@ func (s *DidSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"text"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"text\"") + } if err := json.UnmarshalDecode(dec, &s.Text); err != nil { return err } @@ -6790,6 +7257,9 @@ func (s *TextDocumentSaveRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode return err } case `"includeText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"includeText\"") + } if err := json.UnmarshalDecode(dec, &s.IncludeText); err != nil { return err } @@ -7108,6 +7578,9 @@ func (s *PublishDiagnosticsParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"version"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"version\"") + } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } @@ -7203,14 +7676,23 @@ func (s *CompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } case `"context"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -7408,74 +7890,128 @@ func (s *CompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"labelDetails"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"labelDetails\"") + } if err := json.UnmarshalDecode(dec, &s.LabelDetails); err != nil { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"detail\"") + } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } case `"documentation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentation\"") + } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"deprecated"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"deprecated\"") + } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err } case `"preselect"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"preselect\"") + } if err := json.UnmarshalDecode(dec, &s.Preselect); err != nil { return err } case `"sortText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"sortText\"") + } if err := json.UnmarshalDecode(dec, &s.SortText); err != nil { return err } case `"filterText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"filterText\"") + } if err := json.UnmarshalDecode(dec, &s.FilterText); err != nil { return err } case `"insertText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertText\"") + } if err := json.UnmarshalDecode(dec, &s.InsertText); err != nil { return err } case `"insertTextFormat"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextFormat\"") + } if err := json.UnmarshalDecode(dec, &s.InsertTextFormat); err != nil { return err } case `"insertTextMode"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + } if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { return err } case `"textEdit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textEdit\"") + } if err := json.UnmarshalDecode(dec, &s.TextEdit); err != nil { return err } case `"textEditText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textEditText\"") + } if err := json.UnmarshalDecode(dec, &s.TextEditText); err != nil { return err } case `"additionalTextEdits"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"additionalTextEdits\"") + } if err := json.UnmarshalDecode(dec, &s.AdditionalTextEdits); err != nil { return err } case `"commitCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + } if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { return err } case `"command"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -7579,10 +8115,16 @@ func (s *CompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"itemDefaults"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"itemDefaults\"") + } if err := json.UnmarshalDecode(dec, &s.ItemDefaults); err != nil { return err } case `"applyKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"applyKind\"") + } if err := json.UnmarshalDecode(dec, &s.ApplyKind); err != nil { return err } @@ -7683,22 +8225,37 @@ func (s *CompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"allCommitCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"allCommitCharacters\"") + } if err := json.UnmarshalDecode(dec, &s.AllCommitCharacters); err != nil { return err } case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } case `"completionItem"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionItem\"") + } if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { return err } @@ -7778,6 +8335,9 @@ func (s *HoverParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -7844,6 +8404,9 @@ func (s *Hover) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"range"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"range\"") + } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } @@ -7906,6 +8469,9 @@ func (s *HoverRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -7991,10 +8557,16 @@ func (s *SignatureHelpParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"context"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -8088,6 +8660,9 @@ func (s *SignatureHelp) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"activeSignature"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"activeSignature\"") + } if err := json.UnmarshalDecode(dec, &s.ActiveSignature); err != nil { return err } @@ -8165,14 +8740,23 @@ func (s *SignatureHelpRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"retriggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"retriggerCharacters\"") + } if err := json.UnmarshalDecode(dec, &s.RetriggerCharacters); err != nil { return err } @@ -8256,10 +8840,16 @@ func (s *DefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -8325,6 +8915,9 @@ func (s *DefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -8411,10 +9004,16 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -8488,6 +9087,9 @@ func (s *ReferenceRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -8571,10 +9173,16 @@ func (s *DocumentHighlightParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -8642,6 +9250,9 @@ func (s *DocumentHighlight) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } @@ -8704,6 +9315,9 @@ func (s *DocumentHighlightRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -8769,10 +9383,16 @@ func (s *DocumentSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -8875,14 +9495,23 @@ func (s *SymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"containerName\"") + } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err } case `"deprecated"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"deprecated\"") + } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err } @@ -8988,6 +9617,9 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"detail"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"detail\"") + } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } @@ -8997,10 +9629,16 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"deprecated"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"deprecated\"") + } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err } @@ -9015,6 +9653,9 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"children"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"children\"") + } if err := json.UnmarshalDecode(dec, &s.Children); err != nil { return err } @@ -9092,10 +9733,16 @@ func (s *DocumentSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"label"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"label\"") + } if err := json.UnmarshalDecode(dec, &s.Label); err != nil { return err } @@ -9169,10 +9816,16 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -9271,6 +9924,9 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tooltip"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tooltip\"") + } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } @@ -9280,6 +9936,9 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"arguments"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"arguments\"") + } if err := json.UnmarshalDecode(dec, &s.Arguments); err != nil { return err } @@ -9398,34 +10057,58 @@ func (s *CodeAction) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"diagnostics"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"diagnostics\"") + } if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { return err } case `"isPreferred"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"isPreferred\"") + } if err := json.UnmarshalDecode(dec, &s.IsPreferred); err != nil { return err } case `"disabled"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"disabled\"") + } if err := json.UnmarshalDecode(dec, &s.Disabled); err != nil { return err } case `"edit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"edit\"") + } if err := json.UnmarshalDecode(dec, &s.Edit); err != nil { return err } case `"command"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } @@ -9518,18 +10201,30 @@ func (s *CodeActionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"codeActionKinds"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeActionKinds\"") + } if err := json.UnmarshalDecode(dec, &s.CodeActionKinds); err != nil { return err } case `"documentation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentation\"") + } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } @@ -9598,10 +10293,16 @@ func (s *WorkspaceSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -9702,10 +10403,16 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"containerName\"") + } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err } @@ -9715,6 +10422,9 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -9757,6 +10467,50 @@ type WorkspaceSymbolRegistrationOptions struct { ResolveProvider *bool `json:"resolveProvider,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkspaceSymbolRegistrationOptions)(nil) + +func (s *WorkspaceSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The parameters of a CodeLensRequest. type CodeLensParams struct { // An optional token that a server can use to report work done progress. @@ -9797,10 +10551,16 @@ func (s *CodeLensParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -9876,10 +10636,16 @@ func (s *CodeLens) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"command"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -9945,10 +10711,16 @@ func (s *CodeLensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } @@ -10014,10 +10786,16 @@ func (s *DocumentLinkParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } @@ -10099,14 +10877,23 @@ func (s *DocumentLink) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"target"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"target\"") + } if err := json.UnmarshalDecode(dec, &s.Target); err != nil { return err } case `"tooltip"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tooltip\"") + } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -10172,10 +10959,16 @@ func (s *DocumentLinkRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } @@ -10241,6 +11034,9 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -10316,6 +11112,9 @@ func (s *DocumentFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -10385,6 +11184,9 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -10475,10 +11277,16 @@ func (s *DocumentRangeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"rangesSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + } if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { return err } @@ -10552,6 +11360,9 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -10749,6 +11560,9 @@ func (s *DocumentOnTypeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *jso return err } case `"moreTriggerCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"moreTriggerCharacter\"") + } if err := json.UnmarshalDecode(dec, &s.MoreTriggerCharacter); err != nil { return err } @@ -10837,6 +11651,9 @@ func (s *RenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -10915,10 +11732,16 @@ func (s *RenameRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"prepareProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"prepareProvider\"") + } if err := json.UnmarshalDecode(dec, &s.PrepareProvider); err != nil { return err } @@ -10997,6 +11820,9 @@ func (s *PrepareRenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -11060,6 +11886,9 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } @@ -11069,6 +11898,9 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"arguments"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"arguments\"") + } if err := json.UnmarshalDecode(dec, &s.Arguments); err != nil { return err } @@ -11125,6 +11957,9 @@ func (s *ExecuteCommandRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -11196,6 +12031,9 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"label"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"label\"") + } if err := json.UnmarshalDecode(dec, &s.Label); err != nil { return err } @@ -11205,6 +12043,9 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"metadata"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"metadata\"") + } if err := json.UnmarshalDecode(dec, &s.Metadata); err != nil { return err } @@ -11276,10 +12117,16 @@ func (s *ApplyWorkspaceEditResult) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"failureReason"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"failureReason\"") + } if err := json.UnmarshalDecode(dec, &s.FailureReason); err != nil { return err } case `"failedChange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"failedChange\"") + } if err := json.UnmarshalDecode(dec, &s.FailedChange); err != nil { return err } @@ -11369,14 +12216,23 @@ func (s *WorkDoneProgressBegin) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"cancellable"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"cancellable\"") + } if err := json.UnmarshalDecode(dec, &s.Cancellable); err != nil { return err } case `"message"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"message\"") + } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err } case `"percentage"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"percentage\"") + } if err := json.UnmarshalDecode(dec, &s.Percentage); err != nil { return err } @@ -11458,14 +12314,23 @@ func (s *WorkDoneProgressReport) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"cancellable"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"cancellable\"") + } if err := json.UnmarshalDecode(dec, &s.Cancellable); err != nil { return err } case `"message"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"message\"") + } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err } case `"percentage"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"percentage\"") + } if err := json.UnmarshalDecode(dec, &s.Percentage); err != nil { return err } @@ -11527,6 +12392,9 @@ func (s *WorkDoneProgressEnd) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"message"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"message\"") + } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err } @@ -11639,6 +12507,9 @@ func (s *LogTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"verbose"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"verbose\"") + } if err := json.UnmarshalDecode(dec, &s.Verbose); err != nil { return err } @@ -11865,12 +12736,86 @@ type WorkDoneProgressParams struct { WorkDoneToken *IntegerOrString `json:"workDoneToken,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkDoneProgressParams)(nil) + +func (s *WorkDoneProgressParams) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type PartialResultParams struct { // An optional token that a server can use to report partial results (e.g. streaming) to // the client. PartialResultToken *IntegerOrString `json:"partialResultToken,omitzero"` } +var _ json.UnmarshalerFrom = (*PartialResultParams)(nil) + +func (s *PartialResultParams) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"partialResultToken"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + } + if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Represents the connection of two locations. Provides additional metadata over normal locations, // including an origin range. type LocationLink struct { @@ -11925,6 +12870,9 @@ func (s *LocationLink) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"originSelectionRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"originSelectionRange\"") + } if err := json.UnmarshalDecode(dec, &s.OriginSelectionRange); err != nil { return err } @@ -12054,6 +13002,43 @@ type ImplementationOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*ImplementationOptions)(nil) + +func (s *ImplementationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Static registration options to be returned in the initialize // request. type StaticRegistrationOptions struct { @@ -12062,29 +13047,9 @@ type StaticRegistrationOptions struct { Id *string `json:"id,omitzero"` } -type TypeDefinitionOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` -} - -// The workspace folder change event. -type WorkspaceFoldersChangeEvent struct { - // The array of added workspace folders - Added []*WorkspaceFolder `json:"added"` - - // The array of the removed workspace folders - Removed []*WorkspaceFolder `json:"removed"` -} - -var _ json.UnmarshalerFrom = (*WorkspaceFoldersChangeEvent)(nil) - -func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingAdded uint = 1 << iota - missingRemoved - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*StaticRegistrationOptions)(nil) +func (s *StaticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -12098,14 +13063,11 @@ func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error return err } switch string(name) { - case `"added"`: - missing &^= missingAdded - if err := json.UnmarshalDecode(dec, &s.Added); err != nil { - return err + case `"id"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"id\"") } - case `"removed"`: - missing &^= missingRemoved - if err := json.UnmarshalDecode(dec, &s.Removed); err != nil { + if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err } default: @@ -12119,12 +13081,109 @@ func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error return err } - if missing != 0 { - var missingProps []string - if missing&missingAdded != 0 { - missingProps = append(missingProps, "added") - } - if missing&missingRemoved != 0 { + return nil +} + +type TypeDefinitionOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` +} + +var _ json.UnmarshalerFrom = (*TypeDefinitionOptions)(nil) + +func (s *TypeDefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// The workspace folder change event. +type WorkspaceFoldersChangeEvent struct { + // The array of added workspace folders + Added []*WorkspaceFolder `json:"added"` + + // The array of the removed workspace folders + Removed []*WorkspaceFolder `json:"removed"` +} + +var _ json.UnmarshalerFrom = (*WorkspaceFoldersChangeEvent)(nil) + +func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingAdded uint = 1 << iota + missingRemoved + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"added"`: + missing &^= missingAdded + if err := json.UnmarshalDecode(dec, &s.Added); err != nil { + return err + } + case `"removed"`: + missing &^= missingRemoved + if err := json.UnmarshalDecode(dec, &s.Removed); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingAdded != 0 { + missingProps = append(missingProps, "added") + } + if missing&missingRemoved != 0 { missingProps = append(missingProps, "removed") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) @@ -12141,6 +13200,50 @@ type ConfigurationItem struct { Section *string `json:"section,omitzero"` } +var _ json.UnmarshalerFrom = (*ConfigurationItem)(nil) + +func (s *ConfigurationItem) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"scopeUri"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"scopeUri\"") + } + if err := json.UnmarshalDecode(dec, &s.ScopeUri); err != nil { + return err + } + case `"section"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"section\"") + } + if err := json.UnmarshalDecode(dec, &s.Section); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // A literal to identify a text document in the client. type TextDocumentIdentifier struct { // The text document's uri. @@ -12291,14 +13394,125 @@ type DocumentColorOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentColorOptions)(nil) + +func (s *DocumentColorOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type FoldingRangeOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*FoldingRangeOptions)(nil) + +func (s *FoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type DeclarationOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*DeclarationOptions)(nil) + +func (s *DeclarationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Position in a text document expressed as zero-based line and character // offset. Prior to 3.17 the offsets were always based on a UTF-16 string // representation. So a string of the form `a𐐀b` the character offset of the @@ -12399,26 +13613,100 @@ type SelectionRangeOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } -// Call hierarchy options used during static registration. -// -// Since: 3.16.0 -type CallHierarchyOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` -} - -// Since: 3.16.0 -type SemanticTokensOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - - // The legend used by the server - Legend *SemanticTokensLegend `json:"legend"` +var _ json.UnmarshalerFrom = (*SelectionRangeOptions)(nil) - // Server supports providing semantic tokens for a specific range - // of a document. - Range *BooleanOrEmptyObject `json:"range,omitzero"` +func (s *SelectionRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } - // Server supports providing semantic tokens for a full document. - Full *BooleanOrSemanticTokensFullDelta `json:"full,omitzero"` + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Call hierarchy options used during static registration. +// +// Since: 3.16.0 +type CallHierarchyOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` +} + +var _ json.UnmarshalerFrom = (*CallHierarchyOptions)(nil) + +func (s *CallHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Since: 3.16.0 +type SemanticTokensOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` + + // The legend used by the server + Legend *SemanticTokensLegend `json:"legend"` + + // Server supports providing semantic tokens for a specific range + // of a document. + Range *BooleanOrEmptyObject `json:"range,omitzero"` + + // Server supports providing semantic tokens for a full document. + Full *BooleanOrSemanticTokensFullDelta `json:"full,omitzero"` } var _ json.UnmarshalerFrom = (*SemanticTokensOptions)(nil) @@ -12444,6 +13732,9 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } @@ -12453,10 +13744,16 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"range"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"range\"") + } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"full"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"full\"") + } if err := json.UnmarshalDecode(dec, &s.Full); err != nil { return err } @@ -12528,6 +13825,9 @@ func (s *SemanticTokensEdit) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -12560,6 +13860,43 @@ type LinkedEditingRangeOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*LinkedEditingRangeOptions)(nil) + +func (s *LinkedEditingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Represents information on a file/folder create. // // Since: 3.16.0 @@ -12739,6 +14076,9 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"annotationId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"annotationId\"") + } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } @@ -12748,6 +14088,9 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"options"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -12826,6 +14169,9 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"annotationId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"annotationId\"") + } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } @@ -12840,6 +14186,9 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"options"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -12917,6 +14266,9 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"annotationId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"annotationId\"") + } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } @@ -12926,6 +14278,9 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"options"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -12999,10 +14354,16 @@ func (s *ChangeAnnotation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"needsConfirmation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"needsConfirmation\"") + } if err := json.UnmarshalDecode(dec, &s.NeedsConfirmation); err != nil { return err } case `"description"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"description\"") + } if err := json.UnmarshalDecode(dec, &s.Description); err != nil { return err } @@ -13063,6 +14424,9 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"scheme"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"scheme\"") + } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err } @@ -13223,6 +14587,43 @@ type MonikerOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*MonikerOptions)(nil) + +func (s *MonikerOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Type hierarchy options used during static registration. // // Since: 3.17.0 @@ -13230,6 +14631,43 @@ type TypeHierarchyOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*TypeHierarchyOptions)(nil) + +func (s *TypeHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.17.0 type InlineValueContext struct { // The stack frame (as a DAP Id) where the execution has stopped. @@ -13413,6 +14851,9 @@ func (s *InlineValueVariableLookup) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"variableName"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"variableName\"") + } if err := json.UnmarshalDecode(dec, &s.VariableName); err != nil { return err } @@ -13488,6 +14929,9 @@ func (s *InlineValueEvaluatableExpression) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"expression"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"expression\"") + } if err := json.UnmarshalDecode(dec, &s.Expression); err != nil { return err } @@ -13520,6 +14964,43 @@ type InlineValueOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*InlineValueOptions)(nil) + +func (s *InlineValueOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // An inlay hint label part allows for interactive and composite labels // of inlay hints. // @@ -13581,14 +15062,23 @@ func (s *InlayHintLabelPart) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tooltip"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tooltip\"") + } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"location"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"location\"") + } if err := json.UnmarshalDecode(dec, &s.Location); err != nil { return err } case `"command"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } @@ -13715,30 +15205,74 @@ type InlayHintOptions struct { ResolveProvider *bool `json:"resolveProvider,omitzero"` } -// A full diagnostic report with a set of related documents. -// -// Since: 3.17.0 -type RelatedFullDocumentDiagnosticReport struct { - // A full document diagnostic report. - Kind StringLiteralFull `json:"kind"` - - // An optional result id. If provided it will - // be sent on the next diagnostic request for the - // same document. - ResultId *string `json:"resultId,omitzero"` +var _ json.UnmarshalerFrom = (*InlayHintOptions)(nil) - // The actual items. - Items []*Diagnostic `json:"items"` +func (s *InlayHintOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } - // Diagnostics of related documents. This information is useful - // in programming languages where code in a file A can generate - // diagnostics in a file B which A depends on. An example of - // such a language is C/C++ where marco definitions in a file - // a.cpp and result in errors in a header file b.hpp. - // - // Since: 3.17.0 - RelatedDocuments *map[DocumentUri]FullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport `json:"relatedDocuments,omitzero"` -} + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// A full diagnostic report with a set of related documents. +// +// Since: 3.17.0 +type RelatedFullDocumentDiagnosticReport struct { + // A full document diagnostic report. + Kind StringLiteralFull `json:"kind"` + + // An optional result id. If provided it will + // be sent on the next diagnostic request for the + // same document. + ResultId *string `json:"resultId,omitzero"` + + // The actual items. + Items []*Diagnostic `json:"items"` + + // Diagnostics of related documents. This information is useful + // in programming languages where code in a file A can generate + // diagnostics in a file B which A depends on. An example of + // such a language is C/C++ where marco definitions in a file + // a.cpp and result in errors in a header file b.hpp. + // + // Since: 3.17.0 + RelatedDocuments *map[DocumentUri]FullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport `json:"relatedDocuments,omitzero"` +} var _ json.UnmarshalerFrom = (*RelatedFullDocumentDiagnosticReport)(nil) @@ -13769,6 +15303,9 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode return err } case `"resultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resultId\"") + } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err } @@ -13778,6 +15315,9 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode return err } case `"relatedDocuments"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedDocuments\"") + } if err := json.UnmarshalDecode(dec, &s.RelatedDocuments); err != nil { return err } @@ -13864,6 +15404,9 @@ func (s *RelatedUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.D return err } case `"relatedDocuments"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedDocuments\"") + } if err := json.UnmarshalDecode(dec, &s.RelatedDocuments); err != nil { return err } @@ -13937,6 +15480,9 @@ func (s *FullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) erro return err } case `"resultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resultId\"") + } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err } @@ -14088,10 +15634,16 @@ func (s *DiagnosticOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"identifier"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"identifier\"") + } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err } @@ -14334,6 +15886,9 @@ func (s *InlineCompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"selectedCompletionInfo"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"selectedCompletionInfo\"") + } if err := json.UnmarshalDecode(dec, &s.SelectedCompletionInfo); err != nil { return err } @@ -14445,6 +16000,43 @@ type InlineCompletionOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*InlineCompletionOptions)(nil) + +func (s *InlineCompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Text document content provider options. // // Since: 3.18.0 @@ -15375,6 +16967,274 @@ type ServerCapabilities struct { Workspace *WorkspaceOptions `json:"workspace,omitzero"` } +var _ json.UnmarshalerFrom = (*ServerCapabilities)(nil) + +func (s *ServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"positionEncoding"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"positionEncoding\"") + } + if err := json.UnmarshalDecode(dec, &s.PositionEncoding); err != nil { + return err + } + case `"textDocumentSync"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textDocumentSync\"") + } + if err := json.UnmarshalDecode(dec, &s.TextDocumentSync); err != nil { + return err + } + case `"completionProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.CompletionProvider); err != nil { + return err + } + case `"hoverProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"hoverProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.HoverProvider); err != nil { + return err + } + case `"signatureHelpProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"signatureHelpProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.SignatureHelpProvider); err != nil { + return err + } + case `"declarationProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"declarationProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DeclarationProvider); err != nil { + return err + } + case `"definitionProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"definitionProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DefinitionProvider); err != nil { + return err + } + case `"typeDefinitionProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"typeDefinitionProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.TypeDefinitionProvider); err != nil { + return err + } + case `"implementationProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"implementationProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ImplementationProvider); err != nil { + return err + } + case `"referencesProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"referencesProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ReferencesProvider); err != nil { + return err + } + case `"documentHighlightProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentHighlightProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentHighlightProvider); err != nil { + return err + } + case `"documentSymbolProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentSymbolProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentSymbolProvider); err != nil { + return err + } + case `"codeActionProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeActionProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeActionProvider); err != nil { + return err + } + case `"codeLensProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeLensProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeLensProvider); err != nil { + return err + } + case `"documentLinkProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentLinkProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentLinkProvider); err != nil { + return err + } + case `"colorProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"colorProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ColorProvider); err != nil { + return err + } + case `"workspaceSymbolProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspaceSymbolProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkspaceSymbolProvider); err != nil { + return err + } + case `"documentFormattingProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentFormattingProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentFormattingProvider); err != nil { + return err + } + case `"documentRangeFormattingProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentRangeFormattingProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentRangeFormattingProvider); err != nil { + return err + } + case `"documentOnTypeFormattingProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentOnTypeFormattingProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentOnTypeFormattingProvider); err != nil { + return err + } + case `"renameProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"renameProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.RenameProvider); err != nil { + return err + } + case `"foldingRangeProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"foldingRangeProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.FoldingRangeProvider); err != nil { + return err + } + case `"selectionRangeProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"selectionRangeProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.SelectionRangeProvider); err != nil { + return err + } + case `"executeCommandProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"executeCommandProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ExecuteCommandProvider); err != nil { + return err + } + case `"callHierarchyProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"callHierarchyProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.CallHierarchyProvider); err != nil { + return err + } + case `"linkedEditingRangeProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkedEditingRangeProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkedEditingRangeProvider); err != nil { + return err + } + case `"semanticTokensProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"semanticTokensProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.SemanticTokensProvider); err != nil { + return err + } + case `"monikerProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"monikerProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.MonikerProvider); err != nil { + return err + } + case `"typeHierarchyProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"typeHierarchyProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.TypeHierarchyProvider); err != nil { + return err + } + case `"inlineValueProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlineValueProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.InlineValueProvider); err != nil { + return err + } + case `"inlayHintProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlayHintProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.InlayHintProvider); err != nil { + return err + } + case `"diagnosticProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"diagnosticProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.DiagnosticProvider); err != nil { + return err + } + case `"inlineCompletionProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlineCompletionProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.InlineCompletionProvider); err != nil { + return err + } + case `"workspace"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspace\"") + } + if err := json.UnmarshalDecode(dec, &s.Workspace); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Information about the server // // Since: 3.15.0 @@ -15416,6 +17276,9 @@ func (s *ServerInfo) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"version"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"version\"") + } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } @@ -15514,25 +17377,9 @@ type SaveOptions struct { IncludeText *bool `json:"includeText,omitzero"` } -// An event describing a file change. -type FileEvent struct { - // The file's uri. - Uri DocumentUri `json:"uri"` - - // The change type. - Type FileChangeType `json:"type"` -} - -var _ json.UnmarshalerFrom = (*FileEvent)(nil) - -func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingUri uint = 1 << iota - missingType - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*SaveOptions)(nil) +func (s *SaveOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -15546,14 +17393,11 @@ func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"uri"`: - missing &^= missingUri - if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { - return err + case `"includeText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"includeText\"") } - case `"type"`: - missing &^= missingType - if err := json.UnmarshalDecode(dec, &s.Type); err != nil { + if err := json.UnmarshalDecode(dec, &s.IncludeText); err != nil { return err } default: @@ -15567,10 +17411,66 @@ func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingUri != 0 { - missingProps = append(missingProps, "uri") + return nil +} + +// An event describing a file change. +type FileEvent struct { + // The file's uri. + Uri DocumentUri `json:"uri"` + + // The change type. + Type FileChangeType `json:"type"` +} + +var _ json.UnmarshalerFrom = (*FileEvent)(nil) + +func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingUri uint = 1 << iota + missingType + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"uri"`: + missing &^= missingUri + if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { + return err + } + case `"type"`: + missing &^= missingType + if err := json.UnmarshalDecode(dec, &s.Type); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingUri != 0 { + missingProps = append(missingProps, "uri") } if missing&missingType != 0 { missingProps = append(missingProps, "type") @@ -15621,6 +17521,9 @@ func (s *FileSystemWatcher) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"kind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"kind\"") + } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } @@ -15719,18 +17622,30 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"severity"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"severity\"") + } if err := json.UnmarshalDecode(dec, &s.Severity); err != nil { return err } case `"code"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"code\"") + } if err := json.UnmarshalDecode(dec, &s.Code); err != nil { return err } case `"codeDescription"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeDescription\"") + } if err := json.UnmarshalDecode(dec, &s.CodeDescription); err != nil { return err } case `"source"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"source\"") + } if err := json.UnmarshalDecode(dec, &s.Source); err != nil { return err } @@ -15740,14 +17655,23 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"relatedInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + } if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { return err } case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -15814,6 +17738,9 @@ func (s *CompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"triggerCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacter\"") + } if err := json.UnmarshalDecode(dec, &s.TriggerCharacter); err != nil { return err } @@ -15852,6 +17779,50 @@ type CompletionItemLabelDetails struct { Description *string `json:"description,omitzero"` } +var _ json.UnmarshalerFrom = (*CompletionItemLabelDetails)(nil) + +func (s *CompletionItemLabelDetails) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"detail"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"detail\"") + } + if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { + return err + } + case `"description"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"description\"") + } + if err := json.UnmarshalDecode(dec, &s.Description); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // A special text edit to provide an insert and a replace operation. // // Since: 3.16.0 @@ -15975,6 +17946,71 @@ type CompletionItemDefaults struct { Data *CompletionItemDefaultsData `json:"data,omitzero"` } +var _ json.UnmarshalerFrom = (*CompletionItemDefaults)(nil) + +func (s *CompletionItemDefaults) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"commitCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + } + if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { + return err + } + case `"editRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"editRange\"") + } + if err := json.UnmarshalDecode(dec, &s.EditRange); err != nil { + return err + } + case `"insertTextFormat"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextFormat\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertTextFormat); err != nil { + return err + } + case `"insertTextMode"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { + return err + } + case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } + if err := json.UnmarshalDecode(dec, &s.Data); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Specifies how fields from a completion item should be combined with those // from `completionList.itemDefaults`. // @@ -16035,6 +18071,50 @@ type CompletionItemApplyKinds struct { Data *ApplyKind `json:"data,omitzero"` } +var _ json.UnmarshalerFrom = (*CompletionItemApplyKinds)(nil) + +func (s *CompletionItemApplyKinds) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"commitCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + } + if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { + return err + } + case `"data"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"data\"") + } + if err := json.UnmarshalDecode(dec, &s.Data); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Completion options. type CompletionOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` @@ -16070,46 +18150,9 @@ type CompletionOptions struct { CompletionItem *ServerCompletionItemOptions `json:"completionItem,omitzero"` } -// Hover options. -type HoverOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` -} - -// Additional information about the context in which a signature help request was triggered. -// -// Since: 3.15.0 -type SignatureHelpContext struct { - // Action that caused signature help to be triggered. - TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` - - // Character that caused signature help to be triggered. - // - // This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter` - TriggerCharacter *string `json:"triggerCharacter,omitzero"` - - // `true` if signature help was already showing when it was triggered. - // - // Retriggers occurs when the signature help is already active and can be caused by actions such as - // typing a trigger character, a cursor move, or document content changes. - IsRetrigger bool `json:"isRetrigger"` - - // The currently active `SignatureHelp`. - // - // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on - // the user navigating through available signatures. - ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitzero"` -} - -var _ json.UnmarshalerFrom = (*SignatureHelpContext)(nil) - -func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingTriggerKind uint = 1 << iota - missingIsRetrigger - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*CompletionOptions)(nil) +func (s *CompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -16123,26 +18166,171 @@ func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"triggerKind"`: - missing &^= missingTriggerKind - if err := json.UnmarshalDecode(dec, &s.TriggerKind); err != nil { - return err + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") } - case `"triggerCharacter"`: - if err := json.UnmarshalDecode(dec, &s.TriggerCharacter); err != nil { + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"isRetrigger"`: - missing &^= missingIsRetrigger - if err := json.UnmarshalDecode(dec, &s.IsRetrigger); err != nil { - return err + case `"triggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") } - case `"activeSignatureHelp"`: - if err := json.UnmarshalDecode(dec, &s.ActiveSignatureHelp); err != nil { + if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } - default: - if err := dec.SkipValue(); err != nil { + case `"allCommitCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"allCommitCharacters\"") + } + if err := json.UnmarshalDecode(dec, &s.AllCommitCharacters); err != nil { + return err + } + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { + return err + } + case `"completionItem"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionItem\"") + } + if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Hover options. +type HoverOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` +} + +var _ json.UnmarshalerFrom = (*HoverOptions)(nil) + +func (s *HoverOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Additional information about the context in which a signature help request was triggered. +// +// Since: 3.15.0 +type SignatureHelpContext struct { + // Action that caused signature help to be triggered. + TriggerKind SignatureHelpTriggerKind `json:"triggerKind"` + + // Character that caused signature help to be triggered. + // + // This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter` + TriggerCharacter *string `json:"triggerCharacter,omitzero"` + + // `true` if signature help was already showing when it was triggered. + // + // Retriggers occurs when the signature help is already active and can be caused by actions such as + // typing a trigger character, a cursor move, or document content changes. + IsRetrigger bool `json:"isRetrigger"` + + // The currently active `SignatureHelp`. + // + // The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on + // the user navigating through available signatures. + ActiveSignatureHelp *SignatureHelp `json:"activeSignatureHelp,omitzero"` +} + +var _ json.UnmarshalerFrom = (*SignatureHelpContext)(nil) + +func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingTriggerKind uint = 1 << iota + missingIsRetrigger + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"triggerKind"`: + missing &^= missingTriggerKind + if err := json.UnmarshalDecode(dec, &s.TriggerKind); err != nil { + return err + } + case `"triggerCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacter\"") + } + if err := json.UnmarshalDecode(dec, &s.TriggerCharacter); err != nil { + return err + } + case `"isRetrigger"`: + missing &^= missingIsRetrigger + if err := json.UnmarshalDecode(dec, &s.IsRetrigger); err != nil { + return err + } + case `"activeSignatureHelp"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"activeSignatureHelp\"") + } + if err := json.UnmarshalDecode(dec, &s.ActiveSignatureHelp); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { return err } } @@ -16223,10 +18411,16 @@ func (s *SignatureInformation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"documentation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentation\"") + } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"parameters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"parameters\"") + } if err := json.UnmarshalDecode(dec, &s.Parameters); err != nil { return err } @@ -16272,11 +18466,99 @@ type SignatureHelpOptions struct { RetriggerCharacters *[]string `json:"retriggerCharacters,omitzero"` } +var _ json.UnmarshalerFrom = (*SignatureHelpOptions)(nil) + +func (s *SignatureHelpOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"triggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + } + if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { + return err + } + case `"retriggerCharacters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"retriggerCharacters\"") + } + if err := json.UnmarshalDecode(dec, &s.RetriggerCharacters); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Server Capabilities for a DefinitionRequest. type DefinitionOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } +var _ json.UnmarshalerFrom = (*DefinitionOptions)(nil) + +func (s *DefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Value-object that contains additional information when // requesting references. type ReferenceContext struct { @@ -16338,41 +18620,9 @@ type ReferenceOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` } -// Provider options for a DocumentHighlightRequest. -type DocumentHighlightOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` -} - -// A base for all symbol information. -type BaseSymbolInformation struct { - // The name of this symbol. - Name string `json:"name"` - - // The kind of this symbol. - Kind SymbolKind `json:"kind"` - - // Tags for this symbol. - // - // Since: 3.16.0 - Tags *[]SymbolTag `json:"tags,omitzero"` - - // The name of the symbol containing this symbol. This information is for - // user interface purposes (e.g. to render a qualifier in the user interface - // if necessary). It can't be used to re-infer a hierarchy for the document - // symbols. - ContainerName *string `json:"containerName,omitzero"` -} - -var _ json.UnmarshalerFrom = (*BaseSymbolInformation)(nil) - -func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingName uint = 1 << iota - missingKind - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*ReferenceOptions)(nil) +func (s *ReferenceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -16386,21 +18636,133 @@ func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"name"`: - missing &^= missingName - if err := json.UnmarshalDecode(dec, &s.Name); err != nil { - return err + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") } - case `"kind"`: - missing &^= missingKind - if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"tags"`: + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Provider options for a DocumentHighlightRequest. +type DocumentHighlightOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` +} + +var _ json.UnmarshalerFrom = (*DocumentHighlightOptions)(nil) + +func (s *DocumentHighlightOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// A base for all symbol information. +type BaseSymbolInformation struct { + // The name of this symbol. + Name string `json:"name"` + + // The kind of this symbol. + Kind SymbolKind `json:"kind"` + + // Tags for this symbol. + // + // Since: 3.16.0 + Tags *[]SymbolTag `json:"tags,omitzero"` + + // The name of the symbol containing this symbol. This information is for + // user interface purposes (e.g. to render a qualifier in the user interface + // if necessary). It can't be used to re-infer a hierarchy for the document + // symbols. + ContainerName *string `json:"containerName,omitzero"` +} + +var _ json.UnmarshalerFrom = (*BaseSymbolInformation)(nil) + +func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingName uint = 1 << iota + missingKind + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"name"`: + missing &^= missingName + if err := json.UnmarshalDecode(dec, &s.Name); err != nil { + return err + } + case `"kind"`: + missing &^= missingKind + if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { + return err + } + case `"tags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tags\"") + } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"containerName\"") + } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err } @@ -16440,6 +18802,50 @@ type DocumentSymbolOptions struct { Label *string `json:"label,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentSymbolOptions)(nil) + +func (s *DocumentSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"label"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"label\"") + } + if err := json.UnmarshalDecode(dec, &s.Label); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Contains additional diagnostic information about the context in which // a action is run. type CodeActionContext struct { @@ -16490,10 +18896,16 @@ func (s *CodeActionContext) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"only"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"only\"") + } if err := json.UnmarshalDecode(dec, &s.Only); err != nil { return err } case `"triggerKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"triggerKind\"") + } if err := json.UnmarshalDecode(dec, &s.TriggerKind); err != nil { return err } @@ -16613,6 +19025,64 @@ type CodeActionOptions struct { ResolveProvider *bool `json:"resolveProvider,omitzero"` } +var _ json.UnmarshalerFrom = (*CodeActionOptions)(nil) + +func (s *CodeActionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"codeActionKinds"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeActionKinds\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeActionKinds); err != nil { + return err + } + case `"documentation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentation\"") + } + if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { + return err + } + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Location with only uri and does not include range. // // Since: 3.18.0 @@ -16680,56 +19150,9 @@ type WorkspaceSymbolOptions struct { ResolveProvider *bool `json:"resolveProvider,omitzero"` } -// Code Lens provider options of a CodeLensRequest. -type CodeLensOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - - // Code lens has a resolve provider as well. - ResolveProvider *bool `json:"resolveProvider,omitzero"` -} - -// Provider options for a DocumentLinkRequest. -type DocumentLinkOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - - // Document links have a resolve provider as well. - ResolveProvider *bool `json:"resolveProvider,omitzero"` -} - -// Value-object describing what options formatting should use. -type FormattingOptions struct { - // Size of a tab in spaces. - TabSize uint32 `json:"tabSize"` - - // Prefer spaces over tabs. - InsertSpaces bool `json:"insertSpaces"` - - // Trim trailing whitespace on a line. - // - // Since: 3.15.0 - TrimTrailingWhitespace *bool `json:"trimTrailingWhitespace,omitzero"` - - // Insert a newline character at the end of the file if one does not exist. - // - // Since: 3.15.0 - InsertFinalNewline *bool `json:"insertFinalNewline,omitzero"` - - // Trim all newlines after the final newline at the end of the file. - // - // Since: 3.15.0 - TrimFinalNewlines *bool `json:"trimFinalNewlines,omitzero"` -} - -var _ json.UnmarshalerFrom = (*FormattingOptions)(nil) - -func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingTabSize uint = 1 << iota - missingInsertSpaces - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*WorkspaceSymbolOptions)(nil) +func (s *WorkspaceSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -16743,26 +19166,18 @@ func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"tabSize"`: - missing &^= missingTabSize - if err := json.UnmarshalDecode(dec, &s.TabSize); err != nil { - return err + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") } - case `"insertSpaces"`: - missing &^= missingInsertSpaces - if err := json.UnmarshalDecode(dec, &s.InsertSpaces); err != nil { + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"trimTrailingWhitespace"`: - if err := json.UnmarshalDecode(dec, &s.TrimTrailingWhitespace); err != nil { - return err - } - case `"insertFinalNewline"`: - if err := json.UnmarshalDecode(dec, &s.InsertFinalNewline); err != nil { - return err + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") } - case `"trimFinalNewlines"`: - if err := json.UnmarshalDecode(dec, &s.TrimFinalNewlines); err != nil { + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } default: @@ -16776,55 +19191,20 @@ func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingTabSize != 0 { - missingProps = append(missingProps, "tabSize") - } - if missing&missingInsertSpaces != 0 { - missingProps = append(missingProps, "insertSpaces") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Provider options for a DocumentFormattingRequest. -type DocumentFormattingOptions struct { - WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` -} - -// Provider options for a DocumentRangeFormattingRequest. -type DocumentRangeFormattingOptions struct { +// Code Lens provider options of a CodeLensRequest. +type CodeLensOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - // Whether the server supports formatting multiple ranges at once. - // - // Since: 3.18.0 - // - // Proposed. - RangesSupport *bool `json:"rangesSupport,omitzero"` -} - -// Provider options for a DocumentOnTypeFormattingRequest. -type DocumentOnTypeFormattingOptions struct { - // A character on which formatting should be triggered, like `{`. - FirstTriggerCharacter string `json:"firstTriggerCharacter"` - - // More trigger characters. - MoreTriggerCharacter *[]string `json:"moreTriggerCharacter,omitzero"` + // Code lens has a resolve provider as well. + ResolveProvider *bool `json:"resolveProvider,omitzero"` } -var _ json.UnmarshalerFrom = (*DocumentOnTypeFormattingOptions)(nil) - -func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingFirstTriggerCharacter uint = 1 << iota - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*CodeLensOptions)(nil) +func (s *CodeLensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -16838,13 +19218,18 @@ func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) e return err } switch string(name) { - case `"firstTriggerCharacter"`: - missing &^= missingFirstTriggerCharacter - if err := json.UnmarshalDecode(dec, &s.FirstTriggerCharacter); err != nil { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"moreTriggerCharacter"`: - if err := json.UnmarshalDecode(dec, &s.MoreTriggerCharacter); err != nil { + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } default: @@ -16858,44 +19243,20 @@ func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) e return err } - if missing != 0 { - var missingProps []string - if missing&missingFirstTriggerCharacter != 0 { - missingProps = append(missingProps, "firstTriggerCharacter") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Provider options for a RenameRequest. -type RenameOptions struct { +// Provider options for a DocumentLinkRequest. +type DocumentLinkOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - // Renames should be checked and tested before being executed. - // - // Since: version 3.12.0 - PrepareProvider *bool `json:"prepareProvider,omitzero"` -} - -// Since: 3.18.0 -type PrepareRenamePlaceholder struct { - Range Range `json:"range"` - - Placeholder string `json:"placeholder"` + // Document links have a resolve provider as well. + ResolveProvider *bool `json:"resolveProvider,omitzero"` } -var _ json.UnmarshalerFrom = (*PrepareRenamePlaceholder)(nil) - -func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingRange uint = 1 << iota - missingPlaceholder - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*DocumentLinkOptions)(nil) +func (s *DocumentLinkOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -16909,14 +19270,18 @@ func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"range"`: - missing &^= missingRange - if err := json.UnmarshalDecode(dec, &s.Range); err != nil { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"placeholder"`: - missing &^= missingPlaceholder - if err := json.UnmarshalDecode(dec, &s.Placeholder); err != nil { + case `"resolveProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } default: @@ -16930,30 +19295,39 @@ func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingRange != 0 { - missingProps = append(missingProps, "range") - } - if missing&missingPlaceholder != 0 { - missingProps = append(missingProps, "placeholder") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Since: 3.18.0 -type PrepareRenameDefaultBehavior struct { - DefaultBehavior bool `json:"defaultBehavior"` +// Value-object describing what options formatting should use. +type FormattingOptions struct { + // Size of a tab in spaces. + TabSize uint32 `json:"tabSize"` + + // Prefer spaces over tabs. + InsertSpaces bool `json:"insertSpaces"` + + // Trim trailing whitespace on a line. + // + // Since: 3.15.0 + TrimTrailingWhitespace *bool `json:"trimTrailingWhitespace,omitzero"` + + // Insert a newline character at the end of the file if one does not exist. + // + // Since: 3.15.0 + InsertFinalNewline *bool `json:"insertFinalNewline,omitzero"` + + // Trim all newlines after the final newline at the end of the file. + // + // Since: 3.15.0 + TrimFinalNewlines *bool `json:"trimFinalNewlines,omitzero"` } -var _ json.UnmarshalerFrom = (*PrepareRenameDefaultBehavior)(nil) +var _ json.UnmarshalerFrom = (*FormattingOptions)(nil) -func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingDefaultBehavior uint = 1 << iota + missingTabSize uint = 1 << iota + missingInsertSpaces _missingLast ) missing := _missingLast - 1 @@ -16971,9 +19345,35 @@ func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) erro return err } switch string(name) { - case `"defaultBehavior"`: - missing &^= missingDefaultBehavior - if err := json.UnmarshalDecode(dec, &s.DefaultBehavior); err != nil { + case `"tabSize"`: + missing &^= missingTabSize + if err := json.UnmarshalDecode(dec, &s.TabSize); err != nil { + return err + } + case `"insertSpaces"`: + missing &^= missingInsertSpaces + if err := json.UnmarshalDecode(dec, &s.InsertSpaces); err != nil { + return err + } + case `"trimTrailingWhitespace"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"trimTrailingWhitespace\"") + } + if err := json.UnmarshalDecode(dec, &s.TrimTrailingWhitespace); err != nil { + return err + } + case `"insertFinalNewline"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertFinalNewline\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertFinalNewline); err != nil { + return err + } + case `"trimFinalNewlines"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"trimFinalNewlines\"") + } + if err := json.UnmarshalDecode(dec, &s.TrimFinalNewlines); err != nil { return err } default: @@ -16989,8 +19389,11 @@ func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) erro if missing != 0 { var missingProps []string - if missing&missingDefaultBehavior != 0 { - missingProps = append(missingProps, "defaultBehavior") + if missing&missingTabSize != 0 { + missingProps = append(missingProps, "tabSize") + } + if missing&missingInsertSpaces != 0 { + missingProps = append(missingProps, "insertSpaces") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -16998,23 +19401,14 @@ func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) erro return nil } -// The server capabilities of a ExecuteCommandRequest. -type ExecuteCommandOptions struct { +// Provider options for a DocumentFormattingRequest. +type DocumentFormattingOptions struct { WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - - // The commands to be executed on the server - Commands []string `json:"commands"` } -var _ json.UnmarshalerFrom = (*ExecuteCommandOptions)(nil) - -func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingCommands uint = 1 << iota - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*DocumentFormattingOptions)(nil) +func (s *DocumentFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -17029,12 +19423,10 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"workDoneProgress"`: - if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { - return err + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") } - case `"commands"`: - missing &^= missingCommands - if err := json.UnmarshalDecode(dec, &s.Commands); err != nil { + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } default: @@ -17048,46 +19440,24 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingCommands != 0 { - missingProps = append(missingProps, "commands") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Additional data about a workspace edit. -// -// Since: 3.18.0 -// -// Proposed. -type WorkspaceEditMetadata struct { - // Signal to the editor that this edit is a refactoring. - IsRefactoring *bool `json:"isRefactoring,omitzero"` -} - -// Since: 3.16.0 -type SemanticTokensLegend struct { - // The token types a server uses. - TokenTypes []string `json:"tokenTypes"` +// Provider options for a DocumentRangeFormattingRequest. +type DocumentRangeFormattingOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - // The token modifiers a server uses. - TokenModifiers []string `json:"tokenModifiers"` + // Whether the server supports formatting multiple ranges at once. + // + // Since: 3.18.0 + // + // Proposed. + RangesSupport *bool `json:"rangesSupport,omitzero"` } -var _ json.UnmarshalerFrom = (*SemanticTokensLegend)(nil) - -func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingTokenTypes uint = 1 << iota - missingTokenModifiers - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*DocumentRangeFormattingOptions)(nil) +func (s *DocumentRangeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -17101,14 +19471,18 @@ func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"tokenTypes"`: - missing &^= missingTokenTypes - if err := json.UnmarshalDecode(dec, &s.TokenTypes); err != nil { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"tokenModifiers"`: - missing &^= missingTokenModifiers - if err := json.UnmarshalDecode(dec, &s.TokenModifiers); err != nil { + case `"rangesSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { return err } default: @@ -17122,47 +19496,23 @@ func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingTokenTypes != 0 { - missingProps = append(missingProps, "tokenTypes") - } - if missing&missingTokenModifiers != 0 { - missingProps = append(missingProps, "tokenModifiers") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Semantic tokens options to support deltas for full documents -// -// Since: 3.18.0 -type SemanticTokensFullDelta struct { - // The server supports deltas for full documents. - Delta *bool `json:"delta,omitzero"` -} - -// A text document identifier to optionally denote a specific version of a text document. -type OptionalVersionedTextDocumentIdentifier struct { - // The text document's uri. - Uri DocumentUri `json:"uri"` +// Provider options for a DocumentOnTypeFormattingRequest. +type DocumentOnTypeFormattingOptions struct { + // A character on which formatting should be triggered, like `{`. + FirstTriggerCharacter string `json:"firstTriggerCharacter"` - // The version number of this document. If a versioned text document identifier - // is sent from the server to the client and the file is not open in the editor - // (the server has not received an open notification before) the server can send - // `null` to indicate that the version is unknown and the content on disk is the - // truth (as specified with document content ownership). - Version IntegerOrNull `json:"version"` + // More trigger characters. + MoreTriggerCharacter *[]string `json:"moreTriggerCharacter,omitzero"` } -var _ json.UnmarshalerFrom = (*OptionalVersionedTextDocumentIdentifier)(nil) +var _ json.UnmarshalerFrom = (*DocumentOnTypeFormattingOptions)(nil) -func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingUri uint = 1 << iota - missingVersion + missingFirstTriggerCharacter uint = 1 << iota _missingLast ) missing := _missingLast - 1 @@ -17180,14 +19530,16 @@ func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.De return err } switch string(name) { - case `"uri"`: - missing &^= missingUri - if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { + case `"firstTriggerCharacter"`: + missing &^= missingFirstTriggerCharacter + if err := json.UnmarshalDecode(dec, &s.FirstTriggerCharacter); err != nil { return err } - case `"version"`: - missing &^= missingVersion - if err := json.UnmarshalDecode(dec, &s.Version); err != nil { + case `"moreTriggerCharacter"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"moreTriggerCharacter\"") + } + if err := json.UnmarshalDecode(dec, &s.MoreTriggerCharacter); err != nil { return err } default: @@ -17203,11 +19555,8 @@ func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.De if missing != 0 { var missingProps []string - if missing&missingUri != 0 { - missingProps = append(missingProps, "uri") - } - if missing&missingVersion != 0 { - missingProps = append(missingProps, "version") + if missing&missingFirstTriggerCharacter != 0 { + missingProps = append(missingProps, "firstTriggerCharacter") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17215,33 +19564,19 @@ func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.De return nil } -// A special text edit with an additional change annotation. -// -// Since: 3.16.0. -type AnnotatedTextEdit struct { - // The range of the text document to be manipulated. To insert - // text into a document create a range where start === end. - Range Range `json:"range"` - - // The string to be inserted. For delete operations use an - // empty string. - NewText string `json:"newText"` +// Provider options for a RenameRequest. +type RenameOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - // The actual identifier of the change annotation - AnnotationId string `json:"annotationId"` + // Renames should be checked and tested before being executed. + // + // Since: version 3.12.0 + PrepareProvider *bool `json:"prepareProvider,omitzero"` } -var _ json.UnmarshalerFrom = (*AnnotatedTextEdit)(nil) - -func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingRange uint = 1 << iota - missingNewText - missingAnnotationId - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*RenameOptions)(nil) +func (s *RenameOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -17255,19 +19590,18 @@ func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"range"`: - missing &^= missingRange - if err := json.UnmarshalDecode(dec, &s.Range); err != nil { - return err + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") } - case `"newText"`: - missing &^= missingNewText - if err := json.UnmarshalDecode(dec, &s.NewText); err != nil { + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"annotationId"`: - missing &^= missingAnnotationId - if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { + case `"prepareProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"prepareProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.PrepareProvider); err != nil { return err } default: @@ -17281,45 +19615,22 @@ func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingRange != 0 { - missingProps = append(missingProps, "range") - } - if missing&missingNewText != 0 { - missingProps = append(missingProps, "newText") - } - if missing&missingAnnotationId != 0 { - missingProps = append(missingProps, "annotationId") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// An interactive text edit. -// // Since: 3.18.0 -// -// Proposed. -type SnippetTextEdit struct { - // The range of the text document to be manipulated. +type PrepareRenamePlaceholder struct { Range Range `json:"range"` - // The snippet to be inserted. - Snippet *StringValue `json:"snippet"` - - // The actual identifier of the snippet edit. - AnnotationId *string `json:"annotationId,omitzero"` + Placeholder string `json:"placeholder"` } -var _ json.UnmarshalerFrom = (*SnippetTextEdit)(nil) +var _ json.UnmarshalerFrom = (*PrepareRenamePlaceholder)(nil) -func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { const ( missingRange uint = 1 << iota - missingSnippet + missingPlaceholder _missingLast ) missing := _missingLast - 1 @@ -17342,13 +19653,9 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } - case `"snippet"`: - missing &^= missingSnippet - if err := json.UnmarshalDecode(dec, &s.Snippet); err != nil { - return err - } - case `"annotationId"`: - if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { + case `"placeholder"`: + missing &^= missingPlaceholder + if err := json.UnmarshalDecode(dec, &s.Placeholder); err != nil { return err } default: @@ -17367,8 +19674,8 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - if missing&missingSnippet != 0 { - missingProps = append(missingProps, "snippet") + if missing&missingPlaceholder != 0 { + missingProps = append(missingProps, "placeholder") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17376,22 +19683,16 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// A generic resource operation. -type ResourceOperation struct { - // The resource operation kind. - Kind string `json:"kind"` - - // An optional annotation identifier describing the operation. - // - // Since: 3.16.0 - AnnotationId *string `json:"annotationId,omitzero"` +// Since: 3.18.0 +type PrepareRenameDefaultBehavior struct { + DefaultBehavior bool `json:"defaultBehavior"` } -var _ json.UnmarshalerFrom = (*ResourceOperation)(nil) +var _ json.UnmarshalerFrom = (*PrepareRenameDefaultBehavior)(nil) -func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingKind uint = 1 << iota + missingDefaultBehavior uint = 1 << iota _missingLast ) missing := _missingLast - 1 @@ -17409,13 +19710,9 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"kind"`: - missing &^= missingKind - if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { - return err - } - case `"annotationId"`: - if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { + case `"defaultBehavior"`: + missing &^= missingDefaultBehavior + if err := json.UnmarshalDecode(dec, &s.DefaultBehavior); err != nil { return err } default: @@ -17431,8 +19728,8 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing != 0 { var missingProps []string - if missing&missingKind != 0 { - missingProps = append(missingProps, "kind") + if missing&missingDefaultBehavior != 0 { + missingProps = append(missingProps, "defaultBehavior") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17440,61 +19737,19 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// Options to create a file. -type CreateFileOptions struct { - // Overwrite existing file. Overwrite wins over `ignoreIfExists` - Overwrite *bool `json:"overwrite,omitzero"` - - // Ignore if exists. - IgnoreIfExists *bool `json:"ignoreIfExists,omitzero"` -} - -// Rename file options -type RenameFileOptions struct { - // Overwrite target if existing. Overwrite wins over `ignoreIfExists` - Overwrite *bool `json:"overwrite,omitzero"` - - // Ignores if target exists. - IgnoreIfExists *bool `json:"ignoreIfExists,omitzero"` -} - -// Delete file options -type DeleteFileOptions struct { - // Delete the content recursively if a folder is denoted. - Recursive *bool `json:"recursive,omitzero"` - - // Ignore the operation if the file doesn't exist. - IgnoreIfNotExists *bool `json:"ignoreIfNotExists,omitzero"` -} - -// A pattern to describe in which file operation requests or notifications -// the server is interested in receiving. -// -// Since: 3.16.0 -type FileOperationPattern struct { - // The glob pattern to match. Glob patterns can have the following syntax: - // - `*` to match one or more characters in a path segment - // - `?` to match on one character in a path segment - // - `**` to match any number of path segments, including none - // - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files) - // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) - // - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) - Glob string `json:"glob"` - - // Whether to match files or folders with this pattern. - // - // Matches both if undefined. - Matches *FileOperationPatternKind `json:"matches,omitzero"` +// The server capabilities of a ExecuteCommandRequest. +type ExecuteCommandOptions struct { + WorkDoneProgress *bool `json:"workDoneProgress,omitzero"` - // Additional options used during matching. - Options *FileOperationPatternOptions `json:"options,omitzero"` + // The commands to be executed on the server + Commands []string `json:"commands"` } -var _ json.UnmarshalerFrom = (*FileOperationPattern)(nil) +var _ json.UnmarshalerFrom = (*ExecuteCommandOptions)(nil) -func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingGlob uint = 1 << iota + missingCommands uint = 1 << iota _missingLast ) missing := _missingLast - 1 @@ -17512,17 +19767,16 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"glob"`: - missing &^= missingGlob - if err := json.UnmarshalDecode(dec, &s.Glob); err != nil { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } - case `"matches"`: - if err := json.UnmarshalDecode(dec, &s.Matches); err != nil { - return err - } - case `"options"`: - if err := json.UnmarshalDecode(dec, &s.Options); err != nil { + case `"commands"`: + missing &^= missingCommands + if err := json.UnmarshalDecode(dec, &s.Commands); err != nil { return err } default: @@ -17538,8 +19792,8 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { if missing != 0 { var missingProps []string - if missing&missingGlob != 0 { - missingProps = append(missingProps, "glob") + if missing&missingCommands != 0 { + missingProps = append(missingProps, "commands") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17547,37 +19801,68 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// A full document diagnostic report for a workspace diagnostic result. +// Additional data about a workspace edit. // -// Since: 3.17.0 -type WorkspaceFullDocumentDiagnosticReport struct { - // A full document diagnostic report. - Kind StringLiteralFull `json:"kind"` +// Since: 3.18.0 +// +// Proposed. +type WorkspaceEditMetadata struct { + // Signal to the editor that this edit is a refactoring. + IsRefactoring *bool `json:"isRefactoring,omitzero"` +} - // An optional result id. If provided it will - // be sent on the next diagnostic request for the - // same document. - ResultId *string `json:"resultId,omitzero"` +var _ json.UnmarshalerFrom = (*WorkspaceEditMetadata)(nil) - // The actual items. - Items []*Diagnostic `json:"items"` +func (s *WorkspaceEditMetadata) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } - // The URI for which diagnostic information is reported. - Uri DocumentUri `json:"uri"` + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"isRefactoring"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"isRefactoring\"") + } + if err := json.UnmarshalDecode(dec, &s.IsRefactoring); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } - // The version number for which the diagnostics are reported. - // If the document is not marked as open `null` can be provided. - Version IntegerOrNull `json:"version"` + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil } -var _ json.UnmarshalerFrom = (*WorkspaceFullDocumentDiagnosticReport)(nil) +// Since: 3.16.0 +type SemanticTokensLegend struct { + // The token types a server uses. + TokenTypes []string `json:"tokenTypes"` -func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { + // The token modifiers a server uses. + TokenModifiers []string `json:"tokenModifiers"` +} + +var _ json.UnmarshalerFrom = (*SemanticTokensLegend)(nil) + +func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingKind uint = 1 << iota - missingItems - missingUri - missingVersion + missingTokenTypes uint = 1 << iota + missingTokenModifiers _missingLast ) missing := _missingLast - 1 @@ -17595,28 +19880,14 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco return err } switch string(name) { - case `"kind"`: - missing &^= missingKind - if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { - return err - } - case `"resultId"`: - if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { - return err - } - case `"items"`: - missing &^= missingItems - if err := json.UnmarshalDecode(dec, &s.Items); err != nil { - return err - } - case `"uri"`: - missing &^= missingUri - if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { + case `"tokenTypes"`: + missing &^= missingTokenTypes + if err := json.UnmarshalDecode(dec, &s.TokenTypes); err != nil { return err } - case `"version"`: - missing &^= missingVersion - if err := json.UnmarshalDecode(dec, &s.Version); err != nil { + case `"tokenModifiers"`: + missing &^= missingTokenModifiers + if err := json.UnmarshalDecode(dec, &s.TokenModifiers); err != nil { return err } default: @@ -17632,17 +19903,11 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco if missing != 0 { var missingProps []string - if missing&missingKind != 0 { - missingProps = append(missingProps, "kind") - } - if missing&missingItems != 0 { - missingProps = append(missingProps, "items") - } - if missing&missingUri != 0 { - missingProps = append(missingProps, "uri") + if missing&missingTokenTypes != 0 { + missingProps = append(missingProps, "tokenTypes") } - if missing&missingVersion != 0 { - missingProps = append(missingProps, "version") + if missing&missingTokenModifiers != 0 { + missingProps = append(missingProps, "tokenModifiers") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17650,35 +19915,69 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco return nil } -// An unchanged document diagnostic report for a workspace diagnostic result. +// Semantic tokens options to support deltas for full documents // -// Since: 3.17.0 -type WorkspaceUnchangedDocumentDiagnosticReport struct { - // A document diagnostic report indicating - // no changes to the last result. A server can - // only return `unchanged` if result ids are - // provided. - Kind StringLiteralUnchanged `json:"kind"` +// Since: 3.18.0 +type SemanticTokensFullDelta struct { + // The server supports deltas for full documents. + Delta *bool `json:"delta,omitzero"` +} - // A result id which will be sent on the next - // diagnostic request for the same document. - ResultId string `json:"resultId"` +var _ json.UnmarshalerFrom = (*SemanticTokensFullDelta)(nil) - // The URI for which diagnostic information is reported. +func (s *SemanticTokensFullDelta) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"delta"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"delta\"") + } + if err := json.UnmarshalDecode(dec, &s.Delta); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// A text document identifier to optionally denote a specific version of a text document. +type OptionalVersionedTextDocumentIdentifier struct { + // The text document's uri. Uri DocumentUri `json:"uri"` - // The version number for which the diagnostics are reported. - // If the document is not marked as open `null` can be provided. + // The version number of this document. If a versioned text document identifier + // is sent from the server to the client and the file is not open in the editor + // (the server has not received an open notification before) the server can send + // `null` to indicate that the version is unknown and the content on disk is the + // truth (as specified with document content ownership). Version IntegerOrNull `json:"version"` } -var _ json.UnmarshalerFrom = (*WorkspaceUnchangedDocumentDiagnosticReport)(nil) +var _ json.UnmarshalerFrom = (*OptionalVersionedTextDocumentIdentifier)(nil) -func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingKind uint = 1 << iota - missingResultId - missingUri + missingUri uint = 1 << iota missingVersion _missingLast ) @@ -17697,16 +19996,6 @@ func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json return err } switch string(name) { - case `"kind"`: - missing &^= missingKind - if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { - return err - } - case `"resultId"`: - missing &^= missingResultId - if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { - return err - } case `"uri"`: missing &^= missingUri if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { @@ -17730,12 +20019,6 @@ func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json if missing != 0 { var missingProps []string - if missing&missingKind != 0 { - missingProps = append(missingProps, "kind") - } - if missing&missingResultId != 0 { - missingProps = append(missingProps, "resultId") - } if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } @@ -17748,25 +20031,29 @@ func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json return nil } -// Describes the currently selected completion item. -// -// Since: 3.18.0 +// A special text edit with an additional change annotation. // -// Proposed. -type SelectedCompletionInfo struct { - // The range that will be replaced if this completion item is accepted. +// Since: 3.16.0. +type AnnotatedTextEdit struct { + // The range of the text document to be manipulated. To insert + // text into a document create a range where start === end. Range Range `json:"range"` - // The text the range will be replaced with if this completion is accepted. - Text string `json:"text"` + // The string to be inserted. For delete operations use an + // empty string. + NewText string `json:"newText"` + + // The actual identifier of the change annotation + AnnotationId string `json:"annotationId"` } -var _ json.UnmarshalerFrom = (*SelectedCompletionInfo)(nil) +var _ json.UnmarshalerFrom = (*AnnotatedTextEdit)(nil) -func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { const ( missingRange uint = 1 << iota - missingText + missingNewText + missingAnnotationId _missingLast ) missing := _missingLast - 1 @@ -17789,9 +20076,14 @@ func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } - case `"text"`: - missing &^= missingText - if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + case `"newText"`: + missing &^= missingNewText + if err := json.UnmarshalDecode(dec, &s.NewText); err != nil { + return err + } + case `"annotationId"`: + missing &^= missingAnnotationId + if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } default: @@ -17810,8 +20102,11 @@ func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - if missing&missingText != 0 { - missingProps = append(missingProps, "text") + if missing&missingNewText != 0 { + missingProps = append(missingProps, "newText") + } + if missing&missingAnnotationId != 0 { + missingProps = append(missingProps, "annotationId") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17819,24 +20114,28 @@ func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// Information about the client +// An interactive text edit. // -// Since: 3.15.0 +// Since: 3.18.0 // -// Since: 3.18.0 ClientInfo type name added. -type ClientInfo struct { - // The name of the client as defined by the client. - Name string `json:"name"` - - // The client's version as defined by the client. - Version *string `json:"version,omitzero"` +// Proposed. +type SnippetTextEdit struct { + // The range of the text document to be manipulated. + Range Range `json:"range"` + + // The snippet to be inserted. + Snippet *StringValue `json:"snippet"` + + // The actual identifier of the snippet edit. + AnnotationId *string `json:"annotationId,omitzero"` } -var _ json.UnmarshalerFrom = (*ClientInfo)(nil) +var _ json.UnmarshalerFrom = (*SnippetTextEdit)(nil) -func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingName uint = 1 << iota + missingRange uint = 1 << iota + missingSnippet _missingLast ) missing := _missingLast - 1 @@ -17854,13 +20153,21 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"name"`: - missing &^= missingName - if err := json.UnmarshalDecode(dec, &s.Name); err != nil { + case `"range"`: + missing &^= missingRange + if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } - case `"version"`: - if err := json.UnmarshalDecode(dec, &s.Version); err != nil { + case `"snippet"`: + missing &^= missingSnippet + if err := json.UnmarshalDecode(dec, &s.Snippet); err != nil { + return err + } + case `"annotationId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"annotationId\"") + } + if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } default: @@ -17876,8 +20183,11 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if missing != 0 { var missingProps []string - if missing&missingName != 0 { - missingProps = append(missingProps, "name") + if missing&missingRange != 0 { + missingProps = append(missingProps, "range") + } + if missing&missingSnippet != 0 { + missingProps = append(missingProps, "snippet") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -17885,87 +20195,22 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// Defines the capabilities provided by the client. -type ClientCapabilities struct { - // Workspace specific client capabilities. - Workspace *WorkspaceClientCapabilities `json:"workspace,omitzero"` - - // Text document specific client capabilities. - TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitzero"` - - // Window specific client capabilities. - Window *WindowClientCapabilities `json:"window,omitzero"` - - // General client capabilities. - // - // Since: 3.16.0 - General *GeneralClientCapabilities `json:"general,omitzero"` -} - -type TextDocumentSyncOptions struct { - // Open and close notifications are sent to the server. If omitted open close notification should not - // be sent. - OpenClose *bool `json:"openClose,omitzero"` - - // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full - // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. - Change *TextDocumentSyncKind `json:"change,omitzero"` - - // If present will save notifications are sent to the server. If omitted the notification should not be - // sent. - WillSave *bool `json:"willSave,omitzero"` - - // If present will save wait until requests are sent to the server. If omitted the request should not be - // sent. - WillSaveWaitUntil *bool `json:"willSaveWaitUntil,omitzero"` - - // If present save notifications are sent to the server. If omitted the notification should not be - // sent. - Save *BooleanOrSaveOptions `json:"save,omitzero"` -} - -// Defines workspace specific capabilities of the server. -// -// Since: 3.18.0 -type WorkspaceOptions struct { - // The server supports workspace folder. - // - // Since: 3.6.0 - WorkspaceFolders *WorkspaceFoldersServerCapabilities `json:"workspaceFolders,omitzero"` +// A generic resource operation. +type ResourceOperation struct { + // The resource operation kind. + Kind string `json:"kind"` - // The server is interested in notifications/requests for operations on files. + // An optional annotation identifier describing the operation. // // Since: 3.16.0 - FileOperations *FileOperationOptions `json:"fileOperations,omitzero"` - - // The server supports the `workspace/textDocumentContent` request. - // - // Since: 3.18.0 - // - // Proposed. - TextDocumentContent *TextDocumentContentOptionsOrRegistrationOptions `json:"textDocumentContent,omitzero"` -} - -// Since: 3.18.0 -type TextDocumentContentChangePartial struct { - // The range of the document that changed. - Range Range `json:"range"` - - // The optional length of the range that got replaced. - // - // Deprecated: use range instead. - RangeLength *uint32 `json:"rangeLength,omitzero"` - - // The new text for the provided range. - Text string `json:"text"` + AnnotationId *string `json:"annotationId,omitzero"` } -var _ json.UnmarshalerFrom = (*TextDocumentContentChangePartial)(nil) +var _ json.UnmarshalerFrom = (*ResourceOperation)(nil) -func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingRange uint = 1 << iota - missingText + missingKind uint = 1 << iota _missingLast ) missing := _missingLast - 1 @@ -17983,18 +20228,16 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) return err } switch string(name) { - case `"range"`: - missing &^= missingRange - if err := json.UnmarshalDecode(dec, &s.Range); err != nil { + case `"kind"`: + missing &^= missingKind + if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } - case `"rangeLength"`: - if err := json.UnmarshalDecode(dec, &s.RangeLength); err != nil { - return err + case `"annotationId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"annotationId\"") } - case `"text"`: - missing &^= missingText - if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err } default: @@ -18010,11 +20253,8 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) if missing != 0 { var missingProps []string - if missing&missingRange != 0 { - missingProps = append(missingProps, "range") - } - if missing&missingText != 0 { - missingProps = append(missingProps, "text") + if missing&missingKind != 0 { + missingProps = append(missingProps, "kind") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -18022,21 +20262,18 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) return nil } -// Since: 3.18.0 -type TextDocumentContentChangeWholeDocument struct { - // The new text of the whole document. - Text string `json:"text"` -} +// Options to create a file. +type CreateFileOptions struct { + // Overwrite existing file. Overwrite wins over `ignoreIfExists` + Overwrite *bool `json:"overwrite,omitzero"` -var _ json.UnmarshalerFrom = (*TextDocumentContentChangeWholeDocument)(nil) + // Ignore if exists. + IgnoreIfExists *bool `json:"ignoreIfExists,omitzero"` +} -func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingText uint = 1 << iota - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*CreateFileOptions)(nil) +func (s *CreateFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -18050,9 +20287,18 @@ func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Dec return err } switch string(name) { - case `"text"`: - missing &^= missingText - if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + case `"overwrite"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"overwrite\"") + } + if err := json.UnmarshalDecode(dec, &s.Overwrite); err != nil { + return err + } + case `"ignoreIfExists"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"ignoreIfExists\"") + } + if err := json.UnmarshalDecode(dec, &s.IgnoreIfExists); err != nil { return err } default: @@ -18066,34 +20312,21 @@ func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Dec return err } - if missing != 0 { - var missingProps []string - if missing&missingText != 0 { - missingProps = append(missingProps, "text") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Structure to capture a description for an error code. -// -// Since: 3.16.0 -type CodeDescription struct { - // An URI to open with more information about the diagnostic error. - Href URI `json:"href"` -} +// Rename file options +type RenameFileOptions struct { + // Overwrite target if existing. Overwrite wins over `ignoreIfExists` + Overwrite *bool `json:"overwrite,omitzero"` -var _ json.UnmarshalerFrom = (*CodeDescription)(nil) + // Ignores if target exists. + IgnoreIfExists *bool `json:"ignoreIfExists,omitzero"` +} -func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingHref uint = 1 << iota - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*RenameFileOptions)(nil) +func (s *RenameFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -18107,9 +20340,18 @@ func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"href"`: - missing &^= missingHref - if err := json.UnmarshalDecode(dec, &s.Href); err != nil { + case `"overwrite"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"overwrite\"") + } + if err := json.UnmarshalDecode(dec, &s.Overwrite); err != nil { + return err + } + case `"ignoreIfExists"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"ignoreIfExists\"") + } + if err := json.UnmarshalDecode(dec, &s.IgnoreIfExists); err != nil { return err } default: @@ -18123,38 +20365,21 @@ func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { return err } - if missing != 0 { - var missingProps []string - if missing&missingHref != 0 { - missingProps = append(missingProps, "href") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Represents a related message and source code location for a diagnostic. This should be -// used to point to code locations that cause or related to a diagnostics, e.g when duplicating -// a symbol in a scope. -type DiagnosticRelatedInformation struct { - // The location of this related diagnostic information. - Location Location `json:"location"` +// Delete file options +type DeleteFileOptions struct { + // Delete the content recursively if a folder is denoted. + Recursive *bool `json:"recursive,omitzero"` - // The message of this related diagnostic information. - Message string `json:"message"` + // Ignore the operation if the file doesn't exist. + IgnoreIfNotExists *bool `json:"ignoreIfNotExists,omitzero"` } -var _ json.UnmarshalerFrom = (*DiagnosticRelatedInformation)(nil) - -func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) error { - const ( - missingLocation uint = 1 << iota - missingMessage - _missingLast - ) - missing := _missingLast - 1 +var _ json.UnmarshalerFrom = (*DeleteFileOptions)(nil) +func (s *DeleteFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { return fmt.Errorf("expected object start, but encountered %v", k) } @@ -18168,14 +20393,18 @@ func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) erro return err } switch string(name) { - case `"location"`: - missing &^= missingLocation - if err := json.UnmarshalDecode(dec, &s.Location); err != nil { + case `"recursive"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"recursive\"") + } + if err := json.UnmarshalDecode(dec, &s.Recursive); err != nil { return err } - case `"message"`: - missing &^= missingMessage - if err := json.UnmarshalDecode(dec, &s.Message); err != nil { + case `"ignoreIfNotExists"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"ignoreIfNotExists\"") + } + if err := json.UnmarshalDecode(dec, &s.IgnoreIfNotExists); err != nil { return err } default: @@ -18189,35 +20418,37 @@ func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) erro return err } - if missing != 0 { - var missingProps []string - if missing&missingLocation != 0 { - missingProps = append(missingProps, "location") - } - if missing&missingMessage != 0 { - missingProps = append(missingProps, "message") - } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) - } - return nil } -// Edit range variant that includes ranges for insert and replace operations. +// A pattern to describe in which file operation requests or notifications +// the server is interested in receiving. // -// Since: 3.18.0 -type EditRangeWithInsertReplace struct { - Insert Range `json:"insert"` +// Since: 3.16.0 +type FileOperationPattern struct { + // The glob pattern to match. Glob patterns can have the following syntax: + // - `*` to match one or more characters in a path segment + // - `?` to match on one character in a path segment + // - `**` to match any number of path segments, including none + // - `{}` to group sub patterns into an OR expression. (e.g. `**​/*.{ts,js}` matches all TypeScript and JavaScript files) + // - `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …) + // - `[!...]` to negate a range of characters to match in a path segment (e.g., `example.[!0-9]` to match on `example.a`, `example.b`, but not `example.0`) + Glob string `json:"glob"` - Replace Range `json:"replace"` + // Whether to match files or folders with this pattern. + // + // Matches both if undefined. + Matches *FileOperationPatternKind `json:"matches,omitzero"` + + // Additional options used during matching. + Options *FileOperationPatternOptions `json:"options,omitzero"` } -var _ json.UnmarshalerFrom = (*EditRangeWithInsertReplace)(nil) +var _ json.UnmarshalerFrom = (*FileOperationPattern)(nil) -func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingInsert uint = 1 << iota - missingReplace + missingGlob uint = 1 << iota _missingLast ) missing := _missingLast - 1 @@ -18235,14 +20466,23 @@ func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error return err } switch string(name) { - case `"insert"`: - missing &^= missingInsert - if err := json.UnmarshalDecode(dec, &s.Insert); err != nil { + case `"glob"`: + missing &^= missingGlob + if err := json.UnmarshalDecode(dec, &s.Glob); err != nil { return err } - case `"replace"`: - missing &^= missingReplace - if err := json.UnmarshalDecode(dec, &s.Replace); err != nil { + case `"matches"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"matches\"") + } + if err := json.UnmarshalDecode(dec, &s.Matches); err != nil { + return err + } + case `"options"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } + if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } default: @@ -18258,11 +20498,8 @@ func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error if missing != 0 { var missingProps []string - if missing&missingInsert != 0 { - missingProps = append(missingProps, "insert") - } - if missing&missingReplace != 0 { - missingProps = append(missingProps, "replace") + if missing&missingGlob != 0 { + missingProps = append(missingProps, "glob") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -18270,31 +20507,37 @@ func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error return nil } -// Since: 3.18.0 -type ServerCompletionItemOptions struct { - // The server has support for completion item label - // details (see also `CompletionItemLabelDetails`) when - // receiving a completion item in a resolve call. - // - // Since: 3.17.0 - LabelDetailsSupport *bool `json:"labelDetailsSupport,omitzero"` -} - -// Since: 3.18.0 +// A full document diagnostic report for a workspace diagnostic result. // -// Deprecated: use MarkupContent instead. -type MarkedStringWithLanguage struct { - Language string `json:"language"` +// Since: 3.17.0 +type WorkspaceFullDocumentDiagnosticReport struct { + // A full document diagnostic report. + Kind StringLiteralFull `json:"kind"` - Value string `json:"value"` + // An optional result id. If provided it will + // be sent on the next diagnostic request for the + // same document. + ResultId *string `json:"resultId,omitzero"` + + // The actual items. + Items []*Diagnostic `json:"items"` + + // The URI for which diagnostic information is reported. + Uri DocumentUri `json:"uri"` + + // The version number for which the diagnostics are reported. + // If the document is not marked as open `null` can be provided. + Version IntegerOrNull `json:"version"` } -var _ json.UnmarshalerFrom = (*MarkedStringWithLanguage)(nil) +var _ json.UnmarshalerFrom = (*WorkspaceFullDocumentDiagnosticReport)(nil) -func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingLanguage uint = 1 << iota - missingValue + missingKind uint = 1 << iota + missingItems + missingUri + missingVersion _missingLast ) missing := _missingLast - 1 @@ -18312,14 +20555,31 @@ func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"language"`: - missing &^= missingLanguage - if err := json.UnmarshalDecode(dec, &s.Language); err != nil { + case `"kind"`: + missing &^= missingKind + if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } - case `"value"`: - missing &^= missingValue - if err := json.UnmarshalDecode(dec, &s.Value); err != nil { + case `"resultId"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resultId\"") + } + if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { + return err + } + case `"items"`: + missing &^= missingItems + if err := json.UnmarshalDecode(dec, &s.Items); err != nil { + return err + } + case `"uri"`: + missing &^= missingUri + if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { + return err + } + case `"version"`: + missing &^= missingVersion + if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } default: @@ -18335,11 +20595,17 @@ func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { if missing != 0 { var missingProps []string - if missing&missingLanguage != 0 { - missingProps = append(missingProps, "language") + if missing&missingKind != 0 { + missingProps = append(missingProps, "kind") } - if missing&missingValue != 0 { - missingProps = append(missingProps, "value") + if missing&missingItems != 0 { + missingProps = append(missingProps, "items") + } + if missing&missingUri != 0 { + missingProps = append(missingProps, "uri") + } + if missing&missingVersion != 0 { + missingProps = append(missingProps, "version") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -18347,33 +20613,36 @@ func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// Represents a parameter of a callable-signature. A parameter can -// have a label and a doc-comment. -type ParameterInformation struct { - // The label of this parameter information. - // - // Either a string or an inclusive start and exclusive end offsets within its containing - // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 - // string representation as `Position` and `Range` does. - // - // To avoid ambiguities a server should use the [start, end] offset value instead of using - // a substring. Whether a client support this is controlled via `labelOffsetSupport` client - // capability. - // - // *Note*: a label of type string should be a substring of its containing signature label. - // Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. - Label StringOrTuple `json:"label"` +// An unchanged document diagnostic report for a workspace diagnostic result. +// +// Since: 3.17.0 +type WorkspaceUnchangedDocumentDiagnosticReport struct { + // A document diagnostic report indicating + // no changes to the last result. A server can + // only return `unchanged` if result ids are + // provided. + Kind StringLiteralUnchanged `json:"kind"` - // The human-readable doc-comment of this parameter. Will be shown - // in the UI but can be omitted. - Documentation *StringOrMarkupContent `json:"documentation,omitzero"` + // A result id which will be sent on the next + // diagnostic request for the same document. + ResultId string `json:"resultId"` + + // The URI for which diagnostic information is reported. + Uri DocumentUri `json:"uri"` + + // The version number for which the diagnostics are reported. + // If the document is not marked as open `null` can be provided. + Version IntegerOrNull `json:"version"` } -var _ json.UnmarshalerFrom = (*ParameterInformation)(nil) +var _ json.UnmarshalerFrom = (*WorkspaceUnchangedDocumentDiagnosticReport)(nil) -func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingLabel uint = 1 << iota + missingKind uint = 1 << iota + missingResultId + missingUri + missingVersion _missingLast ) missing := _missingLast - 1 @@ -18391,13 +20660,24 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { return err } switch string(name) { - case `"label"`: - missing &^= missingLabel - if err := json.UnmarshalDecode(dec, &s.Label); err != nil { + case `"kind"`: + missing &^= missingKind + if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } - case `"documentation"`: - if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { + case `"resultId"`: + missing &^= missingResultId + if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { + return err + } + case `"uri"`: + missing &^= missingUri + if err := json.UnmarshalDecode(dec, &s.Uri); err != nil { + return err + } + case `"version"`: + missing &^= missingVersion + if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } default: @@ -18413,8 +20693,17 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing != 0 { var missingProps []string - if missing&missingLabel != 0 { - missingProps = append(missingProps, "label") + if missing&missingKind != 0 { + missingProps = append(missingProps, "kind") + } + if missing&missingResultId != 0 { + missingProps = append(missingProps, "resultId") + } + if missing&missingUri != 0 { + missingProps = append(missingProps, "uri") + } + if missing&missingVersion != 0 { + missingProps = append(missingProps, "version") } return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) } @@ -18422,31 +20711,25 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { return nil } -// Documentation for a class of code actions. +// Describes the currently selected completion item. // // Since: 3.18.0 // // Proposed. -type CodeActionKindDocumentation struct { - // The kind of the code action being documented. - // - // If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any - // refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the - // documentation will only be shown when extract refactoring code actions are returned. - Kind CodeActionKind `json:"kind"` +type SelectedCompletionInfo struct { + // The range that will be replaced if this completion item is accepted. + Range Range `json:"range"` - // Command that is ued to display the documentation to the user. - // - // The title of this documentation code action is taken from Command.title - Command *Command `json:"command"` + // The text the range will be replaced with if this completion is accepted. + Text string `json:"text"` } -var _ json.UnmarshalerFrom = (*CodeActionKindDocumentation)(nil) +var _ json.UnmarshalerFrom = (*SelectedCompletionInfo)(nil) -func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error { +func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { const ( - missingKind uint = 1 << iota - missingCommand + missingRange uint = 1 << iota + missingText _missingLast ) missing := _missingLast - 1 @@ -18464,12 +20747,912 @@ func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error return err } switch string(name) { - case `"kind"`: - missing &^= missingKind - if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { + case `"range"`: + missing &^= missingRange + if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } - case `"command"`: + case `"text"`: + missing &^= missingText + if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingRange != 0 { + missingProps = append(missingProps, "range") + } + if missing&missingText != 0 { + missingProps = append(missingProps, "text") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Information about the client +// +// Since: 3.15.0 +// +// Since: 3.18.0 ClientInfo type name added. +type ClientInfo struct { + // The name of the client as defined by the client. + Name string `json:"name"` + + // The client's version as defined by the client. + Version *string `json:"version,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ClientInfo)(nil) + +func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingName uint = 1 << iota + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"name"`: + missing &^= missingName + if err := json.UnmarshalDecode(dec, &s.Name); err != nil { + return err + } + case `"version"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"version\"") + } + if err := json.UnmarshalDecode(dec, &s.Version); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingName != 0 { + missingProps = append(missingProps, "name") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Defines the capabilities provided by the client. +type ClientCapabilities struct { + // Workspace specific client capabilities. + Workspace *WorkspaceClientCapabilities `json:"workspace,omitzero"` + + // Text document specific client capabilities. + TextDocument *TextDocumentClientCapabilities `json:"textDocument,omitzero"` + + // Window specific client capabilities. + Window *WindowClientCapabilities `json:"window,omitzero"` + + // General client capabilities. + // + // Since: 3.16.0 + General *GeneralClientCapabilities `json:"general,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ClientCapabilities)(nil) + +func (s *ClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workspace"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspace\"") + } + if err := json.UnmarshalDecode(dec, &s.Workspace); err != nil { + return err + } + case `"textDocument"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textDocument\"") + } + if err := json.UnmarshalDecode(dec, &s.TextDocument); err != nil { + return err + } + case `"window"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"window\"") + } + if err := json.UnmarshalDecode(dec, &s.Window); err != nil { + return err + } + case `"general"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"general\"") + } + if err := json.UnmarshalDecode(dec, &s.General); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +type TextDocumentSyncOptions struct { + // Open and close notifications are sent to the server. If omitted open close notification should not + // be sent. + OpenClose *bool `json:"openClose,omitzero"` + + // Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full + // and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None. + Change *TextDocumentSyncKind `json:"change,omitzero"` + + // If present will save notifications are sent to the server. If omitted the notification should not be + // sent. + WillSave *bool `json:"willSave,omitzero"` + + // If present will save wait until requests are sent to the server. If omitted the request should not be + // sent. + WillSaveWaitUntil *bool `json:"willSaveWaitUntil,omitzero"` + + // If present save notifications are sent to the server. If omitted the notification should not be + // sent. + Save *BooleanOrSaveOptions `json:"save,omitzero"` +} + +var _ json.UnmarshalerFrom = (*TextDocumentSyncOptions)(nil) + +func (s *TextDocumentSyncOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"openClose"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"openClose\"") + } + if err := json.UnmarshalDecode(dec, &s.OpenClose); err != nil { + return err + } + case `"change"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"change\"") + } + if err := json.UnmarshalDecode(dec, &s.Change); err != nil { + return err + } + case `"willSave"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willSave\"") + } + if err := json.UnmarshalDecode(dec, &s.WillSave); err != nil { + return err + } + case `"willSaveWaitUntil"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willSaveWaitUntil\"") + } + if err := json.UnmarshalDecode(dec, &s.WillSaveWaitUntil); err != nil { + return err + } + case `"save"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"save\"") + } + if err := json.UnmarshalDecode(dec, &s.Save); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Defines workspace specific capabilities of the server. +// +// Since: 3.18.0 +type WorkspaceOptions struct { + // The server supports workspace folder. + // + // Since: 3.6.0 + WorkspaceFolders *WorkspaceFoldersServerCapabilities `json:"workspaceFolders,omitzero"` + + // The server is interested in notifications/requests for operations on files. + // + // Since: 3.16.0 + FileOperations *FileOperationOptions `json:"fileOperations,omitzero"` + + // The server supports the `workspace/textDocumentContent` request. + // + // Since: 3.18.0 + // + // Proposed. + TextDocumentContent *TextDocumentContentOptionsOrRegistrationOptions `json:"textDocumentContent,omitzero"` +} + +var _ json.UnmarshalerFrom = (*WorkspaceOptions)(nil) + +func (s *WorkspaceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workspaceFolders"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspaceFolders\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkspaceFolders); err != nil { + return err + } + case `"fileOperations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"fileOperations\"") + } + if err := json.UnmarshalDecode(dec, &s.FileOperations); err != nil { + return err + } + case `"textDocumentContent"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textDocumentContent\"") + } + if err := json.UnmarshalDecode(dec, &s.TextDocumentContent); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Since: 3.18.0 +type TextDocumentContentChangePartial struct { + // The range of the document that changed. + Range Range `json:"range"` + + // The optional length of the range that got replaced. + // + // Deprecated: use range instead. + RangeLength *uint32 `json:"rangeLength,omitzero"` + + // The new text for the provided range. + Text string `json:"text"` +} + +var _ json.UnmarshalerFrom = (*TextDocumentContentChangePartial)(nil) + +func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingRange uint = 1 << iota + missingText + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"range"`: + missing &^= missingRange + if err := json.UnmarshalDecode(dec, &s.Range); err != nil { + return err + } + case `"rangeLength"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangeLength\"") + } + if err := json.UnmarshalDecode(dec, &s.RangeLength); err != nil { + return err + } + case `"text"`: + missing &^= missingText + if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingRange != 0 { + missingProps = append(missingProps, "range") + } + if missing&missingText != 0 { + missingProps = append(missingProps, "text") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Since: 3.18.0 +type TextDocumentContentChangeWholeDocument struct { + // The new text of the whole document. + Text string `json:"text"` +} + +var _ json.UnmarshalerFrom = (*TextDocumentContentChangeWholeDocument)(nil) + +func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingText uint = 1 << iota + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"text"`: + missing &^= missingText + if err := json.UnmarshalDecode(dec, &s.Text); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingText != 0 { + missingProps = append(missingProps, "text") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Structure to capture a description for an error code. +// +// Since: 3.16.0 +type CodeDescription struct { + // An URI to open with more information about the diagnostic error. + Href URI `json:"href"` +} + +var _ json.UnmarshalerFrom = (*CodeDescription)(nil) + +func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingHref uint = 1 << iota + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"href"`: + missing &^= missingHref + if err := json.UnmarshalDecode(dec, &s.Href); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingHref != 0 { + missingProps = append(missingProps, "href") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Represents a related message and source code location for a diagnostic. This should be +// used to point to code locations that cause or related to a diagnostics, e.g when duplicating +// a symbol in a scope. +type DiagnosticRelatedInformation struct { + // The location of this related diagnostic information. + Location Location `json:"location"` + + // The message of this related diagnostic information. + Message string `json:"message"` +} + +var _ json.UnmarshalerFrom = (*DiagnosticRelatedInformation)(nil) + +func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingLocation uint = 1 << iota + missingMessage + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"location"`: + missing &^= missingLocation + if err := json.UnmarshalDecode(dec, &s.Location); err != nil { + return err + } + case `"message"`: + missing &^= missingMessage + if err := json.UnmarshalDecode(dec, &s.Message); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingLocation != 0 { + missingProps = append(missingProps, "location") + } + if missing&missingMessage != 0 { + missingProps = append(missingProps, "message") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Edit range variant that includes ranges for insert and replace operations. +// +// Since: 3.18.0 +type EditRangeWithInsertReplace struct { + Insert Range `json:"insert"` + + Replace Range `json:"replace"` +} + +var _ json.UnmarshalerFrom = (*EditRangeWithInsertReplace)(nil) + +func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingInsert uint = 1 << iota + missingReplace + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"insert"`: + missing &^= missingInsert + if err := json.UnmarshalDecode(dec, &s.Insert); err != nil { + return err + } + case `"replace"`: + missing &^= missingReplace + if err := json.UnmarshalDecode(dec, &s.Replace); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingInsert != 0 { + missingProps = append(missingProps, "insert") + } + if missing&missingReplace != 0 { + missingProps = append(missingProps, "replace") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Since: 3.18.0 +type ServerCompletionItemOptions struct { + // The server has support for completion item label + // details (see also `CompletionItemLabelDetails`) when + // receiving a completion item in a resolve call. + // + // Since: 3.17.0 + LabelDetailsSupport *bool `json:"labelDetailsSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ServerCompletionItemOptions)(nil) + +func (s *ServerCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"labelDetailsSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"labelDetailsSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LabelDetailsSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Since: 3.18.0 +// +// Deprecated: use MarkupContent instead. +type MarkedStringWithLanguage struct { + Language string `json:"language"` + + Value string `json:"value"` +} + +var _ json.UnmarshalerFrom = (*MarkedStringWithLanguage)(nil) + +func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingLanguage uint = 1 << iota + missingValue + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"language"`: + missing &^= missingLanguage + if err := json.UnmarshalDecode(dec, &s.Language); err != nil { + return err + } + case `"value"`: + missing &^= missingValue + if err := json.UnmarshalDecode(dec, &s.Value); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingLanguage != 0 { + missingProps = append(missingProps, "language") + } + if missing&missingValue != 0 { + missingProps = append(missingProps, "value") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Represents a parameter of a callable-signature. A parameter can +// have a label and a doc-comment. +type ParameterInformation struct { + // The label of this parameter information. + // + // Either a string or an inclusive start and exclusive end offsets within its containing + // signature label. (see SignatureInformation.label). The offsets are based on a UTF-16 + // string representation as `Position` and `Range` does. + // + // To avoid ambiguities a server should use the [start, end] offset value instead of using + // a substring. Whether a client support this is controlled via `labelOffsetSupport` client + // capability. + // + // *Note*: a label of type string should be a substring of its containing signature label. + // Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`. + Label StringOrTuple `json:"label"` + + // The human-readable doc-comment of this parameter. Will be shown + // in the UI but can be omitted. + Documentation *StringOrMarkupContent `json:"documentation,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ParameterInformation)(nil) + +func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingLabel uint = 1 << iota + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"label"`: + missing &^= missingLabel + if err := json.UnmarshalDecode(dec, &s.Label); err != nil { + return err + } + case `"documentation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentation\"") + } + if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + if missing != 0 { + var missingProps []string + if missing&missingLabel != 0 { + missingProps = append(missingProps, "label") + } + return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + } + + return nil +} + +// Documentation for a class of code actions. +// +// Since: 3.18.0 +// +// Proposed. +type CodeActionKindDocumentation struct { + // The kind of the code action being documented. + // + // If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any + // refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the + // documentation will only be shown when extract refactoring code actions are returned. + Kind CodeActionKind `json:"kind"` + + // Command that is ued to display the documentation to the user. + // + // The title of this documentation code action is taken from Command.title + Command *Command `json:"command"` +} + +var _ json.UnmarshalerFrom = (*CodeActionKindDocumentation)(nil) + +func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error { + const ( + missingKind uint = 1 << iota + missingCommand + _missingLast + ) + missing := _missingLast - 1 + + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"kind"`: + missing &^= missingKind + if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { + return err + } + case `"command"`: missing &^= missingCommand if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err @@ -18507,6 +21690,43 @@ type FileOperationPatternOptions struct { IgnoreCase *bool `json:"ignoreCase,omitzero"` } +var _ json.UnmarshalerFrom = (*FileOperationPatternOptions)(nil) + +func (s *FileOperationPatternOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"ignoreCase"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"ignoreCase\"") + } + if err := json.UnmarshalDecode(dec, &s.IgnoreCase); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Workspace specific client capabilities. type WorkspaceClientCapabilities struct { // The client supports applying batch edits @@ -18589,6 +21809,148 @@ type WorkspaceClientCapabilities struct { TextDocumentContent *TextDocumentContentClientCapabilities `json:"textDocumentContent,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkspaceClientCapabilities)(nil) + +func (s *WorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"applyEdit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"applyEdit\"") + } + if err := json.UnmarshalDecode(dec, &s.ApplyEdit); err != nil { + return err + } + case `"workspaceEdit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspaceEdit\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkspaceEdit); err != nil { + return err + } + case `"didChangeConfiguration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didChangeConfiguration\"") + } + if err := json.UnmarshalDecode(dec, &s.DidChangeConfiguration); err != nil { + return err + } + case `"didChangeWatchedFiles"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didChangeWatchedFiles\"") + } + if err := json.UnmarshalDecode(dec, &s.DidChangeWatchedFiles); err != nil { + return err + } + case `"symbol"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"symbol\"") + } + if err := json.UnmarshalDecode(dec, &s.Symbol); err != nil { + return err + } + case `"executeCommand"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"executeCommand\"") + } + if err := json.UnmarshalDecode(dec, &s.ExecuteCommand); err != nil { + return err + } + case `"workspaceFolders"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workspaceFolders\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkspaceFolders); err != nil { + return err + } + case `"configuration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"configuration\"") + } + if err := json.UnmarshalDecode(dec, &s.Configuration); err != nil { + return err + } + case `"semanticTokens"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"semanticTokens\"") + } + if err := json.UnmarshalDecode(dec, &s.SemanticTokens); err != nil { + return err + } + case `"codeLens"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeLens\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeLens); err != nil { + return err + } + case `"fileOperations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"fileOperations\"") + } + if err := json.UnmarshalDecode(dec, &s.FileOperations); err != nil { + return err + } + case `"inlineValue"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlineValue\"") + } + if err := json.UnmarshalDecode(dec, &s.InlineValue); err != nil { + return err + } + case `"inlayHint"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlayHint\"") + } + if err := json.UnmarshalDecode(dec, &s.InlayHint); err != nil { + return err + } + case `"diagnostics"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"diagnostics\"") + } + if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { + return err + } + case `"foldingRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + } + if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { + return err + } + case `"textDocumentContent"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textDocumentContent\"") + } + if err := json.UnmarshalDecode(dec, &s.TextDocumentContent); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Text document specific client capabilities. type TextDocumentClientCapabilities struct { // Defines which synchronization capabilities the client supports. @@ -18715,12 +22077,266 @@ type TextDocumentClientCapabilities struct { // Since: 3.17.0 Diagnostic *DiagnosticClientCapabilities `json:"diagnostic,omitzero"` - // Client capabilities specific to inline completions. - // - // Since: 3.18.0 - // - // Proposed. - InlineCompletion *InlineCompletionClientCapabilities `json:"inlineCompletion,omitzero"` + // Client capabilities specific to inline completions. + // + // Since: 3.18.0 + // + // Proposed. + InlineCompletion *InlineCompletionClientCapabilities `json:"inlineCompletion,omitzero"` +} + +var _ json.UnmarshalerFrom = (*TextDocumentClientCapabilities)(nil) + +func (s *TextDocumentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"synchronization"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"synchronization\"") + } + if err := json.UnmarshalDecode(dec, &s.Synchronization); err != nil { + return err + } + case `"filters"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"filters\"") + } + if err := json.UnmarshalDecode(dec, &s.Filters); err != nil { + return err + } + case `"completion"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completion\"") + } + if err := json.UnmarshalDecode(dec, &s.Completion); err != nil { + return err + } + case `"hover"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"hover\"") + } + if err := json.UnmarshalDecode(dec, &s.Hover); err != nil { + return err + } + case `"signatureHelp"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"signatureHelp\"") + } + if err := json.UnmarshalDecode(dec, &s.SignatureHelp); err != nil { + return err + } + case `"declaration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"declaration\"") + } + if err := json.UnmarshalDecode(dec, &s.Declaration); err != nil { + return err + } + case `"definition"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"definition\"") + } + if err := json.UnmarshalDecode(dec, &s.Definition); err != nil { + return err + } + case `"typeDefinition"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"typeDefinition\"") + } + if err := json.UnmarshalDecode(dec, &s.TypeDefinition); err != nil { + return err + } + case `"implementation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"implementation\"") + } + if err := json.UnmarshalDecode(dec, &s.Implementation); err != nil { + return err + } + case `"references"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"references\"") + } + if err := json.UnmarshalDecode(dec, &s.References); err != nil { + return err + } + case `"documentHighlight"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentHighlight\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentHighlight); err != nil { + return err + } + case `"documentSymbol"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentSymbol\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentSymbol); err != nil { + return err + } + case `"codeAction"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeAction\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeAction); err != nil { + return err + } + case `"codeLens"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeLens\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeLens); err != nil { + return err + } + case `"documentLink"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentLink\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentLink); err != nil { + return err + } + case `"colorProvider"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"colorProvider\"") + } + if err := json.UnmarshalDecode(dec, &s.ColorProvider); err != nil { + return err + } + case `"formatting"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"formatting\"") + } + if err := json.UnmarshalDecode(dec, &s.Formatting); err != nil { + return err + } + case `"rangeFormatting"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangeFormatting\"") + } + if err := json.UnmarshalDecode(dec, &s.RangeFormatting); err != nil { + return err + } + case `"onTypeFormatting"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"onTypeFormatting\"") + } + if err := json.UnmarshalDecode(dec, &s.OnTypeFormatting); err != nil { + return err + } + case `"rename"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rename\"") + } + if err := json.UnmarshalDecode(dec, &s.Rename); err != nil { + return err + } + case `"foldingRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + } + if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { + return err + } + case `"selectionRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"selectionRange\"") + } + if err := json.UnmarshalDecode(dec, &s.SelectionRange); err != nil { + return err + } + case `"publishDiagnostics"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"publishDiagnostics\"") + } + if err := json.UnmarshalDecode(dec, &s.PublishDiagnostics); err != nil { + return err + } + case `"callHierarchy"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"callHierarchy\"") + } + if err := json.UnmarshalDecode(dec, &s.CallHierarchy); err != nil { + return err + } + case `"semanticTokens"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"semanticTokens\"") + } + if err := json.UnmarshalDecode(dec, &s.SemanticTokens); err != nil { + return err + } + case `"linkedEditingRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkedEditingRange\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkedEditingRange); err != nil { + return err + } + case `"moniker"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"moniker\"") + } + if err := json.UnmarshalDecode(dec, &s.Moniker); err != nil { + return err + } + case `"typeHierarchy"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"typeHierarchy\"") + } + if err := json.UnmarshalDecode(dec, &s.TypeHierarchy); err != nil { + return err + } + case `"inlineValue"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlineValue\"") + } + if err := json.UnmarshalDecode(dec, &s.InlineValue); err != nil { + return err + } + case `"inlayHint"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlayHint\"") + } + if err := json.UnmarshalDecode(dec, &s.InlayHint); err != nil { + return err + } + case `"diagnostic"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"diagnostic\"") + } + if err := json.UnmarshalDecode(dec, &s.Diagnostic); err != nil { + return err + } + case `"inlineCompletion"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"inlineCompletion\"") + } + if err := json.UnmarshalDecode(dec, &s.InlineCompletion); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil } type WindowClientCapabilities struct { @@ -18746,6 +22362,57 @@ type WindowClientCapabilities struct { ShowDocument *ShowDocumentClientCapabilities `json:"showDocument,omitzero"` } +var _ json.UnmarshalerFrom = (*WindowClientCapabilities)(nil) + +func (s *WindowClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } + if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { + return err + } + case `"showMessage"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"showMessage\"") + } + if err := json.UnmarshalDecode(dec, &s.ShowMessage); err != nil { + return err + } + case `"showDocument"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"showDocument\"") + } + if err := json.UnmarshalDecode(dec, &s.ShowDocument); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // General client capabilities. // // Since: 3.16.0 @@ -18789,6 +22456,64 @@ type GeneralClientCapabilities struct { PositionEncodings *[]PositionEncodingKind `json:"positionEncodings,omitzero"` } +var _ json.UnmarshalerFrom = (*GeneralClientCapabilities)(nil) + +func (s *GeneralClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"staleRequestSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"staleRequestSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.StaleRequestSupport); err != nil { + return err + } + case `"regularExpressions"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"regularExpressions\"") + } + if err := json.UnmarshalDecode(dec, &s.RegularExpressions); err != nil { + return err + } + case `"markdown"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"markdown\"") + } + if err := json.UnmarshalDecode(dec, &s.Markdown); err != nil { + return err + } + case `"positionEncodings"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"positionEncodings\"") + } + if err := json.UnmarshalDecode(dec, &s.PositionEncodings); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type WorkspaceFoldersServerCapabilities struct { // The server has support for workspace folders Supported *bool `json:"supported,omitzero"` @@ -18803,6 +22528,50 @@ type WorkspaceFoldersServerCapabilities struct { ChangeNotifications *StringOrBoolean `json:"changeNotifications,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkspaceFoldersServerCapabilities)(nil) + +func (s *WorkspaceFoldersServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"supported"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"supported\"") + } + if err := json.UnmarshalDecode(dec, &s.Supported); err != nil { + return err + } + case `"changeNotifications"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"changeNotifications\"") + } + if err := json.UnmarshalDecode(dec, &s.ChangeNotifications); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Options for notifications/requests for user operations on files. // // Since: 3.16.0 @@ -18826,6 +22595,78 @@ type FileOperationOptions struct { WillDelete *FileOperationRegistrationOptions `json:"willDelete,omitzero"` } +var _ json.UnmarshalerFrom = (*FileOperationOptions)(nil) + +func (s *FileOperationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"didCreate"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didCreate\"") + } + if err := json.UnmarshalDecode(dec, &s.DidCreate); err != nil { + return err + } + case `"willCreate"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willCreate\"") + } + if err := json.UnmarshalDecode(dec, &s.WillCreate); err != nil { + return err + } + case `"didRename"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didRename\"") + } + if err := json.UnmarshalDecode(dec, &s.DidRename); err != nil { + return err + } + case `"willRename"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willRename\"") + } + if err := json.UnmarshalDecode(dec, &s.WillRename); err != nil { + return err + } + case `"didDelete"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didDelete\"") + } + if err := json.UnmarshalDecode(dec, &s.DidDelete); err != nil { + return err + } + case `"willDelete"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willDelete\"") + } + if err := json.UnmarshalDecode(dec, &s.WillDelete); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // A relative pattern is a helper to construct glob patterns that are matched // relatively to a base URI. The common value for a `baseUri` is a workspace // folder root, but it can be another absolute URI as well. @@ -18944,10 +22785,16 @@ func (s *TextDocumentFilterLanguage) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"scheme"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"scheme\"") + } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err } case `"pattern"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"pattern\"") + } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err } @@ -19014,6 +22861,9 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"language"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"language\"") + } if err := json.UnmarshalDecode(dec, &s.Language); err != nil { return err } @@ -19023,6 +22873,9 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"pattern"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"pattern\"") + } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err } @@ -19089,10 +22942,16 @@ func (s *TextDocumentFilterPattern) UnmarshalJSONFrom(dec *json.Decoder) error { } switch string(name) { case `"language"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"language\"") + } if err := json.UnmarshalDecode(dec, &s.Language); err != nil { return err } case `"scheme"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"scheme\"") + } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err } @@ -19169,9 +23028,125 @@ type WorkspaceEditClientCapabilities struct { SnippetEditSupport *bool `json:"snippetEditSupport,omitzero"` } -type DidChangeConfigurationClientCapabilities struct { - // Did change configuration notification supports dynamic registration. - DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +var _ json.UnmarshalerFrom = (*WorkspaceEditClientCapabilities)(nil) + +func (s *WorkspaceEditClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"documentChanges"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentChanges\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentChanges); err != nil { + return err + } + case `"resourceOperations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resourceOperations\"") + } + if err := json.UnmarshalDecode(dec, &s.ResourceOperations); err != nil { + return err + } + case `"failureHandling"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"failureHandling\"") + } + if err := json.UnmarshalDecode(dec, &s.FailureHandling); err != nil { + return err + } + case `"normalizesLineEndings"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"normalizesLineEndings\"") + } + if err := json.UnmarshalDecode(dec, &s.NormalizesLineEndings); err != nil { + return err + } + case `"changeAnnotationSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"changeAnnotationSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ChangeAnnotationSupport); err != nil { + return err + } + case `"metadataSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"metadataSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.MetadataSupport); err != nil { + return err + } + case `"snippetEditSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"snippetEditSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.SnippetEditSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +type DidChangeConfigurationClientCapabilities struct { + // Did change configuration notification supports dynamic registration. + DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +} + +var _ json.UnmarshalerFrom = (*DidChangeConfigurationClientCapabilities)(nil) + +func (s *DidChangeConfigurationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil } type DidChangeWatchedFilesClientCapabilities struct { @@ -19187,6 +23162,50 @@ type DidChangeWatchedFilesClientCapabilities struct { RelativePatternSupport *bool `json:"relativePatternSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DidChangeWatchedFilesClientCapabilities)(nil) + +func (s *DidChangeWatchedFilesClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"relativePatternSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relativePatternSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RelativePatternSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities for a WorkspaceSymbolRequest. type WorkspaceSymbolClientCapabilities struct { // Symbol request supports dynamic registration. @@ -19209,12 +23228,107 @@ type WorkspaceSymbolClientCapabilities struct { ResolveSupport *ClientSymbolResolveOptions `json:"resolveSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*WorkspaceSymbolClientCapabilities)(nil) + +func (s *WorkspaceSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"symbolKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"symbolKind\"") + } + if err := json.UnmarshalDecode(dec, &s.SymbolKind); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"resolveSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The client capabilities of a ExecuteCommandRequest. type ExecuteCommandClientCapabilities struct { // Execute command supports dynamic registration. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*ExecuteCommandClientCapabilities)(nil) + +func (s *ExecuteCommandClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.16.0 type SemanticTokensWorkspaceClientCapabilities struct { // Whether the client implementation supports a refresh request sent from @@ -19227,6 +23341,43 @@ type SemanticTokensWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*SemanticTokensWorkspaceClientCapabilities)(nil) + +func (s *SemanticTokensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.16.0 type CodeLensWorkspaceClientCapabilities struct { // Whether the client implementation supports a refresh request sent from the @@ -19239,6 +23390,43 @@ type CodeLensWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*CodeLensWorkspaceClientCapabilities)(nil) + +func (s *CodeLensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Capabilities relating to events from file operations by the user in the client. // // These events do not come from the file system, they come from user operations @@ -19268,6 +23456,85 @@ type FileOperationClientCapabilities struct { WillDelete *bool `json:"willDelete,omitzero"` } +var _ json.UnmarshalerFrom = (*FileOperationClientCapabilities)(nil) + +func (s *FileOperationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"didCreate"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didCreate\"") + } + if err := json.UnmarshalDecode(dec, &s.DidCreate); err != nil { + return err + } + case `"willCreate"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willCreate\"") + } + if err := json.UnmarshalDecode(dec, &s.WillCreate); err != nil { + return err + } + case `"didRename"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didRename\"") + } + if err := json.UnmarshalDecode(dec, &s.DidRename); err != nil { + return err + } + case `"willRename"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willRename\"") + } + if err := json.UnmarshalDecode(dec, &s.WillRename); err != nil { + return err + } + case `"didDelete"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didDelete\"") + } + if err := json.UnmarshalDecode(dec, &s.DidDelete); err != nil { + return err + } + case `"willDelete"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willDelete\"") + } + if err := json.UnmarshalDecode(dec, &s.WillDelete); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client workspace capabilities specific to inline values. // // Since: 3.17.0 @@ -19282,6 +23549,43 @@ type InlineValueWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*InlineValueWorkspaceClientCapabilities)(nil) + +func (s *InlineValueWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client workspace capabilities specific to inlay hints. // // Since: 3.17.0 @@ -19296,6 +23600,43 @@ type InlayHintWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*InlayHintWorkspaceClientCapabilities)(nil) + +func (s *InlayHintWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Workspace client capabilities specific to diagnostic pull requests. // // Since: 3.17.0 @@ -19310,6 +23651,43 @@ type DiagnosticWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DiagnosticWorkspaceClientCapabilities)(nil) + +func (s *DiagnosticWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client workspace capabilities specific to folding ranges // // Since: 3.18.0 @@ -19330,6 +23708,43 @@ type FoldingRangeWorkspaceClientCapabilities struct { RefreshSupport *bool `json:"refreshSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*FoldingRangeWorkspaceClientCapabilities)(nil) + +func (s *FoldingRangeWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"refreshSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities for a text document content provider. // // Since: 3.18.0 @@ -19340,6 +23755,43 @@ type TextDocumentContentClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*TextDocumentContentClientCapabilities)(nil) + +func (s *TextDocumentContentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type TextDocumentSyncClientCapabilities struct { // Whether text document synchronization supports dynamic registration. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` @@ -19356,6 +23808,64 @@ type TextDocumentSyncClientCapabilities struct { DidSave *bool `json:"didSave,omitzero"` } +var _ json.UnmarshalerFrom = (*TextDocumentSyncClientCapabilities)(nil) + +func (s *TextDocumentSyncClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"willSave"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willSave\"") + } + if err := json.UnmarshalDecode(dec, &s.WillSave); err != nil { + return err + } + case `"willSaveWaitUntil"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"willSaveWaitUntil\"") + } + if err := json.UnmarshalDecode(dec, &s.WillSaveWaitUntil); err != nil { + return err + } + case `"didSave"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"didSave\"") + } + if err := json.UnmarshalDecode(dec, &s.DidSave); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type TextDocumentFilterClientCapabilities struct { // The client supports Relative Patterns. // @@ -19363,6 +23873,43 @@ type TextDocumentFilterClientCapabilities struct { RelativePatternSupport *bool `json:"relativePatternSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*TextDocumentFilterClientCapabilities)(nil) + +func (s *TextDocumentFilterClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"relativePatternSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relativePatternSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RelativePatternSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Completion client capabilities type CompletionClientCapabilities struct { // Whether completion supports dynamic registration. @@ -19385,11 +23932,83 @@ type CompletionClientCapabilities struct { // `textDocument/completion` request. ContextSupport *bool `json:"contextSupport,omitzero"` - // The client supports the following `CompletionList` specific - // capabilities. - // - // Since: 3.17.0 - CompletionList *CompletionListCapabilities `json:"completionList,omitzero"` + // The client supports the following `CompletionList` specific + // capabilities. + // + // Since: 3.17.0 + CompletionList *CompletionListCapabilities `json:"completionList,omitzero"` +} + +var _ json.UnmarshalerFrom = (*CompletionClientCapabilities)(nil) + +func (s *CompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"completionItem"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionItem\"") + } + if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { + return err + } + case `"completionItemKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionItemKind\"") + } + if err := json.UnmarshalDecode(dec, &s.CompletionItemKind); err != nil { + return err + } + case `"insertTextMode"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { + return err + } + case `"contextSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"contextSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ContextSupport); err != nil { + return err + } + case `"completionList"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"completionList\"") + } + if err := json.UnmarshalDecode(dec, &s.CompletionList); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil } type HoverClientCapabilities struct { @@ -19401,6 +24020,50 @@ type HoverClientCapabilities struct { ContentFormat *[]MarkupKind `json:"contentFormat,omitzero"` } +var _ json.UnmarshalerFrom = (*HoverClientCapabilities)(nil) + +func (s *HoverClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"contentFormat"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"contentFormat\"") + } + if err := json.UnmarshalDecode(dec, &s.ContentFormat); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client Capabilities for a SignatureHelpRequest. type SignatureHelpClientCapabilities struct { // Whether signature help supports dynamic registration. @@ -19419,6 +24082,57 @@ type SignatureHelpClientCapabilities struct { ContextSupport *bool `json:"contextSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*SignatureHelpClientCapabilities)(nil) + +func (s *SignatureHelpClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"signatureInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"signatureInformation\"") + } + if err := json.UnmarshalDecode(dec, &s.SignatureInformation); err != nil { + return err + } + case `"contextSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"contextSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ContextSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.14.0 type DeclarationClientCapabilities struct { // Whether declaration supports dynamic registration. If this is set to `true` @@ -19430,6 +24144,50 @@ type DeclarationClientCapabilities struct { LinkSupport *bool `json:"linkSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DeclarationClientCapabilities)(nil) + +func (s *DeclarationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"linkSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client Capabilities for a DefinitionRequest. type DefinitionClientCapabilities struct { // Whether definition supports dynamic registration. @@ -19441,6 +24199,50 @@ type DefinitionClientCapabilities struct { LinkSupport *bool `json:"linkSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DefinitionClientCapabilities)(nil) + +func (s *DefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"linkSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since 3.6.0 type TypeDefinitionClientCapabilities struct { // Whether implementation supports dynamic registration. If this is set to `true` @@ -19454,6 +24256,50 @@ type TypeDefinitionClientCapabilities struct { LinkSupport *bool `json:"linkSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*TypeDefinitionClientCapabilities)(nil) + +func (s *TypeDefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"linkSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.6.0 type ImplementationClientCapabilities struct { // Whether implementation supports dynamic registration. If this is set to `true` @@ -19461,16 +24307,97 @@ type ImplementationClientCapabilities struct { // for the corresponding server capability as well. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` - // The client supports additional metadata in the form of definition links. - // - // Since: 3.14.0 - LinkSupport *bool `json:"linkSupport,omitzero"` -} + // The client supports additional metadata in the form of definition links. + // + // Since: 3.14.0 + LinkSupport *bool `json:"linkSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ImplementationClientCapabilities)(nil) + +func (s *ImplementationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"linkSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Client Capabilities for a ReferencesRequest. +type ReferenceClientCapabilities struct { + // Whether references supports dynamic registration. + DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ReferenceClientCapabilities)(nil) + +func (s *ReferenceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } -// Client Capabilities for a ReferencesRequest. -type ReferenceClientCapabilities struct { - // Whether references supports dynamic registration. - DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` + return nil } // Client Capabilities for a DocumentHighlightRequest. @@ -19479,6 +24406,43 @@ type DocumentHighlightClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentHighlightClientCapabilities)(nil) + +func (s *DocumentHighlightClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client Capabilities for a DocumentSymbolRequest. type DocumentSymbolClientCapabilities struct { // Whether document symbol supports dynamic registration. @@ -19505,6 +24469,71 @@ type DocumentSymbolClientCapabilities struct { LabelSupport *bool `json:"labelSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentSymbolClientCapabilities)(nil) + +func (s *DocumentSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"symbolKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"symbolKind\"") + } + if err := json.UnmarshalDecode(dec, &s.SymbolKind); err != nil { + return err + } + case `"hierarchicalDocumentSymbolSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"hierarchicalDocumentSymbolSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.HierarchicalDocumentSymbolSupport); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"labelSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"labelSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LabelSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The Client Capabilities of a CodeActionRequest. type CodeActionClientCapabilities struct { // Whether code action supports dynamic registration. @@ -19564,6 +24593,99 @@ type CodeActionClientCapabilities struct { TagSupport *CodeActionTagOptions `json:"tagSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*CodeActionClientCapabilities)(nil) + +func (s *CodeActionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"codeActionLiteralSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeActionLiteralSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeActionLiteralSupport); err != nil { + return err + } + case `"isPreferredSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"isPreferredSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.IsPreferredSupport); err != nil { + return err + } + case `"disabledSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"disabledSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DisabledSupport); err != nil { + return err + } + case `"dataSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { + return err + } + case `"resolveSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { + return err + } + case `"honorsChangeAnnotations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"honorsChangeAnnotations\"") + } + if err := json.UnmarshalDecode(dec, &s.HonorsChangeAnnotations); err != nil { + return err + } + case `"documentationSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentationSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentationSupport); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The client capabilities of a CodeLensRequest. type CodeLensClientCapabilities struct { // Whether code lens supports dynamic registration. @@ -19576,22 +24698,147 @@ type CodeLensClientCapabilities struct { ResolveSupport *ClientCodeLensResolveOptions `json:"resolveSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*CodeLensClientCapabilities)(nil) + +func (s *CodeLensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"resolveSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The client capabilities of a DocumentLinkRequest. type DocumentLinkClientCapabilities struct { // Whether document link supports dynamic registration. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` - // Whether the client supports the `tooltip` property on `DocumentLink`. - // - // Since: 3.15.0 - TooltipSupport *bool `json:"tooltipSupport,omitzero"` -} + // Whether the client supports the `tooltip` property on `DocumentLink`. + // + // Since: 3.15.0 + TooltipSupport *bool `json:"tooltipSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*DocumentLinkClientCapabilities)(nil) + +func (s *DocumentLinkClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"tooltipSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tooltipSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TooltipSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +type DocumentColorClientCapabilities struct { + // Whether implementation supports dynamic registration. If this is set to `true` + // the client supports the new `DocumentColorRegistrationOptions` return value + // for the corresponding server capability as well. + DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +} + +var _ json.UnmarshalerFrom = (*DocumentColorClientCapabilities)(nil) + +func (s *DocumentColorClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } -type DocumentColorClientCapabilities struct { - // Whether implementation supports dynamic registration. If this is set to `true` - // the client supports the new `DocumentColorRegistrationOptions` return value - // for the corresponding server capability as well. - DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` + return nil } // Client capabilities of a DocumentFormattingRequest. @@ -19600,6 +24847,43 @@ type DocumentFormattingClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentFormattingClientCapabilities)(nil) + +func (s *DocumentFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities of a DocumentRangeFormattingRequest. type DocumentRangeFormattingClientCapabilities struct { // Whether range formatting supports dynamic registration. @@ -19613,12 +24897,93 @@ type DocumentRangeFormattingClientCapabilities struct { RangesSupport *bool `json:"rangesSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentRangeFormattingClientCapabilities)(nil) + +func (s *DocumentRangeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"rangesSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities of a DocumentOnTypeFormattingRequest. type DocumentOnTypeFormattingClientCapabilities struct { // Whether on type formatting supports dynamic registration. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*DocumentOnTypeFormattingClientCapabilities)(nil) + +func (s *DocumentOnTypeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type RenameClientCapabilities struct { // Whether rename supports dynamic registration. DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` @@ -19647,6 +25012,64 @@ type RenameClientCapabilities struct { HonorsChangeAnnotations *bool `json:"honorsChangeAnnotations,omitzero"` } +var _ json.UnmarshalerFrom = (*RenameClientCapabilities)(nil) + +func (s *RenameClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"prepareSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"prepareSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.PrepareSupport); err != nil { + return err + } + case `"prepareSupportDefaultBehavior"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"prepareSupportDefaultBehavior\"") + } + if err := json.UnmarshalDecode(dec, &s.PrepareSupportDefaultBehavior); err != nil { + return err + } + case `"honorsChangeAnnotations"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"honorsChangeAnnotations\"") + } + if err := json.UnmarshalDecode(dec, &s.HonorsChangeAnnotations); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type FoldingRangeClientCapabilities struct { // Whether implementation supports dynamic registration for folding range // providers. If this is set to `true` the client supports the new @@ -19669,17 +25092,119 @@ type FoldingRangeClientCapabilities struct { // Since: 3.17.0 FoldingRangeKind *ClientFoldingRangeKindOptions `json:"foldingRangeKind,omitzero"` - // Specific options for the folding range. - // - // Since: 3.17.0 - FoldingRange *ClientFoldingRangeOptions `json:"foldingRange,omitzero"` -} + // Specific options for the folding range. + // + // Since: 3.17.0 + FoldingRange *ClientFoldingRangeOptions `json:"foldingRange,omitzero"` +} + +var _ json.UnmarshalerFrom = (*FoldingRangeClientCapabilities)(nil) + +func (s *FoldingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"rangeLimit"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"rangeLimit\"") + } + if err := json.UnmarshalDecode(dec, &s.RangeLimit); err != nil { + return err + } + case `"lineFoldingOnly"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"lineFoldingOnly\"") + } + if err := json.UnmarshalDecode(dec, &s.LineFoldingOnly); err != nil { + return err + } + case `"foldingRangeKind"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"foldingRangeKind\"") + } + if err := json.UnmarshalDecode(dec, &s.FoldingRangeKind); err != nil { + return err + } + case `"foldingRange"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + } + if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +type SelectionRangeClientCapabilities struct { + // Whether implementation supports dynamic registration for selection range providers. If this is set to `true` + // the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server + // capability as well. + DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +} + +var _ json.UnmarshalerFrom = (*SelectionRangeClientCapabilities)(nil) + +func (s *SelectionRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } -type SelectionRangeClientCapabilities struct { - // Whether implementation supports dynamic registration for selection range providers. If this is set to `true` - // the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server - // capability as well. - DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` + return nil } // The publish diagnostic client capabilities. @@ -19712,6 +25237,71 @@ type PublishDiagnosticsClientCapabilities struct { VersionSupport *bool `json:"versionSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*PublishDiagnosticsClientCapabilities)(nil) + +func (s *PublishDiagnosticsClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"relatedInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + } + if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"codeDescriptionSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { + return err + } + case `"dataSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { + return err + } + case `"versionSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"versionSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.VersionSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.16.0 type CallHierarchyClientCapabilities struct { // Whether implementation supports dynamic registration. If this is set to `true` @@ -19720,6 +25310,43 @@ type CallHierarchyClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*CallHierarchyClientCapabilities)(nil) + +func (s *CallHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.16.0 type SemanticTokensClientCapabilities struct { // Whether implementation supports dynamic registration. If this is set to `true` @@ -19799,6 +25426,9 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) } switch string(name) { case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } @@ -19823,18 +25453,30 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) return err } case `"overlappingTokenSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"overlappingTokenSupport\"") + } if err := json.UnmarshalDecode(dec, &s.OverlappingTokenSupport); err != nil { return err } case `"multilineTokenSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"multilineTokenSupport\"") + } if err := json.UnmarshalDecode(dec, &s.MultilineTokenSupport); err != nil { return err } case `"serverCancelSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"serverCancelSupport\"") + } if err := json.UnmarshalDecode(dec, &s.ServerCancelSupport); err != nil { return err } case `"augmentsSyntaxTokens"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"augmentsSyntaxTokens\"") + } if err := json.UnmarshalDecode(dec, &s.AugmentsSyntaxTokens); err != nil { return err } @@ -19879,6 +25521,43 @@ type LinkedEditingRangeClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*LinkedEditingRangeClientCapabilities)(nil) + +func (s *LinkedEditingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities specific to the moniker request. // // Since: 3.16.0 @@ -19889,6 +25568,43 @@ type MonikerClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*MonikerClientCapabilities)(nil) + +func (s *MonikerClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.17.0 type TypeHierarchyClientCapabilities struct { // Whether implementation supports dynamic registration. If this is set to `true` @@ -19897,6 +25613,43 @@ type TypeHierarchyClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*TypeHierarchyClientCapabilities)(nil) + +func (s *TypeHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities specific to inline values. // // Since: 3.17.0 @@ -19905,16 +25658,97 @@ type InlineValueClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } -// Inlay hint client capabilities. -// -// Since: 3.17.0 -type InlayHintClientCapabilities struct { - // Whether inlay hints support dynamic registration. - DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` +var _ json.UnmarshalerFrom = (*InlineValueClientCapabilities)(nil) + +func (s *InlineValueClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + +// Inlay hint client capabilities. +// +// Since: 3.17.0 +type InlayHintClientCapabilities struct { + // Whether inlay hints support dynamic registration. + DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` + + // Indicates which properties a client can resolve lazily on an inlay + // hint. + ResolveSupport *ClientInlayHintResolveOptions `json:"resolveSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*InlayHintClientCapabilities)(nil) + +func (s *InlayHintClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"resolveSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } - // Indicates which properties a client can resolve lazily on an inlay - // hint. - ResolveSupport *ClientInlayHintResolveOptions `json:"resolveSupport,omitzero"` + return nil } // Client capabilities specific to diagnostic pull requests. @@ -19951,6 +25785,78 @@ type DiagnosticClientCapabilities struct { RelatedDocumentSupport *bool `json:"relatedDocumentSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*DiagnosticClientCapabilities)(nil) + +func (s *DiagnosticClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"relatedInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + } + if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"codeDescriptionSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { + return err + } + case `"dataSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { + return err + } + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + case `"relatedDocumentSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedDocumentSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.RelatedDocumentSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities specific to inline completions. // // Since: 3.18.0 @@ -19961,12 +25867,86 @@ type InlineCompletionClientCapabilities struct { DynamicRegistration *bool `json:"dynamicRegistration,omitzero"` } +var _ json.UnmarshalerFrom = (*InlineCompletionClientCapabilities)(nil) + +func (s *InlineCompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"dynamicRegistration"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + } + if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Show message request client capabilities type ShowMessageRequestClientCapabilities struct { // Capabilities specific to the `MessageActionItem` type. MessageActionItem *ClientShowMessageActionItemOptions `json:"messageActionItem,omitzero"` } +var _ json.UnmarshalerFrom = (*ShowMessageRequestClientCapabilities)(nil) + +func (s *ShowMessageRequestClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"messageActionItem"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"messageActionItem\"") + } + if err := json.UnmarshalDecode(dec, &s.MessageActionItem); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Client capabilities for the showDocument request. // // Since: 3.16.0 @@ -20133,6 +26113,9 @@ func (s *RegularExpressionsClientCapabilities) UnmarshalJSONFrom(dec *json.Decod return err } case `"version"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"version\"") + } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } @@ -20203,10 +26186,16 @@ func (s *MarkdownClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error return err } case `"version"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"version\"") + } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } case `"allowedTags"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"allowedTags\"") + } if err := json.UnmarshalDecode(dec, &s.AllowedTags); err != nil { return err } @@ -20240,6 +26229,43 @@ type ChangeAnnotationsSupportOptions struct { GroupsOnLabel *bool `json:"groupsOnLabel,omitzero"` } +var _ json.UnmarshalerFrom = (*ChangeAnnotationsSupportOptions)(nil) + +func (s *ChangeAnnotationsSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"groupsOnLabel"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"groupsOnLabel\"") + } + if err := json.UnmarshalDecode(dec, &s.GroupsOnLabel); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientSymbolKindOptions struct { // The symbol kind values the client supports. When this @@ -20253,6 +26279,43 @@ type ClientSymbolKindOptions struct { ValueSet *[]SymbolKind `json:"valueSet,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientSymbolKindOptions)(nil) + +func (s *ClientSymbolKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"valueSet"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"valueSet\"") + } + if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientSymbolTagOptions struct { // The tags supported by the client. @@ -20408,18 +26471,118 @@ type ClientCompletionItemOptions struct { // Since: 3.16.0 ResolveSupport *ClientCompletionItemResolveOptions `json:"resolveSupport,omitzero"` - // The client supports the `insertTextMode` property on - // a completion item to override the whitespace handling mode - // as defined by the client (see `insertTextMode`). - // - // Since: 3.16.0 - InsertTextModeSupport *ClientCompletionItemInsertTextModeOptions `json:"insertTextModeSupport,omitzero"` + // The client supports the `insertTextMode` property on + // a completion item to override the whitespace handling mode + // as defined by the client (see `insertTextMode`). + // + // Since: 3.16.0 + InsertTextModeSupport *ClientCompletionItemInsertTextModeOptions `json:"insertTextModeSupport,omitzero"` + + // The client has support for completion item label + // details (see also `CompletionItemLabelDetails`). + // + // Since: 3.17.0 + LabelDetailsSupport *bool `json:"labelDetailsSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*ClientCompletionItemOptions)(nil) + +func (s *ClientCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"snippetSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"snippetSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.SnippetSupport); err != nil { + return err + } + case `"commitCharactersSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"commitCharactersSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.CommitCharactersSupport); err != nil { + return err + } + case `"documentationFormat"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentationFormat\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentationFormat); err != nil { + return err + } + case `"deprecatedSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"deprecatedSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DeprecatedSupport); err != nil { + return err + } + case `"preselectSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"preselectSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.PreselectSupport); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"insertReplaceSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertReplaceSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertReplaceSupport); err != nil { + return err + } + case `"resolveSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { + return err + } + case `"insertTextModeSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"insertTextModeSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.InsertTextModeSupport); err != nil { + return err + } + case `"labelDetailsSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"labelDetailsSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LabelDetailsSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } - // The client has support for completion item label - // details (see also `CompletionItemLabelDetails`). - // - // Since: 3.17.0 - LabelDetailsSupport *bool `json:"labelDetailsSupport,omitzero"` + return nil } // Since: 3.18.0 @@ -20435,6 +26598,43 @@ type ClientCompletionItemOptionsKind struct { ValueSet *[]CompletionItemKind `json:"valueSet,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientCompletionItemOptionsKind)(nil) + +func (s *ClientCompletionItemOptionsKind) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"valueSet"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"valueSet\"") + } + if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // The client supports the following `CompletionList` specific // capabilities. // @@ -20464,6 +26664,50 @@ type CompletionListCapabilities struct { ApplyKindSupport *bool `json:"applyKindSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*CompletionListCapabilities)(nil) + +func (s *CompletionListCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"itemDefaults"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"itemDefaults\"") + } + if err := json.UnmarshalDecode(dec, &s.ItemDefaults); err != nil { + return err + } + case `"applyKindSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"applyKindSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ApplyKindSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientSignatureInformationOptions struct { // Client supports the following content formats for the documentation @@ -20489,6 +26733,64 @@ type ClientSignatureInformationOptions struct { NoActiveParameterSupport *bool `json:"noActiveParameterSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientSignatureInformationOptions)(nil) + +func (s *ClientSignatureInformationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"documentationFormat"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"documentationFormat\"") + } + if err := json.UnmarshalDecode(dec, &s.DocumentationFormat); err != nil { + return err + } + case `"parameterInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"parameterInformation\"") + } + if err := json.UnmarshalDecode(dec, &s.ParameterInformation); err != nil { + return err + } + case `"activeParameterSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"activeParameterSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.ActiveParameterSupport); err != nil { + return err + } + case `"noActiveParameterSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"noActiveParameterSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.NoActiveParameterSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientCodeActionLiteralOptions struct { // The code action kind is support with the following value @@ -20719,6 +27021,43 @@ type ClientFoldingRangeKindOptions struct { ValueSet *[]FoldingRangeKind `json:"valueSet,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientFoldingRangeKindOptions)(nil) + +func (s *ClientFoldingRangeKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"valueSet"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"valueSet\"") + } + if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientFoldingRangeOptions struct { // If set, the client signals that it supports setting collapsedText on @@ -20728,6 +27067,43 @@ type ClientFoldingRangeOptions struct { CollapsedText *bool `json:"collapsedText,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientFoldingRangeOptions)(nil) + +func (s *ClientFoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"collapsedText"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"collapsedText\"") + } + if err := json.UnmarshalDecode(dec, &s.CollapsedText); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // General diagnostics capabilities for pull and push model. type DiagnosticsCapabilities struct { // Whether the clients accepts diagnostics with related information. @@ -20744,12 +27120,70 @@ type DiagnosticsCapabilities struct { // Since: 3.16.0 CodeDescriptionSupport *bool `json:"codeDescriptionSupport,omitzero"` - // Whether code action supports the `data` property which is - // preserved between a `textDocument/publishDiagnostics` and - // `textDocument/codeAction` request. - // - // Since: 3.16.0 - DataSupport *bool `json:"dataSupport,omitzero"` + // Whether code action supports the `data` property which is + // preserved between a `textDocument/publishDiagnostics` and + // `textDocument/codeAction` request. + // + // Since: 3.16.0 + DataSupport *bool `json:"dataSupport,omitzero"` +} + +var _ json.UnmarshalerFrom = (*DiagnosticsCapabilities)(nil) + +func (s *DiagnosticsCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"relatedInformation"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + } + if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { + return err + } + case `"tagSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { + return err + } + case `"codeDescriptionSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { + return err + } + case `"dataSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil } // Since: 3.18.0 @@ -20763,6 +27197,50 @@ type ClientSemanticTokensRequestOptions struct { Full *BooleanOrClientSemanticTokensRequestFullDelta `json:"full,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientSemanticTokensRequestOptions)(nil) + +func (s *ClientSemanticTokensRequestOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"range"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"range\"") + } + if err := json.UnmarshalDecode(dec, &s.Range); err != nil { + return err + } + case `"full"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"full\"") + } + if err := json.UnmarshalDecode(dec, &s.Full); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientInlayHintResolveOptions struct { // The properties that a client can resolve lazily. @@ -20826,6 +27304,43 @@ type ClientShowMessageActionItemOptions struct { AdditionalPropertiesSupport *bool `json:"additionalPropertiesSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientShowMessageActionItemOptions)(nil) + +func (s *ClientShowMessageActionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"additionalPropertiesSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"additionalPropertiesSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.AdditionalPropertiesSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type CompletionItemTagOptions struct { // The tags supported by the client. @@ -20999,6 +27514,43 @@ type ClientSignatureParameterInformationOptions struct { LabelOffsetSupport *bool `json:"labelOffsetSupport,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientSignatureParameterInformationOptions)(nil) + +func (s *ClientSignatureParameterInformationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"labelOffsetSupport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"labelOffsetSupport\"") + } + if err := json.UnmarshalDecode(dec, &s.LabelOffsetSupport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Since: 3.18.0 type ClientCodeActionKindOptions struct { // The code action kind values the client supports. When this @@ -21119,6 +27671,43 @@ type ClientSemanticTokensRequestFullDelta struct { Delta *bool `json:"delta,omitzero"` } +var _ json.UnmarshalerFrom = (*ClientSemanticTokensRequestFullDelta)(nil) + +func (s *ClientSemanticTokensRequestFullDelta) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"delta"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"delta\"") + } + if err := json.UnmarshalDecode(dec, &s.Delta); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // InitializationOptions contains user-provided initialization options. type InitializationOptions struct { // DisablePushDiagnostics disables automatic pushing of diagnostics to the client. @@ -21131,6 +27720,57 @@ type InitializationOptions struct { UserPreferences *any `json:"userPreferences,omitzero"` } +var _ json.UnmarshalerFrom = (*InitializationOptions)(nil) + +func (s *InitializationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"disablePushDiagnostics"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"disablePushDiagnostics\"") + } + if err := json.UnmarshalDecode(dec, &s.DisablePushDiagnostics); err != nil { + return err + } + case `"codeLensShowLocationsCommandName"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeLensShowLocationsCommandName\"") + } + if err := json.UnmarshalDecode(dec, &s.CodeLensShowLocationsCommandName); err != nil { + return err + } + case `"userPreferences"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"userPreferences\"") + } + if err := json.UnmarshalDecode(dec, &s.UserPreferences); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // AutoImportFix contains information about an auto-import suggestion. type AutoImportFix struct { Kind AutoImportFixKind `json:"kind,omitzero"` @@ -21210,6 +27850,9 @@ func (s *AutoImportFix) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"usagePosition"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"usagePosition\"") + } if err := json.UnmarshalDecode(dec, &s.UsagePosition); err != nil { return err } @@ -21263,6 +27906,59 @@ type CompletionItemData struct { AutoImport *AutoImportFix `json:"autoImport,omitzero"` } +var _ json.UnmarshalerFrom = (*CompletionItemData)(nil) + +func (s *CompletionItemData) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"fileName"`: + if err := json.UnmarshalDecode(dec, &s.FileName); err != nil { + return err + } + case `"position"`: + if err := json.UnmarshalDecode(dec, &s.Position); err != nil { + return err + } + case `"source"`: + if err := json.UnmarshalDecode(dec, &s.Source); err != nil { + return err + } + case `"name"`: + if err := json.UnmarshalDecode(dec, &s.Name); err != nil { + return err + } + case `"autoImport"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"autoImport\"") + } + if err := json.UnmarshalDecode(dec, &s.AutoImport); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + type CodeLensData struct { // The kind of the code lens ("references" or "implementations"). Kind CodeLensKind `json:"kind"` @@ -21658,6 +28354,43 @@ type InitializeAPISessionParams struct { Pipe *string `json:"pipe,omitzero"` } +var _ json.UnmarshalerFrom = (*InitializeAPISessionParams)(nil) + +func (s *InitializeAPISessionParams) UnmarshalJSONFrom(dec *json.Decoder) error { + if k := dec.PeekKind(); k != '{' { + return fmt.Errorf("expected object start, but encountered %v", k) + } + if _, err := dec.ReadToken(); err != nil { + return err + } + + for dec.PeekKind() != '}' { + name, err := dec.ReadValue() + if err != nil { + return err + } + switch string(name) { + case `"pipe"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"pipe\"") + } + if err := json.UnmarshalDecode(dec, &s.Pipe); err != nil { + return err + } + default: + if err := dec.SkipValue(); err != nil { + return err + } + } + } + + if _, err := dec.ReadToken(); err != nil { + return err + } + + return nil +} + // Result for the initializeAPISession request. type InitializeAPISessionResult struct { // The unique identifier for this API session. @@ -21895,6 +28628,9 @@ func (s *ColorPresentationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod } switch string(name) { case `"workDoneProgress"`: + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go new file mode 100644 index 00000000000..5cfe32c2bd3 --- /dev/null +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -0,0 +1,389 @@ +package lsproto + +import ( + "testing" + + "github.com/microsoft/typescript-go/internal/json" + "gotest.tools/v3/assert" +) + +func TestUnmarshalRejectsNullForOptionalNonNullableFields(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + target any + errText string + }{ + { + name: "InlayHint kind null", + input: `{"position": {"line": 0, "character": 0}, "label": "foo", "kind": null}`, + target: new(InlayHint), + errText: `null value is not allowed for field "kind"`, + }, + { + name: "InlayHint textEdits null", + input: `{"position": {"line": 0, "character": 0}, "label": "foo", "textEdits": null}`, + target: new(InlayHint), + errText: `null value is not allowed for field "textEdits"`, + }, + { + name: "InlayHint paddingLeft null", + input: `{"position": {"line": 0, "character": 0}, "label": "foo", "paddingLeft": null}`, + target: new(InlayHint), + errText: `null value is not allowed for field "paddingLeft"`, + }, + { + name: "FoldingRange kind null", + input: `{"startLine": 0, "endLine": 10, "kind": null}`, + target: new(FoldingRange), + errText: `null value is not allowed for field "kind"`, + }, + { + name: "FoldingRange startCharacter null", + input: `{"startLine": 0, "endLine": 10, "startCharacter": null}`, + target: new(FoldingRange), + errText: `null value is not allowed for field "startCharacter"`, + }, + { + name: "CompletionItem insertTextFormat null", + input: `{"label": "test", "insertTextFormat": null}`, + target: new(CompletionItem), + errText: `null value is not allowed for field "insertTextFormat"`, + }, + { + name: "Hover range null", + input: `{"contents": {"kind": "plaintext", "value": "hi"}, "range": null}`, + target: new(Hover), + errText: `null value is not allowed for field "range"`, + }, + { + name: "WorkDoneProgressOptions workDoneProgress null", + input: `{"workDoneProgress": null}`, + target: new(WorkDoneProgressOptions), + errText: `null value is not allowed for field "workDoneProgress"`, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + err := json.Unmarshal([]byte(tt.input), tt.target) + assert.ErrorContains(t, err, tt.errText) + }) + } +} + +func TestUnmarshalAcceptsNullForNullableFields(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + target any + }{ + { + name: "InitializeParams rootUri null", + input: `{"processId": null, "rootUri": null, "capabilities": {}}`, + target: new(InitializeParams), + }, + { + name: "InitializeParams workspaceFolders null", + input: `{"processId": null, "rootUri": null, "capabilities": {}, "workspaceFolders": null}`, + target: new(InitializeParams), + }, + { + name: "InitializeParams processId null", + input: `{"processId": null, "rootUri": null, "capabilities": {}}`, + target: new(InitializeParams), + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + err := json.Unmarshal([]byte(tt.input), tt.target) + assert.NilError(t, err) + }) + } +} + +func TestUnmarshalAcceptsOmittedOptionalFields(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + target any + check func(t *testing.T, target any) + }{ + { + name: "InlayHint with only required fields", + input: `{"position": {"line": 1, "character": 5}, "label": "test"}`, + target: new(InlayHint), + check: func(t *testing.T, target any) { + t.Helper() + hint := target.(*InlayHint) + assert.Assert(t, hint.Kind == nil) + assert.Assert(t, hint.TextEdits == nil) + assert.Assert(t, hint.Tooltip == nil) + assert.Assert(t, hint.PaddingLeft == nil) + assert.Assert(t, hint.PaddingRight == nil) + assert.Assert(t, hint.Data == nil) + assert.Equal(t, hint.Position.Line, uint32(1)) + assert.Equal(t, hint.Position.Character, uint32(5)) + }, + }, + { + name: "FoldingRange with only required fields", + input: `{"startLine": 5, "endLine": 10}`, + target: new(FoldingRange), + check: func(t *testing.T, target any) { + t.Helper() + fr := target.(*FoldingRange) + assert.Assert(t, fr.Kind == nil) + assert.Assert(t, fr.StartCharacter == nil) + assert.Assert(t, fr.EndCharacter == nil) + assert.Assert(t, fr.CollapsedText == nil) + assert.Equal(t, fr.StartLine, uint32(5)) + assert.Equal(t, fr.EndLine, uint32(10)) + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + err := json.Unmarshal([]byte(tt.input), tt.target) + assert.NilError(t, err) + tt.check(t, tt.target) + }) + } +} + +func TestUnmarshalRejectsIncompleteObjects(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + target any + errText string + }{ + { + name: "InlayHint missing position", + input: `{"label": "test"}`, + target: new(InlayHint), + errText: "missing required properties: position", + }, + { + name: "InlayHint missing label", + input: `{"position": {"line": 0, "character": 0}}`, + target: new(InlayHint), + errText: "missing required properties: label", + }, + { + name: "Location missing uri", + input: `{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}}`, + target: new(Location), + errText: "missing required properties: uri", + }, + { + name: "Location empty object", + input: `{}`, + target: new(Location), + errText: "missing required properties: uri, range", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + err := json.Unmarshal([]byte(tt.input), tt.target) + assert.ErrorContains(t, err, tt.errText) + }) + } +} + +func TestMarshalUnmarshalRoundTrip(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + value any + }{ + { + name: "InlayHint with kind", + value: &InlayHint{ + Position: Position{Line: 1, Character: 5}, + Label: StringOrInlayHintLabelParts{String: new("param")}, + Kind: new(InlayHintKindParameter), + }, + }, + { + name: "InlayHint minimal", + value: &InlayHint{ + Position: Position{Line: 0, Character: 0}, + Label: StringOrInlayHintLabelParts{String: new("x")}, + }, + }, + { + name: "FoldingRange with all fields", + value: &FoldingRange{ + StartLine: 1, + StartCharacter: new(uint32(0)), + EndLine: 10, + EndCharacter: new(uint32(5)), + Kind: new(FoldingRangeKindRegion), + CollapsedText: new("..."), + }, + }, + { + name: "Location", + value: &Location{ + Uri: "file:///test.ts", + Range: Range{ + Start: Position{Line: 1, Character: 2}, + End: Position{Line: 3, Character: 4}, + }, + }, + }, + { + name: "InitializeParams with null processId", + value: &InitializeParams{ + ProcessId: IntegerOrNull{}, + RootUri: DocumentUriOrNull{DocumentUri: new(DocumentUri("file:///workspace"))}, + Capabilities: &ClientCapabilities{}, + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + data, err := json.Marshal(tt.value) + assert.NilError(t, err) + + // Unmarshal into a new value of the same type + switch v := tt.value.(type) { + case *InlayHint: + var result InlayHint + err = json.Unmarshal(data, &result) + assert.NilError(t, err) + assert.DeepEqual(t, *v, result) + case *FoldingRange: + var result FoldingRange + err = json.Unmarshal(data, &result) + assert.NilError(t, err) + assert.DeepEqual(t, *v, result) + case *Location: + var result Location + err = json.Unmarshal(data, &result) + assert.NilError(t, err) + assert.DeepEqual(t, *v, result) + case *InitializeParams: + var result InitializeParams + err = json.Unmarshal(data, &result) + assert.NilError(t, err) + assert.DeepEqual(t, *v, result) + default: + t.Fatalf("unhandled type %T", tt.value) + } + }) + } +} + +func TestUnmarshalUnionTypes(t *testing.T) { + t.Parallel() + + t.Run("IntegerOrString with integer", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`42`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Integer != nil) + assert.Equal(t, *v.Integer, int32(42)) + assert.Assert(t, v.String == nil) + }) + + t.Run("IntegerOrString with string", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`"hello"`), &v) + assert.NilError(t, err) + assert.Assert(t, v.String != nil) + assert.Equal(t, *v.String, "hello") + assert.Assert(t, v.Integer == nil) + }) + + t.Run("IntegerOrNull with integer", func(t *testing.T) { + t.Parallel() + var v IntegerOrNull + err := json.Unmarshal([]byte(`42`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Integer != nil) + assert.Equal(t, *v.Integer, int32(42)) + }) + + t.Run("IntegerOrNull with null", func(t *testing.T) { + t.Parallel() + var v IntegerOrNull + err := json.Unmarshal([]byte(`null`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Integer == nil) + }) + + t.Run("DocumentUriOrNull with string", func(t *testing.T) { + t.Parallel() + var v DocumentUriOrNull + err := json.Unmarshal([]byte(`"file:///test.ts"`), &v) + assert.NilError(t, err) + assert.Assert(t, v.DocumentUri != nil) + assert.Equal(t, *v.DocumentUri, DocumentUri("file:///test.ts")) + }) + + t.Run("DocumentUriOrNull with null", func(t *testing.T) { + t.Parallel() + var v DocumentUriOrNull + err := json.Unmarshal([]byte(`null`), &v) + assert.NilError(t, err) + assert.Assert(t, v.DocumentUri == nil) + }) +} + +func TestMarshalUnionTypes(t *testing.T) { + t.Parallel() + + t.Run("IntegerOrNull with value", func(t *testing.T) { + t.Parallel() + v := IntegerOrNull{Integer: new(int32(42))} + data, err := json.Marshal(&v) + assert.NilError(t, err) + assert.Equal(t, string(data), "42") + }) + + t.Run("IntegerOrNull with null", func(t *testing.T) { + t.Parallel() + v := IntegerOrNull{} + data, err := json.Marshal(&v) + assert.NilError(t, err) + assert.Equal(t, string(data), "null") + }) + + t.Run("IntegerOrString with integer", func(t *testing.T) { + t.Parallel() + v := IntegerOrString{Integer: new(int32(7))} + data, err := json.Marshal(&v) + assert.NilError(t, err) + assert.Equal(t, string(data), "7") + }) + + t.Run("IntegerOrString with string", func(t *testing.T) { + t.Parallel() + v := IntegerOrString{String: new("tok")} + data, err := json.Marshal(&v) + assert.NilError(t, err) + assert.Equal(t, string(data), `"tok"`) + }) +} From 9953e1f79379a3e8f666b310b1b03d7873cbc736 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:40:47 -0700 Subject: [PATCH 2/7] Fix for missing fields too --- internal/lsp/lsproto/_generate/generate.mts | 16 +++- internal/lsp/lsproto/lsp_generated.go | 81 +++++++++++++++++++++ internal/lsp/lsproto/lsp_json_test.go | 24 ++++++ 3 files changed, 117 insertions(+), 4 deletions(-) diff --git a/internal/lsp/lsproto/_generate/generate.mts b/internal/lsp/lsproto/_generate/generate.mts index eefb9fab46d..37191eadcf2 100755 --- a/internal/lsp/lsproto/_generate/generate.mts +++ b/internal/lsp/lsproto/_generate/generate.mts @@ -1757,8 +1757,13 @@ function generateCode() { if (p.omitzeroValue) return false; return true; }) || []; - // Check if any optional pointer fields need null rejection - const hasNullRejectableFields = structure.properties?.some(p => p.optional && !p.omitzeroValue && !typeCanBeNull(p.type)) || false; + // Check if any pointer fields need null rejection + const hasNullRejectableFields = structure.properties?.some(p => { + if (p.omitzeroValue) return false; + if (typeCanBeNull(p.type)) return false; + const resolved = resolveType(p.type); + return p.optional || resolved.needsPointer; + }) || false; if ((requiredProps.length > 0 || hasNullRejectableFields) && structure.name !== "Registration") { writeLine(`\tvar _ json.UnmarshalerFrom = (*${structure.name})(nil)`); writeLine(""); @@ -1797,8 +1802,11 @@ function generateCode() { if (!prop.optional && !prop.omitzeroValue) { writeLine(`\t\t\tmissing &^= missing${titleCase(prop.name)}`); } - // Reject null for optional pointer fields whose types cannot represent null - if (prop.optional && !prop.omitzeroValue && !typeCanBeNull(prop.type)) { + // Reject null for pointer fields whose types cannot represent null. + // A field is a pointer when it's optional or when the type has needsPointer (struct references). + const resolvedType = resolveType(prop.type); + const isPointerField = (prop.optional || resolvedType.needsPointer) && !prop.omitzeroValue; + if (isPointerField && !typeCanBeNull(prop.type)) { writeLine(`\t\t\tif dec.PeekKind() == 'n' {`); writeLine(`\t\t\t\treturn fmt.Errorf("null value is not allowed for field \\"${prop.name}\\"")`); writeLine(`\t\t\t}`); diff --git a/internal/lsp/lsproto/lsp_generated.go b/internal/lsp/lsproto/lsp_generated.go index 1cc79b8fadd..249ba489e75 100644 --- a/internal/lsp/lsproto/lsp_generated.go +++ b/internal/lsp/lsproto/lsp_generated.go @@ -521,6 +521,9 @@ func (s *DidChangeWorkspaceFoldersParams) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"event"`: missing &^= missingEvent + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"event\"") + } if err := json.UnmarshalDecode(dec, &s.Event); err != nil { return err } @@ -2246,6 +2249,9 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) } case `"item"`: missing &^= missingItem + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"item\"") + } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err } @@ -2308,6 +2314,9 @@ func (s *CallHierarchyIncomingCall) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"from"`: missing &^= missingFrom + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"from\"") + } if err := json.UnmarshalDecode(dec, &s.From); err != nil { return err } @@ -2393,6 +2402,9 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) } case `"item"`: missing &^= missingItem + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"item\"") + } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err } @@ -2456,6 +2468,9 @@ func (s *CallHierarchyOutgoingCall) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"to"`: missing &^= missingTo + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"to\"") + } if err := json.UnmarshalDecode(dec, &s.To); err != nil { return err } @@ -2751,6 +2766,9 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"legend"`: missing &^= missingLegend + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"legend\"") + } if err := json.UnmarshalDecode(dec, &s.Legend); err != nil { return err } @@ -4418,6 +4436,9 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err } case `"item"`: missing &^= missingItem + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"item\"") + } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err } @@ -4495,6 +4516,9 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error } case `"item"`: missing &^= missingItem + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"item\"") + } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err } @@ -4585,6 +4609,9 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"context"`: missing &^= missingContext + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -5617,6 +5644,9 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"context"`: missing &^= missingContext + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -6351,6 +6381,9 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"capabilities"`: missing &^= missingCapabilities + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"capabilities\"") + } if err := json.UnmarshalDecode(dec, &s.Capabilities); err != nil { return err } @@ -6435,6 +6468,9 @@ func (s *InitializeResult) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"capabilities"`: missing &^= missingCapabilities + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"capabilities\"") + } if err := json.UnmarshalDecode(dec, &s.Capabilities); err != nil { return err } @@ -6918,6 +6954,9 @@ func (s *DidOpenTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"textDocument"`: missing &^= missingTextDocument + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"textDocument\"") + } if err := json.UnmarshalDecode(dec, &s.TextDocument); err != nil { return err } @@ -9019,6 +9058,9 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"context"`: missing &^= missingContext + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -9841,6 +9883,9 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"context"`: missing &^= missingContext + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"context\"") + } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err } @@ -11047,6 +11092,9 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"options"`: missing &^= missingOptions + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -11202,6 +11250,9 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err } case `"options"`: missing &^= missingOptions + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -11378,6 +11429,9 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er } case `"options"`: missing &^= missingOptions + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -11479,6 +11533,9 @@ func (s *DocumentOnTypeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er } case `"options"`: missing &^= missingOptions + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"options\"") + } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err } @@ -12039,6 +12096,9 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"edit"`: missing &^= missingEdit + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"edit\"") + } if err := json.UnmarshalDecode(dec, &s.Edit); err != nil { return err } @@ -13740,6 +13800,9 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"legend"`: missing &^= missingLegend + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"legend\"") + } if err := json.UnmarshalDecode(dec, &s.Legend); err != nil { return err } @@ -14432,6 +14495,9 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"pattern"`: missing &^= missingPattern + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"pattern\"") + } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err } @@ -20160,6 +20226,9 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"snippet"`: missing &^= missingSnippet + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"snippet\"") + } if err := json.UnmarshalDecode(dec, &s.Snippet); err != nil { return err } @@ -21654,6 +21723,9 @@ func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error } case `"command"`: missing &^= missingCommand + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"command\"") + } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } @@ -25434,6 +25506,9 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) } case `"requests"`: missing &^= missingRequests + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"requests\"") + } if err := json.UnmarshalDecode(dec, &s.Requests); err != nil { return err } @@ -26822,6 +26897,9 @@ func (s *ClientCodeActionLiteralOptions) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"codeActionKind"`: missing &^= missingCodeActionKind + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"codeActionKind\"") + } if err := json.UnmarshalDecode(dec, &s.CodeActionKind); err != nil { return err } @@ -28128,6 +28206,9 @@ func (s *RequestFailureTelemetryEvent) UnmarshalJSONFrom(dec *json.Decoder) erro } case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return fmt.Errorf("null value is not allowed for field \"properties\"") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go index 5cfe32c2bd3..fc59a94b062 100644 --- a/internal/lsp/lsproto/lsp_json_test.go +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -64,6 +64,30 @@ func TestUnmarshalRejectsNullForOptionalNonNullableFields(t *testing.T) { target: new(WorkDoneProgressOptions), errText: `null value is not allowed for field "workDoneProgress"`, }, + { + name: "CallHierarchyIncomingCallsParams item null", + input: `{"item": null}`, + target: new(CallHierarchyIncomingCallsParams), + errText: `null value is not allowed for field "item"`, + }, + { + name: "CallHierarchyIncomingCall from null", + input: `{"from": null, "fromRanges": []}`, + target: new(CallHierarchyIncomingCall), + errText: `null value is not allowed for field "from"`, + }, + { + name: "InitializeParams capabilities null", + input: `{"processId": null, "rootUri": null, "capabilities": null}`, + target: new(InitializeParams), + errText: `null value is not allowed for field "capabilities"`, + }, + { + name: "InitializeResult capabilities null", + input: `{"capabilities": null}`, + target: new(InitializeResult), + errText: `null value is not allowed for field "capabilities"`, + }, } for _, tt := range tests { From 0ebbda113c511e14c1e33d3dcbefb75834ca136a Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:47:28 -0700 Subject: [PATCH 3/7] Fix an any case --- internal/lsp/lsproto/_generate/generate.mts | 4 ++++ internal/lsp/lsproto/lsp_generated.go | 3 --- internal/lsp/lsproto/lsp_json_test.go | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/lsp/lsproto/_generate/generate.mts b/internal/lsp/lsproto/_generate/generate.mts index 37191eadcf2..5862d6f4bc0 100755 --- a/internal/lsp/lsproto/_generate/generate.mts +++ b/internal/lsp/lsproto/_generate/generate.mts @@ -1260,6 +1260,10 @@ function typeCanBeNull(type: Type): boolean { if (override) { return override.name === "any"; } + // A bare "any" reference resolves to Go's `any` (interface), which can hold null. + if (type.name === "any") { + return true; + } if (nonResolvedAliases.has(type.name)) { const customAlias = customTypeAliases.find(t => t.name === type.name); if (customAlias) return typeCanBeNull(customAlias.type); diff --git a/internal/lsp/lsproto/lsp_generated.go b/internal/lsp/lsproto/lsp_generated.go index 249ba489e75..7748db03101 100644 --- a/internal/lsp/lsproto/lsp_generated.go +++ b/internal/lsp/lsproto/lsp_generated.go @@ -27829,9 +27829,6 @@ func (s *InitializationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { return err } case `"userPreferences"`: - if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"userPreferences\"") - } if err := json.UnmarshalDecode(dec, &s.UserPreferences); err != nil { return err } diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go index fc59a94b062..6df182e55ae 100644 --- a/internal/lsp/lsproto/lsp_json_test.go +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -122,6 +122,11 @@ func TestUnmarshalAcceptsNullForNullableFields(t *testing.T) { input: `{"processId": null, "rootUri": null, "capabilities": {}}`, target: new(InitializeParams), }, + { + name: "InitializationOptions userPreferences null", + input: `{"userPreferences": null}`, + target: new(InitializationOptions), + }, } for _, tt := range tests { From 99fea5b1e03c1671807d15852544b96b10643a2d Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:59:59 -0700 Subject: [PATCH 4/7] While here, add more tests --- internal/lsp/lsproto/lsp_json_test.go | 456 ++++++++++++++++++++++++++ 1 file changed, 456 insertions(+) diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go index 6df182e55ae..69b8bde6040 100644 --- a/internal/lsp/lsproto/lsp_json_test.go +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -1,6 +1,7 @@ package lsproto import ( + "strings" "testing" "github.com/microsoft/typescript-go/internal/json" @@ -416,3 +417,458 @@ func TestMarshalUnionTypes(t *testing.T) { assert.Equal(t, string(data), `"tok"`) }) } + +func TestUnmarshalIgnoresUnknownFields(t *testing.T) { + t.Parallel() + + t.Run("Location with extra fields", func(t *testing.T) { + t.Parallel() + var loc Location + err := json.Unmarshal([]byte(`{ + "uri": "file:///test.ts", + "range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 5}}, + "someUnknownField": 42, + "anotherUnknown": {"nested": true} + }`), &loc) + assert.NilError(t, err) + assert.Equal(t, loc.Uri, DocumentUri("file:///test.ts")) + }) + + t.Run("InlayHint with extra fields", func(t *testing.T) { + t.Parallel() + var hint InlayHint + err := json.Unmarshal([]byte(`{ + "position": {"line": 0, "character": 0}, + "label": "x", + "futureField": [1, 2, 3] + }`), &hint) + assert.NilError(t, err) + }) +} + +func TestUnmarshalRejectsWrongTypes(t *testing.T) { + t.Parallel() + + tests := []struct { + name string + input string + target any + }{ + { + name: "Location receives array", + input: `[]`, + target: new(Location), + }, + { + name: "Location receives string", + input: `"not an object"`, + target: new(Location), + }, + { + name: "Location receives number", + input: `42`, + target: new(Location), + }, + { + name: "Location receives null", + input: `null`, + target: new(Location), + }, + { + name: "FoldingRange receives boolean", + input: `true`, + target: new(FoldingRange), + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + t.Parallel() + err := json.Unmarshal([]byte(tt.input), tt.target) + assert.Assert(t, err != nil, "expected error for input %s", tt.input) + }) + } +} + +func TestUnmarshalUnionTypeWrongKind(t *testing.T) { + t.Parallel() + + t.Run("IntegerOrString rejects boolean", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`true`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("IntegerOrString rejects null", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`null`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("IntegerOrString rejects object", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`{}`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("IntegerOrString rejects array", func(t *testing.T) { + t.Parallel() + var v IntegerOrString + err := json.Unmarshal([]byte(`[]`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("StringOrInlayHintLabelParts rejects number", func(t *testing.T) { + t.Parallel() + var v StringOrInlayHintLabelParts + err := json.Unmarshal([]byte(`42`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("StringOrInlayHintLabelParts rejects boolean", func(t *testing.T) { + t.Parallel() + var v StringOrInlayHintLabelParts + err := json.Unmarshal([]byte(`true`), &v) + assert.Assert(t, err != nil) + }) +} + +func TestUnmarshalBooleanUnionTypes(t *testing.T) { + t.Parallel() + + t.Run("BooleanOrHoverOptions with true", func(t *testing.T) { + t.Parallel() + var v BooleanOrHoverOptions + err := json.Unmarshal([]byte(`true`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Boolean != nil) + assert.Equal(t, *v.Boolean, true) + assert.Assert(t, v.HoverOptions == nil) + }) + + t.Run("BooleanOrHoverOptions with false", func(t *testing.T) { + t.Parallel() + var v BooleanOrHoverOptions + err := json.Unmarshal([]byte(`false`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Boolean != nil) + assert.Equal(t, *v.Boolean, false) + assert.Assert(t, v.HoverOptions == nil) + }) + + t.Run("BooleanOrHoverOptions with object", func(t *testing.T) { + t.Parallel() + var v BooleanOrHoverOptions + err := json.Unmarshal([]byte(`{}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Boolean == nil) + assert.Assert(t, v.HoverOptions != nil) + }) + + t.Run("BooleanOrHoverOptions rejects string", func(t *testing.T) { + t.Parallel() + var v BooleanOrHoverOptions + err := json.Unmarshal([]byte(`"nope"`), &v) + assert.Assert(t, err != nil) + }) +} + +func TestUnmarshalDiscriminatorUnion(t *testing.T) { + t.Parallel() + + t.Run("WorkDoneProgressBegin", func(t *testing.T) { + t.Parallel() + var v WorkDoneProgressBeginOrReportOrEnd + err := json.Unmarshal([]byte(`{"kind": "begin", "title": "Indexing"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Begin != nil) + assert.Assert(t, v.Report == nil) + assert.Assert(t, v.End == nil) + assert.Equal(t, v.Begin.Title, "Indexing") + }) + + t.Run("WorkDoneProgressReport", func(t *testing.T) { + t.Parallel() + var v WorkDoneProgressBeginOrReportOrEnd + err := json.Unmarshal([]byte(`{"kind": "report", "message": "50%"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Begin == nil) + assert.Assert(t, v.Report != nil) + assert.Assert(t, v.End == nil) + assert.Assert(t, v.Report.Message != nil) + assert.Equal(t, *v.Report.Message, "50%") + }) + + t.Run("WorkDoneProgressEnd", func(t *testing.T) { + t.Parallel() + var v WorkDoneProgressBeginOrReportOrEnd + err := json.Unmarshal([]byte(`{"kind": "end"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.Begin == nil) + assert.Assert(t, v.Report == nil) + assert.Assert(t, v.End != nil) + }) + + t.Run("invalid discriminator", func(t *testing.T) { + t.Parallel() + var v WorkDoneProgressBeginOrReportOrEnd + err := json.Unmarshal([]byte(`{"kind": "invalid"}`), &v) + assert.Assert(t, err != nil) + }) +} + +func TestUnmarshalPresencDiscriminatorUnion(t *testing.T) { + t.Parallel() + + t.Run("TextEdit via range field", func(t *testing.T) { + t.Parallel() + var v TextEditOrInsertReplaceEdit + err := json.Unmarshal([]byte(`{ + "range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 1}}, + "newText": "x" + }`), &v) + assert.NilError(t, err) + assert.Assert(t, v.TextEdit != nil) + assert.Assert(t, v.InsertReplaceEdit == nil) + assert.Equal(t, v.TextEdit.NewText, "x") + }) + + t.Run("InsertReplaceEdit via insert field", func(t *testing.T) { + t.Parallel() + var v TextEditOrInsertReplaceEdit + err := json.Unmarshal([]byte(`{ + "insert": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 1}}, + "replace": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 2}}, + "newText": "y" + }`), &v) + assert.NilError(t, err) + assert.Assert(t, v.TextEdit == nil) + assert.Assert(t, v.InsertReplaceEdit != nil) + assert.Equal(t, v.InsertReplaceEdit.NewText, "y") + }) +} + +func TestUnmarshalStringOrArrayUnion(t *testing.T) { + t.Parallel() + + t.Run("StringOrInlayHintLabelParts with string", func(t *testing.T) { + t.Parallel() + var v StringOrInlayHintLabelParts + err := json.Unmarshal([]byte(`"hello"`), &v) + assert.NilError(t, err) + assert.Assert(t, v.String != nil) + assert.Equal(t, *v.String, "hello") + assert.Assert(t, v.InlayHintLabelParts == nil) + }) + + t.Run("StringOrInlayHintLabelParts with array", func(t *testing.T) { + t.Parallel() + var v StringOrInlayHintLabelParts + err := json.Unmarshal([]byte(`[{"value": "param"}, {"value": ": "}, {"value": "string"}]`), &v) + assert.NilError(t, err) + assert.Assert(t, v.String == nil) + assert.Assert(t, v.InlayHintLabelParts != nil) + assert.Equal(t, len(*v.InlayHintLabelParts), 3) + assert.Equal(t, (*v.InlayHintLabelParts)[0].Value, "param") + }) +} + +func TestUnmarshalDocumentEditUnion(t *testing.T) { + t.Parallel() + + t.Run("TextDocumentEdit without kind", func(t *testing.T) { + t.Parallel() + var v TextDocumentEditOrCreateFileOrRenameFileOrDeleteFile + err := json.Unmarshal([]byte(`{ + "textDocument": {"uri": "file:///a.ts", "version": 1}, + "edits": [{"range": {"start": {"line": 0, "character": 0}, "end": {"line": 0, "character": 0}}, "newText": "x"}] + }`), &v) + assert.NilError(t, err) + assert.Assert(t, v.TextDocumentEdit != nil) + assert.Assert(t, v.CreateFile == nil) + assert.Assert(t, v.RenameFile == nil) + assert.Assert(t, v.DeleteFile == nil) + }) + + t.Run("CreateFile with kind create", func(t *testing.T) { + t.Parallel() + var v TextDocumentEditOrCreateFileOrRenameFileOrDeleteFile + err := json.Unmarshal([]byte(`{"kind": "create", "uri": "file:///new.ts"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.TextDocumentEdit == nil) + assert.Assert(t, v.CreateFile != nil) + assert.Equal(t, v.CreateFile.Uri, DocumentUri("file:///new.ts")) + }) + + t.Run("RenameFile with kind rename", func(t *testing.T) { + t.Parallel() + var v TextDocumentEditOrCreateFileOrRenameFileOrDeleteFile + err := json.Unmarshal([]byte(`{"kind": "rename", "oldUri": "file:///old.ts", "newUri": "file:///new.ts"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.RenameFile != nil) + assert.Equal(t, v.RenameFile.OldUri, DocumentUri("file:///old.ts")) + }) + + t.Run("DeleteFile with kind delete", func(t *testing.T) { + t.Parallel() + var v TextDocumentEditOrCreateFileOrRenameFileOrDeleteFile + err := json.Unmarshal([]byte(`{"kind": "delete", "uri": "file:///gone.ts"}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.DeleteFile != nil) + assert.Equal(t, v.DeleteFile.Uri, DocumentUri("file:///gone.ts")) + }) +} + +func TestUnmarshalFieldOrdering(t *testing.T) { + t.Parallel() + + t.Run("Location with reversed field order", func(t *testing.T) { + t.Parallel() + var loc Location + err := json.Unmarshal([]byte(`{ + "range": {"start": {"line": 1, "character": 2}, "end": {"line": 3, "character": 4}}, + "uri": "file:///test.ts" + }`), &loc) + assert.NilError(t, err) + assert.Equal(t, loc.Uri, DocumentUri("file:///test.ts")) + assert.Equal(t, loc.Range.Start.Line, uint32(1)) + }) + + t.Run("InlayHint with kind before label", func(t *testing.T) { + t.Parallel() + var hint InlayHint + err := json.Unmarshal([]byte(`{ + "kind": 1, + "label": "x", + "position": {"line": 0, "character": 0} + }`), &hint) + assert.NilError(t, err) + assert.Assert(t, hint.Kind != nil) + assert.Equal(t, *hint.Kind, InlayHintKindType) + }) +} + +func TestUnmarshalEmptyObject(t *testing.T) { + t.Parallel() + + t.Run("WorkDoneProgressOptions empty", func(t *testing.T) { + t.Parallel() + var v WorkDoneProgressOptions + err := json.Unmarshal([]byte(`{}`), &v) + assert.NilError(t, err) + assert.Assert(t, v.WorkDoneProgress == nil) + }) + + t.Run("InitializationOptions empty", func(t *testing.T) { + t.Parallel() + var v InitializationOptions + err := json.Unmarshal([]byte(`{}`), &v) + assert.NilError(t, err) + }) + + t.Run("ClientCapabilities empty", func(t *testing.T) { + t.Parallel() + var v ClientCapabilities + err := json.Unmarshal([]byte(`{}`), &v) + assert.NilError(t, err) + }) + + t.Run("ServerCapabilities empty", func(t *testing.T) { + t.Parallel() + var v ServerCapabilities + err := json.Unmarshal([]byte(`{}`), &v) + assert.NilError(t, err) + }) +} + +func TestMarshalOmitsZeroOptionalFields(t *testing.T) { + t.Parallel() + + t.Run("InlayHint omits nil fields", func(t *testing.T) { + t.Parallel() + hint := InlayHint{ + Position: Position{Line: 0, Character: 0}, + Label: StringOrInlayHintLabelParts{String: new("x")}, + } + data, err := json.Marshal(&hint) + assert.NilError(t, err) + s := string(data) + assert.Assert(t, !strings.Contains(s, "kind"), "should not contain 'kind', got: %s", s) + assert.Assert(t, !strings.Contains(s, "textEdits"), "should not contain 'textEdits', got: %s", s) + assert.Assert(t, !strings.Contains(s, "paddingLeft"), "should not contain 'paddingLeft', got: %s", s) + assert.Assert(t, strings.Contains(s, "position"), "should contain 'position', got: %s", s) + assert.Assert(t, strings.Contains(s, "label"), "should contain 'label', got: %s", s) + }) + + t.Run("FoldingRange omits nil optional fields", func(t *testing.T) { + t.Parallel() + fr := FoldingRange{StartLine: 1, EndLine: 10} + data, err := json.Marshal(&fr) + assert.NilError(t, err) + s := string(data) + assert.Assert(t, !strings.Contains(s, "kind"), "should not contain 'kind', got: %s", s) + assert.Assert(t, !strings.Contains(s, "startCharacter"), "should not contain 'startCharacter', got: %s", s) + assert.Assert(t, strings.Contains(s, "startLine"), "should contain 'startLine', got: %s", s) + assert.Assert(t, strings.Contains(s, "endLine"), "should contain 'endLine', got: %s", s) + }) +} + +func TestLiteralTypes(t *testing.T) { + t.Parallel() + + t.Run("StringLiteralCreate marshal", func(t *testing.T) { + t.Parallel() + v := StringLiteralCreate{} + data, err := json.Marshal(v) + assert.NilError(t, err) + assert.Equal(t, string(data), `"create"`) + }) + + t.Run("StringLiteralCreate unmarshal", func(t *testing.T) { + t.Parallel() + var v StringLiteralCreate + err := json.Unmarshal([]byte(`"create"`), &v) + assert.NilError(t, err) + }) + + t.Run("StringLiteralCreate rejects wrong value", func(t *testing.T) { + t.Parallel() + var v StringLiteralCreate + err := json.Unmarshal([]byte(`"delete"`), &v) + assert.Assert(t, err != nil) + }) + + t.Run("StringLiteralCreate rejects wrong type", func(t *testing.T) { + t.Parallel() + var v StringLiteralCreate + err := json.Unmarshal([]byte(`42`), &v) + assert.Assert(t, err != nil) + }) +} + +func TestEnumStringValues(t *testing.T) { + t.Parallel() + + t.Run("InlayHintKind values", func(t *testing.T) { + t.Parallel() + assert.Equal(t, InlayHintKindType.String(), "Type") + assert.Equal(t, InlayHintKindParameter.String(), "Parameter") + }) + + t.Run("SymbolKind values", func(t *testing.T) { + t.Parallel() + assert.Equal(t, SymbolKindFile.String(), "File") + assert.Equal(t, SymbolKindFunction.String(), "Function") + assert.Equal(t, SymbolKindVariable.String(), "Variable") + }) + + t.Run("unknown enum value", func(t *testing.T) { + t.Parallel() + v := InlayHintKind(999) + s := v.String() + assert.Assert(t, strings.Contains(s, "999"), "should contain the numeric value, got: %s", s) + }) +} From bde9e64c3f6ac0d6c03d683085d4ee4df542403d Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:15:53 -0700 Subject: [PATCH 5/7] Don't generate so many strings in the binary just for errors --- internal/json/json.go | 1 + internal/lsp/lsproto/_generate/generate.mts | 20 +- internal/lsp/lsproto/lsp.go | 24 + internal/lsp/lsproto/lsp_generated.go | 2786 +++++++++---------- 4 files changed, 1428 insertions(+), 1403 deletions(-) diff --git a/internal/json/json.go b/internal/json/json.go index e18a20c1cce..e2a783e2333 100644 --- a/internal/json/json.go +++ b/internal/json/json.go @@ -80,6 +80,7 @@ func NewDecoder(r io.Reader) *jsontext.Decoder { type ( Value = jsontext.Value + Kind = jsontext.Kind UnmarshalerFrom = json.UnmarshalerFrom MarshalerTo = json.MarshalerTo Decoder = jsontext.Decoder diff --git a/internal/lsp/lsproto/_generate/generate.mts b/internal/lsp/lsproto/_generate/generate.mts index 5862d6f4bc0..9a737ed01e9 100755 --- a/internal/lsp/lsproto/_generate/generate.mts +++ b/internal/lsp/lsproto/_generate/generate.mts @@ -1787,7 +1787,7 @@ function generateCode() { } writeLine(`\tif k := dec.PeekKind(); k != '{' {`); - writeLine(`\t\treturn fmt.Errorf("expected object start, but encountered %v", k)`); + writeLine(`\t\treturn errNotObject(k)`); writeLine(`\t}`); writeLine(`\tif _, err := dec.ReadToken(); err != nil {`); writeLine(`\t\treturn err`); @@ -1812,7 +1812,7 @@ function generateCode() { const isPointerField = (prop.optional || resolvedType.needsPointer) && !prop.omitzeroValue; if (isPointerField && !typeCanBeNull(prop.type)) { writeLine(`\t\t\tif dec.PeekKind() == 'n' {`); - writeLine(`\t\t\t\treturn fmt.Errorf("null value is not allowed for field \\"${prop.name}\\"")`); + writeLine(`\t\t\t\treturn errNull("${prop.name}")`); writeLine(`\t\t\t}`); } writeLine(`\t\t\tif err := json.UnmarshalDecode(dec, &s.${titleCase(prop.name)}); err != nil {`); @@ -1841,7 +1841,7 @@ function generateCode() { writeLine(`\t\t\tmissingProps = append(missingProps, "${prop.name}")`); writeLine(`\t\t}`); } - writeLine(`\t\treturn fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", "))`); + writeLine(`\t\treturn errMissing(missingProps)`); writeLine(`\t}`); writeLine(""); } @@ -1925,7 +1925,7 @@ function generateCode() { writeLine(`\tmissing := _missingLast - 1`); writeLine(""); writeLine(`\tif k := dec.PeekKind(); k != '{' {`); - writeLine(`\t\treturn fmt.Errorf("expected object start, but encountered %v", k)`); + writeLine(`\t\treturn errNotObject(k)`); writeLine(`\t}`); writeLine(`\tif _, err := dec.ReadToken(); err != nil {`); writeLine(`\t\treturn err`); @@ -1975,7 +1975,7 @@ function generateCode() { writeLine(`\t\tif missing&missingMethod != 0 {`); writeLine(`\t\t\tmissingProps = append(missingProps, "method")`); writeLine(`\t\t}`); - writeLine(`\t\treturn fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", "))`); + writeLine(`\t\treturn errMissing(missingProps)`); writeLine(`\t}`); writeLine(""); writeLine(`\tif len(rawRegisterOptions) > 0 {`); @@ -2672,7 +2672,7 @@ function generateCode() { } writeLine(`\tdefault:`); - writeLine(`\t\treturn fmt.Errorf("invalid ${name}: expected ${[...(unionContainedNull ? ["null"] : []), ...kindMap.keys()].join(", ")}, got %v", dec.PeekKind())`); + writeLine(`\t\treturn errInvalidKind("${name}", dec.PeekKind())`); writeLine(`\t}`); } else if (canDispatch) { @@ -2734,13 +2734,13 @@ function generateCode() { } } if (!exhaustive) { - writeLine(`\t\treturn fmt.Errorf("invalid ${name}: %s", data)`); + writeLine(`\t\treturn errInvalidValue("${name}", data)`); } } } writeLine(`\tdefault:`); - writeLine(`\t\treturn fmt.Errorf("invalid ${name}: expected ${[...(unionContainedNull ? ["null"] : []), ...kindMap.keys()].join(", ")}, got %v", dec.PeekKind())`); + writeLine(`\t\treturn errInvalidKind("${name}", dec.PeekKind())`); writeLine(`\t}`); } else { @@ -2785,7 +2785,7 @@ function generateCode() { } else if (!fallbackExhaustive) { // Fallback paths: the final error references `data` which is in scope. - writeLine(`\treturn fmt.Errorf("invalid ${name}: %s", data)`); + writeLine(`\treturn errInvalidValue("${name}", data)`); } writeLine(`}`); writeLine(""); @@ -2826,7 +2826,7 @@ function generateCode() { writeLine(`\t\treturn err`); writeLine(`\t}`); writeLine(`\tif string(v) != \`${jsonValue}\` {`); - writeLine(`\t\treturn fmt.Errorf("expected ${name} value %s, got %s", \`${jsonValue}\`, v)`); + writeLine(`\t\treturn errLiteralMismatch("${name}", \`${jsonValue}\`, v)`); writeLine(`\t}`); writeLine(`\treturn nil`); writeLine(`}`); diff --git a/internal/lsp/lsproto/lsp.go b/internal/lsp/lsproto/lsp.go index f2f2813b537..60c4b447797 100644 --- a/internal/lsp/lsproto/lsp.go +++ b/internal/lsp/lsproto/lsp.go @@ -122,6 +122,30 @@ func boolToInt(b bool) int { return 0 } +func errNotObject(k json.Kind) error { + return fmt.Errorf("expected object start, but encountered %v", k) +} + +func errNull(field string) error { + return fmt.Errorf("null value is not allowed for field %q", field) +} + +func errMissing(props []string) error { + return fmt.Errorf("missing required properties: %s", strings.Join(props, ", ")) +} + +func errInvalidKind(typeName string, got json.Kind) error { + return fmt.Errorf("invalid %s: got %v", typeName, got) +} + +func errInvalidValue(typeName string, data []byte) error { + return fmt.Errorf("invalid %s: %s", typeName, data) +} + +func errLiteralMismatch(typeName string, expected string, got []byte) error { + return fmt.Errorf("expected %s value %s, got %s", typeName, expected, got) +} + func assertOnlyOne(message string, count int) { if count != 1 { panic(message) diff --git a/internal/lsp/lsproto/lsp_generated.go b/internal/lsp/lsproto/lsp_generated.go index 7748db03101..865fa9b1c9a 100644 --- a/internal/lsp/lsproto/lsp_generated.go +++ b/internal/lsp/lsproto/lsp_generated.go @@ -47,7 +47,7 @@ func (s *ImplementationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -71,14 +71,14 @@ func (s *ImplementationParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -102,7 +102,7 @@ func (s *ImplementationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -131,7 +131,7 @@ func (s *Location) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -172,7 +172,7 @@ func (s *Location) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -200,7 +200,7 @@ func (s *ImplementationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -219,14 +219,14 @@ func (s *ImplementationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -247,7 +247,7 @@ func (s *ImplementationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -287,7 +287,7 @@ func (s *TypeDefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -311,14 +311,14 @@ func (s *TypeDefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -342,7 +342,7 @@ func (s *TypeDefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -370,7 +370,7 @@ func (s *TypeDefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -389,14 +389,14 @@ func (s *TypeDefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -417,7 +417,7 @@ func (s *TypeDefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -444,7 +444,7 @@ func (s *WorkspaceFolder) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -485,7 +485,7 @@ func (s *WorkspaceFolder) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingName != 0 { missingProps = append(missingProps, "name") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -507,7 +507,7 @@ func (s *DidChangeWorkspaceFoldersParams) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -522,7 +522,7 @@ func (s *DidChangeWorkspaceFoldersParams) UnmarshalJSONFrom(dec *json.Decoder) e case `"event"`: missing &^= missingEvent if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"event\"") + return errNull("event") } if err := json.UnmarshalDecode(dec, &s.Event); err != nil { return err @@ -543,7 +543,7 @@ func (s *DidChangeWorkspaceFoldersParams) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingEvent != 0 { missingProps = append(missingProps, "event") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -564,7 +564,7 @@ func (s *ConfigurationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -597,7 +597,7 @@ func (s *ConfigurationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -630,7 +630,7 @@ func (s *DocumentColorParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -644,14 +644,14 @@ func (s *DocumentColorParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -677,7 +677,7 @@ func (s *DocumentColorParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -703,7 +703,7 @@ func (s *ColorInformation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -744,7 +744,7 @@ func (s *ColorInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingColor != 0 { missingProps = append(missingProps, "color") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -772,7 +772,7 @@ func (s *DocumentColorRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -791,14 +791,14 @@ func (s *DocumentColorRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -819,7 +819,7 @@ func (s *DocumentColorRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -860,7 +860,7 @@ func (s *ColorPresentationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -874,14 +874,14 @@ func (s *ColorPresentationParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -923,7 +923,7 @@ func (s *ColorPresentationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -955,7 +955,7 @@ func (s *ColorPresentation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -974,14 +974,14 @@ func (s *ColorPresentation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"textEdit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textEdit\"") + return errNull("textEdit") } if err := json.UnmarshalDecode(dec, &s.TextEdit); err != nil { return err } case `"additionalTextEdits"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"additionalTextEdits\"") + return errNull("additionalTextEdits") } if err := json.UnmarshalDecode(dec, &s.AdditionalTextEdits); err != nil { return err @@ -1002,7 +1002,7 @@ func (s *ColorPresentation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1016,7 +1016,7 @@ var _ json.UnmarshalerFrom = (*WorkDoneProgressOptions)(nil) func (s *WorkDoneProgressOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1030,7 +1030,7 @@ func (s *WorkDoneProgressOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -1066,7 +1066,7 @@ func (s *TextDocumentRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1099,7 +1099,7 @@ func (s *TextDocumentRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1132,7 +1132,7 @@ func (s *FoldingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1146,14 +1146,14 @@ func (s *FoldingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -1179,7 +1179,7 @@ func (s *FoldingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1226,7 +1226,7 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1245,7 +1245,7 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"startCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"startCharacter\"") + return errNull("startCharacter") } if err := json.UnmarshalDecode(dec, &s.StartCharacter); err != nil { return err @@ -1257,21 +1257,21 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"endCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"endCharacter\"") + return errNull("endCharacter") } if err := json.UnmarshalDecode(dec, &s.EndCharacter); err != nil { return err } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"collapsedText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"collapsedText\"") + return errNull("collapsedText") } if err := json.UnmarshalDecode(dec, &s.CollapsedText); err != nil { return err @@ -1295,7 +1295,7 @@ func (s *FoldingRange) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingEndLine != 0 { missingProps = append(missingProps, "endLine") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1323,7 +1323,7 @@ func (s *FoldingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1342,14 +1342,14 @@ func (s *FoldingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -1370,7 +1370,7 @@ func (s *FoldingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1410,7 +1410,7 @@ func (s *DeclarationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1434,14 +1434,14 @@ func (s *DeclarationParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -1465,7 +1465,7 @@ func (s *DeclarationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1493,7 +1493,7 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1507,7 +1507,7 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -1519,7 +1519,7 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -1540,7 +1540,7 @@ func (s *DeclarationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1577,7 +1577,7 @@ func (s *SelectionRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1591,14 +1591,14 @@ func (s *SelectionRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -1632,7 +1632,7 @@ func (s *SelectionRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPositions != 0 { missingProps = append(missingProps, "positions") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1658,7 +1658,7 @@ func (s *SelectionRange) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1677,7 +1677,7 @@ func (s *SelectionRange) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"parent"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"parent\"") + return errNull("parent") } if err := json.UnmarshalDecode(dec, &s.Parent); err != nil { return err @@ -1698,7 +1698,7 @@ func (s *SelectionRange) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1726,7 +1726,7 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1740,7 +1740,7 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -1752,7 +1752,7 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -1773,7 +1773,7 @@ func (s *SelectionRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1794,7 +1794,7 @@ func (s *WorkDoneProgressCreateParams) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1827,7 +1827,7 @@ func (s *WorkDoneProgressCreateParams) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingToken != 0 { missingProps = append(missingProps, "token") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1848,7 +1848,7 @@ func (s *WorkDoneProgressCancelParams) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1881,7 +1881,7 @@ func (s *WorkDoneProgressCancelParams) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingToken != 0 { missingProps = append(missingProps, "token") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -1920,7 +1920,7 @@ func (s *CallHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -1944,7 +1944,7 @@ func (s *CallHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -1968,7 +1968,7 @@ func (s *CallHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2027,7 +2027,7 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2051,14 +2051,14 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"detail\"") + return errNull("detail") } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err @@ -2080,7 +2080,7 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -2113,7 +2113,7 @@ func (s *CallHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSelectionRange != 0 { missingProps = append(missingProps, "selectionRange") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2144,7 +2144,7 @@ func (s *CallHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2163,14 +2163,14 @@ func (s *CallHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -2191,7 +2191,7 @@ func (s *CallHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2221,7 +2221,7 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2235,14 +2235,14 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -2250,7 +2250,7 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) case `"item"`: missing &^= missingItem if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"item\"") + return errNull("item") } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err @@ -2271,7 +2271,7 @@ func (s *CallHierarchyIncomingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingItem != 0 { missingProps = append(missingProps, "item") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2300,7 +2300,7 @@ func (s *CallHierarchyIncomingCall) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2315,7 +2315,7 @@ func (s *CallHierarchyIncomingCall) UnmarshalJSONFrom(dec *json.Decoder) error { case `"from"`: missing &^= missingFrom if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"from\"") + return errNull("from") } if err := json.UnmarshalDecode(dec, &s.From); err != nil { return err @@ -2344,7 +2344,7 @@ func (s *CallHierarchyIncomingCall) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFromRanges != 0 { missingProps = append(missingProps, "fromRanges") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2374,7 +2374,7 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2388,14 +2388,14 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -2403,7 +2403,7 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) case `"item"`: missing &^= missingItem if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"item\"") + return errNull("item") } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err @@ -2424,7 +2424,7 @@ func (s *CallHierarchyOutgoingCallsParams) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingItem != 0 { missingProps = append(missingProps, "item") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2454,7 +2454,7 @@ func (s *CallHierarchyOutgoingCall) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2469,7 +2469,7 @@ func (s *CallHierarchyOutgoingCall) UnmarshalJSONFrom(dec *json.Decoder) error { case `"to"`: missing &^= missingTo if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"to\"") + return errNull("to") } if err := json.UnmarshalDecode(dec, &s.To); err != nil { return err @@ -2498,7 +2498,7 @@ func (s *CallHierarchyOutgoingCall) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFromRanges != 0 { missingProps = append(missingProps, "fromRanges") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2531,7 +2531,7 @@ func (s *SemanticTokensParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2545,14 +2545,14 @@ func (s *SemanticTokensParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -2578,7 +2578,7 @@ func (s *SemanticTokensParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2606,7 +2606,7 @@ func (s *SemanticTokens) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2620,7 +2620,7 @@ func (s *SemanticTokens) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"resultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resultId\"") + return errNull("resultId") } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err @@ -2646,7 +2646,7 @@ func (s *SemanticTokens) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingData != 0 { missingProps = append(missingProps, "data") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2667,7 +2667,7 @@ func (s *SemanticTokensPartialResult) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2700,7 +2700,7 @@ func (s *SemanticTokensPartialResult) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingData != 0 { missingProps = append(missingProps, "data") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2740,7 +2740,7 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2759,7 +2759,7 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -2767,28 +2767,28 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) case `"legend"`: missing &^= missingLegend if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"legend\"") + return errNull("legend") } if err := json.UnmarshalDecode(dec, &s.Legend); err != nil { return err } case `"range"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"range\"") + return errNull("range") } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"full"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"full\"") + return errNull("full") } if err := json.UnmarshalDecode(dec, &s.Full); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -2812,7 +2812,7 @@ func (s *SemanticTokensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingLegend != 0 { missingProps = append(missingProps, "legend") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2850,7 +2850,7 @@ func (s *SemanticTokensDeltaParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2864,14 +2864,14 @@ func (s *SemanticTokensDeltaParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -2905,7 +2905,7 @@ func (s *SemanticTokensDeltaParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPreviousResultId != 0 { missingProps = append(missingProps, "previousResultId") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2929,7 +2929,7 @@ func (s *SemanticTokensDelta) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -2943,7 +2943,7 @@ func (s *SemanticTokensDelta) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"resultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resultId\"") + return errNull("resultId") } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err @@ -2969,7 +2969,7 @@ func (s *SemanticTokensDelta) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingEdits != 0 { missingProps = append(missingProps, "edits") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -2990,7 +2990,7 @@ func (s *SemanticTokensDeltaPartialResult) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3023,7 +3023,7 @@ func (s *SemanticTokensDeltaPartialResult) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingEdits != 0 { missingProps = append(missingProps, "edits") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3060,7 +3060,7 @@ func (s *SemanticTokensRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3074,14 +3074,14 @@ func (s *SemanticTokensRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -3115,7 +3115,7 @@ func (s *SemanticTokensRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3156,7 +3156,7 @@ func (s *ShowDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3175,21 +3175,21 @@ func (s *ShowDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"external"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"external\"") + return errNull("external") } if err := json.UnmarshalDecode(dec, &s.External); err != nil { return err } case `"takeFocus"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"takeFocus\"") + return errNull("takeFocus") } if err := json.UnmarshalDecode(dec, &s.TakeFocus); err != nil { return err } case `"selection"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"selection\"") + return errNull("selection") } if err := json.UnmarshalDecode(dec, &s.Selection); err != nil { return err @@ -3210,7 +3210,7 @@ func (s *ShowDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3234,7 +3234,7 @@ func (s *ShowDocumentResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3267,7 +3267,7 @@ func (s *ShowDocumentResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSuccess != 0 { missingProps = append(missingProps, "success") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3303,7 +3303,7 @@ func (s *LinkedEditingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3327,7 +3327,7 @@ func (s *LinkedEditingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -3351,7 +3351,7 @@ func (s *LinkedEditingRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3381,7 +3381,7 @@ func (s *LinkedEditingRanges) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3400,7 +3400,7 @@ func (s *LinkedEditingRanges) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"wordPattern"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"wordPattern\"") + return errNull("wordPattern") } if err := json.UnmarshalDecode(dec, &s.WordPattern); err != nil { return err @@ -3421,7 +3421,7 @@ func (s *LinkedEditingRanges) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRanges != 0 { missingProps = append(missingProps, "ranges") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3449,7 +3449,7 @@ func (s *LinkedEditingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3468,14 +3468,14 @@ func (s *LinkedEditingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -3496,7 +3496,7 @@ func (s *LinkedEditingRangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3521,7 +3521,7 @@ func (s *CreateFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3554,7 +3554,7 @@ func (s *CreateFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFiles != 0 { missingProps = append(missingProps, "files") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3601,7 +3601,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceEdit)(nil) func (s *WorkspaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3615,21 +3615,21 @@ func (s *WorkspaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"changes"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"changes\"") + return errNull("changes") } if err := json.UnmarshalDecode(dec, &s.Changes); err != nil { return err } case `"documentChanges"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentChanges\"") + return errNull("documentChanges") } if err := json.UnmarshalDecode(dec, &s.DocumentChanges); err != nil { return err } case `"changeAnnotations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"changeAnnotations\"") + return errNull("changeAnnotations") } if err := json.UnmarshalDecode(dec, &s.ChangeAnnotations); err != nil { return err @@ -3666,7 +3666,7 @@ func (s *FileOperationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3699,7 +3699,7 @@ func (s *FileOperationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingFilters != 0 { missingProps = append(missingProps, "filters") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3725,7 +3725,7 @@ func (s *RenameFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3758,7 +3758,7 @@ func (s *RenameFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFiles != 0 { missingProps = append(missingProps, "files") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3783,7 +3783,7 @@ func (s *DeleteFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3816,7 +3816,7 @@ func (s *DeleteFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFiles != 0 { missingProps = append(missingProps, "files") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3856,7 +3856,7 @@ func (s *MonikerParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3880,14 +3880,14 @@ func (s *MonikerParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -3911,7 +3911,7 @@ func (s *MonikerParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -3947,7 +3947,7 @@ func (s *Moniker) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -3976,7 +3976,7 @@ func (s *Moniker) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err @@ -4003,7 +4003,7 @@ func (s *Moniker) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUnique != 0 { missingProps = append(missingProps, "unique") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4027,7 +4027,7 @@ func (s *MonikerRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4046,7 +4046,7 @@ func (s *MonikerRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -4067,7 +4067,7 @@ func (s *MonikerRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4106,7 +4106,7 @@ func (s *TypeHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4130,7 +4130,7 @@ func (s *TypeHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -4154,7 +4154,7 @@ func (s *TypeHierarchyPrepareParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4214,7 +4214,7 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4238,14 +4238,14 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"detail\"") + return errNull("detail") } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err @@ -4267,7 +4267,7 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -4300,7 +4300,7 @@ func (s *TypeHierarchyItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSelectionRange != 0 { missingProps = append(missingProps, "selectionRange") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4331,7 +4331,7 @@ func (s *TypeHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4350,14 +4350,14 @@ func (s *TypeHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -4378,7 +4378,7 @@ func (s *TypeHierarchyRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4408,7 +4408,7 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4422,14 +4422,14 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -4437,7 +4437,7 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err case `"item"`: missing &^= missingItem if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"item\"") + return errNull("item") } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err @@ -4458,7 +4458,7 @@ func (s *TypeHierarchySupertypesParams) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingItem != 0 { missingProps = append(missingProps, "item") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4488,7 +4488,7 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4502,14 +4502,14 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -4517,7 +4517,7 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error case `"item"`: missing &^= missingItem if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"item\"") + return errNull("item") } if err := json.UnmarshalDecode(dec, &s.Item); err != nil { return err @@ -4538,7 +4538,7 @@ func (s *TypeHierarchySubtypesParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingItem != 0 { missingProps = append(missingProps, "item") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4578,7 +4578,7 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4592,7 +4592,7 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -4610,7 +4610,7 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"context"`: missing &^= missingContext if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -4637,7 +4637,7 @@ func (s *InlineValueParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingContext != 0 { missingProps = append(missingProps, "context") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4668,7 +4668,7 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4682,7 +4682,7 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -4694,7 +4694,7 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -4715,7 +4715,7 @@ func (s *InlineValueRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4750,7 +4750,7 @@ func (s *InlayHintParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4764,7 +4764,7 @@ func (s *InlayHintParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -4798,7 +4798,7 @@ func (s *InlayHintParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4864,7 +4864,7 @@ func (s *InlayHint) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4888,42 +4888,42 @@ func (s *InlayHint) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"textEdits"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textEdits\"") + return errNull("textEdits") } if err := json.UnmarshalDecode(dec, &s.TextEdits); err != nil { return err } case `"tooltip"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tooltip\"") + return errNull("tooltip") } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"paddingLeft"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"paddingLeft\"") + return errNull("paddingLeft") } if err := json.UnmarshalDecode(dec, &s.PaddingLeft); err != nil { return err } case `"paddingRight"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"paddingRight\"") + return errNull("paddingRight") } if err := json.UnmarshalDecode(dec, &s.PaddingRight); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -4947,7 +4947,7 @@ func (s *InlayHint) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -4982,7 +4982,7 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -4996,14 +4996,14 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -5015,7 +5015,7 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -5036,7 +5036,7 @@ func (s *InlayHintRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5077,7 +5077,7 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5091,14 +5091,14 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -5110,14 +5110,14 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"identifier"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"identifier\"") + return errNull("identifier") } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err } case `"previousResultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"previousResultId\"") + return errNull("previousResultId") } if err := json.UnmarshalDecode(dec, &s.PreviousResultId); err != nil { return err @@ -5138,7 +5138,7 @@ func (s *DocumentDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5161,7 +5161,7 @@ func (s *DocumentDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Deco missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5194,7 +5194,7 @@ func (s *DocumentDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Deco if missing&missingRelatedDocuments != 0 { missingProps = append(missingProps, "relatedDocuments") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5217,7 +5217,7 @@ func (s *DiagnosticServerCancellationData) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5250,7 +5250,7 @@ func (s *DiagnosticServerCancellationData) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingRetriggerRequest != 0 { missingProps = append(missingProps, "retriggerRequest") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5296,7 +5296,7 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5315,14 +5315,14 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"identifier"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"identifier\"") + return errNull("identifier") } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err @@ -5339,7 +5339,7 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -5366,7 +5366,7 @@ func (s *DiagnosticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingWorkspaceDiagnostics != 0 { missingProps = append(missingProps, "workspaceDiagnostics") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5401,7 +5401,7 @@ func (s *WorkspaceDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5415,21 +5415,21 @@ func (s *WorkspaceDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } case `"identifier"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"identifier\"") + return errNull("identifier") } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err @@ -5455,7 +5455,7 @@ func (s *WorkspaceDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPreviousResultIds != 0 { missingProps = append(missingProps, "previousResultIds") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5478,7 +5478,7 @@ func (s *WorkspaceDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5511,7 +5511,7 @@ func (s *WorkspaceDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5534,7 +5534,7 @@ func (s *WorkspaceDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Dec missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5567,7 +5567,7 @@ func (s *WorkspaceDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Dec if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5613,7 +5613,7 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5637,7 +5637,7 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -5645,7 +5645,7 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"context"`: missing &^= missingContext if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -5672,7 +5672,7 @@ func (s *InlineCompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingContext != 0 { missingProps = append(missingProps, "context") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5698,7 +5698,7 @@ func (s *InlineCompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5731,7 +5731,7 @@ func (s *InlineCompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5766,7 +5766,7 @@ func (s *InlineCompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5785,21 +5785,21 @@ func (s *InlineCompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"filterText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"filterText\"") + return errNull("filterText") } if err := json.UnmarshalDecode(dec, &s.FilterText); err != nil { return err } case `"range"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"range\"") + return errNull("range") } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"command"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err @@ -5820,7 +5820,7 @@ func (s *InlineCompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingInsertText != 0 { missingProps = append(missingProps, "insertText") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5853,7 +5853,7 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5867,7 +5867,7 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -5879,7 +5879,7 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -5900,7 +5900,7 @@ func (s *InlineCompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5926,7 +5926,7 @@ func (s *TextDocumentContentParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -5959,7 +5959,7 @@ func (s *TextDocumentContentParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -5988,7 +5988,7 @@ func (s *TextDocumentContentResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6021,7 +6021,7 @@ func (s *TextDocumentContentResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6051,7 +6051,7 @@ func (s *TextDocumentContentRegistrationOptions) UnmarshalJSONFrom(dec *json.Dec missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6070,7 +6070,7 @@ func (s *TextDocumentContentRegistrationOptions) UnmarshalJSONFrom(dec *json.Dec } case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -6091,7 +6091,7 @@ func (s *TextDocumentContentRegistrationOptions) UnmarshalJSONFrom(dec *json.Dec if missing&missingSchemes != 0 { missingProps = append(missingProps, "schemes") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6117,7 +6117,7 @@ func (s *TextDocumentContentRefreshParams) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6150,7 +6150,7 @@ func (s *TextDocumentContentRefreshParams) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6170,7 +6170,7 @@ func (s *RegistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6203,7 +6203,7 @@ func (s *RegistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRegistrations != 0 { missingProps = append(missingProps, "registrations") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6223,7 +6223,7 @@ func (s *UnregistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6256,7 +6256,7 @@ func (s *UnregistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUnregisterations != 0 { missingProps = append(missingProps, "unregisterations") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6332,7 +6332,7 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6346,7 +6346,7 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -6358,14 +6358,14 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"clientInfo"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"clientInfo\"") + return errNull("clientInfo") } if err := json.UnmarshalDecode(dec, &s.ClientInfo); err != nil { return err } case `"locale"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"locale\"") + return errNull("locale") } if err := json.UnmarshalDecode(dec, &s.Locale); err != nil { return err @@ -6382,21 +6382,21 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"capabilities"`: missing &^= missingCapabilities if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"capabilities\"") + return errNull("capabilities") } if err := json.UnmarshalDecode(dec, &s.Capabilities); err != nil { return err } case `"initializationOptions"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"initializationOptions\"") + return errNull("initializationOptions") } if err := json.UnmarshalDecode(dec, &s.InitializationOptions); err != nil { return err } case `"trace"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"trace\"") + return errNull("trace") } if err := json.UnmarshalDecode(dec, &s.Trace); err != nil { return err @@ -6427,7 +6427,7 @@ func (s *InitializeParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCapabilities != 0 { missingProps = append(missingProps, "capabilities") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6454,7 +6454,7 @@ func (s *InitializeResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6469,14 +6469,14 @@ func (s *InitializeResult) UnmarshalJSONFrom(dec *json.Decoder) error { case `"capabilities"`: missing &^= missingCapabilities if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"capabilities\"") + return errNull("capabilities") } if err := json.UnmarshalDecode(dec, &s.Capabilities); err != nil { return err } case `"serverInfo"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"serverInfo\"") + return errNull("serverInfo") } if err := json.UnmarshalDecode(dec, &s.ServerInfo); err != nil { return err @@ -6497,7 +6497,7 @@ func (s *InitializeResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCapabilities != 0 { missingProps = append(missingProps, "capabilities") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6523,7 +6523,7 @@ func (s *InitializeError) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6556,7 +6556,7 @@ func (s *InitializeError) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRetry != 0 { missingProps = append(missingProps, "retry") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6580,7 +6580,7 @@ func (s *DidChangeConfigurationParams) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6613,7 +6613,7 @@ func (s *DidChangeConfigurationParams) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingSettings != 0 { missingProps = append(missingProps, "settings") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6627,7 +6627,7 @@ var _ json.UnmarshalerFrom = (*DidChangeConfigurationRegistrationOptions)(nil) func (s *DidChangeConfigurationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6641,7 +6641,7 @@ func (s *DidChangeConfigurationRegistrationOptions) UnmarshalJSONFrom(dec *json. switch string(name) { case `"section"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"section\"") + return errNull("section") } if err := json.UnmarshalDecode(dec, &s.Section); err != nil { return err @@ -6680,7 +6680,7 @@ func (s *ShowMessageParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6721,7 +6721,7 @@ func (s *ShowMessageParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6749,7 +6749,7 @@ func (s *ShowMessageRequestParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6773,7 +6773,7 @@ func (s *ShowMessageRequestParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"actions"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"actions\"") + return errNull("actions") } if err := json.UnmarshalDecode(dec, &s.Actions); err != nil { return err @@ -6797,7 +6797,7 @@ func (s *ShowMessageRequestParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6818,7 +6818,7 @@ func (s *MessageActionItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6851,7 +6851,7 @@ func (s *MessageActionItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTitle != 0 { missingProps = append(missingProps, "title") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6877,7 +6877,7 @@ func (s *LogMessageParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6918,7 +6918,7 @@ func (s *LogMessageParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -6940,7 +6940,7 @@ func (s *DidOpenTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -6955,7 +6955,7 @@ func (s *DidOpenTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"textDocument"`: missing &^= missingTextDocument if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textDocument\"") + return errNull("textDocument") } if err := json.UnmarshalDecode(dec, &s.TextDocument); err != nil { return err @@ -6976,7 +6976,7 @@ func (s *DidOpenTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7014,7 +7014,7 @@ func (s *DidChangeTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7055,7 +7055,7 @@ func (s *DidChangeTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingContentChanges != 0 { missingProps = append(missingProps, "contentChanges") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7082,7 +7082,7 @@ func (s *TextDocumentChangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7123,7 +7123,7 @@ func (s *TextDocumentChangeRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco if missing&missingSyncKind != 0 { missingProps = append(missingProps, "syncKind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7149,7 +7149,7 @@ func (s *DidCloseTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7182,7 +7182,7 @@ func (s *DidCloseTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7212,7 +7212,7 @@ func (s *DidSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7231,7 +7231,7 @@ func (s *DidSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"text"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"text\"") + return errNull("text") } if err := json.UnmarshalDecode(dec, &s.Text); err != nil { return err @@ -7252,7 +7252,7 @@ func (s *DidSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7278,7 +7278,7 @@ func (s *TextDocumentSaveRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7297,7 +7297,7 @@ func (s *TextDocumentSaveRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode } case `"includeText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"includeText\"") + return errNull("includeText") } if err := json.UnmarshalDecode(dec, &s.IncludeText); err != nil { return err @@ -7318,7 +7318,7 @@ func (s *TextDocumentSaveRegistrationOptions) UnmarshalJSONFrom(dec *json.Decode if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7348,7 +7348,7 @@ func (s *WillSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7389,7 +7389,7 @@ func (s *WillSaveTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingReason != 0 { missingProps = append(missingProps, "reason") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7417,7 +7417,7 @@ func (s *TextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7458,7 +7458,7 @@ func (s *TextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingNewText != 0 { missingProps = append(missingProps, "newText") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7480,7 +7480,7 @@ func (s *DidChangeWatchedFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7513,7 +7513,7 @@ func (s *DidChangeWatchedFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingChanges != 0 { missingProps = append(missingProps, "changes") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7535,7 +7535,7 @@ func (s *DidChangeWatchedFilesRegistrationOptions) UnmarshalJSONFrom(dec *json.D missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7568,7 +7568,7 @@ func (s *DidChangeWatchedFilesRegistrationOptions) UnmarshalJSONFrom(dec *json.D if missing&missingWatchers != 0 { missingProps = append(missingProps, "watchers") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7599,7 +7599,7 @@ func (s *PublishDiagnosticsParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7618,7 +7618,7 @@ func (s *PublishDiagnosticsParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"version"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"version\"") + return errNull("version") } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err @@ -7647,7 +7647,7 @@ func (s *PublishDiagnosticsParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDiagnostics != 0 { missingProps = append(missingProps, "diagnostics") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7692,7 +7692,7 @@ func (s *CompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7716,21 +7716,21 @@ func (s *CompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err } case `"context"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -7754,7 +7754,7 @@ func (s *CompletionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -7911,7 +7911,7 @@ func (s *CompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -7930,126 +7930,126 @@ func (s *CompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"labelDetails"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"labelDetails\"") + return errNull("labelDetails") } if err := json.UnmarshalDecode(dec, &s.LabelDetails); err != nil { return err } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"detail"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"detail\"") + return errNull("detail") } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } case `"documentation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentation\"") + return errNull("documentation") } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"deprecated"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"deprecated\"") + return errNull("deprecated") } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err } case `"preselect"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"preselect\"") + return errNull("preselect") } if err := json.UnmarshalDecode(dec, &s.Preselect); err != nil { return err } case `"sortText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"sortText\"") + return errNull("sortText") } if err := json.UnmarshalDecode(dec, &s.SortText); err != nil { return err } case `"filterText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"filterText\"") + return errNull("filterText") } if err := json.UnmarshalDecode(dec, &s.FilterText); err != nil { return err } case `"insertText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertText\"") + return errNull("insertText") } if err := json.UnmarshalDecode(dec, &s.InsertText); err != nil { return err } case `"insertTextFormat"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextFormat\"") + return errNull("insertTextFormat") } if err := json.UnmarshalDecode(dec, &s.InsertTextFormat); err != nil { return err } case `"insertTextMode"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + return errNull("insertTextMode") } if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { return err } case `"textEdit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textEdit\"") + return errNull("textEdit") } if err := json.UnmarshalDecode(dec, &s.TextEdit); err != nil { return err } case `"textEditText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textEditText\"") + return errNull("textEditText") } if err := json.UnmarshalDecode(dec, &s.TextEditText); err != nil { return err } case `"additionalTextEdits"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"additionalTextEdits\"") + return errNull("additionalTextEdits") } if err := json.UnmarshalDecode(dec, &s.AdditionalTextEdits); err != nil { return err } case `"commitCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + return errNull("commitCharacters") } if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { return err } case `"command"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -8070,7 +8070,7 @@ func (s *CompletionItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8136,7 +8136,7 @@ func (s *CompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8155,14 +8155,14 @@ func (s *CompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"itemDefaults"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"itemDefaults\"") + return errNull("itemDefaults") } if err := json.UnmarshalDecode(dec, &s.ItemDefaults); err != nil { return err } case `"applyKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"applyKind\"") + return errNull("applyKind") } if err := json.UnmarshalDecode(dec, &s.ApplyKind); err != nil { return err @@ -8191,7 +8191,7 @@ func (s *CompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8246,7 +8246,7 @@ func (s *CompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8265,35 +8265,35 @@ func (s *CompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + return errNull("triggerCharacters") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"allCommitCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"allCommitCharacters\"") + return errNull("allCommitCharacters") } if err := json.UnmarshalDecode(dec, &s.AllCommitCharacters); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } case `"completionItem"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionItem\"") + return errNull("completionItem") } if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { return err @@ -8314,7 +8314,7 @@ func (s *CompletionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8351,7 +8351,7 @@ func (s *HoverParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8375,7 +8375,7 @@ func (s *HoverParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -8399,7 +8399,7 @@ func (s *HoverParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8425,7 +8425,7 @@ func (s *Hover) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8444,7 +8444,7 @@ func (s *Hover) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"range"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"range\"") + return errNull("range") } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err @@ -8465,7 +8465,7 @@ func (s *Hover) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingContents != 0 { missingProps = append(missingProps, "contents") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8490,7 +8490,7 @@ func (s *HoverRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8509,7 +8509,7 @@ func (s *HoverRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -8530,7 +8530,7 @@ func (s *HoverRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8573,7 +8573,7 @@ func (s *SignatureHelpParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8597,14 +8597,14 @@ func (s *SignatureHelpParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"context"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -8628,7 +8628,7 @@ func (s *SignatureHelpParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8681,7 +8681,7 @@ func (s *SignatureHelp) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8700,7 +8700,7 @@ func (s *SignatureHelp) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"activeSignature"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"activeSignature\"") + return errNull("activeSignature") } if err := json.UnmarshalDecode(dec, &s.ActiveSignature); err != nil { return err @@ -8725,7 +8725,7 @@ func (s *SignatureHelp) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSignatures != 0 { missingProps = append(missingProps, "signatures") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8761,7 +8761,7 @@ func (s *SignatureHelpRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8780,21 +8780,21 @@ func (s *SignatureHelpRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + return errNull("triggerCharacters") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"retriggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"retriggerCharacters\"") + return errNull("retriggerCharacters") } if err := json.UnmarshalDecode(dec, &s.RetriggerCharacters); err != nil { return err @@ -8815,7 +8815,7 @@ func (s *SignatureHelpRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8856,7 +8856,7 @@ func (s *DefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8880,14 +8880,14 @@ func (s *DefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -8911,7 +8911,7 @@ func (s *DefinitionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -8936,7 +8936,7 @@ func (s *DefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -8955,7 +8955,7 @@ func (s *DefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -8976,7 +8976,7 @@ func (s *DefinitionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9020,7 +9020,7 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9044,14 +9044,14 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -9059,7 +9059,7 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"context"`: missing &^= missingContext if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -9086,7 +9086,7 @@ func (s *ReferenceParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingContext != 0 { missingProps = append(missingProps, "context") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9111,7 +9111,7 @@ func (s *ReferenceRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9130,7 +9130,7 @@ func (s *ReferenceRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -9151,7 +9151,7 @@ func (s *ReferenceRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9192,7 +9192,7 @@ func (s *DocumentHighlightParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9216,14 +9216,14 @@ func (s *DocumentHighlightParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -9247,7 +9247,7 @@ func (s *DocumentHighlightParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9274,7 +9274,7 @@ func (s *DocumentHighlight) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9293,7 +9293,7 @@ func (s *DocumentHighlight) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err @@ -9314,7 +9314,7 @@ func (s *DocumentHighlight) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9339,7 +9339,7 @@ func (s *DocumentHighlightRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9358,7 +9358,7 @@ func (s *DocumentHighlightRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -9379,7 +9379,7 @@ func (s *DocumentHighlightRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9412,7 +9412,7 @@ func (s *DocumentSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9426,14 +9426,14 @@ func (s *DocumentSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -9459,7 +9459,7 @@ func (s *DocumentSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9514,7 +9514,7 @@ func (s *SymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9538,21 +9538,21 @@ func (s *SymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"containerName\"") + return errNull("containerName") } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err } case `"deprecated"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"deprecated\"") + return errNull("deprecated") } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err @@ -9584,7 +9584,7 @@ func (s *SymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLocation != 0 { missingProps = append(missingProps, "location") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9641,7 +9641,7 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9660,7 +9660,7 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"detail"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"detail\"") + return errNull("detail") } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err @@ -9672,14 +9672,14 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"deprecated"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"deprecated\"") + return errNull("deprecated") } if err := json.UnmarshalDecode(dec, &s.Deprecated); err != nil { return err @@ -9696,7 +9696,7 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"children"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"children\"") + return errNull("children") } if err := json.UnmarshalDecode(dec, &s.Children); err != nil { return err @@ -9726,7 +9726,7 @@ func (s *DocumentSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSelectionRange != 0 { missingProps = append(missingProps, "selectionRange") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9757,7 +9757,7 @@ func (s *DocumentSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9776,14 +9776,14 @@ func (s *DocumentSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"label"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"label\"") + return errNull("label") } if err := json.UnmarshalDecode(dec, &s.Label); err != nil { return err @@ -9804,7 +9804,7 @@ func (s *DocumentSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9845,7 +9845,7 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9859,14 +9859,14 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -9884,7 +9884,7 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"context"`: missing &^= missingContext if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"context\"") + return errNull("context") } if err := json.UnmarshalDecode(dec, &s.Context); err != nil { return err @@ -9911,7 +9911,7 @@ func (s *CodeActionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingContext != 0 { missingProps = append(missingProps, "context") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -9951,7 +9951,7 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -9970,7 +9970,7 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tooltip"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tooltip\"") + return errNull("tooltip") } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err @@ -9982,7 +9982,7 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"arguments"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"arguments\"") + return errNull("arguments") } if err := json.UnmarshalDecode(dec, &s.Arguments); err != nil { return err @@ -10006,7 +10006,7 @@ func (s *Command) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCommand != 0 { missingProps = append(missingProps, "command") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10084,7 +10084,7 @@ func (s *CodeAction) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10103,56 +10103,56 @@ func (s *CodeAction) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err } case `"diagnostics"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"diagnostics\"") + return errNull("diagnostics") } if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { return err } case `"isPreferred"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"isPreferred\"") + return errNull("isPreferred") } if err := json.UnmarshalDecode(dec, &s.IsPreferred); err != nil { return err } case `"disabled"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"disabled\"") + return errNull("disabled") } if err := json.UnmarshalDecode(dec, &s.Disabled); err != nil { return err } case `"edit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"edit\"") + return errNull("edit") } if err := json.UnmarshalDecode(dec, &s.Edit); err != nil { return err } case `"command"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err @@ -10173,7 +10173,7 @@ func (s *CodeAction) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTitle != 0 { missingProps = append(missingProps, "title") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10228,7 +10228,7 @@ func (s *CodeActionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10247,28 +10247,28 @@ func (s *CodeActionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"codeActionKinds"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeActionKinds\"") + return errNull("codeActionKinds") } if err := json.UnmarshalDecode(dec, &s.CodeActionKinds); err != nil { return err } case `"documentation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentation\"") + return errNull("documentation") } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -10289,7 +10289,7 @@ func (s *CodeActionRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10325,7 +10325,7 @@ func (s *WorkspaceSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10339,14 +10339,14 @@ func (s *WorkspaceSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -10372,7 +10372,7 @@ func (s *WorkspaceSymbolParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingQuery != 0 { missingProps = append(missingProps, "query") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10425,7 +10425,7 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10449,14 +10449,14 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"containerName\"") + return errNull("containerName") } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err @@ -10468,7 +10468,7 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -10495,7 +10495,7 @@ func (s *WorkspaceSymbol) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLocation != 0 { missingProps = append(missingProps, "location") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10516,7 +10516,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceSymbolRegistrationOptions)(nil) func (s *WorkspaceSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10530,14 +10530,14 @@ func (s *WorkspaceSymbolRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -10583,7 +10583,7 @@ func (s *CodeLensParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10597,14 +10597,14 @@ func (s *CodeLensParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -10630,7 +10630,7 @@ func (s *CodeLensParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10663,7 +10663,7 @@ func (s *CodeLens) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10682,14 +10682,14 @@ func (s *CodeLens) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"command"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -10710,7 +10710,7 @@ func (s *CodeLens) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10738,7 +10738,7 @@ func (s *CodeLensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10757,14 +10757,14 @@ func (s *CodeLensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -10785,7 +10785,7 @@ func (s *CodeLensRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10818,7 +10818,7 @@ func (s *DocumentLinkParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10832,14 +10832,14 @@ func (s *DocumentLinkParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err } case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -10865,7 +10865,7 @@ func (s *DocumentLinkParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10904,7 +10904,7 @@ func (s *DocumentLink) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -10923,21 +10923,21 @@ func (s *DocumentLink) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"target"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"target\"") + return errNull("target") } if err := json.UnmarshalDecode(dec, &s.Target); err != nil { return err } case `"tooltip"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tooltip\"") + return errNull("tooltip") } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -10958,7 +10958,7 @@ func (s *DocumentLink) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -10986,7 +10986,7 @@ func (s *DocumentLinkRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11005,14 +11005,14 @@ func (s *DocumentLinkRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -11033,7 +11033,7 @@ func (s *DocumentLinkRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11066,7 +11066,7 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11080,7 +11080,7 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11093,7 +11093,7 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"options"`: missing &^= missingOptions if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -11117,7 +11117,7 @@ func (s *DocumentFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingOptions != 0 { missingProps = append(missingProps, "options") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11142,7 +11142,7 @@ func (s *DocumentFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11161,7 +11161,7 @@ func (s *DocumentFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -11182,7 +11182,7 @@ func (s *DocumentFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json.Deco if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11219,7 +11219,7 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11233,7 +11233,7 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11251,7 +11251,7 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err case `"options"`: missing &^= missingOptions if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -11278,7 +11278,7 @@ func (s *DocumentRangeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingOptions != 0 { missingProps = append(missingProps, "options") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11310,7 +11310,7 @@ func (s *DocumentRangeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11329,14 +11329,14 @@ func (s *DocumentRangeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"rangesSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + return errNull("rangesSupport") } if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { return err @@ -11357,7 +11357,7 @@ func (s *DocumentRangeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *json if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11398,7 +11398,7 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11412,7 +11412,7 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11430,7 +11430,7 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er case `"options"`: missing &^= missingOptions if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -11457,7 +11457,7 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingOptions != 0 { missingProps = append(missingProps, "options") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11504,7 +11504,7 @@ func (s *DocumentOnTypeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11534,7 +11534,7 @@ func (s *DocumentOnTypeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er case `"options"`: missing &^= missingOptions if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -11564,7 +11564,7 @@ func (s *DocumentOnTypeFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingOptions != 0 { missingProps = append(missingProps, "options") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11594,7 +11594,7 @@ func (s *DocumentOnTypeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *jso missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11618,7 +11618,7 @@ func (s *DocumentOnTypeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *jso } case `"moreTriggerCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"moreTriggerCharacter\"") + return errNull("moreTriggerCharacter") } if err := json.UnmarshalDecode(dec, &s.MoreTriggerCharacter); err != nil { return err @@ -11642,7 +11642,7 @@ func (s *DocumentOnTypeFormattingRegistrationOptions) UnmarshalJSONFrom(dec *jso if missing&missingFirstTriggerCharacter != 0 { missingProps = append(missingProps, "firstTriggerCharacter") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11685,7 +11685,7 @@ func (s *RenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11709,7 +11709,7 @@ func (s *RenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11741,7 +11741,7 @@ func (s *RenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingNewName != 0 { missingProps = append(missingProps, "newName") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11771,7 +11771,7 @@ func (s *RenameRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11790,14 +11790,14 @@ func (s *RenameRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"prepareProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"prepareProvider\"") + return errNull("prepareProvider") } if err := json.UnmarshalDecode(dec, &s.PrepareProvider); err != nil { return err @@ -11818,7 +11818,7 @@ func (s *RenameRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11854,7 +11854,7 @@ func (s *PrepareRenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11878,7 +11878,7 @@ func (s *PrepareRenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11902,7 +11902,7 @@ func (s *PrepareRenameParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -11930,7 +11930,7 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -11944,7 +11944,7 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -11956,7 +11956,7 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"arguments"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"arguments\"") + return errNull("arguments") } if err := json.UnmarshalDecode(dec, &s.Arguments); err != nil { return err @@ -11977,7 +11977,7 @@ func (s *ExecuteCommandParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCommand != 0 { missingProps = append(missingProps, "command") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12001,7 +12001,7 @@ func (s *ExecuteCommandRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12015,7 +12015,7 @@ func (s *ExecuteCommandRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -12041,7 +12041,7 @@ func (s *ExecuteCommandRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingCommands != 0 { missingProps = append(missingProps, "commands") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12075,7 +12075,7 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12089,7 +12089,7 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"label"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"label\"") + return errNull("label") } if err := json.UnmarshalDecode(dec, &s.Label); err != nil { return err @@ -12097,14 +12097,14 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { case `"edit"`: missing &^= missingEdit if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"edit\"") + return errNull("edit") } if err := json.UnmarshalDecode(dec, &s.Edit); err != nil { return err } case `"metadata"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"metadata\"") + return errNull("metadata") } if err := json.UnmarshalDecode(dec, &s.Metadata); err != nil { return err @@ -12125,7 +12125,7 @@ func (s *ApplyWorkspaceEditParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingEdit != 0 { missingProps = append(missingProps, "edit") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12159,7 +12159,7 @@ func (s *ApplyWorkspaceEditResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12178,14 +12178,14 @@ func (s *ApplyWorkspaceEditResult) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"failureReason"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"failureReason\"") + return errNull("failureReason") } if err := json.UnmarshalDecode(dec, &s.FailureReason); err != nil { return err } case `"failedChange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"failedChange\"") + return errNull("failedChange") } if err := json.UnmarshalDecode(dec, &s.FailedChange); err != nil { return err @@ -12206,7 +12206,7 @@ func (s *ApplyWorkspaceEditResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingApplied != 0 { missingProps = append(missingProps, "applied") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12253,7 +12253,7 @@ func (s *WorkDoneProgressBegin) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12277,21 +12277,21 @@ func (s *WorkDoneProgressBegin) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"cancellable"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"cancellable\"") + return errNull("cancellable") } if err := json.UnmarshalDecode(dec, &s.Cancellable); err != nil { return err } case `"message"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"message\"") + return errNull("message") } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err } case `"percentage"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"percentage\"") + return errNull("percentage") } if err := json.UnmarshalDecode(dec, &s.Percentage); err != nil { return err @@ -12315,7 +12315,7 @@ func (s *WorkDoneProgressBegin) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTitle != 0 { missingProps = append(missingProps, "title") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12356,7 +12356,7 @@ func (s *WorkDoneProgressReport) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12375,21 +12375,21 @@ func (s *WorkDoneProgressReport) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"cancellable"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"cancellable\"") + return errNull("cancellable") } if err := json.UnmarshalDecode(dec, &s.Cancellable); err != nil { return err } case `"message"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"message\"") + return errNull("message") } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err } case `"percentage"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"percentage\"") + return errNull("percentage") } if err := json.UnmarshalDecode(dec, &s.Percentage); err != nil { return err @@ -12410,7 +12410,7 @@ func (s *WorkDoneProgressReport) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingKind != 0 { missingProps = append(missingProps, "kind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12434,7 +12434,7 @@ func (s *WorkDoneProgressEnd) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12453,7 +12453,7 @@ func (s *WorkDoneProgressEnd) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"message"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"message\"") + return errNull("message") } if err := json.UnmarshalDecode(dec, &s.Message); err != nil { return err @@ -12474,7 +12474,7 @@ func (s *WorkDoneProgressEnd) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingKind != 0 { missingProps = append(missingProps, "kind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12494,7 +12494,7 @@ func (s *SetTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12527,7 +12527,7 @@ func (s *SetTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12549,7 +12549,7 @@ func (s *LogTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12568,7 +12568,7 @@ func (s *LogTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"verbose"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"verbose\"") + return errNull("verbose") } if err := json.UnmarshalDecode(dec, &s.Verbose); err != nil { return err @@ -12589,7 +12589,7 @@ func (s *LogTraceParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12610,7 +12610,7 @@ func (s *CancelParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12643,7 +12643,7 @@ func (s *CancelParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingId != 0 { missingProps = append(missingProps, "id") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12668,7 +12668,7 @@ func (s *ProgressParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12709,7 +12709,7 @@ func (s *ProgressParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12744,7 +12744,7 @@ func (s *TextDocumentPositionParams) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12785,7 +12785,7 @@ func (s *TextDocumentPositionParams) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingPosition != 0 { missingProps = append(missingProps, "position") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -12800,7 +12800,7 @@ var _ json.UnmarshalerFrom = (*WorkDoneProgressParams)(nil) func (s *WorkDoneProgressParams) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12814,7 +12814,7 @@ func (s *WorkDoneProgressParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneToken\"") + return errNull("workDoneToken") } if err := json.UnmarshalDecode(dec, &s.WorkDoneToken); err != nil { return err @@ -12843,7 +12843,7 @@ var _ json.UnmarshalerFrom = (*PartialResultParams)(nil) func (s *PartialResultParams) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12857,7 +12857,7 @@ func (s *PartialResultParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"partialResultToken"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"partialResultToken\"") + return errNull("partialResultToken") } if err := json.UnmarshalDecode(dec, &s.PartialResultToken); err != nil { return err @@ -12917,7 +12917,7 @@ func (s *LocationLink) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -12931,7 +12931,7 @@ func (s *LocationLink) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"originSelectionRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"originSelectionRange\"") + return errNull("originSelectionRange") } if err := json.UnmarshalDecode(dec, &s.OriginSelectionRange); err != nil { return err @@ -12973,7 +12973,7 @@ func (s *LocationLink) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTargetSelectionRange != 0 { missingProps = append(missingProps, "targetSelectionRange") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13011,7 +13011,7 @@ func (s *Range) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13052,7 +13052,7 @@ func (s *Range) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingEnd != 0 { missingProps = append(missingProps, "end") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13066,7 +13066,7 @@ var _ json.UnmarshalerFrom = (*ImplementationOptions)(nil) func (s *ImplementationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13080,7 +13080,7 @@ func (s *ImplementationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13111,7 +13111,7 @@ var _ json.UnmarshalerFrom = (*StaticRegistrationOptions)(nil) func (s *StaticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13125,7 +13125,7 @@ func (s *StaticRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"id"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"id\"") + return errNull("id") } if err := json.UnmarshalDecode(dec, &s.Id); err != nil { return err @@ -13152,7 +13152,7 @@ var _ json.UnmarshalerFrom = (*TypeDefinitionOptions)(nil) func (s *TypeDefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13166,7 +13166,7 @@ func (s *TypeDefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13205,7 +13205,7 @@ func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13246,7 +13246,7 @@ func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingRemoved != 0 { missingProps = append(missingProps, "removed") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13264,7 +13264,7 @@ var _ json.UnmarshalerFrom = (*ConfigurationItem)(nil) func (s *ConfigurationItem) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13278,14 +13278,14 @@ func (s *ConfigurationItem) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"scopeUri"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"scopeUri\"") + return errNull("scopeUri") } if err := json.UnmarshalDecode(dec, &s.ScopeUri); err != nil { return err } case `"section"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"section\"") + return errNull("section") } if err := json.UnmarshalDecode(dec, &s.Section); err != nil { return err @@ -13320,7 +13320,7 @@ func (s *TextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13353,7 +13353,7 @@ func (s *TextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13387,7 +13387,7 @@ func (s *Color) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13444,7 +13444,7 @@ func (s *Color) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingAlpha != 0 { missingProps = append(missingProps, "alpha") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13458,7 +13458,7 @@ var _ json.UnmarshalerFrom = (*DocumentColorOptions)(nil) func (s *DocumentColorOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13472,7 +13472,7 @@ func (s *DocumentColorOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13499,7 +13499,7 @@ var _ json.UnmarshalerFrom = (*FoldingRangeOptions)(nil) func (s *FoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13513,7 +13513,7 @@ func (s *FoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13540,7 +13540,7 @@ var _ json.UnmarshalerFrom = (*DeclarationOptions)(nil) func (s *DeclarationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13554,7 +13554,7 @@ func (s *DeclarationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13622,7 +13622,7 @@ func (s *Position) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13663,7 +13663,7 @@ func (s *Position) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCharacter != 0 { missingProps = append(missingProps, "character") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13677,7 +13677,7 @@ var _ json.UnmarshalerFrom = (*SelectionRangeOptions)(nil) func (s *SelectionRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13691,7 +13691,7 @@ func (s *SelectionRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13721,7 +13721,7 @@ var _ json.UnmarshalerFrom = (*CallHierarchyOptions)(nil) func (s *CallHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13735,7 +13735,7 @@ func (s *CallHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13779,7 +13779,7 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13793,7 +13793,7 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13801,21 +13801,21 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { case `"legend"`: missing &^= missingLegend if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"legend\"") + return errNull("legend") } if err := json.UnmarshalDecode(dec, &s.Legend); err != nil { return err } case `"range"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"range\"") + return errNull("range") } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"full"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"full\"") + return errNull("full") } if err := json.UnmarshalDecode(dec, &s.Full); err != nil { return err @@ -13836,7 +13836,7 @@ func (s *SemanticTokensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLegend != 0 { missingProps = append(missingProps, "legend") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13865,7 +13865,7 @@ func (s *SemanticTokensEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13889,7 +13889,7 @@ func (s *SemanticTokensEdit) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -13913,7 +13913,7 @@ func (s *SemanticTokensEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDeleteCount != 0 { missingProps = append(missingProps, "deleteCount") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -13927,7 +13927,7 @@ var _ json.UnmarshalerFrom = (*LinkedEditingRangeOptions)(nil) func (s *LinkedEditingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -13941,7 +13941,7 @@ func (s *LinkedEditingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -13978,7 +13978,7 @@ func (s *FileCreate) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14011,7 +14011,7 @@ func (s *FileCreate) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14046,7 +14046,7 @@ func (s *TextDocumentEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14087,7 +14087,7 @@ func (s *TextDocumentEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingEdits != 0 { missingProps = append(missingProps, "edits") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14121,7 +14121,7 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14140,7 +14140,7 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"annotationId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"annotationId\"") + return errNull("annotationId") } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err @@ -14152,7 +14152,7 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"options"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -14176,7 +14176,7 @@ func (s *CreateFile) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14214,7 +14214,7 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14233,7 +14233,7 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"annotationId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"annotationId\"") + return errNull("annotationId") } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err @@ -14250,7 +14250,7 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"options"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -14277,7 +14277,7 @@ func (s *RenameFile) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingNewUri != 0 { missingProps = append(missingProps, "newUri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14311,7 +14311,7 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14330,7 +14330,7 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"annotationId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"annotationId\"") + return errNull("annotationId") } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err @@ -14342,7 +14342,7 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"options"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -14366,7 +14366,7 @@ func (s *DeleteFile) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14399,7 +14399,7 @@ func (s *ChangeAnnotation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14418,14 +14418,14 @@ func (s *ChangeAnnotation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"needsConfirmation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"needsConfirmation\"") + return errNull("needsConfirmation") } if err := json.UnmarshalDecode(dec, &s.NeedsConfirmation); err != nil { return err } case `"description"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"description\"") + return errNull("description") } if err := json.UnmarshalDecode(dec, &s.Description); err != nil { return err @@ -14446,7 +14446,7 @@ func (s *ChangeAnnotation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14474,7 +14474,7 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14488,7 +14488,7 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"scheme"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"scheme\"") + return errNull("scheme") } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err @@ -14496,7 +14496,7 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { case `"pattern"`: missing &^= missingPattern if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"pattern\"") + return errNull("pattern") } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err @@ -14517,7 +14517,7 @@ func (s *FileOperationFilter) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPattern != 0 { missingProps = append(missingProps, "pattern") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14545,7 +14545,7 @@ func (s *FileRename) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14586,7 +14586,7 @@ func (s *FileRename) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingNewUri != 0 { missingProps = append(missingProps, "newUri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14610,7 +14610,7 @@ func (s *FileDelete) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14643,7 +14643,7 @@ func (s *FileDelete) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14657,7 +14657,7 @@ var _ json.UnmarshalerFrom = (*MonikerOptions)(nil) func (s *MonikerOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14671,7 +14671,7 @@ func (s *MonikerOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -14701,7 +14701,7 @@ var _ json.UnmarshalerFrom = (*TypeHierarchyOptions)(nil) func (s *TypeHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14715,7 +14715,7 @@ func (s *TypeHierarchyOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -14755,7 +14755,7 @@ func (s *InlineValueContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14796,7 +14796,7 @@ func (s *InlineValueContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingStoppedLocation != 0 { missingProps = append(missingProps, "stoppedLocation") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14824,7 +14824,7 @@ func (s *InlineValueText) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14865,7 +14865,7 @@ func (s *InlineValueText) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14899,7 +14899,7 @@ func (s *InlineValueVariableLookup) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14918,7 +14918,7 @@ func (s *InlineValueVariableLookup) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"variableName"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"variableName\"") + return errNull("variableName") } if err := json.UnmarshalDecode(dec, &s.VariableName); err != nil { return err @@ -14947,7 +14947,7 @@ func (s *InlineValueVariableLookup) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCaseSensitiveLookup != 0 { missingProps = append(missingProps, "caseSensitiveLookup") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -14977,7 +14977,7 @@ func (s *InlineValueEvaluatableExpression) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -14996,7 +14996,7 @@ func (s *InlineValueEvaluatableExpression) UnmarshalJSONFrom(dec *json.Decoder) } case `"expression"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"expression\"") + return errNull("expression") } if err := json.UnmarshalDecode(dec, &s.Expression); err != nil { return err @@ -15017,7 +15017,7 @@ func (s *InlineValueEvaluatableExpression) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingRange != 0 { missingProps = append(missingProps, "range") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15034,7 +15034,7 @@ var _ json.UnmarshalerFrom = (*InlineValueOptions)(nil) func (s *InlineValueOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15048,7 +15048,7 @@ func (s *InlineValueOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -15110,7 +15110,7 @@ func (s *InlayHintLabelPart) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15129,21 +15129,21 @@ func (s *InlayHintLabelPart) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tooltip"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tooltip\"") + return errNull("tooltip") } if err := json.UnmarshalDecode(dec, &s.Tooltip); err != nil { return err } case `"location"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"location\"") + return errNull("location") } if err := json.UnmarshalDecode(dec, &s.Location); err != nil { return err } case `"command"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err @@ -15164,7 +15164,7 @@ func (s *InlayHintLabelPart) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15213,7 +15213,7 @@ func (s *MarkupContent) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15254,7 +15254,7 @@ func (s *MarkupContent) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15275,7 +15275,7 @@ var _ json.UnmarshalerFrom = (*InlayHintOptions)(nil) func (s *InlayHintOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15289,14 +15289,14 @@ func (s *InlayHintOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -15351,7 +15351,7 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15370,7 +15370,7 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode } case `"resultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resultId\"") + return errNull("resultId") } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err @@ -15382,7 +15382,7 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode } case `"relatedDocuments"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedDocuments\"") + return errNull("relatedDocuments") } if err := json.UnmarshalDecode(dec, &s.RelatedDocuments); err != nil { return err @@ -15406,7 +15406,7 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15447,7 +15447,7 @@ func (s *RelatedUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.D missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15471,7 +15471,7 @@ func (s *RelatedUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.D } case `"relatedDocuments"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedDocuments\"") + return errNull("relatedDocuments") } if err := json.UnmarshalDecode(dec, &s.RelatedDocuments); err != nil { return err @@ -15495,7 +15495,7 @@ func (s *RelatedUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.D if missing&missingResultId != 0 { missingProps = append(missingProps, "resultId") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15528,7 +15528,7 @@ func (s *FullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15547,7 +15547,7 @@ func (s *FullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) erro } case `"resultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resultId\"") + return errNull("resultId") } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err @@ -15576,7 +15576,7 @@ func (s *FullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingItems != 0 { missingProps = append(missingProps, "items") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15609,7 +15609,7 @@ func (s *UnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15650,7 +15650,7 @@ func (s *UnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingResultId != 0 { missingProps = append(missingProps, "resultId") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15687,7 +15687,7 @@ func (s *DiagnosticOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15701,14 +15701,14 @@ func (s *DiagnosticOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"identifier"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"identifier\"") + return errNull("identifier") } if err := json.UnmarshalDecode(dec, &s.Identifier); err != nil { return err @@ -15742,7 +15742,7 @@ func (s *DiagnosticOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingWorkspaceDiagnostics != 0 { missingProps = append(missingProps, "workspaceDiagnostics") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15771,7 +15771,7 @@ func (s *PreviousResultId) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15812,7 +15812,7 @@ func (s *PreviousResultId) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15848,7 +15848,7 @@ func (s *TextDocumentItem) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15905,7 +15905,7 @@ func (s *TextDocumentItem) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -15934,7 +15934,7 @@ func (s *InlineCompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -15953,7 +15953,7 @@ func (s *InlineCompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"selectedCompletionInfo"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"selectedCompletionInfo\"") + return errNull("selectedCompletionInfo") } if err := json.UnmarshalDecode(dec, &s.SelectedCompletionInfo); err != nil { return err @@ -15974,7 +15974,7 @@ func (s *InlineCompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTriggerKind != 0 { missingProps = append(missingProps, "triggerKind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -16010,7 +16010,7 @@ func (s *StringValue) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -16051,7 +16051,7 @@ func (s *StringValue) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -16070,7 +16070,7 @@ var _ json.UnmarshalerFrom = (*InlineCompletionOptions)(nil) func (s *InlineCompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -16084,7 +16084,7 @@ func (s *InlineCompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -16123,7 +16123,7 @@ func (s *TextDocumentContentOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -16156,7 +16156,7 @@ func (s *TextDocumentContentOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingSchemes != 0 { missingProps = append(missingProps, "schemes") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -16464,7 +16464,7 @@ func (s *Registration) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -16514,7 +16514,7 @@ func (s *Registration) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMethod != 0 { missingProps = append(missingProps, "method") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } if len(rawRegisterOptions) > 0 { @@ -16835,7 +16835,7 @@ func (s *Unregistration) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -16876,7 +16876,7 @@ func (s *Unregistration) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMethod != 0 { missingProps = append(missingProps, "method") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17037,7 +17037,7 @@ var _ json.UnmarshalerFrom = (*ServerCapabilities)(nil) func (s *ServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17051,238 +17051,238 @@ func (s *ServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"positionEncoding"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"positionEncoding\"") + return errNull("positionEncoding") } if err := json.UnmarshalDecode(dec, &s.PositionEncoding); err != nil { return err } case `"textDocumentSync"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textDocumentSync\"") + return errNull("textDocumentSync") } if err := json.UnmarshalDecode(dec, &s.TextDocumentSync); err != nil { return err } case `"completionProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionProvider\"") + return errNull("completionProvider") } if err := json.UnmarshalDecode(dec, &s.CompletionProvider); err != nil { return err } case `"hoverProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"hoverProvider\"") + return errNull("hoverProvider") } if err := json.UnmarshalDecode(dec, &s.HoverProvider); err != nil { return err } case `"signatureHelpProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"signatureHelpProvider\"") + return errNull("signatureHelpProvider") } if err := json.UnmarshalDecode(dec, &s.SignatureHelpProvider); err != nil { return err } case `"declarationProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"declarationProvider\"") + return errNull("declarationProvider") } if err := json.UnmarshalDecode(dec, &s.DeclarationProvider); err != nil { return err } case `"definitionProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"definitionProvider\"") + return errNull("definitionProvider") } if err := json.UnmarshalDecode(dec, &s.DefinitionProvider); err != nil { return err } case `"typeDefinitionProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"typeDefinitionProvider\"") + return errNull("typeDefinitionProvider") } if err := json.UnmarshalDecode(dec, &s.TypeDefinitionProvider); err != nil { return err } case `"implementationProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"implementationProvider\"") + return errNull("implementationProvider") } if err := json.UnmarshalDecode(dec, &s.ImplementationProvider); err != nil { return err } case `"referencesProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"referencesProvider\"") + return errNull("referencesProvider") } if err := json.UnmarshalDecode(dec, &s.ReferencesProvider); err != nil { return err } case `"documentHighlightProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentHighlightProvider\"") + return errNull("documentHighlightProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentHighlightProvider); err != nil { return err } case `"documentSymbolProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentSymbolProvider\"") + return errNull("documentSymbolProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentSymbolProvider); err != nil { return err } case `"codeActionProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeActionProvider\"") + return errNull("codeActionProvider") } if err := json.UnmarshalDecode(dec, &s.CodeActionProvider); err != nil { return err } case `"codeLensProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeLensProvider\"") + return errNull("codeLensProvider") } if err := json.UnmarshalDecode(dec, &s.CodeLensProvider); err != nil { return err } case `"documentLinkProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentLinkProvider\"") + return errNull("documentLinkProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentLinkProvider); err != nil { return err } case `"colorProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"colorProvider\"") + return errNull("colorProvider") } if err := json.UnmarshalDecode(dec, &s.ColorProvider); err != nil { return err } case `"workspaceSymbolProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspaceSymbolProvider\"") + return errNull("workspaceSymbolProvider") } if err := json.UnmarshalDecode(dec, &s.WorkspaceSymbolProvider); err != nil { return err } case `"documentFormattingProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentFormattingProvider\"") + return errNull("documentFormattingProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentFormattingProvider); err != nil { return err } case `"documentRangeFormattingProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentRangeFormattingProvider\"") + return errNull("documentRangeFormattingProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentRangeFormattingProvider); err != nil { return err } case `"documentOnTypeFormattingProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentOnTypeFormattingProvider\"") + return errNull("documentOnTypeFormattingProvider") } if err := json.UnmarshalDecode(dec, &s.DocumentOnTypeFormattingProvider); err != nil { return err } case `"renameProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"renameProvider\"") + return errNull("renameProvider") } if err := json.UnmarshalDecode(dec, &s.RenameProvider); err != nil { return err } case `"foldingRangeProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"foldingRangeProvider\"") + return errNull("foldingRangeProvider") } if err := json.UnmarshalDecode(dec, &s.FoldingRangeProvider); err != nil { return err } case `"selectionRangeProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"selectionRangeProvider\"") + return errNull("selectionRangeProvider") } if err := json.UnmarshalDecode(dec, &s.SelectionRangeProvider); err != nil { return err } case `"executeCommandProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"executeCommandProvider\"") + return errNull("executeCommandProvider") } if err := json.UnmarshalDecode(dec, &s.ExecuteCommandProvider); err != nil { return err } case `"callHierarchyProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"callHierarchyProvider\"") + return errNull("callHierarchyProvider") } if err := json.UnmarshalDecode(dec, &s.CallHierarchyProvider); err != nil { return err } case `"linkedEditingRangeProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkedEditingRangeProvider\"") + return errNull("linkedEditingRangeProvider") } if err := json.UnmarshalDecode(dec, &s.LinkedEditingRangeProvider); err != nil { return err } case `"semanticTokensProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"semanticTokensProvider\"") + return errNull("semanticTokensProvider") } if err := json.UnmarshalDecode(dec, &s.SemanticTokensProvider); err != nil { return err } case `"monikerProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"monikerProvider\"") + return errNull("monikerProvider") } if err := json.UnmarshalDecode(dec, &s.MonikerProvider); err != nil { return err } case `"typeHierarchyProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"typeHierarchyProvider\"") + return errNull("typeHierarchyProvider") } if err := json.UnmarshalDecode(dec, &s.TypeHierarchyProvider); err != nil { return err } case `"inlineValueProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlineValueProvider\"") + return errNull("inlineValueProvider") } if err := json.UnmarshalDecode(dec, &s.InlineValueProvider); err != nil { return err } case `"inlayHintProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlayHintProvider\"") + return errNull("inlayHintProvider") } if err := json.UnmarshalDecode(dec, &s.InlayHintProvider); err != nil { return err } case `"diagnosticProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"diagnosticProvider\"") + return errNull("diagnosticProvider") } if err := json.UnmarshalDecode(dec, &s.DiagnosticProvider); err != nil { return err } case `"inlineCompletionProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlineCompletionProvider\"") + return errNull("inlineCompletionProvider") } if err := json.UnmarshalDecode(dec, &s.InlineCompletionProvider); err != nil { return err } case `"workspace"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspace\"") + return errNull("workspace") } if err := json.UnmarshalDecode(dec, &s.Workspace); err != nil { return err @@ -17324,7 +17324,7 @@ func (s *ServerInfo) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17343,7 +17343,7 @@ func (s *ServerInfo) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"version"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"version\"") + return errNull("version") } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err @@ -17364,7 +17364,7 @@ func (s *ServerInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingName != 0 { missingProps = append(missingProps, "name") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17390,7 +17390,7 @@ func (s *VersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17431,7 +17431,7 @@ func (s *VersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingVersion != 0 { missingProps = append(missingProps, "version") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17447,7 +17447,7 @@ var _ json.UnmarshalerFrom = (*SaveOptions)(nil) func (s *SaveOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17461,7 +17461,7 @@ func (s *SaveOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"includeText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"includeText\"") + return errNull("includeText") } if err := json.UnmarshalDecode(dec, &s.IncludeText); err != nil { return err @@ -17500,7 +17500,7 @@ func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17541,7 +17541,7 @@ func (s *FileEvent) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingType != 0 { missingProps = append(missingProps, "type") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17569,7 +17569,7 @@ func (s *FileSystemWatcher) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17588,7 +17588,7 @@ func (s *FileSystemWatcher) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"kind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"kind\"") + return errNull("kind") } if err := json.UnmarshalDecode(dec, &s.Kind); err != nil { return err @@ -17609,7 +17609,7 @@ func (s *FileSystemWatcher) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingGlobPattern != 0 { missingProps = append(missingProps, "globPattern") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17670,7 +17670,7 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17689,28 +17689,28 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"severity"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"severity\"") + return errNull("severity") } if err := json.UnmarshalDecode(dec, &s.Severity); err != nil { return err } case `"code"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"code\"") + return errNull("code") } if err := json.UnmarshalDecode(dec, &s.Code); err != nil { return err } case `"codeDescription"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeDescription\"") + return errNull("codeDescription") } if err := json.UnmarshalDecode(dec, &s.CodeDescription); err != nil { return err } case `"source"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"source\"") + return errNull("source") } if err := json.UnmarshalDecode(dec, &s.Source); err != nil { return err @@ -17722,21 +17722,21 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"relatedInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + return errNull("relatedInformation") } if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -17760,7 +17760,7 @@ func (s *Diagnostic) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17786,7 +17786,7 @@ func (s *CompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17805,7 +17805,7 @@ func (s *CompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"triggerCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacter\"") + return errNull("triggerCharacter") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacter); err != nil { return err @@ -17826,7 +17826,7 @@ func (s *CompletionContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTriggerKind != 0 { missingProps = append(missingProps, "triggerKind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -17849,7 +17849,7 @@ var _ json.UnmarshalerFrom = (*CompletionItemLabelDetails)(nil) func (s *CompletionItemLabelDetails) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17863,14 +17863,14 @@ func (s *CompletionItemLabelDetails) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"detail"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"detail\"") + return errNull("detail") } if err := json.UnmarshalDecode(dec, &s.Detail); err != nil { return err } case `"description"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"description\"") + return errNull("description") } if err := json.UnmarshalDecode(dec, &s.Description); err != nil { return err @@ -17915,7 +17915,7 @@ func (s *InsertReplaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -17964,7 +17964,7 @@ func (s *InsertReplaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingReplace != 0 { missingProps = append(missingProps, "replace") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -18016,7 +18016,7 @@ var _ json.UnmarshalerFrom = (*CompletionItemDefaults)(nil) func (s *CompletionItemDefaults) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18030,35 +18030,35 @@ func (s *CompletionItemDefaults) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"commitCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + return errNull("commitCharacters") } if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { return err } case `"editRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"editRange\"") + return errNull("editRange") } if err := json.UnmarshalDecode(dec, &s.EditRange); err != nil { return err } case `"insertTextFormat"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextFormat\"") + return errNull("insertTextFormat") } if err := json.UnmarshalDecode(dec, &s.InsertTextFormat); err != nil { return err } case `"insertTextMode"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + return errNull("insertTextMode") } if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -18141,7 +18141,7 @@ var _ json.UnmarshalerFrom = (*CompletionItemApplyKinds)(nil) func (s *CompletionItemApplyKinds) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18155,14 +18155,14 @@ func (s *CompletionItemApplyKinds) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"commitCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"commitCharacters\"") + return errNull("commitCharacters") } if err := json.UnmarshalDecode(dec, &s.CommitCharacters); err != nil { return err } case `"data"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"data\"") + return errNull("data") } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err @@ -18220,7 +18220,7 @@ var _ json.UnmarshalerFrom = (*CompletionOptions)(nil) func (s *CompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18234,35 +18234,35 @@ func (s *CompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + return errNull("triggerCharacters") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"allCommitCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"allCommitCharacters\"") + return errNull("allCommitCharacters") } if err := json.UnmarshalDecode(dec, &s.AllCommitCharacters); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err } case `"completionItem"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionItem\"") + return errNull("completionItem") } if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { return err @@ -18290,7 +18290,7 @@ var _ json.UnmarshalerFrom = (*HoverOptions)(nil) func (s *HoverOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18304,7 +18304,7 @@ func (s *HoverOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -18359,7 +18359,7 @@ func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18378,7 +18378,7 @@ func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"triggerCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacter\"") + return errNull("triggerCharacter") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacter); err != nil { return err @@ -18390,7 +18390,7 @@ func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"activeSignatureHelp"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"activeSignatureHelp\"") + return errNull("activeSignatureHelp") } if err := json.UnmarshalDecode(dec, &s.ActiveSignatureHelp); err != nil { return err @@ -18414,7 +18414,7 @@ func (s *SignatureHelpContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingIsRetrigger != 0 { missingProps = append(missingProps, "isRetrigger") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -18459,7 +18459,7 @@ func (s *SignatureInformation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18478,14 +18478,14 @@ func (s *SignatureInformation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"documentation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentation\"") + return errNull("documentation") } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"parameters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"parameters\"") + return errNull("parameters") } if err := json.UnmarshalDecode(dec, &s.Parameters); err != nil { return err @@ -18510,7 +18510,7 @@ func (s *SignatureInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -18536,7 +18536,7 @@ var _ json.UnmarshalerFrom = (*SignatureHelpOptions)(nil) func (s *SignatureHelpOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18550,21 +18550,21 @@ func (s *SignatureHelpOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"triggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerCharacters\"") + return errNull("triggerCharacters") } if err := json.UnmarshalDecode(dec, &s.TriggerCharacters); err != nil { return err } case `"retriggerCharacters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"retriggerCharacters\"") + return errNull("retriggerCharacters") } if err := json.UnmarshalDecode(dec, &s.RetriggerCharacters); err != nil { return err @@ -18592,7 +18592,7 @@ var _ json.UnmarshalerFrom = (*DefinitionOptions)(nil) func (s *DefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18606,7 +18606,7 @@ func (s *DefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -18642,7 +18642,7 @@ func (s *ReferenceContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18675,7 +18675,7 @@ func (s *ReferenceContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingIncludeDeclaration != 0 { missingProps = append(missingProps, "includeDeclaration") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -18690,7 +18690,7 @@ var _ json.UnmarshalerFrom = (*ReferenceOptions)(nil) func (s *ReferenceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18704,7 +18704,7 @@ func (s *ReferenceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -18732,7 +18732,7 @@ var _ json.UnmarshalerFrom = (*DocumentHighlightOptions)(nil) func (s *DocumentHighlightOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18746,7 +18746,7 @@ func (s *DocumentHighlightOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -18796,7 +18796,7 @@ func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18820,14 +18820,14 @@ func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"tags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tags\"") + return errNull("tags") } if err := json.UnmarshalDecode(dec, &s.Tags); err != nil { return err } case `"containerName"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"containerName\"") + return errNull("containerName") } if err := json.UnmarshalDecode(dec, &s.ContainerName); err != nil { return err @@ -18851,7 +18851,7 @@ func (s *BaseSymbolInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingKind != 0 { missingProps = append(missingProps, "kind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -18872,7 +18872,7 @@ var _ json.UnmarshalerFrom = (*DocumentSymbolOptions)(nil) func (s *DocumentSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18886,14 +18886,14 @@ func (s *DocumentSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"label"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"label\"") + return errNull("label") } if err := json.UnmarshalDecode(dec, &s.Label); err != nil { return err @@ -18944,7 +18944,7 @@ func (s *CodeActionContext) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -18963,14 +18963,14 @@ func (s *CodeActionContext) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"only"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"only\"") + return errNull("only") } if err := json.UnmarshalDecode(dec, &s.Only); err != nil { return err } case `"triggerKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"triggerKind\"") + return errNull("triggerKind") } if err := json.UnmarshalDecode(dec, &s.TriggerKind); err != nil { return err @@ -18991,7 +18991,7 @@ func (s *CodeActionContext) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDiagnostics != 0 { missingProps = append(missingProps, "diagnostics") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19017,7 +19017,7 @@ func (s *CodeActionDisabled) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19050,7 +19050,7 @@ func (s *CodeActionDisabled) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingReason != 0 { missingProps = append(missingProps, "reason") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19095,7 +19095,7 @@ var _ json.UnmarshalerFrom = (*CodeActionOptions)(nil) func (s *CodeActionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19109,28 +19109,28 @@ func (s *CodeActionOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"codeActionKinds"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeActionKinds\"") + return errNull("codeActionKinds") } if err := json.UnmarshalDecode(dec, &s.CodeActionKinds); err != nil { return err } case `"documentation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentation\"") + return errNull("documentation") } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -19166,7 +19166,7 @@ func (s *LocationUriOnly) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19199,7 +19199,7 @@ func (s *LocationUriOnly) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19220,7 +19220,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceSymbolOptions)(nil) func (s *WorkspaceSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19234,14 +19234,14 @@ func (s *WorkspaceSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -19272,7 +19272,7 @@ var _ json.UnmarshalerFrom = (*CodeLensOptions)(nil) func (s *CodeLensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19286,14 +19286,14 @@ func (s *CodeLensOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -19324,7 +19324,7 @@ var _ json.UnmarshalerFrom = (*DocumentLinkOptions)(nil) func (s *DocumentLinkOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19338,14 +19338,14 @@ func (s *DocumentLinkOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"resolveProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveProvider\"") + return errNull("resolveProvider") } if err := json.UnmarshalDecode(dec, &s.ResolveProvider); err != nil { return err @@ -19399,7 +19399,7 @@ func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19423,21 +19423,21 @@ func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"trimTrailingWhitespace"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"trimTrailingWhitespace\"") + return errNull("trimTrailingWhitespace") } if err := json.UnmarshalDecode(dec, &s.TrimTrailingWhitespace); err != nil { return err } case `"insertFinalNewline"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertFinalNewline\"") + return errNull("insertFinalNewline") } if err := json.UnmarshalDecode(dec, &s.InsertFinalNewline); err != nil { return err } case `"trimFinalNewlines"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"trimFinalNewlines\"") + return errNull("trimFinalNewlines") } if err := json.UnmarshalDecode(dec, &s.TrimFinalNewlines); err != nil { return err @@ -19461,7 +19461,7 @@ func (s *FormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingInsertSpaces != 0 { missingProps = append(missingProps, "insertSpaces") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19476,7 +19476,7 @@ var _ json.UnmarshalerFrom = (*DocumentFormattingOptions)(nil) func (s *DocumentFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19490,7 +19490,7 @@ func (s *DocumentFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -19525,7 +19525,7 @@ var _ json.UnmarshalerFrom = (*DocumentRangeFormattingOptions)(nil) func (s *DocumentRangeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19539,14 +19539,14 @@ func (s *DocumentRangeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"rangesSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + return errNull("rangesSupport") } if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { return err @@ -19584,7 +19584,7 @@ func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) e missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19603,7 +19603,7 @@ func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) e } case `"moreTriggerCharacter"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"moreTriggerCharacter\"") + return errNull("moreTriggerCharacter") } if err := json.UnmarshalDecode(dec, &s.MoreTriggerCharacter); err != nil { return err @@ -19624,7 +19624,7 @@ func (s *DocumentOnTypeFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder) e if missing&missingFirstTriggerCharacter != 0 { missingProps = append(missingProps, "firstTriggerCharacter") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19644,7 +19644,7 @@ var _ json.UnmarshalerFrom = (*RenameOptions)(nil) func (s *RenameOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19658,14 +19658,14 @@ func (s *RenameOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"prepareProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"prepareProvider\"") + return errNull("prepareProvider") } if err := json.UnmarshalDecode(dec, &s.PrepareProvider); err != nil { return err @@ -19702,7 +19702,7 @@ func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19743,7 +19743,7 @@ func (s *PrepareRenamePlaceholder) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPlaceholder != 0 { missingProps = append(missingProps, "placeholder") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19764,7 +19764,7 @@ func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19797,7 +19797,7 @@ func (s *PrepareRenameDefaultBehavior) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingDefaultBehavior != 0 { missingProps = append(missingProps, "defaultBehavior") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19821,7 +19821,7 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19835,7 +19835,7 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -19861,7 +19861,7 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingCommands != 0 { missingProps = append(missingProps, "commands") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19881,7 +19881,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceEditMetadata)(nil) func (s *WorkspaceEditMetadata) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19895,7 +19895,7 @@ func (s *WorkspaceEditMetadata) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"isRefactoring"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"isRefactoring\"") + return errNull("isRefactoring") } if err := json.UnmarshalDecode(dec, &s.IsRefactoring); err != nil { return err @@ -19934,7 +19934,7 @@ func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -19975,7 +19975,7 @@ func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTokenModifiers != 0 { missingProps = append(missingProps, "tokenModifiers") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -19993,7 +19993,7 @@ var _ json.UnmarshalerFrom = (*SemanticTokensFullDelta)(nil) func (s *SemanticTokensFullDelta) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20007,7 +20007,7 @@ func (s *SemanticTokensFullDelta) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"delta"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"delta\"") + return errNull("delta") } if err := json.UnmarshalDecode(dec, &s.Delta); err != nil { return err @@ -20050,7 +20050,7 @@ func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.De missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20091,7 +20091,7 @@ func (s *OptionalVersionedTextDocumentIdentifier) UnmarshalJSONFrom(dec *json.De if missing&missingVersion != 0 { missingProps = append(missingProps, "version") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20125,7 +20125,7 @@ func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20174,7 +20174,7 @@ func (s *AnnotatedTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingAnnotationId != 0 { missingProps = append(missingProps, "annotationId") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20207,7 +20207,7 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20227,14 +20227,14 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { case `"snippet"`: missing &^= missingSnippet if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"snippet\"") + return errNull("snippet") } if err := json.UnmarshalDecode(dec, &s.Snippet); err != nil { return err } case `"annotationId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"annotationId\"") + return errNull("annotationId") } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err @@ -20258,7 +20258,7 @@ func (s *SnippetTextEdit) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingSnippet != 0 { missingProps = append(missingProps, "snippet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20285,7 +20285,7 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20304,7 +20304,7 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"annotationId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"annotationId\"") + return errNull("annotationId") } if err := json.UnmarshalDecode(dec, &s.AnnotationId); err != nil { return err @@ -20325,7 +20325,7 @@ func (s *ResourceOperation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingKind != 0 { missingProps = append(missingProps, "kind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20344,7 +20344,7 @@ var _ json.UnmarshalerFrom = (*CreateFileOptions)(nil) func (s *CreateFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20358,14 +20358,14 @@ func (s *CreateFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"overwrite"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"overwrite\"") + return errNull("overwrite") } if err := json.UnmarshalDecode(dec, &s.Overwrite); err != nil { return err } case `"ignoreIfExists"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"ignoreIfExists\"") + return errNull("ignoreIfExists") } if err := json.UnmarshalDecode(dec, &s.IgnoreIfExists); err != nil { return err @@ -20397,7 +20397,7 @@ var _ json.UnmarshalerFrom = (*RenameFileOptions)(nil) func (s *RenameFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20411,14 +20411,14 @@ func (s *RenameFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"overwrite"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"overwrite\"") + return errNull("overwrite") } if err := json.UnmarshalDecode(dec, &s.Overwrite); err != nil { return err } case `"ignoreIfExists"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"ignoreIfExists\"") + return errNull("ignoreIfExists") } if err := json.UnmarshalDecode(dec, &s.IgnoreIfExists); err != nil { return err @@ -20450,7 +20450,7 @@ var _ json.UnmarshalerFrom = (*DeleteFileOptions)(nil) func (s *DeleteFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20464,14 +20464,14 @@ func (s *DeleteFileOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"recursive"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"recursive\"") + return errNull("recursive") } if err := json.UnmarshalDecode(dec, &s.Recursive); err != nil { return err } case `"ignoreIfNotExists"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"ignoreIfNotExists\"") + return errNull("ignoreIfNotExists") } if err := json.UnmarshalDecode(dec, &s.IgnoreIfNotExists); err != nil { return err @@ -20523,7 +20523,7 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20542,14 +20542,14 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"matches"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"matches\"") + return errNull("matches") } if err := json.UnmarshalDecode(dec, &s.Matches); err != nil { return err } case `"options"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"options\"") + return errNull("options") } if err := json.UnmarshalDecode(dec, &s.Options); err != nil { return err @@ -20570,7 +20570,7 @@ func (s *FileOperationPattern) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingGlob != 0 { missingProps = append(missingProps, "glob") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20612,7 +20612,7 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20631,7 +20631,7 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco } case `"resultId"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resultId\"") + return errNull("resultId") } if err := json.UnmarshalDecode(dec, &s.ResultId); err != nil { return err @@ -20676,7 +20676,7 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco if missing&missingVersion != 0 { missingProps = append(missingProps, "version") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20717,7 +20717,7 @@ func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20774,7 +20774,7 @@ func (s *WorkspaceUnchangedDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json if missing&missingVersion != 0 { missingProps = append(missingProps, "version") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20804,7 +20804,7 @@ func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20845,7 +20845,7 @@ func (s *SelectedCompletionInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20874,7 +20874,7 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20893,7 +20893,7 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"version"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"version\"") + return errNull("version") } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err @@ -20914,7 +20914,7 @@ func (s *ClientInfo) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingName != 0 { missingProps = append(missingProps, "name") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -20941,7 +20941,7 @@ var _ json.UnmarshalerFrom = (*ClientCapabilities)(nil) func (s *ClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -20955,28 +20955,28 @@ func (s *ClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workspace"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspace\"") + return errNull("workspace") } if err := json.UnmarshalDecode(dec, &s.Workspace); err != nil { return err } case `"textDocument"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textDocument\"") + return errNull("textDocument") } if err := json.UnmarshalDecode(dec, &s.TextDocument); err != nil { return err } case `"window"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"window\"") + return errNull("window") } if err := json.UnmarshalDecode(dec, &s.Window); err != nil { return err } case `"general"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"general\"") + return errNull("general") } if err := json.UnmarshalDecode(dec, &s.General); err != nil { return err @@ -21021,7 +21021,7 @@ var _ json.UnmarshalerFrom = (*TextDocumentSyncOptions)(nil) func (s *TextDocumentSyncOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21035,35 +21035,35 @@ func (s *TextDocumentSyncOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"openClose"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"openClose\"") + return errNull("openClose") } if err := json.UnmarshalDecode(dec, &s.OpenClose); err != nil { return err } case `"change"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"change\"") + return errNull("change") } if err := json.UnmarshalDecode(dec, &s.Change); err != nil { return err } case `"willSave"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willSave\"") + return errNull("willSave") } if err := json.UnmarshalDecode(dec, &s.WillSave); err != nil { return err } case `"willSaveWaitUntil"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willSaveWaitUntil\"") + return errNull("willSaveWaitUntil") } if err := json.UnmarshalDecode(dec, &s.WillSaveWaitUntil); err != nil { return err } case `"save"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"save\"") + return errNull("save") } if err := json.UnmarshalDecode(dec, &s.Save); err != nil { return err @@ -21108,7 +21108,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceOptions)(nil) func (s *WorkspaceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21122,21 +21122,21 @@ func (s *WorkspaceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workspaceFolders"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspaceFolders\"") + return errNull("workspaceFolders") } if err := json.UnmarshalDecode(dec, &s.WorkspaceFolders); err != nil { return err } case `"fileOperations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"fileOperations\"") + return errNull("fileOperations") } if err := json.UnmarshalDecode(dec, &s.FileOperations); err != nil { return err } case `"textDocumentContent"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textDocumentContent\"") + return errNull("textDocumentContent") } if err := json.UnmarshalDecode(dec, &s.TextDocumentContent); err != nil { return err @@ -21180,7 +21180,7 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21199,7 +21199,7 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) } case `"rangeLength"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangeLength\"") + return errNull("rangeLength") } if err := json.UnmarshalDecode(dec, &s.RangeLength); err != nil { return err @@ -21228,7 +21228,7 @@ func (s *TextDocumentContentChangePartial) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21250,7 +21250,7 @@ func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Dec missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21283,7 +21283,7 @@ func (s *TextDocumentContentChangeWholeDocument) UnmarshalJSONFrom(dec *json.Dec if missing&missingText != 0 { missingProps = append(missingProps, "text") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21307,7 +21307,7 @@ func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21340,7 +21340,7 @@ func (s *CodeDescription) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingHref != 0 { missingProps = append(missingProps, "href") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21368,7 +21368,7 @@ func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21409,7 +21409,7 @@ func (s *DiagnosticRelatedInformation) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingMessage != 0 { missingProps = append(missingProps, "message") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21435,7 +21435,7 @@ func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21476,7 +21476,7 @@ func (s *EditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingReplace != 0 { missingProps = append(missingProps, "replace") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21496,7 +21496,7 @@ var _ json.UnmarshalerFrom = (*ServerCompletionItemOptions)(nil) func (s *ServerCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21510,7 +21510,7 @@ func (s *ServerCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"labelDetailsSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"labelDetailsSupport\"") + return errNull("labelDetailsSupport") } if err := json.UnmarshalDecode(dec, &s.LabelDetailsSupport); err != nil { return err @@ -21549,7 +21549,7 @@ func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21590,7 +21590,7 @@ func (s *MarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValue != 0 { missingProps = append(missingProps, "value") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21628,7 +21628,7 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21647,7 +21647,7 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"documentation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentation\"") + return errNull("documentation") } if err := json.UnmarshalDecode(dec, &s.Documentation); err != nil { return err @@ -21668,7 +21668,7 @@ func (s *ParameterInformation) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingLabel != 0 { missingProps = append(missingProps, "label") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21704,7 +21704,7 @@ func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21724,7 +21724,7 @@ func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error case `"command"`: missing &^= missingCommand if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"command\"") + return errNull("command") } if err := json.UnmarshalDecode(dec, &s.Command); err != nil { return err @@ -21748,7 +21748,7 @@ func (s *CodeActionKindDocumentation) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingCommand != 0 { missingProps = append(missingProps, "command") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -21766,7 +21766,7 @@ var _ json.UnmarshalerFrom = (*FileOperationPatternOptions)(nil) func (s *FileOperationPatternOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21780,7 +21780,7 @@ func (s *FileOperationPatternOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"ignoreCase"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"ignoreCase\"") + return errNull("ignoreCase") } if err := json.UnmarshalDecode(dec, &s.IgnoreCase); err != nil { return err @@ -21885,7 +21885,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceClientCapabilities)(nil) func (s *WorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -21899,112 +21899,112 @@ func (s *WorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"applyEdit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"applyEdit\"") + return errNull("applyEdit") } if err := json.UnmarshalDecode(dec, &s.ApplyEdit); err != nil { return err } case `"workspaceEdit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspaceEdit\"") + return errNull("workspaceEdit") } if err := json.UnmarshalDecode(dec, &s.WorkspaceEdit); err != nil { return err } case `"didChangeConfiguration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didChangeConfiguration\"") + return errNull("didChangeConfiguration") } if err := json.UnmarshalDecode(dec, &s.DidChangeConfiguration); err != nil { return err } case `"didChangeWatchedFiles"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didChangeWatchedFiles\"") + return errNull("didChangeWatchedFiles") } if err := json.UnmarshalDecode(dec, &s.DidChangeWatchedFiles); err != nil { return err } case `"symbol"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"symbol\"") + return errNull("symbol") } if err := json.UnmarshalDecode(dec, &s.Symbol); err != nil { return err } case `"executeCommand"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"executeCommand\"") + return errNull("executeCommand") } if err := json.UnmarshalDecode(dec, &s.ExecuteCommand); err != nil { return err } case `"workspaceFolders"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workspaceFolders\"") + return errNull("workspaceFolders") } if err := json.UnmarshalDecode(dec, &s.WorkspaceFolders); err != nil { return err } case `"configuration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"configuration\"") + return errNull("configuration") } if err := json.UnmarshalDecode(dec, &s.Configuration); err != nil { return err } case `"semanticTokens"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"semanticTokens\"") + return errNull("semanticTokens") } if err := json.UnmarshalDecode(dec, &s.SemanticTokens); err != nil { return err } case `"codeLens"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeLens\"") + return errNull("codeLens") } if err := json.UnmarshalDecode(dec, &s.CodeLens); err != nil { return err } case `"fileOperations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"fileOperations\"") + return errNull("fileOperations") } if err := json.UnmarshalDecode(dec, &s.FileOperations); err != nil { return err } case `"inlineValue"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlineValue\"") + return errNull("inlineValue") } if err := json.UnmarshalDecode(dec, &s.InlineValue); err != nil { return err } case `"inlayHint"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlayHint\"") + return errNull("inlayHint") } if err := json.UnmarshalDecode(dec, &s.InlayHint); err != nil { return err } case `"diagnostics"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"diagnostics\"") + return errNull("diagnostics") } if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { return err } case `"foldingRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + return errNull("foldingRange") } if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { return err } case `"textDocumentContent"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"textDocumentContent\"") + return errNull("textDocumentContent") } if err := json.UnmarshalDecode(dec, &s.TextDocumentContent); err != nil { return err @@ -22161,7 +22161,7 @@ var _ json.UnmarshalerFrom = (*TextDocumentClientCapabilities)(nil) func (s *TextDocumentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22175,224 +22175,224 @@ func (s *TextDocumentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"synchronization"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"synchronization\"") + return errNull("synchronization") } if err := json.UnmarshalDecode(dec, &s.Synchronization); err != nil { return err } case `"filters"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"filters\"") + return errNull("filters") } if err := json.UnmarshalDecode(dec, &s.Filters); err != nil { return err } case `"completion"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completion\"") + return errNull("completion") } if err := json.UnmarshalDecode(dec, &s.Completion); err != nil { return err } case `"hover"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"hover\"") + return errNull("hover") } if err := json.UnmarshalDecode(dec, &s.Hover); err != nil { return err } case `"signatureHelp"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"signatureHelp\"") + return errNull("signatureHelp") } if err := json.UnmarshalDecode(dec, &s.SignatureHelp); err != nil { return err } case `"declaration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"declaration\"") + return errNull("declaration") } if err := json.UnmarshalDecode(dec, &s.Declaration); err != nil { return err } case `"definition"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"definition\"") + return errNull("definition") } if err := json.UnmarshalDecode(dec, &s.Definition); err != nil { return err } case `"typeDefinition"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"typeDefinition\"") + return errNull("typeDefinition") } if err := json.UnmarshalDecode(dec, &s.TypeDefinition); err != nil { return err } case `"implementation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"implementation\"") + return errNull("implementation") } if err := json.UnmarshalDecode(dec, &s.Implementation); err != nil { return err } case `"references"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"references\"") + return errNull("references") } if err := json.UnmarshalDecode(dec, &s.References); err != nil { return err } case `"documentHighlight"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentHighlight\"") + return errNull("documentHighlight") } if err := json.UnmarshalDecode(dec, &s.DocumentHighlight); err != nil { return err } case `"documentSymbol"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentSymbol\"") + return errNull("documentSymbol") } if err := json.UnmarshalDecode(dec, &s.DocumentSymbol); err != nil { return err } case `"codeAction"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeAction\"") + return errNull("codeAction") } if err := json.UnmarshalDecode(dec, &s.CodeAction); err != nil { return err } case `"codeLens"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeLens\"") + return errNull("codeLens") } if err := json.UnmarshalDecode(dec, &s.CodeLens); err != nil { return err } case `"documentLink"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentLink\"") + return errNull("documentLink") } if err := json.UnmarshalDecode(dec, &s.DocumentLink); err != nil { return err } case `"colorProvider"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"colorProvider\"") + return errNull("colorProvider") } if err := json.UnmarshalDecode(dec, &s.ColorProvider); err != nil { return err } case `"formatting"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"formatting\"") + return errNull("formatting") } if err := json.UnmarshalDecode(dec, &s.Formatting); err != nil { return err } case `"rangeFormatting"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangeFormatting\"") + return errNull("rangeFormatting") } if err := json.UnmarshalDecode(dec, &s.RangeFormatting); err != nil { return err } case `"onTypeFormatting"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"onTypeFormatting\"") + return errNull("onTypeFormatting") } if err := json.UnmarshalDecode(dec, &s.OnTypeFormatting); err != nil { return err } case `"rename"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rename\"") + return errNull("rename") } if err := json.UnmarshalDecode(dec, &s.Rename); err != nil { return err } case `"foldingRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + return errNull("foldingRange") } if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { return err } case `"selectionRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"selectionRange\"") + return errNull("selectionRange") } if err := json.UnmarshalDecode(dec, &s.SelectionRange); err != nil { return err } case `"publishDiagnostics"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"publishDiagnostics\"") + return errNull("publishDiagnostics") } if err := json.UnmarshalDecode(dec, &s.PublishDiagnostics); err != nil { return err } case `"callHierarchy"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"callHierarchy\"") + return errNull("callHierarchy") } if err := json.UnmarshalDecode(dec, &s.CallHierarchy); err != nil { return err } case `"semanticTokens"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"semanticTokens\"") + return errNull("semanticTokens") } if err := json.UnmarshalDecode(dec, &s.SemanticTokens); err != nil { return err } case `"linkedEditingRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkedEditingRange\"") + return errNull("linkedEditingRange") } if err := json.UnmarshalDecode(dec, &s.LinkedEditingRange); err != nil { return err } case `"moniker"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"moniker\"") + return errNull("moniker") } if err := json.UnmarshalDecode(dec, &s.Moniker); err != nil { return err } case `"typeHierarchy"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"typeHierarchy\"") + return errNull("typeHierarchy") } if err := json.UnmarshalDecode(dec, &s.TypeHierarchy); err != nil { return err } case `"inlineValue"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlineValue\"") + return errNull("inlineValue") } if err := json.UnmarshalDecode(dec, &s.InlineValue); err != nil { return err } case `"inlayHint"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlayHint\"") + return errNull("inlayHint") } if err := json.UnmarshalDecode(dec, &s.InlayHint); err != nil { return err } case `"diagnostic"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"diagnostic\"") + return errNull("diagnostic") } if err := json.UnmarshalDecode(dec, &s.Diagnostic); err != nil { return err } case `"inlineCompletion"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"inlineCompletion\"") + return errNull("inlineCompletion") } if err := json.UnmarshalDecode(dec, &s.InlineCompletion); err != nil { return err @@ -22438,7 +22438,7 @@ var _ json.UnmarshalerFrom = (*WindowClientCapabilities)(nil) func (s *WindowClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22452,21 +22452,21 @@ func (s *WindowClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err } case `"showMessage"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"showMessage\"") + return errNull("showMessage") } if err := json.UnmarshalDecode(dec, &s.ShowMessage); err != nil { return err } case `"showDocument"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"showDocument\"") + return errNull("showDocument") } if err := json.UnmarshalDecode(dec, &s.ShowDocument); err != nil { return err @@ -22532,7 +22532,7 @@ var _ json.UnmarshalerFrom = (*GeneralClientCapabilities)(nil) func (s *GeneralClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22546,28 +22546,28 @@ func (s *GeneralClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"staleRequestSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"staleRequestSupport\"") + return errNull("staleRequestSupport") } if err := json.UnmarshalDecode(dec, &s.StaleRequestSupport); err != nil { return err } case `"regularExpressions"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"regularExpressions\"") + return errNull("regularExpressions") } if err := json.UnmarshalDecode(dec, &s.RegularExpressions); err != nil { return err } case `"markdown"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"markdown\"") + return errNull("markdown") } if err := json.UnmarshalDecode(dec, &s.Markdown); err != nil { return err } case `"positionEncodings"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"positionEncodings\"") + return errNull("positionEncodings") } if err := json.UnmarshalDecode(dec, &s.PositionEncodings); err != nil { return err @@ -22604,7 +22604,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceFoldersServerCapabilities)(nil) func (s *WorkspaceFoldersServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22618,14 +22618,14 @@ func (s *WorkspaceFoldersServerCapabilities) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"supported"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"supported\"") + return errNull("supported") } if err := json.UnmarshalDecode(dec, &s.Supported); err != nil { return err } case `"changeNotifications"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"changeNotifications\"") + return errNull("changeNotifications") } if err := json.UnmarshalDecode(dec, &s.ChangeNotifications); err != nil { return err @@ -22671,7 +22671,7 @@ var _ json.UnmarshalerFrom = (*FileOperationOptions)(nil) func (s *FileOperationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22685,42 +22685,42 @@ func (s *FileOperationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"didCreate"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didCreate\"") + return errNull("didCreate") } if err := json.UnmarshalDecode(dec, &s.DidCreate); err != nil { return err } case `"willCreate"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willCreate\"") + return errNull("willCreate") } if err := json.UnmarshalDecode(dec, &s.WillCreate); err != nil { return err } case `"didRename"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didRename\"") + return errNull("didRename") } if err := json.UnmarshalDecode(dec, &s.DidRename); err != nil { return err } case `"willRename"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willRename\"") + return errNull("willRename") } if err := json.UnmarshalDecode(dec, &s.WillRename); err != nil { return err } case `"didDelete"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didDelete\"") + return errNull("didDelete") } if err := json.UnmarshalDecode(dec, &s.DidDelete); err != nil { return err } case `"willDelete"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willDelete\"") + return errNull("willDelete") } if err := json.UnmarshalDecode(dec, &s.WillDelete); err != nil { return err @@ -22764,7 +22764,7 @@ func (s *RelativePattern) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22805,7 +22805,7 @@ func (s *RelativePattern) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPattern != 0 { missingProps = append(missingProps, "pattern") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -22839,7 +22839,7 @@ func (s *TextDocumentFilterLanguage) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22858,14 +22858,14 @@ func (s *TextDocumentFilterLanguage) UnmarshalJSONFrom(dec *json.Decoder) error } case `"scheme"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"scheme\"") + return errNull("scheme") } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err } case `"pattern"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"pattern\"") + return errNull("pattern") } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err @@ -22886,7 +22886,7 @@ func (s *TextDocumentFilterLanguage) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingLanguage != 0 { missingProps = append(missingProps, "language") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -22920,7 +22920,7 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -22934,7 +22934,7 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"language"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"language\"") + return errNull("language") } if err := json.UnmarshalDecode(dec, &s.Language); err != nil { return err @@ -22946,7 +22946,7 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"pattern"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"pattern\"") + return errNull("pattern") } if err := json.UnmarshalDecode(dec, &s.Pattern); err != nil { return err @@ -22967,7 +22967,7 @@ func (s *TextDocumentFilterScheme) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingScheme != 0 { missingProps = append(missingProps, "scheme") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -23001,7 +23001,7 @@ func (s *TextDocumentFilterPattern) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23015,14 +23015,14 @@ func (s *TextDocumentFilterPattern) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"language"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"language\"") + return errNull("language") } if err := json.UnmarshalDecode(dec, &s.Language); err != nil { return err } case `"scheme"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"scheme\"") + return errNull("scheme") } if err := json.UnmarshalDecode(dec, &s.Scheme); err != nil { return err @@ -23048,7 +23048,7 @@ func (s *TextDocumentFilterPattern) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingPattern != 0 { missingProps = append(missingProps, "pattern") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -23104,7 +23104,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceEditClientCapabilities)(nil) func (s *WorkspaceEditClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23118,49 +23118,49 @@ func (s *WorkspaceEditClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"documentChanges"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentChanges\"") + return errNull("documentChanges") } if err := json.UnmarshalDecode(dec, &s.DocumentChanges); err != nil { return err } case `"resourceOperations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resourceOperations\"") + return errNull("resourceOperations") } if err := json.UnmarshalDecode(dec, &s.ResourceOperations); err != nil { return err } case `"failureHandling"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"failureHandling\"") + return errNull("failureHandling") } if err := json.UnmarshalDecode(dec, &s.FailureHandling); err != nil { return err } case `"normalizesLineEndings"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"normalizesLineEndings\"") + return errNull("normalizesLineEndings") } if err := json.UnmarshalDecode(dec, &s.NormalizesLineEndings); err != nil { return err } case `"changeAnnotationSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"changeAnnotationSupport\"") + return errNull("changeAnnotationSupport") } if err := json.UnmarshalDecode(dec, &s.ChangeAnnotationSupport); err != nil { return err } case `"metadataSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"metadataSupport\"") + return errNull("metadataSupport") } if err := json.UnmarshalDecode(dec, &s.MetadataSupport); err != nil { return err } case `"snippetEditSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"snippetEditSupport\"") + return errNull("snippetEditSupport") } if err := json.UnmarshalDecode(dec, &s.SnippetEditSupport); err != nil { return err @@ -23188,7 +23188,7 @@ var _ json.UnmarshalerFrom = (*DidChangeConfigurationClientCapabilities)(nil) func (s *DidChangeConfigurationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23202,7 +23202,7 @@ func (s *DidChangeConfigurationClientCapabilities) UnmarshalJSONFrom(dec *json.D switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -23238,7 +23238,7 @@ var _ json.UnmarshalerFrom = (*DidChangeWatchedFilesClientCapabilities)(nil) func (s *DidChangeWatchedFilesClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23252,14 +23252,14 @@ func (s *DidChangeWatchedFilesClientCapabilities) UnmarshalJSONFrom(dec *json.De switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"relativePatternSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relativePatternSupport\"") + return errNull("relativePatternSupport") } if err := json.UnmarshalDecode(dec, &s.RelativePatternSupport); err != nil { return err @@ -23304,7 +23304,7 @@ var _ json.UnmarshalerFrom = (*WorkspaceSymbolClientCapabilities)(nil) func (s *WorkspaceSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23318,28 +23318,28 @@ func (s *WorkspaceSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"symbolKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"symbolKind\"") + return errNull("symbolKind") } if err := json.UnmarshalDecode(dec, &s.SymbolKind); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"resolveSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + return errNull("resolveSupport") } if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { return err @@ -23368,7 +23368,7 @@ var _ json.UnmarshalerFrom = (*ExecuteCommandClientCapabilities)(nil) func (s *ExecuteCommandClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23382,7 +23382,7 @@ func (s *ExecuteCommandClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -23417,7 +23417,7 @@ var _ json.UnmarshalerFrom = (*SemanticTokensWorkspaceClientCapabilities)(nil) func (s *SemanticTokensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23431,7 +23431,7 @@ func (s *SemanticTokensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json. switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23466,7 +23466,7 @@ var _ json.UnmarshalerFrom = (*CodeLensWorkspaceClientCapabilities)(nil) func (s *CodeLensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23480,7 +23480,7 @@ func (s *CodeLensWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decode switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23532,7 +23532,7 @@ var _ json.UnmarshalerFrom = (*FileOperationClientCapabilities)(nil) func (s *FileOperationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23546,49 +23546,49 @@ func (s *FileOperationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"didCreate"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didCreate\"") + return errNull("didCreate") } if err := json.UnmarshalDecode(dec, &s.DidCreate); err != nil { return err } case `"willCreate"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willCreate\"") + return errNull("willCreate") } if err := json.UnmarshalDecode(dec, &s.WillCreate); err != nil { return err } case `"didRename"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didRename\"") + return errNull("didRename") } if err := json.UnmarshalDecode(dec, &s.DidRename); err != nil { return err } case `"willRename"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willRename\"") + return errNull("willRename") } if err := json.UnmarshalDecode(dec, &s.WillRename); err != nil { return err } case `"didDelete"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didDelete\"") + return errNull("didDelete") } if err := json.UnmarshalDecode(dec, &s.DidDelete); err != nil { return err } case `"willDelete"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willDelete\"") + return errNull("willDelete") } if err := json.UnmarshalDecode(dec, &s.WillDelete); err != nil { return err @@ -23625,7 +23625,7 @@ var _ json.UnmarshalerFrom = (*InlineValueWorkspaceClientCapabilities)(nil) func (s *InlineValueWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23639,7 +23639,7 @@ func (s *InlineValueWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Dec switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23676,7 +23676,7 @@ var _ json.UnmarshalerFrom = (*InlayHintWorkspaceClientCapabilities)(nil) func (s *InlayHintWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23690,7 +23690,7 @@ func (s *InlayHintWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23727,7 +23727,7 @@ var _ json.UnmarshalerFrom = (*DiagnosticWorkspaceClientCapabilities)(nil) func (s *DiagnosticWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23741,7 +23741,7 @@ func (s *DiagnosticWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Deco switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23784,7 +23784,7 @@ var _ json.UnmarshalerFrom = (*FoldingRangeWorkspaceClientCapabilities)(nil) func (s *FoldingRangeWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23798,7 +23798,7 @@ func (s *FoldingRangeWorkspaceClientCapabilities) UnmarshalJSONFrom(dec *json.De switch string(name) { case `"refreshSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"refreshSupport\"") + return errNull("refreshSupport") } if err := json.UnmarshalDecode(dec, &s.RefreshSupport); err != nil { return err @@ -23831,7 +23831,7 @@ var _ json.UnmarshalerFrom = (*TextDocumentContentClientCapabilities)(nil) func (s *TextDocumentContentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23845,7 +23845,7 @@ func (s *TextDocumentContentClientCapabilities) UnmarshalJSONFrom(dec *json.Deco switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -23884,7 +23884,7 @@ var _ json.UnmarshalerFrom = (*TextDocumentSyncClientCapabilities)(nil) func (s *TextDocumentSyncClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23898,28 +23898,28 @@ func (s *TextDocumentSyncClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"willSave"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willSave\"") + return errNull("willSave") } if err := json.UnmarshalDecode(dec, &s.WillSave); err != nil { return err } case `"willSaveWaitUntil"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"willSaveWaitUntil\"") + return errNull("willSaveWaitUntil") } if err := json.UnmarshalDecode(dec, &s.WillSaveWaitUntil); err != nil { return err } case `"didSave"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"didSave\"") + return errNull("didSave") } if err := json.UnmarshalDecode(dec, &s.DidSave); err != nil { return err @@ -23949,7 +23949,7 @@ var _ json.UnmarshalerFrom = (*TextDocumentFilterClientCapabilities)(nil) func (s *TextDocumentFilterClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -23963,7 +23963,7 @@ func (s *TextDocumentFilterClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"relativePatternSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relativePatternSupport\"") + return errNull("relativePatternSupport") } if err := json.UnmarshalDecode(dec, &s.RelativePatternSupport); err != nil { return err @@ -24015,7 +24015,7 @@ var _ json.UnmarshalerFrom = (*CompletionClientCapabilities)(nil) func (s *CompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24029,42 +24029,42 @@ func (s *CompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"completionItem"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionItem\"") + return errNull("completionItem") } if err := json.UnmarshalDecode(dec, &s.CompletionItem); err != nil { return err } case `"completionItemKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionItemKind\"") + return errNull("completionItemKind") } if err := json.UnmarshalDecode(dec, &s.CompletionItemKind); err != nil { return err } case `"insertTextMode"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextMode\"") + return errNull("insertTextMode") } if err := json.UnmarshalDecode(dec, &s.InsertTextMode); err != nil { return err } case `"contextSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"contextSupport\"") + return errNull("contextSupport") } if err := json.UnmarshalDecode(dec, &s.ContextSupport); err != nil { return err } case `"completionList"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"completionList\"") + return errNull("completionList") } if err := json.UnmarshalDecode(dec, &s.CompletionList); err != nil { return err @@ -24096,7 +24096,7 @@ var _ json.UnmarshalerFrom = (*HoverClientCapabilities)(nil) func (s *HoverClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24110,14 +24110,14 @@ func (s *HoverClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"contentFormat"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"contentFormat\"") + return errNull("contentFormat") } if err := json.UnmarshalDecode(dec, &s.ContentFormat); err != nil { return err @@ -24158,7 +24158,7 @@ var _ json.UnmarshalerFrom = (*SignatureHelpClientCapabilities)(nil) func (s *SignatureHelpClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24172,21 +24172,21 @@ func (s *SignatureHelpClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"signatureInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"signatureInformation\"") + return errNull("signatureInformation") } if err := json.UnmarshalDecode(dec, &s.SignatureInformation); err != nil { return err } case `"contextSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"contextSupport\"") + return errNull("contextSupport") } if err := json.UnmarshalDecode(dec, &s.ContextSupport); err != nil { return err @@ -24220,7 +24220,7 @@ var _ json.UnmarshalerFrom = (*DeclarationClientCapabilities)(nil) func (s *DeclarationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24234,14 +24234,14 @@ func (s *DeclarationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"linkSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + return errNull("linkSupport") } if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { return err @@ -24275,7 +24275,7 @@ var _ json.UnmarshalerFrom = (*DefinitionClientCapabilities)(nil) func (s *DefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24289,14 +24289,14 @@ func (s *DefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"linkSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + return errNull("linkSupport") } if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { return err @@ -24332,7 +24332,7 @@ var _ json.UnmarshalerFrom = (*TypeDefinitionClientCapabilities)(nil) func (s *TypeDefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24346,14 +24346,14 @@ func (s *TypeDefinitionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"linkSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + return errNull("linkSupport") } if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { return err @@ -24389,7 +24389,7 @@ var _ json.UnmarshalerFrom = (*ImplementationClientCapabilities)(nil) func (s *ImplementationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24403,14 +24403,14 @@ func (s *ImplementationClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"linkSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"linkSupport\"") + return errNull("linkSupport") } if err := json.UnmarshalDecode(dec, &s.LinkSupport); err != nil { return err @@ -24439,7 +24439,7 @@ var _ json.UnmarshalerFrom = (*ReferenceClientCapabilities)(nil) func (s *ReferenceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24453,7 +24453,7 @@ func (s *ReferenceClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -24482,7 +24482,7 @@ var _ json.UnmarshalerFrom = (*DocumentHighlightClientCapabilities)(nil) func (s *DocumentHighlightClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24496,7 +24496,7 @@ func (s *DocumentHighlightClientCapabilities) UnmarshalJSONFrom(dec *json.Decode switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -24545,7 +24545,7 @@ var _ json.UnmarshalerFrom = (*DocumentSymbolClientCapabilities)(nil) func (s *DocumentSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24559,35 +24559,35 @@ func (s *DocumentSymbolClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"symbolKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"symbolKind\"") + return errNull("symbolKind") } if err := json.UnmarshalDecode(dec, &s.SymbolKind); err != nil { return err } case `"hierarchicalDocumentSymbolSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"hierarchicalDocumentSymbolSupport\"") + return errNull("hierarchicalDocumentSymbolSupport") } if err := json.UnmarshalDecode(dec, &s.HierarchicalDocumentSymbolSupport); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"labelSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"labelSupport\"") + return errNull("labelSupport") } if err := json.UnmarshalDecode(dec, &s.LabelSupport); err != nil { return err @@ -24669,7 +24669,7 @@ var _ json.UnmarshalerFrom = (*CodeActionClientCapabilities)(nil) func (s *CodeActionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24683,63 +24683,63 @@ func (s *CodeActionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"codeActionLiteralSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeActionLiteralSupport\"") + return errNull("codeActionLiteralSupport") } if err := json.UnmarshalDecode(dec, &s.CodeActionLiteralSupport); err != nil { return err } case `"isPreferredSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"isPreferredSupport\"") + return errNull("isPreferredSupport") } if err := json.UnmarshalDecode(dec, &s.IsPreferredSupport); err != nil { return err } case `"disabledSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"disabledSupport\"") + return errNull("disabledSupport") } if err := json.UnmarshalDecode(dec, &s.DisabledSupport); err != nil { return err } case `"dataSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + return errNull("dataSupport") } if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { return err } case `"resolveSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + return errNull("resolveSupport") } if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { return err } case `"honorsChangeAnnotations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"honorsChangeAnnotations\"") + return errNull("honorsChangeAnnotations") } if err := json.UnmarshalDecode(dec, &s.HonorsChangeAnnotations); err != nil { return err } case `"documentationSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentationSupport\"") + return errNull("documentationSupport") } if err := json.UnmarshalDecode(dec, &s.DocumentationSupport); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err @@ -24774,7 +24774,7 @@ var _ json.UnmarshalerFrom = (*CodeLensClientCapabilities)(nil) func (s *CodeLensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24788,14 +24788,14 @@ func (s *CodeLensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"resolveSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + return errNull("resolveSupport") } if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { return err @@ -24829,7 +24829,7 @@ var _ json.UnmarshalerFrom = (*DocumentLinkClientCapabilities)(nil) func (s *DocumentLinkClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24843,14 +24843,14 @@ func (s *DocumentLinkClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"tooltipSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tooltipSupport\"") + return errNull("tooltipSupport") } if err := json.UnmarshalDecode(dec, &s.TooltipSupport); err != nil { return err @@ -24880,7 +24880,7 @@ var _ json.UnmarshalerFrom = (*DocumentColorClientCapabilities)(nil) func (s *DocumentColorClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24894,7 +24894,7 @@ func (s *DocumentColorClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -24923,7 +24923,7 @@ var _ json.UnmarshalerFrom = (*DocumentFormattingClientCapabilities)(nil) func (s *DocumentFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24937,7 +24937,7 @@ func (s *DocumentFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -24973,7 +24973,7 @@ var _ json.UnmarshalerFrom = (*DocumentRangeFormattingClientCapabilities)(nil) func (s *DocumentRangeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -24987,14 +24987,14 @@ func (s *DocumentRangeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json. switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"rangesSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangesSupport\"") + return errNull("rangesSupport") } if err := json.UnmarshalDecode(dec, &s.RangesSupport); err != nil { return err @@ -25023,7 +25023,7 @@ var _ json.UnmarshalerFrom = (*DocumentOnTypeFormattingClientCapabilities)(nil) func (s *DocumentOnTypeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25037,7 +25037,7 @@ func (s *DocumentOnTypeFormattingClientCapabilities) UnmarshalJSONFrom(dec *json switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25088,7 +25088,7 @@ var _ json.UnmarshalerFrom = (*RenameClientCapabilities)(nil) func (s *RenameClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25102,28 +25102,28 @@ func (s *RenameClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"prepareSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"prepareSupport\"") + return errNull("prepareSupport") } if err := json.UnmarshalDecode(dec, &s.PrepareSupport); err != nil { return err } case `"prepareSupportDefaultBehavior"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"prepareSupportDefaultBehavior\"") + return errNull("prepareSupportDefaultBehavior") } if err := json.UnmarshalDecode(dec, &s.PrepareSupportDefaultBehavior); err != nil { return err } case `"honorsChangeAnnotations"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"honorsChangeAnnotations\"") + return errNull("honorsChangeAnnotations") } if err := json.UnmarshalDecode(dec, &s.HonorsChangeAnnotations); err != nil { return err @@ -25174,7 +25174,7 @@ var _ json.UnmarshalerFrom = (*FoldingRangeClientCapabilities)(nil) func (s *FoldingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25188,35 +25188,35 @@ func (s *FoldingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"rangeLimit"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"rangeLimit\"") + return errNull("rangeLimit") } if err := json.UnmarshalDecode(dec, &s.RangeLimit); err != nil { return err } case `"lineFoldingOnly"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"lineFoldingOnly\"") + return errNull("lineFoldingOnly") } if err := json.UnmarshalDecode(dec, &s.LineFoldingOnly); err != nil { return err } case `"foldingRangeKind"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"foldingRangeKind\"") + return errNull("foldingRangeKind") } if err := json.UnmarshalDecode(dec, &s.FoldingRangeKind); err != nil { return err } case `"foldingRange"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"foldingRange\"") + return errNull("foldingRange") } if err := json.UnmarshalDecode(dec, &s.FoldingRange); err != nil { return err @@ -25246,7 +25246,7 @@ var _ json.UnmarshalerFrom = (*SelectionRangeClientCapabilities)(nil) func (s *SelectionRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25260,7 +25260,7 @@ func (s *SelectionRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25313,7 +25313,7 @@ var _ json.UnmarshalerFrom = (*PublishDiagnosticsClientCapabilities)(nil) func (s *PublishDiagnosticsClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25327,35 +25327,35 @@ func (s *PublishDiagnosticsClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"relatedInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + return errNull("relatedInformation") } if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"codeDescriptionSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + return errNull("codeDescriptionSupport") } if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { return err } case `"dataSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + return errNull("dataSupport") } if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { return err } case `"versionSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"versionSupport\"") + return errNull("versionSupport") } if err := json.UnmarshalDecode(dec, &s.VersionSupport); err != nil { return err @@ -25386,7 +25386,7 @@ var _ json.UnmarshalerFrom = (*CallHierarchyClientCapabilities)(nil) func (s *CallHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25400,7 +25400,7 @@ func (s *CallHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25485,7 +25485,7 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25499,7 +25499,7 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25507,7 +25507,7 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) case `"requests"`: missing &^= missingRequests if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"requests\"") + return errNull("requests") } if err := json.UnmarshalDecode(dec, &s.Requests); err != nil { return err @@ -25529,28 +25529,28 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) } case `"overlappingTokenSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"overlappingTokenSupport\"") + return errNull("overlappingTokenSupport") } if err := json.UnmarshalDecode(dec, &s.OverlappingTokenSupport); err != nil { return err } case `"multilineTokenSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"multilineTokenSupport\"") + return errNull("multilineTokenSupport") } if err := json.UnmarshalDecode(dec, &s.MultilineTokenSupport); err != nil { return err } case `"serverCancelSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"serverCancelSupport\"") + return errNull("serverCancelSupport") } if err := json.UnmarshalDecode(dec, &s.ServerCancelSupport); err != nil { return err } case `"augmentsSyntaxTokens"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"augmentsSyntaxTokens\"") + return errNull("augmentsSyntaxTokens") } if err := json.UnmarshalDecode(dec, &s.AugmentsSyntaxTokens); err != nil { return err @@ -25580,7 +25580,7 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingFormats != 0 { missingProps = append(missingProps, "formats") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -25600,7 +25600,7 @@ var _ json.UnmarshalerFrom = (*LinkedEditingRangeClientCapabilities)(nil) func (s *LinkedEditingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25614,7 +25614,7 @@ func (s *LinkedEditingRangeClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25647,7 +25647,7 @@ var _ json.UnmarshalerFrom = (*MonikerClientCapabilities)(nil) func (s *MonikerClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25661,7 +25661,7 @@ func (s *MonikerClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25692,7 +25692,7 @@ var _ json.UnmarshalerFrom = (*TypeHierarchyClientCapabilities)(nil) func (s *TypeHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25706,7 +25706,7 @@ func (s *TypeHierarchyClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25737,7 +25737,7 @@ var _ json.UnmarshalerFrom = (*InlineValueClientCapabilities)(nil) func (s *InlineValueClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25751,7 +25751,7 @@ func (s *InlineValueClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25786,7 +25786,7 @@ var _ json.UnmarshalerFrom = (*InlayHintClientCapabilities)(nil) func (s *InlayHintClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25800,14 +25800,14 @@ func (s *InlayHintClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"resolveSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + return errNull("resolveSupport") } if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { return err @@ -25864,7 +25864,7 @@ var _ json.UnmarshalerFrom = (*DiagnosticClientCapabilities)(nil) func (s *DiagnosticClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25878,42 +25878,42 @@ func (s *DiagnosticClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"relatedInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + return errNull("relatedInformation") } if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"codeDescriptionSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + return errNull("codeDescriptionSupport") } if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { return err } case `"dataSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + return errNull("dataSupport") } if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { return err } case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err } case `"relatedDocumentSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedDocumentSupport\"") + return errNull("relatedDocumentSupport") } if err := json.UnmarshalDecode(dec, &s.RelatedDocumentSupport); err != nil { return err @@ -25946,7 +25946,7 @@ var _ json.UnmarshalerFrom = (*InlineCompletionClientCapabilities)(nil) func (s *InlineCompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -25960,7 +25960,7 @@ func (s *InlineCompletionClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"dynamicRegistration"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dynamicRegistration\"") + return errNull("dynamicRegistration") } if err := json.UnmarshalDecode(dec, &s.DynamicRegistration); err != nil { return err @@ -25989,7 +25989,7 @@ var _ json.UnmarshalerFrom = (*ShowMessageRequestClientCapabilities)(nil) func (s *ShowMessageRequestClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26003,7 +26003,7 @@ func (s *ShowMessageRequestClientCapabilities) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"messageActionItem"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"messageActionItem\"") + return errNull("messageActionItem") } if err := json.UnmarshalDecode(dec, &s.MessageActionItem); err != nil { return err @@ -26041,7 +26041,7 @@ func (s *ShowDocumentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26074,7 +26074,7 @@ func (s *ShowDocumentClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingSupport != 0 { missingProps = append(missingProps, "support") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26102,7 +26102,7 @@ func (s *StaleRequestSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26143,7 +26143,7 @@ func (s *StaleRequestSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingRetryOnContentModified != 0 { missingProps = append(missingProps, "retryOnContentModified") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26170,7 +26170,7 @@ func (s *RegularExpressionsClientCapabilities) UnmarshalJSONFrom(dec *json.Decod missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26189,7 +26189,7 @@ func (s *RegularExpressionsClientCapabilities) UnmarshalJSONFrom(dec *json.Decod } case `"version"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"version\"") + return errNull("version") } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err @@ -26210,7 +26210,7 @@ func (s *RegularExpressionsClientCapabilities) UnmarshalJSONFrom(dec *json.Decod if missing&missingEngine != 0 { missingProps = append(missingProps, "engine") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26243,7 +26243,7 @@ func (s *MarkdownClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26262,14 +26262,14 @@ func (s *MarkdownClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error } case `"version"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"version\"") + return errNull("version") } if err := json.UnmarshalDecode(dec, &s.Version); err != nil { return err } case `"allowedTags"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"allowedTags\"") + return errNull("allowedTags") } if err := json.UnmarshalDecode(dec, &s.AllowedTags); err != nil { return err @@ -26290,7 +26290,7 @@ func (s *MarkdownClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingParser != 0 { missingProps = append(missingProps, "parser") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26308,7 +26308,7 @@ var _ json.UnmarshalerFrom = (*ChangeAnnotationsSupportOptions)(nil) func (s *ChangeAnnotationsSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26322,7 +26322,7 @@ func (s *ChangeAnnotationsSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"groupsOnLabel"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"groupsOnLabel\"") + return errNull("groupsOnLabel") } if err := json.UnmarshalDecode(dec, &s.GroupsOnLabel); err != nil { return err @@ -26358,7 +26358,7 @@ var _ json.UnmarshalerFrom = (*ClientSymbolKindOptions)(nil) func (s *ClientSymbolKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26372,7 +26372,7 @@ func (s *ClientSymbolKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"valueSet"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"valueSet\"") + return errNull("valueSet") } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err @@ -26407,7 +26407,7 @@ func (s *ClientSymbolTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26440,7 +26440,7 @@ func (s *ClientSymbolTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26463,7 +26463,7 @@ func (s *ClientSymbolResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26496,7 +26496,7 @@ func (s *ClientSymbolResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26564,7 +26564,7 @@ var _ json.UnmarshalerFrom = (*ClientCompletionItemOptions)(nil) func (s *ClientCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26578,70 +26578,70 @@ func (s *ClientCompletionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"snippetSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"snippetSupport\"") + return errNull("snippetSupport") } if err := json.UnmarshalDecode(dec, &s.SnippetSupport); err != nil { return err } case `"commitCharactersSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"commitCharactersSupport\"") + return errNull("commitCharactersSupport") } if err := json.UnmarshalDecode(dec, &s.CommitCharactersSupport); err != nil { return err } case `"documentationFormat"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentationFormat\"") + return errNull("documentationFormat") } if err := json.UnmarshalDecode(dec, &s.DocumentationFormat); err != nil { return err } case `"deprecatedSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"deprecatedSupport\"") + return errNull("deprecatedSupport") } if err := json.UnmarshalDecode(dec, &s.DeprecatedSupport); err != nil { return err } case `"preselectSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"preselectSupport\"") + return errNull("preselectSupport") } if err := json.UnmarshalDecode(dec, &s.PreselectSupport); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"insertReplaceSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertReplaceSupport\"") + return errNull("insertReplaceSupport") } if err := json.UnmarshalDecode(dec, &s.InsertReplaceSupport); err != nil { return err } case `"resolveSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"resolveSupport\"") + return errNull("resolveSupport") } if err := json.UnmarshalDecode(dec, &s.ResolveSupport); err != nil { return err } case `"insertTextModeSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"insertTextModeSupport\"") + return errNull("insertTextModeSupport") } if err := json.UnmarshalDecode(dec, &s.InsertTextModeSupport); err != nil { return err } case `"labelDetailsSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"labelDetailsSupport\"") + return errNull("labelDetailsSupport") } if err := json.UnmarshalDecode(dec, &s.LabelDetailsSupport); err != nil { return err @@ -26677,7 +26677,7 @@ var _ json.UnmarshalerFrom = (*ClientCompletionItemOptionsKind)(nil) func (s *ClientCompletionItemOptionsKind) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26691,7 +26691,7 @@ func (s *ClientCompletionItemOptionsKind) UnmarshalJSONFrom(dec *json.Decoder) e switch string(name) { case `"valueSet"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"valueSet\"") + return errNull("valueSet") } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err @@ -26743,7 +26743,7 @@ var _ json.UnmarshalerFrom = (*CompletionListCapabilities)(nil) func (s *CompletionListCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26757,14 +26757,14 @@ func (s *CompletionListCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"itemDefaults"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"itemDefaults\"") + return errNull("itemDefaults") } if err := json.UnmarshalDecode(dec, &s.ItemDefaults); err != nil { return err } case `"applyKindSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"applyKindSupport\"") + return errNull("applyKindSupport") } if err := json.UnmarshalDecode(dec, &s.ApplyKindSupport); err != nil { return err @@ -26812,7 +26812,7 @@ var _ json.UnmarshalerFrom = (*ClientSignatureInformationOptions)(nil) func (s *ClientSignatureInformationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26826,28 +26826,28 @@ func (s *ClientSignatureInformationOptions) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"documentationFormat"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"documentationFormat\"") + return errNull("documentationFormat") } if err := json.UnmarshalDecode(dec, &s.DocumentationFormat); err != nil { return err } case `"parameterInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"parameterInformation\"") + return errNull("parameterInformation") } if err := json.UnmarshalDecode(dec, &s.ParameterInformation); err != nil { return err } case `"activeParameterSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"activeParameterSupport\"") + return errNull("activeParameterSupport") } if err := json.UnmarshalDecode(dec, &s.ActiveParameterSupport); err != nil { return err } case `"noActiveParameterSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"noActiveParameterSupport\"") + return errNull("noActiveParameterSupport") } if err := json.UnmarshalDecode(dec, &s.NoActiveParameterSupport); err != nil { return err @@ -26883,7 +26883,7 @@ func (s *ClientCodeActionLiteralOptions) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26898,7 +26898,7 @@ func (s *ClientCodeActionLiteralOptions) UnmarshalJSONFrom(dec *json.Decoder) er case `"codeActionKind"`: missing &^= missingCodeActionKind if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeActionKind\"") + return errNull("codeActionKind") } if err := json.UnmarshalDecode(dec, &s.CodeActionKind); err != nil { return err @@ -26919,7 +26919,7 @@ func (s *ClientCodeActionLiteralOptions) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingCodeActionKind != 0 { missingProps = append(missingProps, "codeActionKind") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26941,7 +26941,7 @@ func (s *ClientCodeActionResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) er missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -26974,7 +26974,7 @@ func (s *ClientCodeActionResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) er if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -26996,7 +26996,7 @@ func (s *CodeActionTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27029,7 +27029,7 @@ func (s *CodeActionTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27051,7 +27051,7 @@ func (s *ClientCodeLensResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27084,7 +27084,7 @@ func (s *ClientCodeLensResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27103,7 +27103,7 @@ var _ json.UnmarshalerFrom = (*ClientFoldingRangeKindOptions)(nil) func (s *ClientFoldingRangeKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27117,7 +27117,7 @@ func (s *ClientFoldingRangeKindOptions) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"valueSet"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"valueSet\"") + return errNull("valueSet") } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err @@ -27149,7 +27149,7 @@ var _ json.UnmarshalerFrom = (*ClientFoldingRangeOptions)(nil) func (s *ClientFoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27163,7 +27163,7 @@ func (s *ClientFoldingRangeOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"collapsedText"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"collapsedText\"") + return errNull("collapsedText") } if err := json.UnmarshalDecode(dec, &s.CollapsedText); err != nil { return err @@ -27210,7 +27210,7 @@ var _ json.UnmarshalerFrom = (*DiagnosticsCapabilities)(nil) func (s *DiagnosticsCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27224,28 +27224,28 @@ func (s *DiagnosticsCapabilities) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"relatedInformation"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"relatedInformation\"") + return errNull("relatedInformation") } if err := json.UnmarshalDecode(dec, &s.RelatedInformation); err != nil { return err } case `"tagSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"tagSupport\"") + return errNull("tagSupport") } if err := json.UnmarshalDecode(dec, &s.TagSupport); err != nil { return err } case `"codeDescriptionSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeDescriptionSupport\"") + return errNull("codeDescriptionSupport") } if err := json.UnmarshalDecode(dec, &s.CodeDescriptionSupport); err != nil { return err } case `"dataSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"dataSupport\"") + return errNull("dataSupport") } if err := json.UnmarshalDecode(dec, &s.DataSupport); err != nil { return err @@ -27279,7 +27279,7 @@ var _ json.UnmarshalerFrom = (*ClientSemanticTokensRequestOptions)(nil) func (s *ClientSemanticTokensRequestOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27293,14 +27293,14 @@ func (s *ClientSemanticTokensRequestOptions) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"range"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"range\"") + return errNull("range") } if err := json.UnmarshalDecode(dec, &s.Range); err != nil { return err } case `"full"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"full\"") + return errNull("full") } if err := json.UnmarshalDecode(dec, &s.Full); err != nil { return err @@ -27335,7 +27335,7 @@ func (s *ClientInlayHintResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) err missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27368,7 +27368,7 @@ func (s *ClientInlayHintResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) err if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27386,7 +27386,7 @@ var _ json.UnmarshalerFrom = (*ClientShowMessageActionItemOptions)(nil) func (s *ClientShowMessageActionItemOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27400,7 +27400,7 @@ func (s *ClientShowMessageActionItemOptions) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"additionalPropertiesSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"additionalPropertiesSupport\"") + return errNull("additionalPropertiesSupport") } if err := json.UnmarshalDecode(dec, &s.AdditionalPropertiesSupport); err != nil { return err @@ -27435,7 +27435,7 @@ func (s *CompletionItemTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27468,7 +27468,7 @@ func (s *CompletionItemTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27490,7 +27490,7 @@ func (s *ClientCompletionItemResolveOptions) UnmarshalJSONFrom(dec *json.Decoder missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27523,7 +27523,7 @@ func (s *ClientCompletionItemResolveOptions) UnmarshalJSONFrom(dec *json.Decoder if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27544,7 +27544,7 @@ func (s *ClientCompletionItemInsertTextModeOptions) UnmarshalJSONFrom(dec *json. missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27577,7 +27577,7 @@ func (s *ClientCompletionItemInsertTextModeOptions) UnmarshalJSONFrom(dec *json. if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27596,7 +27596,7 @@ var _ json.UnmarshalerFrom = (*ClientSignatureParameterInformationOptions)(nil) func (s *ClientSignatureParameterInformationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27610,7 +27610,7 @@ func (s *ClientSignatureParameterInformationOptions) UnmarshalJSONFrom(dec *json switch string(name) { case `"labelOffsetSupport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"labelOffsetSupport\"") + return errNull("labelOffsetSupport") } if err := json.UnmarshalDecode(dec, &s.LabelOffsetSupport); err != nil { return err @@ -27648,7 +27648,7 @@ func (s *ClientCodeActionKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27681,7 +27681,7 @@ func (s *ClientCodeActionKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27703,7 +27703,7 @@ func (s *ClientDiagnosticsTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27736,7 +27736,7 @@ func (s *ClientDiagnosticsTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingValueSet != 0 { missingProps = append(missingProps, "valueSet") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27753,7 +27753,7 @@ var _ json.UnmarshalerFrom = (*ClientSemanticTokensRequestFullDelta)(nil) func (s *ClientSemanticTokensRequestFullDelta) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27767,7 +27767,7 @@ func (s *ClientSemanticTokensRequestFullDelta) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"delta"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"delta\"") + return errNull("delta") } if err := json.UnmarshalDecode(dec, &s.Delta); err != nil { return err @@ -27802,7 +27802,7 @@ var _ json.UnmarshalerFrom = (*InitializationOptions)(nil) func (s *InitializationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27816,14 +27816,14 @@ func (s *InitializationOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"disablePushDiagnostics"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"disablePushDiagnostics\"") + return errNull("disablePushDiagnostics") } if err := json.UnmarshalDecode(dec, &s.DisablePushDiagnostics); err != nil { return err } case `"codeLensShowLocationsCommandName"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"codeLensShowLocationsCommandName\"") + return errNull("codeLensShowLocationsCommandName") } if err := json.UnmarshalDecode(dec, &s.CodeLensShowLocationsCommandName); err != nil { return err @@ -27881,7 +27881,7 @@ func (s *AutoImportFix) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -27926,7 +27926,7 @@ func (s *AutoImportFix) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"usagePosition"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"usagePosition\"") + return errNull("usagePosition") } if err := json.UnmarshalDecode(dec, &s.UsagePosition); err != nil { return err @@ -27957,7 +27957,7 @@ func (s *AutoImportFix) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingImportIndex != 0 { missingProps = append(missingProps, "importIndex") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -27985,7 +27985,7 @@ var _ json.UnmarshalerFrom = (*CompletionItemData)(nil) func (s *CompletionItemData) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28015,7 +28015,7 @@ func (s *CompletionItemData) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"autoImport"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"autoImport\"") + return errNull("autoImport") } if err := json.UnmarshalDecode(dec, &s.AutoImport); err != nil { return err @@ -28053,7 +28053,7 @@ func (s *CodeLensData) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28094,7 +28094,7 @@ func (s *CodeLensData) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingUri != 0 { missingProps = append(missingProps, "uri") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28116,7 +28116,7 @@ func (s *CustomClosingTagCompletion) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28149,7 +28149,7 @@ func (s *CustomClosingTagCompletion) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingNewText != 0 { missingProps = append(missingProps, "newText") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28179,7 +28179,7 @@ func (s *RequestFailureTelemetryEvent) UnmarshalJSONFrom(dec *json.Decoder) erro missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28204,7 +28204,7 @@ func (s *RequestFailureTelemetryEvent) UnmarshalJSONFrom(dec *json.Decoder) erro case `"properties"`: missing &^= missingProperties if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"properties\"") + return errNull("properties") } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err @@ -28231,7 +28231,7 @@ func (s *RequestFailureTelemetryEvent) UnmarshalJSONFrom(dec *json.Decoder) erro if missing&missingProperties != 0 { missingProps = append(missingProps, "properties") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28261,7 +28261,7 @@ func (s *RequestFailureTelemetryProperties) UnmarshalJSONFrom(dec *json.Decoder) missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28310,7 +28310,7 @@ func (s *RequestFailureTelemetryProperties) UnmarshalJSONFrom(dec *json.Decoder) if missing&missingStack != 0 { missingProps = append(missingProps, "stack") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28332,7 +28332,7 @@ func (s *ProfileParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28365,7 +28365,7 @@ func (s *ProfileParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingDir != 0 { missingProps = append(missingProps, "dir") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28387,7 +28387,7 @@ func (s *ProfileResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28420,7 +28420,7 @@ func (s *ProfileResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingFile != 0 { missingProps = append(missingProps, "file") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28436,7 +28436,7 @@ var _ json.UnmarshalerFrom = (*InitializeAPISessionParams)(nil) func (s *InitializeAPISessionParams) UnmarshalJSONFrom(dec *json.Decoder) error { if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28450,7 +28450,7 @@ func (s *InitializeAPISessionParams) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"pipe"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"pipe\"") + return errNull("pipe") } if err := json.UnmarshalDecode(dec, &s.Pipe); err != nil { return err @@ -28489,7 +28489,7 @@ func (s *InitializeAPISessionResult) UnmarshalJSONFrom(dec *json.Decoder) error missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28530,7 +28530,7 @@ func (s *InitializeAPISessionResult) UnmarshalJSONFrom(dec *json.Decoder) error if missing&missingPipe != 0 { missingProps = append(missingProps, "pipe") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28556,7 +28556,7 @@ func (s *ProjectInfoParams) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28589,7 +28589,7 @@ func (s *ProjectInfoParams) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingTextDocument != 0 { missingProps = append(missingProps, "textDocument") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28611,7 +28611,7 @@ func (s *ProjectInfoResult) UnmarshalJSONFrom(dec *json.Decoder) error { missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28644,7 +28644,7 @@ func (s *ProjectInfoResult) UnmarshalJSONFrom(dec *json.Decoder) error { if missing&missingConfigFilePath != 0 { missingProps = append(missingProps, "configFilePath") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -28693,7 +28693,7 @@ func (s *ColorPresentationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod missing := _missingLast - 1 if k := dec.PeekKind(); k != '{' { - return fmt.Errorf("expected object start, but encountered %v", k) + return errNotObject(k) } if _, err := dec.ReadToken(); err != nil { return err @@ -28707,7 +28707,7 @@ func (s *ColorPresentationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod switch string(name) { case `"workDoneProgress"`: if dec.PeekKind() == 'n' { - return fmt.Errorf("null value is not allowed for field \"workDoneProgress\"") + return errNull("workDoneProgress") } if err := json.UnmarshalDecode(dec, &s.WorkDoneProgress); err != nil { return err @@ -28733,7 +28733,7 @@ func (s *ColorPresentationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decod if missing&missingDocumentSelector != 0 { missingProps = append(missingProps, "documentSelector") } - return fmt.Errorf("missing required properties: %s", strings.Join(missingProps, ", ")) + return errMissing(missingProps) } return nil @@ -31208,7 +31208,7 @@ func (o *IntegerOrString) UnmarshalJSONFrom(dec *json.Decoder) error { o.String = new(string) return json.UnmarshalDecode(dec, o.String) default: - return fmt.Errorf("invalid IntegerOrString: expected number, string, got %v", dec.PeekKind()) + return errInvalidKind("IntegerOrString", dec.PeekKind()) } } @@ -31238,7 +31238,7 @@ func (o *DocumentSelectorOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.DocumentSelector = new([]TextDocumentFilterLanguageOrSchemeOrPattern) return json.UnmarshalDecode(dec, o.DocumentSelector) default: - return fmt.Errorf("invalid DocumentSelectorOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("DocumentSelectorOrNull", dec.PeekKind()) } } @@ -31275,7 +31275,7 @@ func (o *BooleanOrEmptyObject) UnmarshalJSONFrom(dec *json.Decoder) error { o.EmptyObject = new(struct{}) return json.UnmarshalDecode(dec, o.EmptyObject) default: - return fmt.Errorf("invalid BooleanOrEmptyObject: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrEmptyObject", dec.PeekKind()) } } @@ -31312,7 +31312,7 @@ func (o *BooleanOrSemanticTokensFullDelta) UnmarshalJSONFrom(dec *json.Decoder) o.SemanticTokensFullDelta = new(SemanticTokensFullDelta) return json.UnmarshalDecode(dec, o.SemanticTokensFullDelta) default: - return fmt.Errorf("invalid BooleanOrSemanticTokensFullDelta: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrSemanticTokensFullDelta", dec.PeekKind()) } } @@ -31403,7 +31403,7 @@ func (o *StringOrInlayHintLabelParts) UnmarshalJSONFrom(dec *json.Decoder) error o.InlayHintLabelParts = new([]*InlayHintLabelPart) return json.UnmarshalDecode(dec, o.InlayHintLabelParts) default: - return fmt.Errorf("invalid StringOrInlayHintLabelParts: expected string, array, got %v", dec.PeekKind()) + return errInvalidKind("StringOrInlayHintLabelParts", dec.PeekKind()) } } @@ -31439,7 +31439,7 @@ func (o *StringOrMarkupContent) UnmarshalJSONFrom(dec *json.Decoder) error { o.MarkupContent = new(MarkupContent) return json.UnmarshalDecode(dec, o.MarkupContent) default: - return fmt.Errorf("invalid StringOrMarkupContent: expected string, object, got %v", dec.PeekKind()) + return errInvalidKind("StringOrMarkupContent", dec.PeekKind()) } } @@ -31479,7 +31479,7 @@ func (o *FullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport) Unmars o.UnchangedDocumentDiagnosticReport = new(UnchangedDocumentDiagnosticReport) return json.Unmarshal(data, o.UnchangedDocumentDiagnosticReport) } - return fmt.Errorf("invalid FullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport: %s", data) + return errInvalidValue("FullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport", data) } type WorkspaceFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport struct { @@ -31518,7 +31518,7 @@ func (o *WorkspaceFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticRepor o.UnchangedDocumentDiagnosticReport = new(WorkspaceUnchangedDocumentDiagnosticReport) return json.Unmarshal(data, o.UnchangedDocumentDiagnosticReport) } - return fmt.Errorf("invalid WorkspaceFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport: %s", data) + return errInvalidValue("WorkspaceFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport", data) } type StringOrStringValue struct { @@ -31553,7 +31553,7 @@ func (o *StringOrStringValue) UnmarshalJSONFrom(dec *json.Decoder) error { o.StringValue = new(StringValue) return json.UnmarshalDecode(dec, o.StringValue) default: - return fmt.Errorf("invalid StringOrStringValue: expected string, object, got %v", dec.PeekKind()) + return errInvalidKind("StringOrStringValue", dec.PeekKind()) } } @@ -31583,7 +31583,7 @@ func (o *IntegerOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.Integer = new(int32) return json.UnmarshalDecode(dec, o.Integer) default: - return fmt.Errorf("invalid IntegerOrNull: expected null, number, got %v", dec.PeekKind()) + return errInvalidKind("IntegerOrNull", dec.PeekKind()) } } @@ -31613,7 +31613,7 @@ func (o *StringOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.String = new(string) return json.UnmarshalDecode(dec, o.String) default: - return fmt.Errorf("invalid StringOrNull: expected null, string, got %v", dec.PeekKind()) + return errInvalidKind("StringOrNull", dec.PeekKind()) } } @@ -31643,7 +31643,7 @@ func (o *DocumentUriOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.DocumentUri = new(DocumentUri) return json.UnmarshalDecode(dec, o.DocumentUri) default: - return fmt.Errorf("invalid DocumentUriOrNull: expected null, string, got %v", dec.PeekKind()) + return errInvalidKind("DocumentUriOrNull", dec.PeekKind()) } } @@ -31673,7 +31673,7 @@ func (o *WorkspaceFoldersOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.WorkspaceFolders = new([]*WorkspaceFolder) return json.UnmarshalDecode(dec, o.WorkspaceFolders) default: - return fmt.Errorf("invalid WorkspaceFoldersOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("WorkspaceFoldersOrNull", dec.PeekKind()) } } @@ -31709,7 +31709,7 @@ func (o *StringOrStrings) UnmarshalJSONFrom(dec *json.Decoder) error { o.Strings = new([]string) return json.UnmarshalDecode(dec, o.Strings) default: - return fmt.Errorf("invalid StringOrStrings: expected string, array, got %v", dec.PeekKind()) + return errInvalidKind("StringOrStrings", dec.PeekKind()) } } @@ -31787,7 +31787,7 @@ func (o *TextEditOrInsertReplaceEdit) UnmarshalJSONFrom(dec *json.Decoder) error o.TextEdit = new(TextEdit) return json.Unmarshal(data, o.TextEdit) } - return fmt.Errorf("invalid TextEditOrInsertReplaceEdit: %s", data) + return errInvalidValue("TextEditOrInsertReplaceEdit", data) } type MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings struct { @@ -31839,7 +31839,7 @@ func (o *MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings) Unmarsh o.MarkedStringWithLanguage = new(MarkedStringWithLanguage) return json.Unmarshal(data, o.MarkedStringWithLanguage) } - return fmt.Errorf("invalid MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings: %s", data) + return errInvalidValue("MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings", data) case '"': o.String = new(string) return json.UnmarshalDecode(dec, o.String) @@ -31847,7 +31847,7 @@ func (o *MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings) Unmarsh o.MarkedStrings = new([]StringOrMarkedStringWithLanguage) return json.UnmarshalDecode(dec, o.MarkedStrings) default: - return fmt.Errorf("invalid MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings: expected object, string, array, got %v", dec.PeekKind()) + return errInvalidKind("MarkupContentOrStringOrMarkedStringWithLanguageOrMarkedStrings", dec.PeekKind()) } } @@ -31877,7 +31877,7 @@ func (o *UintegerOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.Uinteger = new(uint32) return json.UnmarshalDecode(dec, o.Uinteger) default: - return fmt.Errorf("invalid UintegerOrNull: expected null, number, got %v", dec.PeekKind()) + return errInvalidKind("UintegerOrNull", dec.PeekKind()) } } @@ -31962,7 +31962,7 @@ func (o *WorkDoneProgressBeginOrReportOrEnd) UnmarshalJSONFrom(dec *json.Decoder o.End = new(WorkDoneProgressEnd) return json.Unmarshal(data, o.End) } - return fmt.Errorf("invalid WorkDoneProgressBeginOrReportOrEnd: %s", data) + return errInvalidValue("WorkDoneProgressBeginOrReportOrEnd", data) } type TextEditOrAnnotatedTextEditOrSnippetTextEdit struct { @@ -32042,7 +32042,7 @@ func (o *TextDocumentSyncOptionsOrKind) UnmarshalJSONFrom(dec *json.Decoder) err o.Kind = new(TextDocumentSyncKind) return json.UnmarshalDecode(dec, o.Kind) default: - return fmt.Errorf("invalid TextDocumentSyncOptionsOrKind: expected object, number, got %v", dec.PeekKind()) + return errInvalidKind("TextDocumentSyncOptionsOrKind", dec.PeekKind()) } } @@ -32079,7 +32079,7 @@ func (o *BooleanOrHoverOptions) UnmarshalJSONFrom(dec *json.Decoder) error { o.HoverOptions = new(HoverOptions) return json.UnmarshalDecode(dec, o.HoverOptions) default: - return fmt.Errorf("invalid BooleanOrHoverOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrHoverOptions", dec.PeekKind()) } } @@ -32130,7 +32130,7 @@ func (o *BooleanOrDeclarationOptionsOrDeclarationRegistrationOptions) UnmarshalJ return json.Unmarshal(data, o.DeclarationOptions) } default: - return fmt.Errorf("invalid BooleanOrDeclarationOptionsOrDeclarationRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDeclarationOptionsOrDeclarationRegistrationOptions", dec.PeekKind()) } } @@ -32167,7 +32167,7 @@ func (o *BooleanOrDefinitionOptions) UnmarshalJSONFrom(dec *json.Decoder) error o.DefinitionOptions = new(DefinitionOptions) return json.UnmarshalDecode(dec, o.DefinitionOptions) default: - return fmt.Errorf("invalid BooleanOrDefinitionOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDefinitionOptions", dec.PeekKind()) } } @@ -32218,7 +32218,7 @@ func (o *BooleanOrTypeDefinitionOptionsOrTypeDefinitionRegistrationOptions) Unma return json.Unmarshal(data, o.TypeDefinitionOptions) } default: - return fmt.Errorf("invalid BooleanOrTypeDefinitionOptionsOrTypeDefinitionRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrTypeDefinitionOptionsOrTypeDefinitionRegistrationOptions", dec.PeekKind()) } } @@ -32269,7 +32269,7 @@ func (o *BooleanOrImplementationOptionsOrImplementationRegistrationOptions) Unma return json.Unmarshal(data, o.ImplementationOptions) } default: - return fmt.Errorf("invalid BooleanOrImplementationOptionsOrImplementationRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrImplementationOptionsOrImplementationRegistrationOptions", dec.PeekKind()) } } @@ -32306,7 +32306,7 @@ func (o *BooleanOrReferenceOptions) UnmarshalJSONFrom(dec *json.Decoder) error { o.ReferenceOptions = new(ReferenceOptions) return json.UnmarshalDecode(dec, o.ReferenceOptions) default: - return fmt.Errorf("invalid BooleanOrReferenceOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrReferenceOptions", dec.PeekKind()) } } @@ -32343,7 +32343,7 @@ func (o *BooleanOrDocumentHighlightOptions) UnmarshalJSONFrom(dec *json.Decoder) o.DocumentHighlightOptions = new(DocumentHighlightOptions) return json.UnmarshalDecode(dec, o.DocumentHighlightOptions) default: - return fmt.Errorf("invalid BooleanOrDocumentHighlightOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDocumentHighlightOptions", dec.PeekKind()) } } @@ -32380,7 +32380,7 @@ func (o *BooleanOrDocumentSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) er o.DocumentSymbolOptions = new(DocumentSymbolOptions) return json.UnmarshalDecode(dec, o.DocumentSymbolOptions) default: - return fmt.Errorf("invalid BooleanOrDocumentSymbolOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDocumentSymbolOptions", dec.PeekKind()) } } @@ -32417,7 +32417,7 @@ func (o *BooleanOrCodeActionOptions) UnmarshalJSONFrom(dec *json.Decoder) error o.CodeActionOptions = new(CodeActionOptions) return json.UnmarshalDecode(dec, o.CodeActionOptions) default: - return fmt.Errorf("invalid BooleanOrCodeActionOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrCodeActionOptions", dec.PeekKind()) } } @@ -32468,7 +32468,7 @@ func (o *BooleanOrDocumentColorOptionsOrDocumentColorRegistrationOptions) Unmars return json.Unmarshal(data, o.DocumentColorOptions) } default: - return fmt.Errorf("invalid BooleanOrDocumentColorOptionsOrDocumentColorRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDocumentColorOptionsOrDocumentColorRegistrationOptions", dec.PeekKind()) } } @@ -32505,7 +32505,7 @@ func (o *BooleanOrWorkspaceSymbolOptions) UnmarshalJSONFrom(dec *json.Decoder) e o.WorkspaceSymbolOptions = new(WorkspaceSymbolOptions) return json.UnmarshalDecode(dec, o.WorkspaceSymbolOptions) default: - return fmt.Errorf("invalid BooleanOrWorkspaceSymbolOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrWorkspaceSymbolOptions", dec.PeekKind()) } } @@ -32542,7 +32542,7 @@ func (o *BooleanOrDocumentFormattingOptions) UnmarshalJSONFrom(dec *json.Decoder o.DocumentFormattingOptions = new(DocumentFormattingOptions) return json.UnmarshalDecode(dec, o.DocumentFormattingOptions) default: - return fmt.Errorf("invalid BooleanOrDocumentFormattingOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDocumentFormattingOptions", dec.PeekKind()) } } @@ -32579,7 +32579,7 @@ func (o *BooleanOrDocumentRangeFormattingOptions) UnmarshalJSONFrom(dec *json.De o.DocumentRangeFormattingOptions = new(DocumentRangeFormattingOptions) return json.UnmarshalDecode(dec, o.DocumentRangeFormattingOptions) default: - return fmt.Errorf("invalid BooleanOrDocumentRangeFormattingOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrDocumentRangeFormattingOptions", dec.PeekKind()) } } @@ -32616,7 +32616,7 @@ func (o *BooleanOrRenameOptions) UnmarshalJSONFrom(dec *json.Decoder) error { o.RenameOptions = new(RenameOptions) return json.UnmarshalDecode(dec, o.RenameOptions) default: - return fmt.Errorf("invalid BooleanOrRenameOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrRenameOptions", dec.PeekKind()) } } @@ -32667,7 +32667,7 @@ func (o *BooleanOrFoldingRangeOptionsOrFoldingRangeRegistrationOptions) Unmarsha return json.Unmarshal(data, o.FoldingRangeOptions) } default: - return fmt.Errorf("invalid BooleanOrFoldingRangeOptionsOrFoldingRangeRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrFoldingRangeOptionsOrFoldingRangeRegistrationOptions", dec.PeekKind()) } } @@ -32718,7 +32718,7 @@ func (o *BooleanOrSelectionRangeOptionsOrSelectionRangeRegistrationOptions) Unma return json.Unmarshal(data, o.SelectionRangeOptions) } default: - return fmt.Errorf("invalid BooleanOrSelectionRangeOptionsOrSelectionRangeRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrSelectionRangeOptionsOrSelectionRangeRegistrationOptions", dec.PeekKind()) } } @@ -32769,7 +32769,7 @@ func (o *BooleanOrCallHierarchyOptionsOrCallHierarchyRegistrationOptions) Unmars return json.Unmarshal(data, o.CallHierarchyOptions) } default: - return fmt.Errorf("invalid BooleanOrCallHierarchyOptionsOrCallHierarchyRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrCallHierarchyOptionsOrCallHierarchyRegistrationOptions", dec.PeekKind()) } } @@ -32820,7 +32820,7 @@ func (o *BooleanOrLinkedEditingRangeOptionsOrLinkedEditingRangeRegistrationOptio return json.Unmarshal(data, o.LinkedEditingRangeOptions) } default: - return fmt.Errorf("invalid BooleanOrLinkedEditingRangeOptionsOrLinkedEditingRangeRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrLinkedEditingRangeOptionsOrLinkedEditingRangeRegistrationOptions", dec.PeekKind()) } } @@ -32909,7 +32909,7 @@ func (o *BooleanOrMonikerOptionsOrMonikerRegistrationOptions) UnmarshalJSONFrom( return json.Unmarshal(data, o.MonikerOptions) } default: - return fmt.Errorf("invalid BooleanOrMonikerOptionsOrMonikerRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrMonikerOptionsOrMonikerRegistrationOptions", dec.PeekKind()) } } @@ -32960,7 +32960,7 @@ func (o *BooleanOrTypeHierarchyOptionsOrTypeHierarchyRegistrationOptions) Unmars return json.Unmarshal(data, o.TypeHierarchyOptions) } default: - return fmt.Errorf("invalid BooleanOrTypeHierarchyOptionsOrTypeHierarchyRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrTypeHierarchyOptionsOrTypeHierarchyRegistrationOptions", dec.PeekKind()) } } @@ -33011,7 +33011,7 @@ func (o *BooleanOrInlineValueOptionsOrInlineValueRegistrationOptions) UnmarshalJ return json.Unmarshal(data, o.InlineValueOptions) } default: - return fmt.Errorf("invalid BooleanOrInlineValueOptionsOrInlineValueRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrInlineValueOptionsOrInlineValueRegistrationOptions", dec.PeekKind()) } } @@ -33062,7 +33062,7 @@ func (o *BooleanOrInlayHintOptionsOrInlayHintRegistrationOptions) UnmarshalJSONF return json.Unmarshal(data, o.InlayHintOptions) } default: - return fmt.Errorf("invalid BooleanOrInlayHintOptionsOrInlayHintRegistrationOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrInlayHintOptionsOrInlayHintRegistrationOptions", dec.PeekKind()) } } @@ -33137,7 +33137,7 @@ func (o *BooleanOrInlineCompletionOptions) UnmarshalJSONFrom(dec *json.Decoder) o.InlineCompletionOptions = new(InlineCompletionOptions) return json.UnmarshalDecode(dec, o.InlineCompletionOptions) default: - return fmt.Errorf("invalid BooleanOrInlineCompletionOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrInlineCompletionOptions", dec.PeekKind()) } } @@ -33173,7 +33173,7 @@ func (o *PatternOrRelativePattern) UnmarshalJSONFrom(dec *json.Decoder) error { o.RelativePattern = new(RelativePattern) return json.UnmarshalDecode(dec, o.RelativePattern) default: - return fmt.Errorf("invalid PatternOrRelativePattern: expected string, object, got %v", dec.PeekKind()) + return errInvalidKind("PatternOrRelativePattern", dec.PeekKind()) } } @@ -33213,7 +33213,7 @@ func (o *RangeOrEditRangeWithInsertReplace) UnmarshalJSONFrom(dec *json.Decoder) o.EditRangeWithInsertReplace = new(EditRangeWithInsertReplace) return json.Unmarshal(data, o.EditRangeWithInsertReplace) } - return fmt.Errorf("invalid RangeOrEditRangeWithInsertReplace: %s", data) + return errInvalidValue("RangeOrEditRangeWithInsertReplace", data) } type BooleanOrSaveOptions struct { @@ -33249,7 +33249,7 @@ func (o *BooleanOrSaveOptions) UnmarshalJSONFrom(dec *json.Decoder) error { o.SaveOptions = new(SaveOptions) return json.UnmarshalDecode(dec, o.SaveOptions) default: - return fmt.Errorf("invalid BooleanOrSaveOptions: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrSaveOptions", dec.PeekKind()) } } @@ -33291,7 +33291,7 @@ func (o *TextDocumentContentOptionsOrRegistrationOptions) UnmarshalJSONFrom(dec o.RegistrationOptions = &vRegistrationOptions return nil } - return fmt.Errorf("invalid TextDocumentContentOptionsOrRegistrationOptions: %s", data) + return errInvalidValue("TextDocumentContentOptionsOrRegistrationOptions", data) } type StringOrTuple struct { @@ -33326,7 +33326,7 @@ func (o *StringOrTuple) UnmarshalJSONFrom(dec *json.Decoder) error { o.Tuple = new([2]uint32) return json.UnmarshalDecode(dec, o.Tuple) default: - return fmt.Errorf("invalid StringOrTuple: expected string, array, got %v", dec.PeekKind()) + return errInvalidKind("StringOrTuple", dec.PeekKind()) } } @@ -33363,7 +33363,7 @@ func (o *StringOrBoolean) UnmarshalJSONFrom(dec *json.Decoder) error { _, err := dec.ReadToken() return err default: - return fmt.Errorf("invalid StringOrBoolean: expected string, boolean, got %v", dec.PeekKind()) + return errInvalidKind("StringOrBoolean", dec.PeekKind()) } } @@ -33399,7 +33399,7 @@ func (o *WorkspaceFolderOrURI) UnmarshalJSONFrom(dec *json.Decoder) error { o.URI = new(URI) return json.UnmarshalDecode(dec, o.URI) default: - return fmt.Errorf("invalid WorkspaceFolderOrURI: expected object, string, got %v", dec.PeekKind()) + return errInvalidKind("WorkspaceFolderOrURI", dec.PeekKind()) } } @@ -33436,7 +33436,7 @@ func (o *BooleanOrClientSemanticTokensRequestFullDelta) UnmarshalJSONFrom(dec *j o.ClientSemanticTokensRequestFullDelta = new(ClientSemanticTokensRequestFullDelta) return json.UnmarshalDecode(dec, o.ClientSemanticTokensRequestFullDelta) default: - return fmt.Errorf("invalid BooleanOrClientSemanticTokensRequestFullDelta: expected boolean, object, got %v", dec.PeekKind()) + return errInvalidKind("BooleanOrClientSemanticTokensRequestFullDelta", dec.PeekKind()) } } @@ -33490,9 +33490,9 @@ func (o *LocationOrLocationsOrDefinitionLinksOrNull) UnmarshalJSONFrom(dec *json o.DefinitionLinks = &vDefinitionLinks return nil } - return fmt.Errorf("invalid LocationOrLocationsOrDefinitionLinksOrNull: %s", data) + return errInvalidValue("LocationOrLocationsOrDefinitionLinksOrNull", data) default: - return fmt.Errorf("invalid LocationOrLocationsOrDefinitionLinksOrNull: expected null, object, array, got %v", dec.PeekKind()) + return errInvalidKind("LocationOrLocationsOrDefinitionLinksOrNull", dec.PeekKind()) } } @@ -33526,7 +33526,7 @@ func (o *FoldingRangesOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.FoldingRanges = new([]*FoldingRange) return json.UnmarshalDecode(dec, o.FoldingRanges) default: - return fmt.Errorf("invalid FoldingRangesOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("FoldingRangesOrNull", dec.PeekKind()) } } @@ -33580,9 +33580,9 @@ func (o *LocationOrLocationsOrDeclarationLinksOrNull) UnmarshalJSONFrom(dec *jso o.DeclarationLinks = &vDeclarationLinks return nil } - return fmt.Errorf("invalid LocationOrLocationsOrDeclarationLinksOrNull: %s", data) + return errInvalidValue("LocationOrLocationsOrDeclarationLinksOrNull", data) default: - return fmt.Errorf("invalid LocationOrLocationsOrDeclarationLinksOrNull: expected null, object, array, got %v", dec.PeekKind()) + return errInvalidKind("LocationOrLocationsOrDeclarationLinksOrNull", dec.PeekKind()) } } @@ -33616,7 +33616,7 @@ func (o *SelectionRangesOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.SelectionRanges = new([]*SelectionRange) return json.UnmarshalDecode(dec, o.SelectionRanges) default: - return fmt.Errorf("invalid SelectionRangesOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("SelectionRangesOrNull", dec.PeekKind()) } } @@ -33646,7 +33646,7 @@ func (o *CallHierarchyItemsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.CallHierarchyItems = new([]*CallHierarchyItem) return json.UnmarshalDecode(dec, o.CallHierarchyItems) default: - return fmt.Errorf("invalid CallHierarchyItemsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("CallHierarchyItemsOrNull", dec.PeekKind()) } } @@ -33676,7 +33676,7 @@ func (o *CallHierarchyIncomingCallsOrNull) UnmarshalJSONFrom(dec *json.Decoder) o.CallHierarchyIncomingCalls = new([]*CallHierarchyIncomingCall) return json.UnmarshalDecode(dec, o.CallHierarchyIncomingCalls) default: - return fmt.Errorf("invalid CallHierarchyIncomingCallsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("CallHierarchyIncomingCallsOrNull", dec.PeekKind()) } } @@ -33706,7 +33706,7 @@ func (o *CallHierarchyOutgoingCallsOrNull) UnmarshalJSONFrom(dec *json.Decoder) o.CallHierarchyOutgoingCalls = new([]*CallHierarchyOutgoingCall) return json.UnmarshalDecode(dec, o.CallHierarchyOutgoingCalls) default: - return fmt.Errorf("invalid CallHierarchyOutgoingCallsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("CallHierarchyOutgoingCallsOrNull", dec.PeekKind()) } } @@ -33736,7 +33736,7 @@ func (o *SemanticTokensOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.SemanticTokens = new(SemanticTokens) return json.UnmarshalDecode(dec, o.SemanticTokens) default: - return fmt.Errorf("invalid SemanticTokensOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("SemanticTokensOrNull", dec.PeekKind()) } } @@ -33781,9 +33781,9 @@ func (o *SemanticTokensOrSemanticTokensDeltaOrNull) UnmarshalJSONFrom(dec *json. o.SemanticTokensDelta = new(SemanticTokensDelta) return json.Unmarshal(data, o.SemanticTokensDelta) } - return fmt.Errorf("invalid SemanticTokensOrSemanticTokensDeltaOrNull: %s", data) + return errInvalidValue("SemanticTokensOrSemanticTokensDeltaOrNull", data) default: - return fmt.Errorf("invalid SemanticTokensOrSemanticTokensDeltaOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("SemanticTokensOrSemanticTokensDeltaOrNull", dec.PeekKind()) } } @@ -33813,7 +33813,7 @@ func (o *LinkedEditingRangesOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.LinkedEditingRanges = new(LinkedEditingRanges) return json.UnmarshalDecode(dec, o.LinkedEditingRanges) default: - return fmt.Errorf("invalid LinkedEditingRangesOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("LinkedEditingRangesOrNull", dec.PeekKind()) } } @@ -33843,7 +33843,7 @@ func (o *WorkspaceEditOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.WorkspaceEdit = new(WorkspaceEdit) return json.UnmarshalDecode(dec, o.WorkspaceEdit) default: - return fmt.Errorf("invalid WorkspaceEditOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("WorkspaceEditOrNull", dec.PeekKind()) } } @@ -33873,7 +33873,7 @@ func (o *MonikersOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.Monikers = new([]*Moniker) return json.UnmarshalDecode(dec, o.Monikers) default: - return fmt.Errorf("invalid MonikersOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("MonikersOrNull", dec.PeekKind()) } } @@ -33903,7 +33903,7 @@ func (o *TypeHierarchyItemsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.TypeHierarchyItems = new([]*TypeHierarchyItem) return json.UnmarshalDecode(dec, o.TypeHierarchyItems) default: - return fmt.Errorf("invalid TypeHierarchyItemsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("TypeHierarchyItemsOrNull", dec.PeekKind()) } } @@ -33933,7 +33933,7 @@ func (o *InlineValuesOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.InlineValues = new([]InlineValueTextOrVariableLookupOrEvaluatableExpression) return json.UnmarshalDecode(dec, o.InlineValues) default: - return fmt.Errorf("invalid InlineValuesOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("InlineValuesOrNull", dec.PeekKind()) } } @@ -33963,7 +33963,7 @@ func (o *InlayHintsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.InlayHints = new([]*InlayHint) return json.UnmarshalDecode(dec, o.InlayHints) default: - return fmt.Errorf("invalid InlayHintsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("InlayHintsOrNull", dec.PeekKind()) } } @@ -34003,7 +34003,7 @@ func (o *RelatedFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport) o.UnchangedDocumentDiagnosticReport = new(RelatedUnchangedDocumentDiagnosticReport) return json.Unmarshal(data, o.UnchangedDocumentDiagnosticReport) } - return fmt.Errorf("invalid RelatedFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport: %s", data) + return errInvalidValue("RelatedFullDocumentDiagnosticReportOrUnchangedDocumentDiagnosticReport", data) } type InlineCompletionListOrItemsOrNull struct { @@ -34041,7 +34041,7 @@ func (o *InlineCompletionListOrItemsOrNull) UnmarshalJSONFrom(dec *json.Decoder) o.Items = new([]*InlineCompletionItem) return json.UnmarshalDecode(dec, o.Items) default: - return fmt.Errorf("invalid InlineCompletionListOrItemsOrNull: expected null, object, array, got %v", dec.PeekKind()) + return errInvalidKind("InlineCompletionListOrItemsOrNull", dec.PeekKind()) } } @@ -34071,7 +34071,7 @@ func (o *MessageActionItemOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.MessageActionItem = new(MessageActionItem) return json.UnmarshalDecode(dec, o.MessageActionItem) default: - return fmt.Errorf("invalid MessageActionItemOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("MessageActionItemOrNull", dec.PeekKind()) } } @@ -34101,7 +34101,7 @@ func (o *TextEditsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.TextEdits = new([]*TextEdit) return json.UnmarshalDecode(dec, o.TextEdits) default: - return fmt.Errorf("invalid TextEditsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("TextEditsOrNull", dec.PeekKind()) } } @@ -34140,7 +34140,7 @@ func (o *CompletionItemsOrListOrNull) UnmarshalJSONFrom(dec *json.Decoder) error o.List = new(CompletionList) return json.UnmarshalDecode(dec, o.List) default: - return fmt.Errorf("invalid CompletionItemsOrListOrNull: expected null, array, object, got %v", dec.PeekKind()) + return errInvalidKind("CompletionItemsOrListOrNull", dec.PeekKind()) } } @@ -34170,7 +34170,7 @@ func (o *HoverOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.Hover = new(Hover) return json.UnmarshalDecode(dec, o.Hover) default: - return fmt.Errorf("invalid HoverOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("HoverOrNull", dec.PeekKind()) } } @@ -34200,7 +34200,7 @@ func (o *SignatureHelpOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.SignatureHelp = new(SignatureHelp) return json.UnmarshalDecode(dec, o.SignatureHelp) default: - return fmt.Errorf("invalid SignatureHelpOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("SignatureHelpOrNull", dec.PeekKind()) } } @@ -34230,7 +34230,7 @@ func (o *LocationsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.Locations = new([]Location) return json.UnmarshalDecode(dec, o.Locations) default: - return fmt.Errorf("invalid LocationsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("LocationsOrNull", dec.PeekKind()) } } @@ -34264,7 +34264,7 @@ func (o *DocumentHighlightsOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.DocumentHighlights = new([]*DocumentHighlight) return json.UnmarshalDecode(dec, o.DocumentHighlights) default: - return fmt.Errorf("invalid DocumentHighlightsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("DocumentHighlightsOrNull", dec.PeekKind()) } } @@ -34311,9 +34311,9 @@ func (o *SymbolInformationsOrDocumentSymbolsOrNull) UnmarshalJSONFrom(dec *json. o.DocumentSymbols = &vDocumentSymbols return nil } - return fmt.Errorf("invalid SymbolInformationsOrDocumentSymbolsOrNull: %s", data) + return errInvalidValue("SymbolInformationsOrDocumentSymbolsOrNull", data) default: - return fmt.Errorf("invalid SymbolInformationsOrDocumentSymbolsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("SymbolInformationsOrDocumentSymbolsOrNull", dec.PeekKind()) } } @@ -34355,7 +34355,7 @@ func (o *CommandOrCodeAction) UnmarshalJSONFrom(dec *json.Decoder) error { o.CodeAction = &vCodeAction return nil } - return fmt.Errorf("invalid CommandOrCodeAction: %s", data) + return errInvalidValue("CommandOrCodeAction", data) } type CommandOrCodeActionArrayOrNull struct { @@ -34384,7 +34384,7 @@ func (o *CommandOrCodeActionArrayOrNull) UnmarshalJSONFrom(dec *json.Decoder) er o.CommandOrCodeActionArray = new([]CommandOrCodeAction) return json.UnmarshalDecode(dec, o.CommandOrCodeActionArray) default: - return fmt.Errorf("invalid CommandOrCodeActionArrayOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("CommandOrCodeActionArrayOrNull", dec.PeekKind()) } } @@ -34431,9 +34431,9 @@ func (o *SymbolInformationsOrWorkspaceSymbolsOrNull) UnmarshalJSONFrom(dec *json o.WorkspaceSymbols = &vWorkspaceSymbols return nil } - return fmt.Errorf("invalid SymbolInformationsOrWorkspaceSymbolsOrNull: %s", data) + return errInvalidValue("SymbolInformationsOrWorkspaceSymbolsOrNull", data) default: - return fmt.Errorf("invalid SymbolInformationsOrWorkspaceSymbolsOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("SymbolInformationsOrWorkspaceSymbolsOrNull", dec.PeekKind()) } } @@ -34463,7 +34463,7 @@ func (o *CodeLensesOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.CodeLenses = new([]*CodeLens) return json.UnmarshalDecode(dec, o.CodeLenses) default: - return fmt.Errorf("invalid CodeLensesOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("CodeLensesOrNull", dec.PeekKind()) } } @@ -34493,7 +34493,7 @@ func (o *DocumentLinksOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.DocumentLinks = new([]*DocumentLink) return json.UnmarshalDecode(dec, o.DocumentLinks) default: - return fmt.Errorf("invalid DocumentLinksOrNull: expected null, array, got %v", dec.PeekKind()) + return errInvalidKind("DocumentLinksOrNull", dec.PeekKind()) } } @@ -34545,9 +34545,9 @@ func (o *RangeOrPrepareRenamePlaceholderOrPrepareRenameDefaultBehaviorOrNull) Un o.PrepareRenameDefaultBehavior = new(PrepareRenameDefaultBehavior) return json.Unmarshal(data, o.PrepareRenameDefaultBehavior) } - return fmt.Errorf("invalid RangeOrPrepareRenamePlaceholderOrPrepareRenameDefaultBehaviorOrNull: %s", data) + return errInvalidValue("RangeOrPrepareRenamePlaceholderOrPrepareRenameDefaultBehaviorOrNull", data) default: - return fmt.Errorf("invalid RangeOrPrepareRenamePlaceholderOrPrepareRenameDefaultBehaviorOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("RangeOrPrepareRenamePlaceholderOrPrepareRenameDefaultBehaviorOrNull", dec.PeekKind()) } } @@ -34582,7 +34582,7 @@ func (o *LSPAnyOrNull) UnmarshalJSONFrom(dec *json.Decoder) error { o.LSPAny = &vLSPAny return nil } - return fmt.Errorf("invalid LSPAnyOrNull: %s", data) + return errInvalidValue("LSPAnyOrNull", data) } type CustomClosingTagCompletionOrNull struct { @@ -34611,7 +34611,7 @@ func (o *CustomClosingTagCompletionOrNull) UnmarshalJSONFrom(dec *json.Decoder) o.CustomClosingTagCompletion = new(CustomClosingTagCompletion) return json.UnmarshalDecode(dec, o.CustomClosingTagCompletion) default: - return fmt.Errorf("invalid CustomClosingTagCompletionOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("CustomClosingTagCompletionOrNull", dec.PeekKind()) } } @@ -34641,7 +34641,7 @@ func (o *RequestFailureTelemetryEventOrNull) UnmarshalJSONFrom(dec *json.Decoder o.RequestFailureTelemetryEvent = new(RequestFailureTelemetryEvent) return json.UnmarshalDecode(dec, o.RequestFailureTelemetryEvent) default: - return fmt.Errorf("invalid RequestFailureTelemetryEventOrNull: expected null, object, got %v", dec.PeekKind()) + return errInvalidKind("RequestFailureTelemetryEventOrNull", dec.PeekKind()) } } @@ -34692,7 +34692,7 @@ func (o *TextDocumentFilterLanguageOrSchemeOrPattern) UnmarshalJSONFrom(dec *jso o.Pattern = &vPattern return nil } - return fmt.Errorf("invalid TextDocumentFilterLanguageOrSchemeOrPattern: %s", data) + return errInvalidValue("TextDocumentFilterLanguageOrSchemeOrPattern", data) } type StringOrMarkedStringWithLanguage struct { @@ -34727,7 +34727,7 @@ func (o *StringOrMarkedStringWithLanguage) UnmarshalJSONFrom(dec *json.Decoder) o.MarkedStringWithLanguage = new(MarkedStringWithLanguage) return json.UnmarshalDecode(dec, o.MarkedStringWithLanguage) default: - return fmt.Errorf("invalid StringOrMarkedStringWithLanguage: expected string, object, got %v", dec.PeekKind()) + return errInvalidKind("StringOrMarkedStringWithLanguage", dec.PeekKind()) } } @@ -34795,7 +34795,7 @@ func (o *StringLiteralBegin) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"begin"` { - return fmt.Errorf("expected StringLiteralBegin value %s, got %s", `"begin"`, v) + return errLiteralMismatch("StringLiteralBegin", `"begin"`, v) } return nil } @@ -34817,7 +34817,7 @@ func (o *StringLiteralReport) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"report"` { - return fmt.Errorf("expected StringLiteralReport value %s, got %s", `"report"`, v) + return errLiteralMismatch("StringLiteralReport", `"report"`, v) } return nil } @@ -34839,7 +34839,7 @@ func (o *StringLiteralEnd) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"end"` { - return fmt.Errorf("expected StringLiteralEnd value %s, got %s", `"end"`, v) + return errLiteralMismatch("StringLiteralEnd", `"end"`, v) } return nil } @@ -34861,7 +34861,7 @@ func (o *StringLiteralCreate) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"create"` { - return fmt.Errorf("expected StringLiteralCreate value %s, got %s", `"create"`, v) + return errLiteralMismatch("StringLiteralCreate", `"create"`, v) } return nil } @@ -34883,7 +34883,7 @@ func (o *StringLiteralRename) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"rename"` { - return fmt.Errorf("expected StringLiteralRename value %s, got %s", `"rename"`, v) + return errLiteralMismatch("StringLiteralRename", `"rename"`, v) } return nil } @@ -34905,7 +34905,7 @@ func (o *StringLiteralDelete) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"delete"` { - return fmt.Errorf("expected StringLiteralDelete value %s, got %s", `"delete"`, v) + return errLiteralMismatch("StringLiteralDelete", `"delete"`, v) } return nil } @@ -34927,7 +34927,7 @@ func (o *StringLiteralFull) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"full"` { - return fmt.Errorf("expected StringLiteralFull value %s, got %s", `"full"`, v) + return errLiteralMismatch("StringLiteralFull", `"full"`, v) } return nil } @@ -34949,7 +34949,7 @@ func (o *StringLiteralUnchanged) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"unchanged"` { - return fmt.Errorf("expected StringLiteralUnchanged value %s, got %s", `"unchanged"`, v) + return errLiteralMismatch("StringLiteralUnchanged", `"unchanged"`, v) } return nil } @@ -34971,7 +34971,7 @@ func (o *StringLiteralSnippet) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"snippet"` { - return fmt.Errorf("expected StringLiteralSnippet value %s, got %s", `"snippet"`, v) + return errLiteralMismatch("StringLiteralSnippet", `"snippet"`, v) } return nil } @@ -34993,7 +34993,7 @@ func (o *StringLiteralLanguageServerErrorResponse) UnmarshalJSONFrom(dec *json.D return err } if string(v) != `"languageServer.errorResponse"` { - return fmt.Errorf("expected StringLiteralLanguageServerErrorResponse value %s, got %s", `"languageServer.errorResponse"`, v) + return errLiteralMismatch("StringLiteralLanguageServerErrorResponse", `"languageServer.errorResponse"`, v) } return nil } @@ -35015,7 +35015,7 @@ func (o *StringLiteralError) UnmarshalJSONFrom(dec *json.Decoder) error { return err } if string(v) != `"error"` { - return fmt.Errorf("expected StringLiteralError value %s, got %s", `"error"`, v) + return errLiteralMismatch("StringLiteralError", `"error"`, v) } return nil } From b555a3c29bcf87c897b8463557678544bddc4577 Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:16:21 -0700 Subject: [PATCH 6/7] typo --- internal/lsp/lsproto/lsp_json_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go index 69b8bde6040..e5c642a39f5 100644 --- a/internal/lsp/lsproto/lsp_json_test.go +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -620,7 +620,7 @@ func TestUnmarshalDiscriminatorUnion(t *testing.T) { }) } -func TestUnmarshalPresencDiscriminatorUnion(t *testing.T) { +func TestUnmarshalPresenceDiscriminatorUnion(t *testing.T) { t.Parallel() t.Run("TextEdit via range field", func(t *testing.T) { From d27ef16fb37581e1b63ae83dbe71ca8a90f8302e Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:28:14 -0700 Subject: [PATCH 7/7] Fix maps/slices, comment --- internal/lsp/lsproto/_generate/generate.mts | 15 +- internal/lsp/lsproto/lsp_generated.go | 165 ++++++++++++++++++++ internal/lsp/lsproto/lsp_json_test.go | 12 ++ 3 files changed, 185 insertions(+), 7 deletions(-) diff --git a/internal/lsp/lsproto/_generate/generate.mts b/internal/lsp/lsproto/_generate/generate.mts index 9a737ed01e9..4d81e4fe818 100755 --- a/internal/lsp/lsproto/_generate/generate.mts +++ b/internal/lsp/lsproto/_generate/generate.mts @@ -1249,7 +1249,8 @@ function goKindCasesForJsonKind(kind: string): string { /** * Checks if a meta model Type can represent a JSON null value. - * Used to determine if null should be rejected for optional pointer fields. + * Used to determine whether to reject explicit JSON `null` for any field + * that can otherwise decode `null` without a type error. */ function typeCanBeNull(type: Type): boolean { switch (type.kind) { @@ -1761,12 +1762,12 @@ function generateCode() { if (p.omitzeroValue) return false; return true; }) || []; - // Check if any pointer fields need null rejection + // Check if any fields need null rejection const hasNullRejectableFields = structure.properties?.some(p => { if (p.omitzeroValue) return false; if (typeCanBeNull(p.type)) return false; const resolved = resolveType(p.type); - return p.optional || resolved.needsPointer; + return p.optional || resolved.needsPointer || resolved.name.startsWith("[]") || resolved.name.startsWith("map["); }) || false; if ((requiredProps.length > 0 || hasNullRejectableFields) && structure.name !== "Registration") { writeLine(`\tvar _ json.UnmarshalerFrom = (*${structure.name})(nil)`); @@ -1806,11 +1807,11 @@ function generateCode() { if (!prop.optional && !prop.omitzeroValue) { writeLine(`\t\t\tmissing &^= missing${titleCase(prop.name)}`); } - // Reject null for pointer fields whose types cannot represent null. - // A field is a pointer when it's optional or when the type has needsPointer (struct references). + // Reject null for fields whose types cannot represent null but whose Go types + // silently accept it (pointers, slices, maps). const resolvedType = resolveType(prop.type); - const isPointerField = (prop.optional || resolvedType.needsPointer) && !prop.omitzeroValue; - if (isPointerField && !typeCanBeNull(prop.type)) { + const goTypeAcceptsNull = (prop.optional || resolvedType.needsPointer || resolvedType.name.startsWith("[]") || resolvedType.name.startsWith("map[")) && !prop.omitzeroValue; + if (goTypeAcceptsNull && !typeCanBeNull(prop.type)) { writeLine(`\t\t\tif dec.PeekKind() == 'n' {`); writeLine(`\t\t\t\treturn errNull("${prop.name}")`); writeLine(`\t\t\t}`); diff --git a/internal/lsp/lsproto/lsp_generated.go b/internal/lsp/lsproto/lsp_generated.go index 865fa9b1c9a..9f920cd9324 100644 --- a/internal/lsp/lsproto/lsp_generated.go +++ b/internal/lsp/lsproto/lsp_generated.go @@ -578,6 +578,9 @@ func (s *ConfigurationParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -1610,6 +1613,9 @@ func (s *SelectionRangeParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"positions"`: missing &^= missingPositions + if dec.PeekKind() == 'n' { + return errNull("positions") + } if err := json.UnmarshalDecode(dec, &s.Positions); err != nil { return err } @@ -2322,6 +2328,9 @@ func (s *CallHierarchyIncomingCall) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"fromRanges"`: missing &^= missingFromRanges + if dec.PeekKind() == 'n' { + return errNull("fromRanges") + } if err := json.UnmarshalDecode(dec, &s.FromRanges); err != nil { return err } @@ -2476,6 +2485,9 @@ func (s *CallHierarchyOutgoingCall) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"fromRanges"`: missing &^= missingFromRanges + if dec.PeekKind() == 'n' { + return errNull("fromRanges") + } if err := json.UnmarshalDecode(dec, &s.FromRanges); err != nil { return err } @@ -2627,6 +2639,9 @@ func (s *SemanticTokens) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"data"`: missing &^= missingData + if dec.PeekKind() == 'n' { + return errNull("data") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -2681,6 +2696,9 @@ func (s *SemanticTokensPartialResult) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"data"`: missing &^= missingData + if dec.PeekKind() == 'n' { + return errNull("data") + } if err := json.UnmarshalDecode(dec, &s.Data); err != nil { return err } @@ -2950,6 +2968,9 @@ func (s *SemanticTokensDelta) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"edits"`: missing &^= missingEdits + if dec.PeekKind() == 'n' { + return errNull("edits") + } if err := json.UnmarshalDecode(dec, &s.Edits); err != nil { return err } @@ -3004,6 +3025,9 @@ func (s *SemanticTokensDeltaPartialResult) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"edits"`: missing &^= missingEdits + if dec.PeekKind() == 'n' { + return errNull("edits") + } if err := json.UnmarshalDecode(dec, &s.Edits); err != nil { return err } @@ -3395,6 +3419,9 @@ func (s *LinkedEditingRanges) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"ranges"`: missing &^= missingRanges + if dec.PeekKind() == 'n' { + return errNull("ranges") + } if err := json.UnmarshalDecode(dec, &s.Ranges); err != nil { return err } @@ -3535,6 +3562,9 @@ func (s *CreateFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"files"`: missing &^= missingFiles + if dec.PeekKind() == 'n' { + return errNull("files") + } if err := json.UnmarshalDecode(dec, &s.Files); err != nil { return err } @@ -3680,6 +3710,9 @@ func (s *FileOperationRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) switch string(name) { case `"filters"`: missing &^= missingFilters + if dec.PeekKind() == 'n' { + return errNull("filters") + } if err := json.UnmarshalDecode(dec, &s.Filters); err != nil { return err } @@ -3739,6 +3772,9 @@ func (s *RenameFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"files"`: missing &^= missingFiles + if dec.PeekKind() == 'n' { + return errNull("files") + } if err := json.UnmarshalDecode(dec, &s.Files); err != nil { return err } @@ -3797,6 +3833,9 @@ func (s *DeleteFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"files"`: missing &^= missingFiles + if dec.PeekKind() == 'n' { + return errNull("files") + } if err := json.UnmarshalDecode(dec, &s.Files); err != nil { return err } @@ -5175,6 +5214,9 @@ func (s *DocumentDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Deco switch string(name) { case `"relatedDocuments"`: missing &^= missingRelatedDocuments + if dec.PeekKind() == 'n' { + return errNull("relatedDocuments") + } if err := json.UnmarshalDecode(dec, &s.RelatedDocuments); err != nil { return err } @@ -5436,6 +5478,9 @@ func (s *WorkspaceDiagnosticParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"previousResultIds"`: missing &^= missingPreviousResultIds + if dec.PeekKind() == 'n' { + return errNull("previousResultIds") + } if err := json.UnmarshalDecode(dec, &s.PreviousResultIds); err != nil { return err } @@ -5492,6 +5537,9 @@ func (s *WorkspaceDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -5548,6 +5596,9 @@ func (s *WorkspaceDiagnosticReportPartialResult) UnmarshalJSONFrom(dec *json.Dec switch string(name) { case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -5712,6 +5763,9 @@ func (s *InlineCompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -6065,6 +6119,9 @@ func (s *TextDocumentContentRegistrationOptions) UnmarshalJSONFrom(dec *json.Dec switch string(name) { case `"schemes"`: missing &^= missingSchemes + if dec.PeekKind() == 'n' { + return errNull("schemes") + } if err := json.UnmarshalDecode(dec, &s.Schemes); err != nil { return err } @@ -6184,6 +6241,9 @@ func (s *RegistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"registrations"`: missing &^= missingRegistrations + if dec.PeekKind() == 'n' { + return errNull("registrations") + } if err := json.UnmarshalDecode(dec, &s.Registrations); err != nil { return err } @@ -6237,6 +6297,9 @@ func (s *UnregistrationParams) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"unregisterations"`: missing &^= missingUnregisterations + if dec.PeekKind() == 'n' { + return errNull("unregisterations") + } if err := json.UnmarshalDecode(dec, &s.Unregisterations); err != nil { return err } @@ -7033,6 +7096,9 @@ func (s *DidChangeTextDocumentParams) UnmarshalJSONFrom(dec *json.Decoder) error } case `"contentChanges"`: missing &^= missingContentChanges + if dec.PeekKind() == 'n' { + return errNull("contentChanges") + } if err := json.UnmarshalDecode(dec, &s.ContentChanges); err != nil { return err } @@ -7494,6 +7560,9 @@ func (s *DidChangeWatchedFilesParams) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"changes"`: missing &^= missingChanges + if dec.PeekKind() == 'n' { + return errNull("changes") + } if err := json.UnmarshalDecode(dec, &s.Changes); err != nil { return err } @@ -7549,6 +7618,9 @@ func (s *DidChangeWatchedFilesRegistrationOptions) UnmarshalJSONFrom(dec *json.D switch string(name) { case `"watchers"`: missing &^= missingWatchers + if dec.PeekKind() == 'n' { + return errNull("watchers") + } if err := json.UnmarshalDecode(dec, &s.Watchers); err != nil { return err } @@ -7625,6 +7697,9 @@ func (s *PublishDiagnosticsParams) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"diagnostics"`: missing &^= missingDiagnostics + if dec.PeekKind() == 'n' { + return errNull("diagnostics") + } if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { return err } @@ -8169,6 +8244,9 @@ func (s *CompletionList) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -8695,6 +8773,9 @@ func (s *SignatureHelp) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"signatures"`: missing &^= missingSignatures + if dec.PeekKind() == 'n' { + return errNull("signatures") + } if err := json.UnmarshalDecode(dec, &s.Signatures); err != nil { return err } @@ -11424,6 +11505,9 @@ func (s *DocumentRangesFormattingParams) UnmarshalJSONFrom(dec *json.Decoder) er } case `"ranges"`: missing &^= missingRanges + if dec.PeekKind() == 'n' { + return errNull("ranges") + } if err := json.UnmarshalDecode(dec, &s.Ranges); err != nil { return err } @@ -12022,6 +12106,9 @@ func (s *ExecuteCommandRegistrationOptions) UnmarshalJSONFrom(dec *json.Decoder) } case `"commands"`: missing &^= missingCommands + if dec.PeekKind() == 'n' { + return errNull("commands") + } if err := json.UnmarshalDecode(dec, &s.Commands); err != nil { return err } @@ -13219,11 +13306,17 @@ func (s *WorkspaceFoldersChangeEvent) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"added"`: missing &^= missingAdded + if dec.PeekKind() == 'n' { + return errNull("added") + } if err := json.UnmarshalDecode(dec, &s.Added); err != nil { return err } case `"removed"`: missing &^= missingRemoved + if dec.PeekKind() == 'n' { + return errNull("removed") + } if err := json.UnmarshalDecode(dec, &s.Removed); err != nil { return err } @@ -14065,6 +14158,9 @@ func (s *TextDocumentEdit) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"edits"`: missing &^= missingEdits + if dec.PeekKind() == 'n' { + return errNull("edits") + } if err := json.UnmarshalDecode(dec, &s.Edits); err != nil { return err } @@ -15377,6 +15473,9 @@ func (s *RelatedFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decode } case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -15554,6 +15653,9 @@ func (s *FullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Decoder) erro } case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -16137,6 +16239,9 @@ func (s *TextDocumentContentOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"schemes"`: missing &^= missingSchemes + if dec.PeekKind() == 'n' { + return errNull("schemes") + } if err := json.UnmarshalDecode(dec, &s.Schemes); err != nil { return err } @@ -18958,6 +19063,9 @@ func (s *CodeActionContext) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"diagnostics"`: missing &^= missingDiagnostics + if dec.PeekKind() == 'n' { + return errNull("diagnostics") + } if err := json.UnmarshalDecode(dec, &s.Diagnostics); err != nil { return err } @@ -19842,6 +19950,9 @@ func (s *ExecuteCommandOptions) UnmarshalJSONFrom(dec *json.Decoder) error { } case `"commands"`: missing &^= missingCommands + if dec.PeekKind() == 'n' { + return errNull("commands") + } if err := json.UnmarshalDecode(dec, &s.Commands); err != nil { return err } @@ -19948,11 +20059,17 @@ func (s *SemanticTokensLegend) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"tokenTypes"`: missing &^= missingTokenTypes + if dec.PeekKind() == 'n' { + return errNull("tokenTypes") + } if err := json.UnmarshalDecode(dec, &s.TokenTypes); err != nil { return err } case `"tokenModifiers"`: missing &^= missingTokenModifiers + if dec.PeekKind() == 'n' { + return errNull("tokenModifiers") + } if err := json.UnmarshalDecode(dec, &s.TokenModifiers); err != nil { return err } @@ -20638,6 +20755,9 @@ func (s *WorkspaceFullDocumentDiagnosticReport) UnmarshalJSONFrom(dec *json.Deco } case `"items"`: missing &^= missingItems + if dec.PeekKind() == 'n' { + return errNull("items") + } if err := json.UnmarshalDecode(dec, &s.Items); err != nil { return err } @@ -25514,16 +25634,25 @@ func (s *SemanticTokensClientCapabilities) UnmarshalJSONFrom(dec *json.Decoder) } case `"tokenTypes"`: missing &^= missingTokenTypes + if dec.PeekKind() == 'n' { + return errNull("tokenTypes") + } if err := json.UnmarshalDecode(dec, &s.TokenTypes); err != nil { return err } case `"tokenModifiers"`: missing &^= missingTokenModifiers + if dec.PeekKind() == 'n' { + return errNull("tokenModifiers") + } if err := json.UnmarshalDecode(dec, &s.TokenModifiers); err != nil { return err } case `"formats"`: missing &^= missingFormats + if dec.PeekKind() == 'n' { + return errNull("formats") + } if err := json.UnmarshalDecode(dec, &s.Formats); err != nil { return err } @@ -26121,6 +26250,9 @@ func (s *StaleRequestSupportOptions) UnmarshalJSONFrom(dec *json.Decoder) error } case `"retryOnContentModified"`: missing &^= missingRetryOnContentModified + if dec.PeekKind() == 'n' { + return errNull("retryOnContentModified") + } if err := json.UnmarshalDecode(dec, &s.RetryOnContentModified); err != nil { return err } @@ -26421,6 +26553,9 @@ func (s *ClientSymbolTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } @@ -26477,6 +26612,9 @@ func (s *ClientSymbolResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return errNull("properties") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } @@ -26955,6 +27093,9 @@ func (s *ClientCodeActionResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) er switch string(name) { case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return errNull("properties") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } @@ -27010,6 +27151,9 @@ func (s *CodeActionTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } @@ -27065,6 +27209,9 @@ func (s *ClientCodeLensResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) erro switch string(name) { case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return errNull("properties") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } @@ -27349,6 +27496,9 @@ func (s *ClientInlayHintResolveOptions) UnmarshalJSONFrom(dec *json.Decoder) err switch string(name) { case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return errNull("properties") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } @@ -27449,6 +27599,9 @@ func (s *CompletionItemTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error { switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } @@ -27504,6 +27657,9 @@ func (s *ClientCompletionItemResolveOptions) UnmarshalJSONFrom(dec *json.Decoder switch string(name) { case `"properties"`: missing &^= missingProperties + if dec.PeekKind() == 'n' { + return errNull("properties") + } if err := json.UnmarshalDecode(dec, &s.Properties); err != nil { return err } @@ -27558,6 +27714,9 @@ func (s *ClientCompletionItemInsertTextModeOptions) UnmarshalJSONFrom(dec *json. switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } @@ -27662,6 +27821,9 @@ func (s *ClientCodeActionKindOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } @@ -27717,6 +27879,9 @@ func (s *ClientDiagnosticsTagOptions) UnmarshalJSONFrom(dec *json.Decoder) error switch string(name) { case `"valueSet"`: missing &^= missingValueSet + if dec.PeekKind() == 'n' { + return errNull("valueSet") + } if err := json.UnmarshalDecode(dec, &s.ValueSet); err != nil { return err } diff --git a/internal/lsp/lsproto/lsp_json_test.go b/internal/lsp/lsproto/lsp_json_test.go index e5c642a39f5..a4b67014fc3 100644 --- a/internal/lsp/lsproto/lsp_json_test.go +++ b/internal/lsp/lsproto/lsp_json_test.go @@ -89,6 +89,18 @@ func TestUnmarshalRejectsNullForOptionalNonNullableFields(t *testing.T) { target: new(InitializeResult), errText: `null value is not allowed for field "capabilities"`, }, + { + name: "SemanticTokens data null (required slice)", + input: `{"data": null}`, + target: new(SemanticTokens), + errText: `null value is not allowed for field "data"`, + }, + { + name: "TextDocumentEdit edits null (required slice)", + input: `{"textDocument": {"uri": "file:///a.ts", "version": 1}, "edits": null}`, + target: new(TextDocumentEdit), + errText: `null value is not allowed for field "edits"`, + }, } for _, tt := range tests {