aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJongwook Choi <wookayin@gmail.com>2023-12-11 02:25:17 -0500
committerMathias Fußenegger <mfussenegger@users.noreply.github.com>2023-12-27 10:48:06 +0100
commit6c35fb421e888d0cbdfac07a5ff4579c9be7f0ec (patch)
tree03662f39cca7bcc11c7d1d8bb862dc9864828e87
parent2f43af6423193eb52e9a6635034f8c79f40f1706 (diff)
downloadrneovim-6c35fb421e888d0cbdfac07a5ff4579c9be7f0ec.tar.gz
rneovim-6c35fb421e888d0cbdfac07a5ff4579c9be7f0ec.tar.bz2
rneovim-6c35fb421e888d0cbdfac07a5ff4579c9be7f0ec.zip
fix(gen_lsp.lua): improve type name, and fix wrong type inheritance
Style improvements: 1. Anonymous classes derived from `StructureLiteralType` should have a better name. The class name can be also nested. Examples: ```diff ----@field serverInfo? anonym1 +---@field serverInfo? lsp._anonym1.serverInfo ``` ```diff ----@field insertTextModeSupport? anonym26 +---@field insertTextModeSupport? lsp._anonym26.completionItem.insertTextModeSupport ``` 2. Add one separate empty line before each `@field` definition. Without these, empty lines the doc can look confusing because descriptions also may contain empty lines. See `lsp.CompletionItem` for example: ```lua ---The kind of this completion item. Based of the kind ---an icon is chosen by the editor. ---@field kind? lsp.CompletionItemKind ---Tags for this completion item. --- ---@since 3.15.0 ---@field tags? lsp.CompletionItemTag[] ``` It might feel like "Tags for this completion item" belongs to `kind`, not `tags` due to the lack of separator blank lines. The following (after this commit) should look much better: ```diff ---The kind of this completion item. Based of the kind ---an icon is chosen by the editor. ---@field kind? lsp.CompletionItemKind +--- ---Tags for this completion item. --- ---@since 3.15.0 ---@field tags? lsp.CompletionItemTag[] ``` 3. Escape some LSP-specific annotations that can't be recognized by lua-ls. It'd be better to make them visible in LSP hover doc windows. Example: `@sample ...`. Fixes: 1. A type may extend from more than one base types (as well as mixin types). Previously only the first base class was being considered, resulting incomplete base classes for `@class` definitions. Example: `InlayHintOptions` (should have both of `resolveProvider` and `workDoneProgress`, the latter is from `WorkDoneProgressOptions`) ```diff ----@class lsp.InlayHintOptions +---@class lsp.InlayHintOptions: lsp.WorkDoneProgressOptions ``` 2. Remove `<200b>` (zero-width space) unicode characters. 3. Add the missing newline at EOF.
-rw-r--r--runtime/lua/vim/lsp/_meta/protocol.lua1182
-rw-r--r--scripts/gen_lsp.lua98
2 files changed, 1045 insertions, 235 deletions
diff --git a/runtime/lua/vim/lsp/_meta/protocol.lua b/runtime/lua/vim/lsp/_meta/protocol.lua
index dc7970c1b4..4c053cb57e 100644
--- a/runtime/lua/vim/lsp/_meta/protocol.lua
+++ b/runtime/lua/vim/lsp/_meta/protocol.lua
@@ -21,99 +21,123 @@ error('Cannot require a meta file')
---Represents a location inside a resource, such as a line
---inside a text file.
---@class lsp.Location
+---
---@field uri lsp.DocumentUri
+---
---@field range lsp.Range
----@class lsp.ImplementationRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.ImplementationRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.ImplementationOptions, lsp.StaticRegistrationOptions
---@class lsp.TypeDefinitionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
----@class lsp.TypeDefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.TypeDefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.TypeDefinitionOptions, lsp.StaticRegistrationOptions
---A workspace folder inside a client.
---@class lsp.WorkspaceFolder
+---
---The associated URI for this workspace folder.
---@field uri lsp.URI
+---
---The name of the workspace folder. Used to refer to this
---workspace folder in the user interface.
---@field name string
---The parameters of a `workspace/didChangeWorkspaceFolders` notification.
---@class lsp.DidChangeWorkspaceFoldersParams
+---
---The actual workspace folder change event.
---@field event lsp.WorkspaceFoldersChangeEvent
---The parameters of a configuration request.
---@class lsp.ConfigurationParams
+---
---@field items lsp.ConfigurationItem[]
---Parameters for a {@link DocumentColorRequest}.
----@class lsp.DocumentColorParams
+---@class lsp.DocumentColorParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
---Represents a color range from a document.
---@class lsp.ColorInformation
+---
---The range in the document where this color appears.
---@field range lsp.Range
+---
---The actual color value for this color range.
---@field color lsp.Color
----@class lsp.DocumentColorRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.DocumentColorRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentColorOptions, lsp.StaticRegistrationOptions
---Parameters for a {@link ColorPresentationRequest}.
----@class lsp.ColorPresentationParams
+---@class lsp.ColorPresentationParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The color to request presentations for.
---@field color lsp.Color
+---
---The range where the color would be inserted. Serves as a context.
---@field range lsp.Range
---@class lsp.ColorPresentation
+---
---The label of this color presentation. It will be shown on the color
---picker header. By default this is also the text that is inserted when selecting
---this color presentation.
---@field label string
+---
---An {@link TextEdit edit} which is applied to a document when selecting
---this presentation for the color. When `falsy` the {@link ColorPresentation.label label}
---is used.
---@field textEdit? lsp.TextEdit
+---
---An optional array of additional {@link TextEdit text edits} that are applied when
---selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves.
---@field additionalTextEdits? lsp.TextEdit[]
---@class lsp.WorkDoneProgressOptions
+---
---@field workDoneProgress? boolean
---General text document registration options.
---@class lsp.TextDocumentRegistrationOptions
+---
---A document selector to identify the scope of the registration. If set to null
---the document selector provided on the client side will be used.
---@field documentSelector lsp.DocumentSelector|lsp.null
---Parameters for a {@link FoldingRangeRequest}.
----@class lsp.FoldingRangeParams
+---@class lsp.FoldingRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
---Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
---than the number of lines in the document. Clients are free to ignore invalid ranges.
---@class lsp.FoldingRange
+---
---The zero-based start line of the range to fold. The folded area starts after the line's last character.
---To be valid, the end must be zero or larger and smaller than the number of lines in the document.
---@field startLine uinteger
+---
---The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
---@field startCharacter? uinteger
+---
---The zero-based end line of the range to fold. The folded area ends with the line's last character.
---To be valid, the end must be zero or larger and smaller than the number of lines in the document.
---@field endLine uinteger
+---
---The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
---@field endCharacter? uinteger
+---
---Describes the kind of the folding range such as `comment' or 'region'. The kind
---is used to categorize folding ranges and used by commands like 'Fold all comments'.
---See {@link FoldingRangeKind} for an enumeration of standardized kinds.
---@field kind? lsp.FoldingRangeKind
+---
---The text that the client should show when the specified range is
---collapsed. If not defined or not supported by the client, a default
---will be chosen by the client.
@@ -121,34 +145,40 @@ error('Cannot require a meta file')
---@since 3.17.0
---@field collapsedText? string
----@class lsp.FoldingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.FoldingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.FoldingRangeOptions, lsp.StaticRegistrationOptions
---@class lsp.DeclarationParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
----@class lsp.DeclarationRegistrationOptions: lsp.DeclarationOptions, lsp.StaticRegistrationOptions
+---@class lsp.DeclarationRegistrationOptions: lsp.DeclarationOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---A parameter literal used in selection range requests.
----@class lsp.SelectionRangeParams
+---@class lsp.SelectionRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The positions inside the text document.
---@field positions lsp.Position[]
---A selection range represents a part of a selection hierarchy. A selection range
---may have a parent selection range that contains it.
---@class lsp.SelectionRange
+---
---The {@link Range range} of this selection range.
---@field range lsp.Range
+---
---The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
---@field parent? lsp.SelectionRange
----@class lsp.SelectionRangeRegistrationOptions: lsp.SelectionRangeOptions, lsp.StaticRegistrationOptions
+---@class lsp.SelectionRangeRegistrationOptions: lsp.SelectionRangeOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---@class lsp.WorkDoneProgressCreateParams
+---
---The token to be used to report progress.
---@field token lsp.ProgressToken
---@class lsp.WorkDoneProgressCancelParams
+---
---The token to be used to report progress.
---@field token lsp.ProgressToken
@@ -162,21 +192,29 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.CallHierarchyItem
+---
---The name of this item.
---@field name string
+---
---The kind of this item.
---@field kind lsp.SymbolKind
+---
---Tags for this item.
---@field tags? lsp.SymbolTag[]
+---
---More detail for this item, e.g. the signature of a function.
---@field detail? string
+---
---The resource identifier of this item.
---@field uri lsp.DocumentUri
+---
---The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.
---@field range lsp.Range
+---
---The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function.
---Must be contained by the {@link CallHierarchyItem.range `range`}.
---@field selectionRange lsp.Range
+---
---A data entry field that is preserved between a call hierarchy prepare and
---incoming calls or outgoing calls requests.
---@field data? lsp.LSPAny
@@ -184,20 +222,23 @@ error('Cannot require a meta file')
---Call hierarchy options used during static or dynamic registration.
---
---@since 3.16.0
----@class lsp.CallHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.CallHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CallHierarchyOptions, lsp.StaticRegistrationOptions
---The parameter of a `callHierarchy/incomingCalls` request.
---
---@since 3.16.0
----@class lsp.CallHierarchyIncomingCallsParams
+---@class lsp.CallHierarchyIncomingCallsParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---@field item lsp.CallHierarchyItem
---Represents an incoming call, e.g. a caller of a method or constructor.
---
---@since 3.16.0
---@class lsp.CallHierarchyIncomingCall
+---
---The item that makes the call.
---@field from lsp.CallHierarchyItem
+---
---The ranges at which the calls appear. This is relative to the caller
---denoted by {@link CallHierarchyIncomingCall.from `this.from`}.
---@field fromRanges lsp.Range[]
@@ -205,64 +246,78 @@ error('Cannot require a meta file')
---The parameter of a `callHierarchy/outgoingCalls` request.
---
---@since 3.16.0
----@class lsp.CallHierarchyOutgoingCallsParams
+---@class lsp.CallHierarchyOutgoingCallsParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---@field item lsp.CallHierarchyItem
---Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.
---
---@since 3.16.0
---@class lsp.CallHierarchyOutgoingCall
+---
---The item that is called.
---@field to lsp.CallHierarchyItem
+---
---The range at which this item is called. This is the range relative to the caller, e.g the item
---passed to {@link CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls `provideCallHierarchyOutgoingCalls`}
---and not {@link CallHierarchyOutgoingCall.to `this.to`}.
---@field fromRanges lsp.Range[]
---@since 3.16.0
----@class lsp.SemanticTokensParams
+---@class lsp.SemanticTokensParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
---@since 3.16.0
---@class lsp.SemanticTokens
+---
---An optional result id. If provided and clients support delta updating
---the client will include the result id in the next semantic token request.
---A server can then instead of computing all semantic tokens again simply
---send a delta.
---@field resultId? string
+---
---The actual tokens.
---@field data uinteger[]
---@since 3.16.0
---@class lsp.SemanticTokensPartialResult
+---
---@field data uinteger[]
---@since 3.16.0
----@class lsp.SemanticTokensRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.SemanticTokensRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.SemanticTokensOptions, lsp.StaticRegistrationOptions
---@since 3.16.0
----@class lsp.SemanticTokensDeltaParams
+---@class lsp.SemanticTokensDeltaParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The result id of a previous response. The result Id can either point to a full response
---or a delta response depending on what was received last.
---@field previousResultId string
---@since 3.16.0
---@class lsp.SemanticTokensDelta
+---
---@field resultId? string
+---
---The semantic token edits to transform a previous result into a new result.
---@field edits lsp.SemanticTokensEdit[]
---@since 3.16.0
---@class lsp.SemanticTokensDeltaPartialResult
+---
---@field edits lsp.SemanticTokensEdit[]
---@since 3.16.0
----@class lsp.SemanticTokensRangeParams
+---@class lsp.SemanticTokensRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The range the semantic tokens are requested for.
---@field range lsp.Range
@@ -270,17 +325,21 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.ShowDocumentParams
+---
---The uri to show.
---@field uri lsp.URI
+---
---Indicates to show the resource in an external program.
---To show, for example, `https://code.visualstudio.com/`
---in the default WEB browser set `external` to `true`.
---@field external? boolean
+---
---An optional property to indicate whether the editor
---showing the document should take focus or not.
---Clients might ignore this property if an external
---program is started.
---@field takeFocus? boolean
+---
---An optional selection range if the document is a text
---document. Clients might ignore the property if an
---external program is started or the file is not a text
@@ -291,6 +350,7 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.ShowDocumentResult
+---
---A boolean indicating if the show was successful.
---@field success boolean
@@ -300,21 +360,24 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.LinkedEditingRanges
+---
---A list of ranges that can be edited together. The ranges must have
---identical length and contain identical text content. The ranges cannot overlap.
---@field ranges lsp.Range[]
+---
---An optional word pattern (regular expression) that describes valid contents for
---the given ranges. If no pattern is provided, the client configuration's word
---pattern will be used.
---@field wordPattern? string
----@class lsp.LinkedEditingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.LinkedEditingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.LinkedEditingRangeOptions, lsp.StaticRegistrationOptions
---The parameters sent in notifications/requests for user-initiated creation of
---files.
---
---@since 3.16.0
---@class lsp.CreateFilesParams
+---
---An array of all files/folders created in this operation.
---@field files lsp.FileCreate[]
@@ -331,8 +394,10 @@ error('Cannot require a meta file')
---cause failure of the operation. How the client recovers from the failure is described by
---the client capability: `workspace.workspaceEdit.failureHandling`
---@class lsp.WorkspaceEdit
+---
---Holds changes to existing resources.
---@field changes? table<lsp.DocumentUri, lsp.TextEdit[]>
+---
---Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
---are either an array of `TextDocumentEdit`s to express changes to n different text documents
---where each text document edit addresses a specific version of a text document. Or it can contain
@@ -344,6 +409,7 @@ error('Cannot require a meta file')
---If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
---only plain `TextEdit`s using the `changes` property are supported.
---@field documentChanges? lsp.TextDocumentEdit|lsp.CreateFile|lsp.RenameFile|lsp.DeleteFile[]
+---
---A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
---delete file / folder operations.
---
@@ -356,6 +422,7 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.FileOperationRegistrationOptions
+---
---The actual filters.
---@field filters lsp.FileOperationFilter[]
@@ -364,6 +431,7 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.RenameFilesParams
+---
---An array of all files/folders renamed in this operation. When a folder is renamed, only
---the folder will be included, and not its children.
---@field files lsp.FileRename[]
@@ -373,6 +441,7 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.DeleteFilesParams
+---
---An array of all files/folders deleted in this operation.
---@field files lsp.FileDelete[]
@@ -382,17 +451,21 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@class lsp.Moniker
+---
---The scheme of the moniker. For example tsc or .Net
---@field scheme string
+---
---The identifier of the moniker. The value is opaque in LSIF however
---schema owners are allowed to define the structure if they want.
---@field identifier string
+---
---The scope in which the moniker is unique
---@field unique lsp.UniquenessLevel
+---
---The moniker kind if known.
---@field kind? lsp.MonikerKind
----@class lsp.MonikerRegistrationOptions: lsp.TextDocumentRegistrationOptions
+---@class lsp.MonikerRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.MonikerOptions
---The parameter of a `textDocument/prepareTypeHierarchy` request.
---
@@ -401,23 +474,31 @@ error('Cannot require a meta file')
---@since 3.17.0
---@class lsp.TypeHierarchyItem
+---
---The name of this item.
---@field name string
+---
---The kind of this item.
---@field kind lsp.SymbolKind
+---
---Tags for this item.
---@field tags? lsp.SymbolTag[]
+---
---More detail for this item, e.g. the signature of a function.
---@field detail? string
+---
---The resource identifier of this item.
---@field uri lsp.DocumentUri
+---
---The range enclosing this symbol not including leading/trailing whitespace
---but everything else, e.g. comments and code.
---@field range lsp.Range
+---
---The range that should be selected and revealed when this symbol is being
---picked, e.g. the name of a function. Must be contained by the
---{@link TypeHierarchyItem.range `range`}.
---@field selectionRange lsp.Range
+---
---A data entry field that is preserved between a type hierarchy prepare and
---supertypes or subtypes requests. It could also be used to identify the
---type hierarchy in the server, helping improve the performance on
@@ -427,28 +508,33 @@ error('Cannot require a meta file')
---Type hierarchy options used during static or dynamic registration.
---
---@since 3.17.0
----@class lsp.TypeHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.TypeHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.TypeHierarchyOptions, lsp.StaticRegistrationOptions
---The parameter of a `typeHierarchy/supertypes` request.
---
---@since 3.17.0
----@class lsp.TypeHierarchySupertypesParams
+---@class lsp.TypeHierarchySupertypesParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---@field item lsp.TypeHierarchyItem
---The parameter of a `typeHierarchy/subtypes` request.
---
---@since 3.17.0
----@class lsp.TypeHierarchySubtypesParams
+---@class lsp.TypeHierarchySubtypesParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---@field item lsp.TypeHierarchyItem
---A parameter literal used in inline value requests.
---
---@since 3.17.0
----@class lsp.InlineValueParams
+---@class lsp.InlineValueParams: lsp.WorkDoneProgressParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The document range for which inline values should be computed.
---@field range lsp.Range
+---
---Additional information about the context in which inline values were
---requested.
---@field context lsp.InlineValueContext
@@ -456,14 +542,16 @@ error('Cannot require a meta file')
---Inline value options used during static or dynamic registration.
---
---@since 3.17.0
----@class lsp.InlineValueRegistrationOptions: lsp.InlineValueOptions, lsp.StaticRegistrationOptions
+---@class lsp.InlineValueRegistrationOptions: lsp.InlineValueOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---A parameter literal used in inlay hint requests.
---
---@since 3.17.0
----@class lsp.InlayHintParams
+---@class lsp.InlayHintParams: lsp.WorkDoneProgressParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The document range for which inlay hints should be computed.
---@field range lsp.Range
@@ -471,39 +559,47 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.InlayHint
+---
---The position of this hint.
---
---If multiple hints have the same position, they will be shown in the order
---they appear in the response.
---@field position lsp.Position
+---
---The label of this hint. A human readable string or an array of
---InlayHintLabelPart label parts.
---
---*Note* that neither the string nor the label part can be empty.
---@field label string|lsp.InlayHintLabelPart[]
+---
---The kind of this hint. Can be omitted in which case the client
---should fall back to a reasonable default.
---@field kind? lsp.InlayHintKind
+---
---Optional text edits that are performed when accepting this inlay hint.
---
---*Note* that edits are expected to change the document so that the inlay
---hint (or its nearest variant) is now part of the document and the inlay
---hint itself is now obsolete.
---@field textEdits? lsp.TextEdit[]
+---
---The tooltip text when you hover over this item.
---@field tooltip? string|lsp.MarkupContent
+---
---Render padding before the hint.
---
---Note: Padding should use the editor's background color, not the
---background color of the hint itself. That means padding can be used
---to visually align/separate an inlay hint.
---@field paddingLeft? boolean
+---
---Render padding after the hint.
---
---Note: Padding should use the editor's background color, not the
---background color of the hint itself. That means padding can be used
---to visually align/separate an inlay hint.
---@field paddingRight? boolean
+---
---A data entry field that is preserved on an inlay hint between
---a `textDocument/inlayHint` and a `inlayHint/resolve` request.
---@field data? lsp.LSPAny
@@ -511,16 +607,19 @@ error('Cannot require a meta file')
---Inlay hint options used during static or dynamic registration.
---
---@since 3.17.0
----@class lsp.InlayHintRegistrationOptions: lsp.InlayHintOptions, lsp.StaticRegistrationOptions
+---@class lsp.InlayHintRegistrationOptions: lsp.InlayHintOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---Parameters of the document diagnostic request.
---
---@since 3.17.0
----@class lsp.DocumentDiagnosticParams
+---@class lsp.DocumentDiagnosticParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The text document.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The additional identifier provided during registration.
---@field identifier? string
+---
---The result id of a previous response if provided.
---@field previousResultId? string
@@ -528,25 +627,29 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.DocumentDiagnosticReportPartialResult
+---
---@field relatedDocuments table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
---Cancellation data returned from a diagnostic request.
---
---@since 3.17.0
---@class lsp.DiagnosticServerCancellationData
+---
---@field retriggerRequest boolean
---Diagnostic registration options.
---
---@since 3.17.0
----@class lsp.DiagnosticRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+---@class lsp.DiagnosticRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DiagnosticOptions, lsp.StaticRegistrationOptions
---Parameters of the workspace diagnostic request.
---
---@since 3.17.0
----@class lsp.WorkspaceDiagnosticParams
+---@class lsp.WorkspaceDiagnosticParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The additional identifier provided during registration.
---@field identifier? string
+---
---The currently known diagnostic reports with their
---previous result ids.
---@field previousResultIds lsp.PreviousResultId[]
@@ -555,20 +658,24 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.WorkspaceDiagnosticReport
+---
---@field items lsp.WorkspaceDocumentDiagnosticReport[]
---A partial result for a workspace diagnostic report.
---
---@since 3.17.0
---@class lsp.WorkspaceDiagnosticReportPartialResult
+---
---@field items lsp.WorkspaceDocumentDiagnosticReport[]
---The params sent in an open notebook document notification.
---
---@since 3.17.0
---@class lsp.DidOpenNotebookDocumentParams
+---
---The notebook document that got opened.
---@field notebookDocument lsp.NotebookDocument
+---
---The text documents that represent the content
---of a notebook cell.
---@field cellTextDocuments lsp.TextDocumentItem[]
@@ -577,11 +684,13 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.DidChangeNotebookDocumentParams
+---
---The notebook document that did change. The version number points
---to the version after all provided changes have been applied. If
---only the text document content of a cell changes the notebook version
---doesn't necessarily have to change.
---@field notebookDocument lsp.VersionedNotebookDocumentIdentifier
+---
---The actual changes to the notebook document.
---
---The changes describe single state changes to the notebook document.
@@ -601,6 +710,7 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.DidSaveNotebookDocumentParams
+---
---The notebook document that got saved.
---@field notebookDocument lsp.NotebookDocumentIdentifier
@@ -608,8 +718,10 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@class lsp.DidCloseNotebookDocumentParams
+---
---The notebook document that got closed.
---@field notebookDocument lsp.NotebookDocumentIdentifier
+---
---The text documents that represent the content
---of a notebook cell that got closed.
---@field cellTextDocuments lsp.TextDocumentIdentifier[]
@@ -619,6 +731,7 @@ error('Cannot require a meta file')
---@since 3.18.0
---@proposed
---@class lsp.InlineCompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+---
---Additional information about the context in which inline completions were
---requested.
---@field context lsp.InlineCompletionContext
@@ -628,6 +741,7 @@ error('Cannot require a meta file')
---@since 3.18.0
---@proposed
---@class lsp.InlineCompletionList
+---
---The inline completion items
---@field items lsp.InlineCompletionItem[]
@@ -636,12 +750,16 @@ error('Cannot require a meta file')
---@since 3.18.0
---@proposed
---@class lsp.InlineCompletionItem
+---
---The text to replace the range with. Must be set.
---@field insertText string|lsp.StringValue
+---
---A text that is used to decide if this inline completion should be shown. When `falsy` the {@link InlineCompletionItem.insertText} is used.
---@field filterText? string
+---
---The range to replace. Must begin and end on the same line.
---@field range? lsp.Range
+---
---An optional {@link Command} that is executed *after* inserting this completion.
---@field command? lsp.Command
@@ -649,28 +767,33 @@ error('Cannot require a meta file')
---
---@since 3.18.0
---@proposed
----@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.StaticRegistrationOptions
+---@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---@class lsp.RegistrationParams
+---
---@field registrations lsp.Registration[]
---@class lsp.UnregistrationParams
+---
---@field unregisterations lsp.Unregistration[]
----@class lsp.InitializeParams: lsp._InitializeParams
+---@class lsp.InitializeParams: lsp._InitializeParams, lsp.WorkspaceFoldersInitializeParams
---The result returned from an initialize request.
---@class lsp.InitializeResult
+---
---The capabilities the language server provides.
---@field capabilities lsp.ServerCapabilities
+---
---Information about the server.
---
---@since 3.15.0
----@field serverInfo? anonym1
+---@field serverInfo? lsp._anonym1.serverInfo
---The data type of the ResponseError if the
---initialize request fails.
---@class lsp.InitializeError
+---
---Indicates whether the client execute the following retry logic:
---(1) show the message provided by the ResponseError to the user
---(2) user selects retry or cancel
@@ -681,49 +804,62 @@ error('Cannot require a meta file')
---The parameters of a change configuration notification.
---@class lsp.DidChangeConfigurationParams
+---
---The actual changed settings
---@field settings lsp.LSPAny
---@class lsp.DidChangeConfigurationRegistrationOptions
+---
---@field section? string|string[]
---The parameters of a notification message.
---@class lsp.ShowMessageParams
+---
---The message type. See {@link MessageType}
---@field type lsp.MessageType
+---
---The actual message.
---@field message string
---@class lsp.ShowMessageRequestParams
+---
---The message type. See {@link MessageType}
---@field type lsp.MessageType
+---
---The actual message.
---@field message string
+---
---The message action items to present.
---@field actions? lsp.MessageActionItem[]
---@class lsp.MessageActionItem
+---
---A short title like 'Retry', 'Open Log' etc.
---@field title string
---The log message parameters.
---@class lsp.LogMessageParams
+---
---The message type. See {@link MessageType}
---@field type lsp.MessageType
+---
---The actual message.
---@field message string
---The parameters sent in an open text document notification
---@class lsp.DidOpenTextDocumentParams
+---
---The document that was opened.
---@field textDocument lsp.TextDocumentItem
---The change text document notification's parameters.
---@class lsp.DidChangeTextDocumentParams
+---
---The document that did change. The version number points
---to the version after all provided content changes have
---been applied.
---@field textDocument lsp.VersionedTextDocumentIdentifier
+---
---The actual content changes. The content changes describe single state changes
---to the document. So if there are two content changes c1 (at array index 0) and
---c2 (at array index 1) for a document in state S then c1 moves the document from
@@ -739,64 +875,78 @@ error('Cannot require a meta file')
---Describe options to be used when registered for text document change events.
---@class lsp.TextDocumentChangeRegistrationOptions: lsp.TextDocumentRegistrationOptions
+---
---How documents are synced to the server.
---@field syncKind lsp.TextDocumentSyncKind
---The parameters sent in a close text document notification
---@class lsp.DidCloseTextDocumentParams
+---
---The document that was closed.
---@field textDocument lsp.TextDocumentIdentifier
---The parameters sent in a save text document notification
---@class lsp.DidSaveTextDocumentParams
+---
---The document that was saved.
---@field textDocument lsp.TextDocumentIdentifier
+---
---Optional the content when saved. Depends on the includeText value
---when the save notification was requested.
---@field text? string
---Save registration options.
----@class lsp.TextDocumentSaveRegistrationOptions: lsp.TextDocumentRegistrationOptions
+---@class lsp.TextDocumentSaveRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.SaveOptions
---The parameters sent in a will save text document notification.
---@class lsp.WillSaveTextDocumentParams
+---
---The document that will be saved.
---@field textDocument lsp.TextDocumentIdentifier
+---
---The 'TextDocumentSaveReason'.
---@field reason lsp.TextDocumentSaveReason
---A text edit applicable to a text document.
---@class lsp.TextEdit
+---
---The range of the text document to be manipulated. To insert
---text into a document create a range where start === end.
---@field range lsp.Range
+---
---The string to be inserted. For delete operations use an
---empty string.
---@field newText string
---The watched files change notification's parameters.
---@class lsp.DidChangeWatchedFilesParams
+---
---The actual file events.
---@field changes lsp.FileEvent[]
---Describe options to be used when registered for text document change events.
---@class lsp.DidChangeWatchedFilesRegistrationOptions
+---
---The watchers to register.
---@field watchers lsp.FileSystemWatcher[]
---The publish diagnostic notification's parameters.
---@class lsp.PublishDiagnosticsParams
+---
---The URI for which diagnostic information is reported.
---@field uri lsp.DocumentUri
+---
---Optional the version number of the document the diagnostics are published for.
---
---@since 3.15.0
---@field version? integer
+---
---An array of diagnostic information items.
---@field diagnostics lsp.Diagnostic[]
---Completion parameters
---@class lsp.CompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---
---The completion context. This is only available it the client specifies
---to send this using the client capability `textDocument.completion.contextSupport === true`
---@field context? lsp.CompletionContext
@@ -804,6 +954,7 @@ error('Cannot require a meta file')
---A completion item represents a text snippet that is
---proposed to complete text that is being typed.
---@class lsp.CompletionItem
+---
---The label of this completion item.
---
---The label property is also by default the text that
@@ -812,39 +963,49 @@ error('Cannot require a meta file')
---If label details are provided the label itself should
---be an unqualified name of the completion item.
---@field label string
+---
---Additional details for the label
---
---@since 3.17.0
---@field labelDetails? lsp.CompletionItemLabelDetails
+---
---The kind of this completion item. Based of the kind
---an icon is chosen by the editor.
---@field kind? lsp.CompletionItemKind
+---
---Tags for this completion item.
---
---@since 3.15.0
---@field tags? lsp.CompletionItemTag[]
+---
---A human-readable string with additional information
---about this item, like type or symbol information.
---@field detail? string
+---
---A human-readable string that represents a doc-comment.
---@field documentation? string|lsp.MarkupContent
+---
---Indicates if this item is deprecated.
---@deprecated Use `tags` instead.
---@field deprecated? boolean
+---