aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/_meta/protocol.lua
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
commit1b7b916b7631ddf73c38e3a0070d64e4636cb2f3 (patch)
treecd08258054db80bb9a11b1061bb091c70b76926a /runtime/lua/vim/lsp/_meta/protocol.lua
parenteaa89c11d0f8aefbb512de769c6c82f61a8baca3 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-1b7b916b7631ddf73c38e3a0070d64e4636cb2f3.tar.gz
rneovim-1b7b916b7631ddf73c38e3a0070d64e4636cb2f3.tar.bz2
rneovim-1b7b916b7631ddf73c38e3a0070d64e4636cb2f3.zip
Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpost
Diffstat (limited to 'runtime/lua/vim/lsp/_meta/protocol.lua')
-rw-r--r--runtime/lua/vim/lsp/_meta/protocol.lua4396
1 files changed, 4396 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp/_meta/protocol.lua b/runtime/lua/vim/lsp/_meta/protocol.lua
new file mode 100644
index 0000000000..72b0f00f65
--- /dev/null
+++ b/runtime/lua/vim/lsp/_meta/protocol.lua
@@ -0,0 +1,4396 @@
+--[[
+This file is autogenerated from scripts/gen_lsp.lua
+Regenerate:
+nvim -l scripts/gen_lsp.lua gen --version 3.18 --runtime/lua/vim/lsp/_meta/protocol.lua
+--]]
+
+---@meta
+error('Cannot require a meta file')
+
+---@alias lsp.null nil
+---@alias uinteger integer
+---@alias lsp.decimal number
+---@alias lsp.DocumentUri string
+---@alias lsp.URI string
+---@alias lsp.LSPObject table<string, lsp.LSPAny>
+---@alias lsp.LSPArray lsp.LSPAny[]
+---@alias lsp.LSPAny lsp.LSPObject|lsp.LSPArray|string|number|boolean|nil
+
+---@class lsp.ImplementationParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---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.TypeDefinitionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---@class lsp.TypeDefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions, 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
+---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
+
+---Parameters for a {@link ColorPresentationRequest}.
+---@class lsp.ColorPresentationParams
+---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
+---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.
+---
+---@since 3.17.0
+---@field collapsedText? string
+
+---@class lsp.FoldingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+
+---@class lsp.DeclarationParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---@class lsp.DeclarationRegistrationOptions: lsp.DeclarationOptions, lsp.StaticRegistrationOptions
+
+---A parameter literal used in selection range requests.
+---@class lsp.SelectionRangeParams
+---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.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
+
+---The parameter of a `textDocument/prepareCallHierarchy` request.
+---
+---@since 3.16.0
+---@class lsp.CallHierarchyPrepareParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+
+---Represents programming constructs like functions or constructors in the context
+---of call hierarchy.
+---
+---@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
+
+---Call hierarchy options used during static or dynamic registration.
+---
+---@since 3.16.0
+---@class lsp.CallHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+
+---The parameter of a `callHierarchy/incomingCalls` request.
+---
+---@since 3.16.0
+---@class lsp.CallHierarchyIncomingCallsParams
+---@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[]
+
+---The parameter of a `callHierarchy/outgoingCalls` request.
+---
+---@since 3.16.0
+---@class lsp.CallHierarchyOutgoingCallsParams
+---@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
+---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
+
+---@since 3.16.0
+---@class lsp.SemanticTokensDeltaParams
+---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
+---The text document.
+---@field textDocument lsp.TextDocumentIdentifier
+---The range the semantic tokens are requested for.
+---@field range lsp.Range
+
+---Params to show a resource in the UI.
+---
+---@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
+---file.
+---@field selection? lsp.Range
+
+---The result of a showDocument request.
+---
+---@since 3.16.0
+---@class lsp.ShowDocumentResult
+---A boolean indicating if the show was successful.
+---@field success boolean
+
+---@class lsp.LinkedEditingRangeParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+
+---The result of a linked editing range request.
+---
+---@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
+
+---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[]
+
+---A workspace edit represents changes to many resources managed in the workspace. The edit
+---should either provide `changes` or `documentChanges`. If documentChanges are present
+---they are preferred over `changes` if the client can handle versioned document edits.
+---
+---Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
+---operations are present clients need to execute the operations in the order in which they
+---are provided. So a workspace edit for example can consist of the following two changes:
+---(1) a create file a.txt and (2) a text document edit which insert text into file a.txt.
+---
+---An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
+---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
+---above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
+---
+---Whether a client supports versioned document edits is expressed via
+---`workspace.workspaceEdit.documentChanges` client capability.
+---
+---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.
+---
+---Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
+---
+---@since 3.16.0
+---@field changeAnnotations? table<lsp.ChangeAnnotationIdentifier, lsp.ChangeAnnotation>
+
+---The options to register for file operations.
+---
+---@since 3.16.0
+---@class lsp.FileOperationRegistrationOptions
+---The actual filters.
+---@field filters lsp.FileOperationFilter[]
+
+---The parameters sent in notifications/requests for user-initiated renames of
+---files.
+---
+---@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[]
+
+---The parameters sent in notifications/requests for user-initiated deletes of
+---files.
+---
+---@since 3.16.0
+---@class lsp.DeleteFilesParams
+---An array of all files/folders deleted in this operation.
+---@field files lsp.FileDelete[]
+
+---@class lsp.MonikerParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---Moniker definition to match LSIF 0.5 moniker definition.
+---
+---@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
+
+---The parameter of a `textDocument/prepareTypeHierarchy` request.
+---
+---@since 3.17.0
+---@class lsp.TypeHierarchyPrepareParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+
+---@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
+---resolving supertypes and subtypes.
+---@field data? lsp.LSPAny
+
+---Type hierarchy options used during static or dynamic registration.
+---
+---@since 3.17.0
+---@class lsp.TypeHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
+
+---The parameter of a `typeHierarchy/supertypes` request.
+---
+---@since 3.17.0
+---@class lsp.TypeHierarchySupertypesParams
+---@field item lsp.TypeHierarchyItem
+
+---The parameter of a `typeHierarchy/subtypes` request.
+---
+---@since 3.17.0
+---@class lsp.TypeHierarchySubtypesParams
+---@field item lsp.TypeHierarchyItem
+
+---A parameter literal used in inline value requests.
+---
+---@since 3.17.0
+---@class lsp.InlineValueParams
+---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
+
+---Inline value options used during static or dynamic registration.
+---
+---@since 3.17.0
+---@class lsp.InlineValueRegistrationOptions: lsp.InlineValueOptions, lsp.StaticRegistrationOptions
+
+---A parameter literal used in inlay hint requests.
+---
+---@since 3.17.0
+---@class lsp.InlayHintParams
+---The text document.
+---@field textDocument lsp.TextDocumentIdentifier
+---The document range for which inlay hints should be computed.
+---@field range lsp.Range
+
+---Inlay hint information.
+---
+---@since 3.17.0
+---@class lsp.InlayHint
+---The position of this hint.
+---@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
+
+---Inlay hint options used during static or dynamic registration.
+---
+---@since 3.17.0
+---@class lsp.InlayHintRegistrationOptions: lsp.InlayHintOptions, lsp.StaticRegistrationOptions
+
+---Parameters of the document diagnostic request.
+---
+---@since 3.17.0
+---@class lsp.DocumentDiagnosticParams
+---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
+
+---A partial result for a document diagnostic report.
+---
+---@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
+
+---Parameters of the workspace diagnostic request.
+---
+---@since 3.17.0
+---@class lsp.WorkspaceDiagnosticParams
+---The additional identifier provided during registration.
+---@field identifier? string
+---The currently known diagnostic reports with their
+---previous result ids.
+---@field previousResultIds lsp.PreviousResultId[]
+
+---A workspace diagnostic report.
+---
+---@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[]
+
+---The params sent in a change notebook document notification.
+---
+---@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.
+---So if there are two changes c1 (at array index 0) and c2 (at array
+---index 1) for a notebook in state S then c1 moves the notebook from
+---S to S' and c2 from S' to S''. So c1 is computed on the state S and
+---c2 is computed on the state S'.
+---
+---To mirror the content of a notebook using change events use the following approach:
+---- start with the same initial content
+---- apply the 'notebookDocument/didChange' notifications in the order you receive them.
+---- apply the `NotebookChangeEvent`s in a single notification in the order
+--- you receive them.
+---@field change lsp.NotebookDocumentChangeEvent
+
+---The params sent in a save notebook document notification.
+---
+---@since 3.17.0
+---@class lsp.DidSaveNotebookDocumentParams
+---The notebook document that got saved.
+---@field notebookDocument lsp.NotebookDocumentIdentifier
+
+---The params sent in a close notebook document notification.
+---
+---@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[]
+
+---A parameter literal used in inline completion requests.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+---Additional information about the context in which inline completions were
+---requested.
+---@field context lsp.InlineCompletionContext
+
+---Represents a collection of {@link InlineCompletionItem inline completion items} to be presented in the editor.
+---@class lsp.InlineCompletionList
+---The inline completion items
+---@field items lsp.InlineCompletionItem[]
+
+---An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionItem
+---The text to replace the range with. Must be set.
+---@field insertText string
+---The format of the insert text. The format applies to the `insertText`. If omitted defaults to `InsertTextFormat.PlainText`.
+---@field insertTextFormat? lsp.InsertTextFormat
+---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
+
+---Inline completion options used during static or dynamic registration.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.StaticRegistrationOptions
+
+---@class lsp.RegistrationParams
+---@field registrations lsp.Registration[]
+
+---@class lsp.UnregistrationParams
+---@field unregisterations lsp.Unregistration[]
+
+---@class lsp.InitializeParams: lsp._InitializeParams
+
+---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
+
+---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
+---(3) if user selected retry the initialize method is sent again.
+---@field retry boolean
+
+---@class lsp.InitializedParams
+
+---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
+---S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed
+---on the state S'.
+---
+---To mirror the content of a document using change events use the following approach:
+---- start with the same initial content
+---- apply the 'textDocument/didChange' notifications in the order you receive them.
+---- apply the `TextDocumentContentChangeEvent`s in a single notification in the order
+--- you receive them.
+---@field contentChanges lsp.TextDocumentContentChangeEvent[]
+
+---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
+
+---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
+
+---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
+---is inserted when selecting this completion.
+---
+---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
+---Select this item when showing.
+---
+---*Note* that only one completion item can be selected and that the
+---tool / client decides which item that is. The rule is that the *first*
+---item of those that match best is selected.
+---@field preselect? boolean
+---A string that should be used when comparing this item
+---with other items. When `falsy` the {@link CompletionItem.label label}
+---is used.
+---@field sortText? string
+---A string that should be used when filtering a set of
+---completion items. When `falsy` the {@link CompletionItem.label label}
+---is used.
+---@field filterText? string
+---A string that should be inserted into a document when selecting
+---this completion. When `falsy` the {@link CompletionItem.label label}
+---is used.
+---
+---The `insertText` is subject to interpretation by the client side.
+---Some tools might not take the string literally. For example
+---VS Code when code complete is requested in this example
+---`con<cursor position>` and a completion item with an `insertText` of
+---`console` is provided it will only insert `sole`. Therefore it is
+---recommended to use `textEdit` instead since it avoids additional client
+---side interpretation.
+---@field insertText? string
+---The format of the insert text. The format applies to both the
+---`insertText` property and the `newText` property of a provided
+---`textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
+---
+---Please note that the insertTextFormat doesn't apply to
+---`additionalTextEdits`.
+---@field insertTextFormat? lsp.InsertTextFormat
+---How whitespace and indentation is handled during completion
+---item insertion. If not provided the clients default value depends on
+---the `textDocument.completion.insertTextMode` client capability.
+---
+---@since 3.16.0
+---@field insertTextMode? lsp.InsertTextMode
+---An {@link TextEdit edit} which is applied to a document when selecting
+---this completion. When an edit is provided the value of
+---{@link CompletionItem.insertText insertText} is ignored.
+---
+---Most editors support two different operations when accepting a completion
+---item. One is to insert a completion text and the other is to replace an
+---existing text with a completion text. Since this can usually not be
+---predetermined by a server it can report both ranges. Clients need to
+---signal support for `InsertReplaceEdits` via the
+---`textDocument.completion.insertReplaceSupport` client capability
+---property.
+---
+---*Note 1:* The text edit's range as well as both ranges from an insert
+---replace edit must be a [single line] and they must contain the position
+---at which completion has been requested.
+---*Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
+---must be a prefix of the edit's replace range, that means it must be
+---contained and starting at the same position.
+---
+---@since 3.16.0 additional type `InsertReplaceEdit`
+---@field textEdit? lsp.TextEdit|lsp.InsertReplaceEdit
+---The edit text used if the completion item is part of a CompletionList and
+---CompletionList defines an item default for the text edit range.
+---
+---Clients will only honor this property if they opt into completion list
+---item defaults using the capability `completionList.itemDefaults`.
+---
+---If not provided and a list's default range is provided the label
+---property is used as a text.
+---
+---@since 3.17.0
+---@field textEditText? string
+---An optional array of additional {@link TextEdit text edits} that are applied when
+---selecting this completion. Edits must not overlap (including the same insert position)
+---with the main {@link CompletionItem.textEdit edit} nor with themselves.
+---
+---Additional text edits should be used to change text unrelated to the current cursor position
+---(for example adding an import statement at the top of the file if the completion item will
+---insert an unqualified type).
+---@field additionalTextEdits? lsp.TextEdit[]
+---An optional set of characters that when pressed while this completion is active will accept it first and
+---then type that character. *Note* that all commit characters should have `length=1` and that superfluous
+---characters will be ignored.
+---@field commitCharacters? string[]
+---An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
+---additional modifications to the current document should be described with the
+---{@link CompletionItem.additionalTextEdits additionalTextEdits}-property.
+---@field command? lsp.Command
+---A data entry field that is preserved on a completion item between a
+---{@link CompletionRequest} and a {@link CompletionResolveRequest}.
+---@field data? lsp.LSPAny
+
+---Represents a collection of {@link CompletionItem completion items} to be presented
+---in the editor.
+---@class lsp.CompletionList
+---This list it not complete. Further typing results in recomputing this list.
+---
+---Recomputed lists have all their items replaced (not appended) in the
+---incomplete completion sessions.
+---@field isIncomplete boolean
+---In many cases the items of an actual completion result share the same
+---value for properties like `commitCharacters` or the range of a text
+---edit. A completion list can therefore define item defaults which will
+---be used if a completion item itself doesn't specify the value.
+---
+---If a completion list specifies a default value and a completion item
+---also specifies a corresponding value the one from the item is used.
+---
+---Servers are only allowed to return default values if the client
+---signals support for this via the `completionList.itemDefaults`
+---capability.
+---
+---@since 3.17.0
+---@field itemDefaults? anonym3
+---The completion items.
+---@field items lsp.CompletionItem[]
+
+---Registration options for a {@link CompletionRequest}.
+---@class lsp.CompletionRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link HoverRequest}.
+---@class lsp.HoverParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+
+---The result of a hover request.
+---@class lsp.Hover
+---The hover's content
+---@field contents lsp.MarkupContent|lsp.MarkedString|lsp.MarkedString[]
+---An optional range inside the text document that is used to
+---visualize the hover, e.g. by changing the background color.
+---@field range? lsp.Range
+
+---Registration options for a {@link HoverRequest}.
+---@class lsp.HoverRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link SignatureHelpRequest}.
+---@class lsp.SignatureHelpParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+---The signature help context. This is only available if the client specifies
+---to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
+---
+---@since 3.15.0
+---@field context? lsp.SignatureHelpContext
+
+---Signature help represents the signature of something
+---callable. There can be multiple signature but only one
+---active and only one active parameter.
+---@class lsp.SignatureHelp
+---One or more signatures.
+---@field signatures lsp.SignatureInformation[]
+---The active signature. If omitted or the value lies outside the
+---range of `signatures` the value defaults to zero or is ignored if
+---the `SignatureHelp` has no signatures.
+---
+---Whenever possible implementors should make an active decision about
+---the active signature and shouldn't rely on a default value.
+---
+---In future version of the protocol this property might become
+---mandatory to better express this.
+---@field activeSignature? uinteger
+---The active parameter of the active signature. If omitted or the value
+---lies outside the range of `signatures[activeSignature].parameters`
+---defaults to 0 if the active signature has parameters. If
+---the active signature has no parameters it is ignored.
+---In future version of the protocol this property might become
+---mandatory to better express the active parameter if the
+---active signature does have any.
+---@field activeParameter? uinteger
+
+---Registration options for a {@link SignatureHelpRequest}.
+---@class lsp.SignatureHelpRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link DefinitionRequest}.
+---@class lsp.DefinitionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---Registration options for a {@link DefinitionRequest}.
+---@class lsp.DefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link ReferencesRequest}.
+---@class lsp.ReferenceParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+---@field context lsp.ReferenceContext
+
+---Registration options for a {@link ReferencesRequest}.
+---@class lsp.ReferenceRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link DocumentHighlightRequest}.
+---@class lsp.DocumentHighlightParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
+
+---A document highlight is a range inside a text document which deserves
+---special attention. Usually a document highlight is visualized by changing
+---the background color of its range.
+---@class lsp.DocumentHighlight
+---The range this highlight applies to.
+---@field range lsp.Range
+---The highlight kind, default is {@link DocumentHighlightKind.Text text}.
+---@field kind? lsp.DocumentHighlightKind
+
+---Registration options for a {@link DocumentHighlightRequest}.
+---@class lsp.DocumentHighlightRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---Parameters for a {@link DocumentSymbolRequest}.
+---@class lsp.DocumentSymbolParams
+---The text document.
+---@field textDocument lsp.TextDocumentIdentifier
+
+---Represents information about programming constructs like variables, classes,
+---interfaces etc.
+---@class lsp.SymbolInformation: lsp.BaseSymbolInformation
+---Indicates if this symbol is deprecated.
+---
+---@deprecated Use tags instead
+---@field deprecated? boolean
+---The location of this symbol. The location's range is used by a tool
+---to reveal the location in the editor. If the symbol is selected in the
+---tool the range's start information is used to position the cursor. So
+---the range usually spans more than the actual symbol's name and does
+---normally include things like visibility modifiers.
+---
+---The range doesn't have to denote a node range in the sense of an abstract
+---syntax tree. It can therefore not be used to re-construct a hierarchy of
+---the symbols.
+---@field location lsp.Location
+
+---Represents programming constructs like variables, classes, interfaces etc.
+---that appear in a document. Document symbols can be hierarchical and they
+---have two ranges: one that encloses its definition and one that points to
+---its most interesting range, e.g. the range of an identifier.
+---@class lsp.DocumentSymbol
+---The name of this symbol. Will be displayed in the user interface and therefore must not be
+---an empty string or a string only consisting of white spaces.
+---@field name string
+---More detail for this symbol, e.g the signature of a function.
+---@field detail? string
+---The kind of this symbol.
+---@field kind lsp.SymbolKind
+---Tags for this document symbol.
+---
+---@since 3.16.0
+---@field tags? lsp.SymbolTag[]
+---Indicates if this symbol is deprecated.
+---
+---@deprecated Use tags instead
+---@field deprecated? boolean
+---The range enclosing this symbol not including leading/trailing whitespace but everything else
+---like comments. This information is typically used to determine if the clients cursor is
+---inside the symbol to reveal in the symbol in the UI.
+---@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 `range`.
+---@field selectionRange lsp.Range
+---Children of this symbol, e.g. properties of a class.
+---@field children? lsp.DocumentSymbol[]
+
+---Registration options for a {@link DocumentSymbolRequest}.
+---@class lsp.DocumentSymbolRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link CodeActionRequest}.
+---@class lsp.CodeActionParams
+---The document in which the command was invoked.
+---@field textDocument lsp.TextDocumentIdentifier
+---The range for which the command was invoked.
+---@field range lsp.Range
+---Context carrying additional information.
+---@field context lsp.CodeActionContext
+
+---Represents a reference to a command. Provides a title which
+---will be used to represent a command in the UI and, optionally,
+---an array of arguments which will be passed to the command handler
+---function when invoked.
+---@class lsp.Command
+---Title of the command, like `save`.
+---@field title string
+---The identifier of the actual command handler.
+---@field command string
+---Arguments that the command handler should be
+---invoked with.
+---@field arguments? lsp.LSPAny[]
+
+---A code action represents a change that can be performed in code, e.g. to fix a problem or
+---to refactor code.
+---
+---A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
+---@class lsp.CodeAction
+---A short, human-readable, title for this code action.
+---@field title string
+---The kind of the code action.
+---
+---Used to filter code actions.
+---@field kind? lsp.CodeActionKind
+---The diagnostics that this code action resolves.
+---@field diagnostics? lsp.Diagnostic[]
+---Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
+---by keybindings.
+---
+---A quick fix should be marked preferred if it properly addresses the underlying error.
+---A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
+---
+---@since 3.15.0
+---@field isPreferred? boolean
+---Marks that the code action cannot currently be applied.
+---
+---Clients should follow the following guidelines regarding disabled code actions:
+---
+--- - Disabled code actions are not shown in automatic [lightbulbs](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
+--- code action menus.
+---
+--- - Disabled actions are shown as faded out in the code action menu when the user requests a more specific type
+--- of code action, such as refactorings.
+---
+--- - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
+--- that auto applies a code action and only disabled code actions are returned, the client should show the user an
+--- error message with `reason` in the editor.
+---
+---@since 3.16.0
+---@field disabled? anonym4
+---The workspace edit this code action performs.
+---@field edit? lsp.WorkspaceEdit
+---A command this code action executes. If a code action
+---provides an edit and a command, first the edit is
+---executed and then the command.
+---@field command? lsp.Command
+---A data entry field that is preserved on a code action between
+---a `textDocument/codeAction` and a `codeAction/resolve` request.
+---
+---@since 3.16.0
+---@field data? lsp.LSPAny
+
+---Registration options for a {@link CodeActionRequest}.
+---@class lsp.CodeActionRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link WorkspaceSymbolRequest}.
+---@class lsp.WorkspaceSymbolParams
+---A query string to filter symbols by. Clients may send an empty
+---string here to request all symbols.
+---@field query string
+
+---A special workspace symbol that supports locations without a range.
+---
+---See also SymbolInformation.
+---
+---@since 3.17.0
+---@class lsp.WorkspaceSymbol: lsp.BaseSymbolInformation
+---The location of the symbol. Whether a server is allowed to
+---return a location without a range depends on the client
+---capability `workspace.symbol.resolveSupport`.
+---
+---See SymbolInformation#location for more details.
+---@field location lsp.Location|anonym5
+---A data entry field that is preserved on a workspace symbol between a
+---workspace symbol request and a workspace symbol resolve request.
+---@field data? lsp.LSPAny
+
+---Registration options for a {@link WorkspaceSymbolRequest}.
+---@class lsp.WorkspaceSymbolRegistrationOptions: lsp.WorkspaceSymbolOptions
+
+---The parameters of a {@link CodeLensRequest}.
+---@class lsp.CodeLensParams
+---The document to request code lens for.
+---@field textDocument lsp.TextDocumentIdentifier
+
+---A code lens represents a {@link Command command} that should be shown along with
+---source text, like the number of references, a way to run tests, etc.
+---
+---A code lens is _unresolved_ when no command is associated to it. For performance
+---reasons the creation of a code lens and resolving should be done in two stages.
+---@class lsp.CodeLens
+---The range in which this code lens is valid. Should only span a single line.
+---@field range lsp.Range
+---The command this code lens represents.
+---@field command? lsp.Command
+---A data entry field that is preserved on a code lens item between
+---a {@link CodeLensRequest} and a [CodeLensResolveRequest]
+---(#CodeLensResolveRequest)
+---@field data? lsp.LSPAny
+
+---Registration options for a {@link CodeLensRequest}.
+---@class lsp.CodeLensRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link DocumentLinkRequest}.
+---@class lsp.DocumentLinkParams
+---The document to provide document links for.
+---@field textDocument lsp.TextDocumentIdentifier
+
+---A document link is a range in a text document that links to an internal or external resource, like another
+---text document or a web site.
+---@class lsp.DocumentLink
+---The range this link applies to.
+---@field range lsp.Range
+---The uri this link points to. If missing a resolve request is sent later.
+---@field target? lsp.URI
+---The tooltip text when you hover over this link.
+---
+---If a tooltip is provided, is will be displayed in a string that includes instructions on how to
+---trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
+---user settings, and localization.
+---
+---@since 3.15.0
+---@field tooltip? string
+---A data entry field that is preserved on a document link between a
+---DocumentLinkRequest and a DocumentLinkResolveRequest.
+---@field data? lsp.LSPAny
+
+---Registration options for a {@link DocumentLinkRequest}.
+---@class lsp.DocumentLinkRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link DocumentFormattingRequest}.
+---@class lsp.DocumentFormattingParams
+---The document to format.
+---@field textDocument lsp.TextDocumentIdentifier
+---The format options.
+---@field options lsp.FormattingOptions
+
+---Registration options for a {@link DocumentFormattingRequest}.
+---@class lsp.DocumentFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link DocumentRangeFormattingRequest}.
+---@class lsp.DocumentRangeFormattingParams
+---The document to format.
+---@field textDocument lsp.TextDocumentIdentifier
+---The range to format
+---@field range lsp.Range
+---The format options
+---@field options lsp.FormattingOptions
+
+---Registration options for a {@link DocumentRangeFormattingRequest}.
+---@class lsp.DocumentRangeFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link DocumentRangesFormattingRequest}.
+---
+---@since 3.18.0
+---@proposed
+---@class lsp.DocumentRangesFormattingParams
+---The document to format.
+---@field textDocument lsp.TextDocumentIdentifier
+---The ranges to format
+---@field ranges lsp.Range[]
+---The format options
+---@field options lsp.FormattingOptions
+
+---The parameters of a {@link DocumentOnTypeFormattingRequest}.
+---@class lsp.DocumentOnTypeFormattingParams
+---The document to format.
+---@field textDocument lsp.TextDocumentIdentifier
+---The position around which the on type formatting should happen.
+---This is not necessarily the exact position where the character denoted
+---by the property `ch` got typed.
+---@field position lsp.Position
+---The character that has been typed that triggered the formatting
+---on type request. That is not necessarily the last character that
+---got inserted into the document since the client could auto insert
+---characters as well (e.g. like automatic brace completion).
+---@field ch string
+---The formatting options.
+---@field options lsp.FormattingOptions
+
+---Registration options for a {@link DocumentOnTypeFormattingRequest}.
+---@class lsp.DocumentOnTypeFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---The parameters of a {@link RenameRequest}.
+---@class lsp.RenameParams
+---The document to rename.
+---@field textDocument lsp.TextDocumentIdentifier
+---The position at which this request was sent.
+---@field position lsp.Position
+---The new name of the symbol. If the given name is not valid the
+---request must return a {@link ResponseError} with an
+---appropriate message set.
+---@field newName string
+
+---Registration options for a {@link RenameRequest}.
+---@class lsp.RenameRegistrationOptions: lsp.TextDocumentRegistrationOptions
+
+---@class lsp.PrepareRenameParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
+
+---The parameters of a {@link ExecuteCommandRequest}.
+---@class lsp.ExecuteCommandParams
+---The identifier of the actual command handler.
+---@field command string
+---Arguments that the command should be invoked with.
+---@field arguments? lsp.LSPAny[]
+
+---Registration options for a {@link ExecuteCommandRequest}.
+---@class lsp.ExecuteCommandRegistrationOptions: lsp.ExecuteCommandOptions
+
+---The parameters passed via an apply workspace edit request.
+---@class lsp.ApplyWorkspaceEditParams
+---An optional label of the workspace edit. This label is
+---presented in the user interface for example on an undo
+---stack to undo the workspace edit.
+---@field label? string
+---The edits to apply.
+---@field edit lsp.WorkspaceEdit
+
+---The result returned from the apply workspace edit request.
+---
+---@since 3.17 renamed from ApplyWorkspaceEditResponse
+---@class lsp.ApplyWorkspaceEditResult
+---Indicates whether the edit was applied or not.
+---@field applied boolean
+---An optional textual description for why the edit was not applied.
+---This may be used by the server for diagnostic logging or to provide
+---a suitable error for a request that triggered the edit.
+---@field failureReason? string
+---Depending on the client's failure handling strategy `failedChange` might
+---contain the index of the change that failed. This property is only available
+---if the client signals a `failureHandlingStrategy` in its client capabilities.
+---@field failedChange? uinteger
+
+---@class lsp.WorkDoneProgressBegin
+---@field kind "begin"
+---Mandatory title of the progress operation. Used to briefly inform about
+---the kind of operation being performed.
+---
+---Examples: "Indexing" or "Linking dependencies".
+---@field title string
+---Controls if a cancel button should show to allow the user to cancel the
+---long running operation. Clients that don't support cancellation are allowed
+---to ignore the setting.
+---@field cancellable? boolean
+---Optional, more detailed associated progress message. Contains
+---complementary information to the `title`.
+---
+---Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
+---If unset, the previous progress message (if any) is still valid.
+---@field message? string
+---Optional progress percentage to display (value 100 is considered 100%).
+---If not provided infinite progress is assumed and clients are allowed
+---to ignore the `percentage` value in subsequent in report notifications.
+---
+---The value should be steadily rising. Clients are free to ignore values
+---that are not following this rule. The value range is [0, 100].
+---@field percentage? uinteger
+
+---@class lsp.WorkDoneProgressReport
+---@field kind "report"
+---Controls enablement state of a cancel button.
+---
+---Clients that don't support cancellation or don't support controlling the button's
+---enablement state are allowed to ignore the property.
+---@field cancellable? boolean
+---Optional, more detailed associated progress message. Contains
+---complementary information to the `title`.
+---
+---Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
+---If unset, the previous progress message (if any) is still valid.
+---@field message? string
+---Optional progress percentage to display (value 100 is considered 100%).
+---If not provided infinite progress is assumed and clients are allowed
+---to ignore the `percentage` value in subsequent in report notifications.
+---
+---The value should be steadily rising. Clients are free to ignore values
+---that are not following this rule. The value range is [0, 100]
+---@field percentage? uinteger
+
+---@class lsp.WorkDoneProgressEnd
+---@field kind "end"
+---Optional, a final message indicating to for example indicate the outcome
+---of the operation.
+---@field message? string
+
+---@class lsp.SetTraceParams
+---@field value lsp.TraceValues
+
+---@class lsp.LogTraceParams
+---@field message string
+---@field verbose? string
+
+---@class lsp.CancelParams
+---The request id to cancel.
+---@field id integer|string
+
+---@class lsp.ProgressParams
+---The progress token provided by the client or server.
+---@field token lsp.ProgressToken
+---The progress data.
+---@field value lsp.LSPAny
+
+---A parameter literal used in requests to pass a text document and a position inside that
+---document.
+---@class lsp.TextDocumentPositionParams
+---The text document.
+---@field textDocument lsp.TextDocumentIdentifier
+---The position inside the text document.
+---@field position lsp.Position
+
+---@class lsp.WorkDoneProgressParams
+---An optional token that a server can use to report work done progress.
+---@field workDoneToken? lsp.ProgressToken
+
+---@class lsp.PartialResultParams
+---An optional token that a server can use to report partial results (e.g. streaming) to
+---the client.
+---@field partialResultToken? lsp.ProgressToken
+
+---Represents the connection of two locations. Provides additional metadata over normal {@link Location locations},
+---including an origin range.
+---@class lsp.LocationLink
+---Span of the origin of this link.
+---
+---Used as the underlined span for mouse interaction. Defaults to the word range at
+---the definition position.
+---@field originSelectionRange? lsp.Range
+---The target resource identifier of this link.
+---@field targetUri lsp.DocumentUri
+---The full target range of this link. If the target for example is a symbol then target range is the
+---range enclosing this symbol not including leading/trailing whitespace but everything else
+---like comments. This information is typically used to highlight the range in the editor.
+---@field targetRange lsp.Range
+---The range that should be selected and revealed when this link is being followed, e.g the name of a function.
+---Must be contained by the `targetRange`. See also `DocumentSymbol#range`
+---@field targetSelectionRange lsp.Range
+
+---A range in a text document expressed as (zero-based) start and end positions.
+---
+---If you want to specify a range that contains a line including the line ending
+---character(s) then use an end position denoting the start of the next line.
+---For example:
+---```ts
+---{
+--- start: { line: 5, character: 23 }
+--- end : { line 6, character : 0 }
+---}
+---```
+---@class lsp.Range
+---The range's start position.
+---@field start lsp.Position
+---The range's end position.
+---@field end lsp.Position
+
+---@class lsp.ImplementationOptions
+
+---Static registration options to be returned in the initialize
+---request.
+---@class lsp.StaticRegistrationOptions
+---The id used to register the request. The id can be used to deregister
+---the request again. See also Registration#id.
+---@field id? string
+
+---@class lsp.TypeDefinitionOptions
+
+---The workspace folder change event.
+---@class lsp.WorkspaceFoldersChangeEvent
+---The array of added workspace folders
+---@field added lsp.WorkspaceFolder[]
+---The array of the removed workspace folders
+---@field removed lsp.WorkspaceFolder[]
+
+---@class lsp.ConfigurationItem
+---The scope to get the configuration section for.
+---@field scopeUri? string
+---The configuration section asked for.
+---@field section? string
+
+---A literal to identify a text document in the client.
+---@class lsp.TextDocumentIdentifier
+---The text document's uri.
+---@field uri lsp.DocumentUri
+
+---Represents a color in RGBA space.
+---@class lsp.Color
+---The red component of this color in the range [0-1].
+---@field red decimal
+---The green component of this color in the range [0-1].
+---@field green decimal
+---The blue component of this color in the range [0-1].
+---@field blue decimal
+---The alpha component of this color in the range [0-1].
+---@field alpha decimal
+
+---@class lsp.DocumentColorOptions
+
+---@class lsp.FoldingRangeOptions
+
+---@class lsp.DeclarationOptions
+
+---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
+---character `a` is 0, the character offset of `𐐀` is 1 and the character
+---offset of b is 3 since `𐐀` is represented using two code units in UTF-16.
+---Since 3.17 clients and servers can agree on a different string encoding
+---representation (e.g. UTF-8). The client announces it's supported encoding
+---via the client capability [`general.positionEncodings`](#clientCapabilities).
+---The value is an array of position encodings the client supports, with
+---decreasing preference (e.g. the encoding at index `0` is the most preferred
+---one). To stay backwards compatible the only mandatory encoding is UTF-16
+---represented via the string `utf-16`. The server can pick one of the
+---encodings offered by the client and signals that encoding back to the
+---client via the initialize result's property
+---[`capabilities.positionEncoding`](#serverCapabilities). If the string value
+---`utf-16` is missing from the client's capability `general.positionEncodings`
+---servers can safely assume that the client supports UTF-16. If the server
+---omits the position encoding in its initialize result the encoding defaults
+---to the string value `utf-16`. Implementation considerations: since the
+---conversion from one encoding into another requires the content of the
+---file / line the conversion is best done where the file is read which is
+---usually on the server side.
+---
+---Positions are line end character agnostic. So you can not specify a position
+---that denotes `\r|\n` or `\n|` where `|` represents the character offset.
+---
+---@since 3.17.0 - support for negotiated position encoding.
+---@class lsp.Position
+---Line position in a document (zero-based).
+---
+---If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
+---If a line number is negative, it defaults to 0.
+---@field line uinteger
+---Character offset on a line in a document (zero-based).
+---
+---The meaning of this offset is determined by the negotiated
+---`PositionEncodingKind`.
+---
+---If the character value is greater than the line length it defaults back to the
+---line length.
+---@field character uinteger
+
+---@class lsp.SelectionRangeOptions
+
+---Call hierarchy options used during static registration.
+---
+---@since 3.16.0
+---@class lsp.CallHierarchyOptions
+
+---@since 3.16.0
+---@class lsp.SemanticTokensOptions
+---The legend used by the server
+---@field legend lsp.SemanticTokensLegend
+---Server supports providing semantic tokens for a specific range
+---of a document.
+---@field range? boolean|anonym6
+---Server supports providing semantic tokens for a full document.
+---@field full? boolean|anonym7
+
+---@since 3.16.0
+---@class lsp.SemanticTokensEdit
+---The start offset of the edit.
+---@field start uinteger
+---The count of elements to remove.
+---@field deleteCount uinteger
+---The elements to insert.
+---@field data? uinteger[]
+
+---@class lsp.LinkedEditingRangeOptions
+
+---Represents information on a file/folder create.
+---
+---@since 3.16.0
+---@class lsp.FileCreate
+---A file:// URI for the location of the file/folder being created.
+---@field uri string
+
+---Describes textual changes on a text document. A TextDocumentEdit describes all changes
+---on a document version Si and after they are applied move the document to version Si+1.
+---So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
+---kind of ordering. However the edits must be non overlapping.
+---@class lsp.TextDocumentEdit
+---The text document to change.
+---@field textDocument lsp.OptionalVersionedTextDocumentIdentifier
+---The edits to be applied.
+---
+---@since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
+---client capability.
+---@field edits lsp.TextEdit|lsp.AnnotatedTextEdit[]
+
+---Create file operation.
+---@class lsp.CreateFile: lsp.ResourceOperation
+---A create
+---@field kind "create"
+---The resource to create.
+---@field uri lsp.DocumentUri
+---Additional options
+---@field options? lsp.CreateFileOptions
+
+---Rename file operation
+---@class lsp.RenameFile: lsp.ResourceOperation
+---A rename
+---@field kind "rename"
+---The old (existing) location.
+---@field oldUri lsp.DocumentUri
+---The new location.
+---@field newUri lsp.DocumentUri
+---Rename options.
+---@field options? lsp.RenameFileOptions
+
+---Delete file operation
+---@class lsp.DeleteFile: lsp.ResourceOperation
+---A delete
+---@field kind "delete"
+---The file to delete.
+---@field uri lsp.DocumentUri
+---Delete options.
+---@field options? lsp.DeleteFileOptions
+
+---Additional information that describes document changes.
+---
+---@since 3.16.0
+---@class lsp.ChangeAnnotation
+---A human-readable string describing the actual change. The string
+---is rendered prominent in the user interface.
+---@field label string
+---A flag which indicates that user confirmation is needed
+---before applying the change.
+---@field needsConfirmation? boolean
+---A human-readable string which is rendered less prominent in
+---the user interface.
+---@field description? string
+
+---A filter to describe in which file operation requests or notifications
+---the server is interested in receiving.
+---
+---@since 3.16.0
+---@class lsp.FileOperationFilter
+---A Uri scheme like `file` or `untitled`.
+---@field scheme? string
+---The actual file operation pattern.
+---@field pattern lsp.FileOperationPattern
+
+---Represents information on a file/folder rename.
+---
+---@since 3.16.0
+---@class lsp.FileRename
+---A file:// URI for the original location of the file/folder being renamed.
+---@field oldUri string
+---A file:// URI for the new location of the file/folder being renamed.
+---@field newUri string
+
+---Represents information on a file/folder delete.
+---
+---@since 3.16.0
+---@class lsp.FileDelete
+---A file:// URI for the location of the file/folder being deleted.
+---@field uri string
+
+---@class lsp.MonikerOptions
+
+---Type hierarchy options used during static registration.
+---
+---@since 3.17.0
+---@class lsp.TypeHierarchyOptions
+
+---@since 3.17.0
+---@class lsp.InlineValueContext
+---The stack frame (as a DAP Id) where the execution has stopped.
+---@field frameId integer
+---The document range where execution has stopped.
+---Typically the end position of the range denotes the line where the inline values are shown.
+---@field stoppedLocation lsp.Range
+
+---Provide inline value as text.
+---
+---@since 3.17.0
+---@class lsp.InlineValueText
+---The document range for which the inline value applies.
+---@field range lsp.Range
+---The text of the inline value.
+---@field text string
+
+---Provide inline value through a variable lookup.
+---If only a range is specified, the variable name will be extracted from the underlying document.
+---An optional variable name can be used to override the extracted name.
+---
+---@since 3.17.0
+---@class lsp.InlineValueVariableLookup
+---The document range for which the inline value applies.
+---The range is used to extract the variable name from the underlying document.
+---@field range lsp.Range
+---If specified the name of the variable to look up.
+---@field variableName? string
+---How to perform the lookup.
+---@field caseSensitiveLookup boolean
+
+---Provide an inline value through an expression evaluation.
+---If only a range is specified, the expression will be extracted from the underlying document.
+---An optional expression can be used to override the extracted expression.
+---
+---@since 3.17.0
+---@class lsp.InlineValueEvaluatableExpression
+---The document range for which the inline value applies.
+---The range is used to extract the evaluatable expression from the underlying document.
+---@field range lsp.Range
+---If specified the expression overrides the extracted expression.
+---@field expression? string
+
+---Inline value options used during static registration.
+---
+---@since 3.17.0
+---@class lsp.InlineValueOptions
+
+---An inlay hint label part allows for interactive and composite labels
+---of inlay hints.
+---
+---@since 3.17.0
+---@class lsp.InlayHintLabelPart
+---The value of this label part.
+---@field value string
+---The tooltip text when you hover over this label part. Depending on
+---the client capability `inlayHint.resolveSupport` clients might resolve
+---this property late using the resolve request.
+---@field tooltip? string|lsp.MarkupContent
+---An optional source code location that represents this
+---label part.
+---
+---The editor will use this location for the hover and for code navigation
+---features: This part will become a clickable link that resolves to the
+---definition of the symbol at the given location (not necessarily the
+---location itself), it shows the hover that shows at the given location,
+---and it shows a context menu with further code navigation commands.
+---
+---Depending on the client capability `inlayHint.resolveSupport` clients
+---might resolve this property late using the resolve request.
+---@field location? lsp.Location
+---An optional command for this label part.
+---
+---Depending on the client capability `inlayHint.resolveSupport` clients
+---might resolve this property late using the resolve request.
+---@field command? lsp.Command
+
+---A `MarkupContent` literal represents a string value which content is interpreted base on its
+---kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
+---
+---If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
+---See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
+---
+---Here is an example how such a string can be constructed using JavaScript / TypeScript:
+---```ts
+---let markdown: MarkdownContent = {
+--- kind: MarkupKind.Markdown,
+--- value: [
+--- '# Header',
+--- 'Some text',
+--- '```typescript',
+--- 'someCode();',
+--- '```'
+--- ].join('\n')
+---};
+---```
+---
+---*Please Note* that clients might sanitize the return markdown. A client could decide to
+---remove HTML from the markdown to avoid script execution.
+---@class lsp.MarkupContent
+---The type of the Markup
+---@field kind lsp.MarkupKind
+---The content itself
+---@field value string
+
+---Inlay hint options used during static registration.
+---
+---@since 3.17.0
+---@class lsp.InlayHintOptions
+---The server provides support to resolve additional
+---information for an inlay hint item.
+---@field resolveProvider? boolean
+
+---A full diagnostic report with a set of related documents.
+---
+---@since 3.17.0
+---@class lsp.RelatedFullDocumentDiagnosticReport: lsp.FullDocumentDiagnosticReport
+---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
+---@field relatedDocuments? table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
+
+---An unchanged diagnostic report with a set of related documents.
+---
+---@since 3.17.0
+---@class lsp.RelatedUnchangedDocumentDiagnosticReport: lsp.UnchangedDocumentDiagnosticReport
+---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
+---@field relatedDocuments? table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
+
+---A diagnostic report with a full set of problems.
+---
+---@since 3.17.0
+---@class lsp.FullDocumentDiagnosticReport
+---A full document diagnostic report.
+---@field kind "full"
+---An optional result id. If provided it will
+---be sent on the next diagnostic request for the
+---same document.
+---@field resultId? string
+---The actual items.
+---@field items lsp.Diagnostic[]
+
+---A diagnostic report indicating that the last returned
+---report is still accurate.
+---
+---@since 3.17.0
+---@class lsp.UnchangedDocumentDiagnosticReport
+---A document diagnostic report indicating
+---no changes to the last result. A server can
+---only return `unchanged` if result ids are
+---provided.
+---@field kind "unchanged"
+---A result id which will be sent on the next
+---diagnostic request for the same document.
+---@field resultId string
+
+---Diagnostic options.
+---
+---@since 3.17.0
+---@class lsp.DiagnosticOptions
+---An optional identifier under which the diagnostics are
+---managed by the client.
+---@field identifier? string
+---Whether the language has inter file dependencies meaning that
+---editing code in one file can result in a different diagnostic
+---set in another file. Inter file dependencies are common for
+---most programming languages and typically uncommon for linters.
+---@field interFileDependencies boolean
+---The server provides support for workspace diagnostics as well.
+---@field workspaceDiagnostics boolean
+
+---A previous result id in a workspace pull request.
+---
+---@since 3.17.0
+---@class lsp.PreviousResultId
+---The URI for which the client knowns a
+---result id.
+---@field uri lsp.DocumentUri
+---The value of the previous result id.
+---@field value string
+
+---A notebook document.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocument
+---The notebook document's uri.
+---@field uri lsp.URI
+---The type of the notebook.
+---@field notebookType string
+---The version number of this document (it will increase after each
+---change, including undo/redo).
+---@field version integer
+---Additional metadata stored with the notebook
+---document.
+---
+---Note: should always be an object literal (e.g. LSPObject)
+---@field metadata? lsp.LSPObject
+---The cells of a notebook.
+---@field cells lsp.NotebookCell[]
+
+---An item to transfer a text document from the client to the
+---server.
+---@class lsp.TextDocumentItem
+---The text document's uri.
+---@field uri lsp.DocumentUri
+---The text document's language identifier.
+---@field languageId string
+---The version number of this document (it will increase after each
+---change, including undo/redo).
+---@field version integer
+---The content of the opened text document.
+---@field text string
+
+---A versioned notebook document identifier.
+---
+---@since 3.17.0
+---@class lsp.VersionedNotebookDocumentIdentifier
+---The version number of this notebook document.
+---@field version integer
+---The notebook document's uri.
+---@field uri lsp.URI
+
+---A change event for a notebook document.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentChangeEvent
+---The changed meta data if any.
+---
+---Note: should always be an object literal (e.g. LSPObject)
+---@field metadata? lsp.LSPObject
+---Changes to cells
+---@field cells? anonym10
+
+---A literal to identify a notebook document in the client.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentIdentifier
+---The notebook document's uri.
+---@field uri lsp.URI
+
+---Provides information about the context in which an inline completion was requested.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionContext
+---Describes how the inline completion was triggered.
+---@field triggerKind lsp.InlineCompletionTriggerKind
+---Provides information about the currently selected item in the autocomplete widget if it is visible.
+---@field selectedCompletionInfo? lsp.SelectedCompletionInfo
+
+---Inline completion options used during static registration.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionOptions
+
+---General parameters to to register for an notification or to register a provider.
+---@class lsp.Registration
+---The id used to register the request. The id can be used to deregister
+---the request again.
+---@field id string
+---The method / capability to register for.
+---@field method string
+---Options necessary for the registration.
+---@field registerOptions? lsp.LSPAny
+
+---General parameters to unregister a request or notification.
+---@class lsp.Unregistration
+---The id used to unregister the request or notification. Usually an id
+---provided during the register request.
+---@field id string
+---The method to unregister for.
+---@field method string
+
+---The initialize parameters
+---@class lsp._InitializeParams
+---The process Id of the parent process that started
+---the server.
+---
+---Is `null` if the process has not been started by another process.
+---If the parent process is not alive then the server should exit.
+---@field processId integer|lsp.null
+---Information about the client
+---
+---@since 3.15.0
+---@field clientInfo? anonym11
+---The locale the client is currently showing the user interface
+---in. This must not necessarily be the locale of the operating
+---system.
+---
+---Uses IETF language tags as the value's syntax
+---(See https://en.wikipedia.org/wiki/IETF_language_tag)
+---
+---@since 3.16.0
+---@field locale? string
+---The rootPath of the workspace. Is null
+---if no folder is open.
+---
+---@deprecated in favour of rootUri.
+---@field rootPath? string|lsp.null
+---The rootUri of the workspace. Is null if no
+---folder is open. If both `rootPath` and `rootUri` are set
+---`rootUri` wins.
+---
+---@deprecated in favour of workspaceFolders.
+---@field rootUri lsp.DocumentUri|lsp.null
+---The capabilities provided by the client (editor or tool)
+---@field capabilities lsp.ClientCapabilities
+---User provided initialization options.
+---@field initializationOptions? lsp.LSPAny
+---The initial trace setting. If omitted trace is disabled ('off').
+---@field trace? lsp.TraceValues
+
+---@class lsp.WorkspaceFoldersInitializeParams
+---The workspace folders configured in the client when the server starts.
+---
+---This property is only available if the client supports workspace folders.
+---It can be `null` if the client supports workspace folders but none are
+---configured.
+---
+---@since 3.6.0
+---@field workspaceFolders? lsp.WorkspaceFolder[]|lsp.null
+
+---Defines the capabilities provided by a language
+---server.
+---@class lsp.ServerCapabilities
+---The position encoding the server picked from the encodings offered
+---by the client via the client capability `general.positionEncodings`.
+---
+---If the client didn't provide any position encodings the only valid
+---value that a server can return is 'utf-16'.
+---
+---If omitted it defaults to 'utf-16'.
+---
+---@since 3.17.0
+---@field positionEncoding? lsp.PositionEncodingKind
+---Defines how text documents are synced. Is either a detailed structure
+---defining each notification or for backwards compatibility the
+---TextDocumentSyncKind number.
+---@field textDocumentSync? lsp.TextDocumentSyncOptions|lsp.TextDocumentSyncKind
+---Defines how notebook documents are synced.
+---
+---@since 3.17.0
+---@field notebookDocumentSync? lsp.NotebookDocumentSyncOptions|lsp.NotebookDocumentSyncRegistrationOptions
+---The server provides completion support.
+---@field completionProvider? lsp.CompletionOptions
+---The server provides hover support.
+---@field hoverProvider? boolean|lsp.HoverOptions
+---The server provides signature help support.
+---@field signatureHelpProvider? lsp.SignatureHelpOptions
+---The server provides Goto Declaration support.
+---@field declarationProvider? boolean|lsp.DeclarationOptions|lsp.DeclarationRegistrationOptions
+---The server provides goto definition support.
+---@field definitionProvider? boolean|lsp.DefinitionOptions
+---The server provides Goto Type Definition support.
+---@field typeDefinitionProvider? boolean|lsp.TypeDefinitionOptions|lsp.TypeDefinitionRegistrationOptions
+---The server provides Goto Implementation support.
+---@field implementationProvider? boolean|lsp.ImplementationOptions|lsp.ImplementationRegistrationOptions
+---The server provides find references support.
+---@field referencesProvider? boolean|lsp.ReferenceOptions
+---The server provides document highlight support.
+---@field documentHighlightProvider? boolean|lsp.DocumentHighlightOptions
+---The server provides document symbol support.
+---@field documentSymbolProvider? boolean|lsp.DocumentSymbolOptions
+---The server provides code actions. CodeActionOptions may only be
+---specified if the client states that it supports
+---`codeActionLiteralSupport` in its initial `initialize` request.
+---@field codeActionProvider? boolean|lsp.CodeActionOptions
+---The server provides code lens.
+---@field codeLensProvider? lsp.CodeLensOptions
+---The server provides document link support.
+---@field documentLinkProvider? lsp.DocumentLinkOptions
+---The server provides color provider support.
+---@field colorProvider? boolean|lsp.DocumentColorOptions|lsp.DocumentColorRegistrationOptions
+---The server provides workspace symbol support.
+---@field workspaceSymbolProvider? boolean|lsp.WorkspaceSymbolOptions
+---The server provides document formatting.
+---@field documentFormattingProvider? boolean|lsp.DocumentFormattingOptions
+---The server provides document range formatting.
+---@field documentRangeFormattingProvider? boolean|lsp.DocumentRangeFormattingOptions
+---The server provides document formatting on typing.
+---@field documentOnTypeFormattingProvider? lsp.DocumentOnTypeFormattingOptions
+---The server provides rename support. RenameOptions may only be
+---specified if the client states that it supports
+---`prepareSupport` in its initial `initialize` request.
+---@field renameProvider? boolean|lsp.RenameOptions
+---The server provides folding provider support.
+---@field foldingRangeProvider? boolean|lsp.FoldingRangeOptions|lsp.FoldingRangeRegistrationOptions
+---The server provides selection range support.
+---@field selectionRangeProvider? boolean|lsp.SelectionRangeOptions|lsp.SelectionRangeRegistrationOptions
+---The server provides execute command support.
+---@field executeCommandProvider? lsp.ExecuteCommandOptions
+---The server provides call hierarchy support.
+---
+---@since 3.16.0
+---@field callHierarchyProvider? boolean|lsp.CallHierarchyOptions|lsp.CallHierarchyRegistrationOptions
+---The server provides linked editing range support.
+---
+---@since 3.16.0
+---@field linkedEditingRangeProvider? boolean|lsp.LinkedEditingRangeOptions|lsp.LinkedEditingRangeRegistrationOptions
+---The server provides semantic tokens support.
+---
+---@since 3.16.0
+---@field semanticTokensProvider? lsp.SemanticTokensOptions|lsp.SemanticTokensRegistrationOptions
+---The server provides moniker support.
+---
+---@since 3.16.0
+---@field monikerProvider? boolean|lsp.MonikerOptions|lsp.MonikerRegistrationOptions
+---The server provides type hierarchy support.
+---
+---@since 3.17.0
+---@field typeHierarchyProvider? boolean|lsp.TypeHierarchyOptions|lsp.TypeHierarchyRegistrationOptions
+---The server provides inline values.
+---
+---@since 3.17.0
+---@field inlineValueProvider? boolean|lsp.InlineValueOptions|lsp.InlineValueRegistrationOptions
+---The server provides inlay hints.
+---
+---@since 3.17.0
+---@field inlayHintProvider? boolean|lsp.InlayHintOptions|lsp.InlayHintRegistrationOptions
+---The server has support for pull model diagnostics.
+---
+---@since 3.17.0
+---@field diagnosticProvider? lsp.DiagnosticOptions|lsp.DiagnosticRegistrationOptions
+---Inline completion options used during static registration.
+---
+---@since 3.18.0
+---@field inlineCompletionProvider? boolean|lsp.InlineCompletionOptions
+---Workspace specific server capabilities.
+---@field workspace? anonym12
+---Experimental server capabilities.
+---@field experimental? lsp.LSPAny
+
+---A text document identifier to denote a specific version of a text document.
+---@class lsp.VersionedTextDocumentIdentifier: lsp.TextDocumentIdentifier
+---The version number of this document.
+---@field version integer
+
+---Save options.
+---@class lsp.SaveOptions
+---The client is supposed to include the content on save.
+---@field includeText? boolean
+
+---An event describing a file change.
+---@class lsp.FileEvent
+---The file's uri.
+---@field uri lsp.DocumentUri
+---The change type.
+---@field type lsp.FileChangeType
+
+---@class lsp.FileSystemWatcher
+---The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
+---
+---@since 3.17.0 support for relative patterns.
+---@field globPattern lsp.GlobPattern
+---The kind of events of interest. If omitted it defaults
+---to WatchKind.Create | WatchKind.Change | WatchKind.Delete
+---which is 7.
+---@field kind? lsp.WatchKind
+
+---Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
+---are only valid in the scope of a resource.
+---@class lsp.Diagnostic
+---The range at which the message applies
+---@field range lsp.Range
+---The diagnostic's severity. Can be omitted. If omitted it is up to the
+---client to interpret diagnostics as error, warning, info or hint.
+---@field severity? lsp.DiagnosticSeverity
+---The diagnostic's code, which usually appear in the user interface.
+---@field code? integer|string
+---An optional property to describe the error code.
+---Requires the code field (above) to be present/not null.
+---
+---@since 3.16.0
+---@field codeDescription? lsp.CodeDescription
+---A human-readable string describing the source of this
+---diagnostic, e.g. 'typescript' or 'super lint'. It usually
+---appears in the user interface.
+---@field source? string
+---The diagnostic's message. It usually appears in the user interface
+---@field message string
+---Additional metadata about the diagnostic.
+---
+---@since 3.15.0
+---@field tags? lsp.DiagnosticTag[]
+---An array of related diagnostic information, e.g. when symbol-names within
+---a scope collide all definitions can be marked via this property.
+---@field relatedInformation? lsp.DiagnosticRelatedInformation[]
+---A data entry field that is preserved between a `textDocument/publishDiagnostics`
+---notification and `textDocument/codeAction` request.
+---
+---@since 3.16.0
+---@field data? lsp.LSPAny
+
+---Contains additional information about the context in which a completion request is triggered.
+---@class lsp.CompletionContext
+---How the completion was triggered.
+---@field triggerKind lsp.CompletionTriggerKind
+---The trigger character (a single character) that has trigger code complete.
+---Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
+---@field triggerCharacter? string
+
+---Additional details for a completion item label.
+---
+---@since 3.17.0
+---@class lsp.CompletionItemLabelDetails
+---An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
+---without any spacing. Should be used for function signatures and type annotations.
+---@field detail? string
+---An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
+---for fully qualified names and file paths.
+---@field description? string
+
+---A special text edit to provide an insert and a replace operation.
+---
+---@since 3.16.0
+---@class lsp.InsertReplaceEdit
+---The string to be inserted.
+---@field newText string
+---The range if the insert is requested
+---@field insert lsp.Range
+---The range if the replace is requested.
+---@field replace lsp.Range
+
+---Completion options.
+---@class lsp.CompletionOptions
+---Most tools trigger completion request automatically without explicitly requesting
+---it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
+---starts to type an identifier. For example if the user types `c` in a JavaScript file
+---code complete will automatically pop up present `console` besides others as a
+---completion item. Characters that make up identifiers don't need to be listed here.
+---
+---If code complete should automatically be trigger on characters not being valid inside
+---an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
+---@field triggerCharacters? string[]
+---The list of all possible characters that commit a completion. This field can be used
+---if clients don't support individual commit characters per completion item. See
+---`ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
+---
+---If a server provides both `allCommitCharacters` and commit characters on an individual
+---completion item the ones on the completion item win.
+---
+---@since 3.2.0
+---@field allCommitCharacters? string[]
+---The server provides support to resolve additional
+---information for a completion item.
+---@field resolveProvider? boolean
+---The server supports the following `CompletionItem` specific
+---capabilities.
+---
+---@since 3.17.0
+---@field completionItem? anonym13
+
+---Hover options.
+---@class lsp.HoverOptions
+
+---Additional information about the context in which a signature help request was triggered.
+---
+---@since 3.15.0
+---@class lsp.SignatureHelpContext
+---Action that caused signature help to be triggered.
+---@field triggerKind lsp.SignatureHelpTriggerKind
+---Character that caused signature help to be triggered.
+---
+---This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
+---@field triggerCharacter? string
+---`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.
+---@field isRetrigger boolean
+---The currently active `SignatureHelp`.
+---
+---The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
+---the user navigating through available signatures.
+---@field activeSignatureHelp? lsp.SignatureHelp
+
+---Represents the signature of something callable. A signature
+---can have a label, like a function-name, a doc-comment, and
+---a set of parameters.
+---@class lsp.SignatureInformation
+---The label of this signature. Will be shown in
+---the UI.
+---@field label string
+---The human-readable doc-comment of this signature. Will be shown
+---in the UI but can be omitted.
+---@field documentation? string|lsp.MarkupContent
+---The parameters of this signature.
+---@field parameters? lsp.ParameterInformation[]
+---The index of the active parameter.
+---
+---If provided, this is used in place of `SignatureHelp.activeParameter`.
+---
+---@since 3.16.0
+---@field activeParameter? uinteger
+
+---Server Capabilities for a {@link SignatureHelpRequest}.
+---@class lsp.SignatureHelpOptions
+---List of characters that trigger signature help automatically.
+---@field triggerCharacters? string[]
+---List of characters that re-trigger signature help.
+---
+---These trigger characters are only active when signature help is already showing. All trigger characters
+---are also counted as re-trigger characters.
+---
+---@since 3.15.0
+---@field retriggerCharacters? string[]
+
+---Server Capabilities for a {@link DefinitionRequest}.
+---@class lsp.DefinitionOptions
+
+---Value-object that contains additional information when
+---requesting references.
+---@class lsp.ReferenceContext
+---Include the declaration of the current symbol.
+---@field includeDeclaration boolean
+
+---Reference options.
+---@class lsp.ReferenceOptions
+
+---Provider options for a {@link DocumentHighlightRequest}.
+---@class lsp.DocumentHighlightOptions
+
+---A base for all symbol information.
+---@class lsp.BaseSymbolInformation
+---The name of this symbol.
+---@field name string
+---The kind of this symbol.
+---@field kind lsp.SymbolKind
+---Tags for this symbol.
+---
+---@since 3.16.0
+---@field tags? lsp.SymbolTag[]
+---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.
+---@field containerName? string
+
+---Provider options for a {@link DocumentSymbolRequest}.
+---@class lsp.DocumentSymbolOptions
+---A human-readable string that is shown when multiple outlines trees
+---are shown for the same document.
+---
+---@since 3.16.0
+---@field label? string
+
+---Contains additional diagnostic information about the context in which
+---a {@link CodeActionProvider.provideCodeActions code action} is run.
+---@class lsp.CodeActionContext
+---An array of diagnostics known on the client side overlapping the range provided to the
+---`textDocument/codeAction` request. They are provided so that the server knows which
+---errors are currently presented to the user for the given range. There is no guarantee
+---that these accurately reflect the error state of the resource. The primary parameter
+---to compute code actions is the provided range.
+---@field diagnostics lsp.Diagnostic[]
+---Requested kind of actions to return.
+---
+---Actions not of this kind are filtered out by the client before being shown. So servers
+---can omit computing them.
+---@field only? lsp.CodeActionKind[]
+---The reason why code actions were requested.
+---
+---@since 3.17.0
+---@field triggerKind? lsp.CodeActionTriggerKind
+
+---Provider options for a {@link CodeActionRequest}.
+---@class lsp.CodeActionOptions
+---CodeActionKinds that this server may return.
+---
+---The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
+---may list out every specific kind they provide.
+---@field codeActionKinds? lsp.CodeActionKind[]
+---The server provides support to resolve additional
+---information for a code action.
+---
+---@since 3.16.0
+---@field resolveProvider? boolean
+
+---Server capabilities for a {@link WorkspaceSymbolRequest}.
+---@class lsp.WorkspaceSymbolOptions
+---The server provides support to resolve additional
+---information for a workspace symbol.
+---
+---@since 3.17.0
+---@field resolveProvider? boolean
+
+---Code Lens provider options of a {@link CodeLensRequest}.
+---@class lsp.CodeLensOptions
+---Code lens has a resolve provider as well.
+---@field resolveProvider? boolean
+
+---Provider options for a {@link DocumentLinkRequest}.
+---@class lsp.DocumentLinkOptions
+---Document links have a resolve provider as well.
+---@field resolveProvider? boolean
+
+---Value-object describing what options formatting should use.
+---@class lsp.FormattingOptions
+---Size of a tab in spaces.
+---@field tabSize uinteger
+---Prefer spaces over tabs.
+---@field insertSpaces boolean
+---Trim trailing whitespace on a line.
+---
+---@since 3.15.0
+---@field trimTrailingWhitespace? boolean
+---Insert a newline character at the end of the file if one does not exist.
+---
+---@since 3.15.0
+---@field insertFinalNewline? boolean
+---Trim all newlines after the final newline at the end of the file.
+---
+---@since 3.15.0
+---@field trimFinalNewlines? boolean
+
+---Provider options for a {@link DocumentFormattingRequest}.
+---@class lsp.DocumentFormattingOptions
+
+---Provider options for a {@link DocumentRangeFormattingRequest}.
+---@class lsp.DocumentRangeFormattingOptions
+---Whether the server supports formatting multiple ranges at once.
+---
+---@since 3.18.0
+---@proposed
+---@field rangesSupport? boolean
+
+---Provider options for a {@link DocumentOnTypeFormattingRequest}.
+---@class lsp.DocumentOnTypeFormattingOptions
+---A character on which formatting should be triggered, like `{`.
+---@field firstTriggerCharacter string
+---More trigger characters.
+---@field moreTriggerCharacter? string[]
+
+---Provider options for a {@link RenameRequest}.
+---@class lsp.RenameOptions
+---Renames should be checked and tested before being executed.
+---
+---@since version 3.12.0
+---@field prepareProvider? boolean
+
+---The server capabilities of a {@link ExecuteCommandRequest}.
+---@class lsp.ExecuteCommandOptions
+---The commands to be executed on the server
+---@field commands string[]
+
+---@since 3.16.0
+---@class lsp.SemanticTokensLegend
+---The token types a server uses.
+---@field tokenTypes string[]
+---The token modifiers a server uses.
+---@field tokenModifiers string[]
+
+---A text document identifier to optionally denote a specific version of a text document.
+---@class lsp.OptionalVersionedTextDocumentIdentifier: lsp.TextDocumentIdentifier
+---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).
+---@field version integer|lsp.null
+
+---A special text edit with an additional change annotation.
+---
+---@since 3.16.0.
+---@class lsp.AnnotatedTextEdit: lsp.TextEdit
+---The actual identifier of the change annotation
+---@field annotationId lsp.ChangeAnnotationIdentifier
+
+---A generic resource operation.
+---@class lsp.ResourceOperation
+---The resource operation kind.
+---@field kind string
+---An optional annotation identifier describing the operation.
+---
+---@since 3.16.0
+---@field annotationId? lsp.ChangeAnnotationIdentifier
+
+---Options to create a file.
+---@class lsp.CreateFileOptions
+---Overwrite existing file. Overwrite wins over `ignoreIfExists`
+---@field overwrite? boolean
+---Ignore if exists.
+---@field ignoreIfExists? boolean
+
+---Rename file options
+---@class lsp.RenameFileOptions
+---Overwrite target if existing. Overwrite wins over `ignoreIfExists`
+---@field overwrite? boolean
+---Ignores if target exists.
+---@field ignoreIfExists? boolean
+
+---Delete file options
+---@class lsp.DeleteFileOptions
+---Delete the content recursively if a folder is denoted.
+---@field recursive? boolean
+---Ignore the operation if the file doesn't exist.
+---@field ignoreIfNotExists? boolean
+
+---A pattern to describe in which file operation requests or notifications
+---the server is interested in receiving.
+---
+---@since 3.16.0
+---@class lsp.FileOperationPattern
+---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`)
+---@field glob string
+---Whether to match files or folders with this pattern.
+---
+---Matches both if undefined.
+---@field matches? lsp.FileOperationPatternKind
+---Additional options used during matching.
+---@field options? lsp.FileOperationPatternOptions
+
+---A full document diagnostic report for a workspace diagnostic result.
+---
+---@since 3.17.0
+---@class lsp.WorkspaceFullDocumentDiagnosticReport: lsp.FullDocumentDiagnosticReport
+---The URI for which diagnostic information is reported.
+---@field uri lsp.DocumentUri
+---The version number for which the diagnostics are reported.
+---If the document is not marked as open `null` can be provided.
+---@field version integer|lsp.null
+
+---An unchanged document diagnostic report for a workspace diagnostic result.
+---
+---@since 3.17.0
+---@class lsp.WorkspaceUnchangedDocumentDiagnosticReport: lsp.UnchangedDocumentDiagnosticReport
+---The URI for which diagnostic information is reported.
+---@field uri lsp.DocumentUri
+---The version number for which the diagnostics are reported.
+---If the document is not marked as open `null` can be provided.
+---@field version integer|lsp.null
+
+---A notebook cell.
+---
+---A cell's document URI must be unique across ALL notebook
+---cells and can therefore be used to uniquely identify a
+---notebook cell or the cell's text document.
+---
+---@since 3.17.0
+---@class lsp.NotebookCell
+---The cell's kind
+---@field kind lsp.NotebookCellKind
+---The URI of the cell's text document
+---content.
+---@field document lsp.DocumentUri
+---Additional metadata stored with the cell.
+---
+---Note: should always be an object literal (e.g. LSPObject)
+---@field metadata? lsp.LSPObject
+---Additional execution summary information
+---if supported by the client.
+---@field executionSummary? lsp.ExecutionSummary
+
+---A change describing how to move a `NotebookCell`
+---array from state S to S'.
+---
+---@since 3.17.0
+---@class lsp.NotebookCellArrayChange
+---The start oftest of the cell that changed.
+---@field start uinteger
+---The deleted cells
+---@field deleteCount uinteger
+---The new cells, if any
+---@field cells? lsp.NotebookCell[]
+
+---Describes the currently selected completion item.
+---
+---@since 3.18.0
+---@class lsp.SelectedCompletionInfo
+---The range that will be replaced if this completion item is accepted.
+---@field range lsp.Range
+---The text the range will be replaced with if this completion is accepted.
+---@field text string
+
+---Defines the capabilities provided by the client.
+---@class lsp.ClientCapabilities
+---Workspace specific client capabilities.
+---@field workspace? lsp.WorkspaceClientCapabilities
+---Text document specific client capabilities.
+---@field textDocument? lsp.TextDocumentClientCapabilities
+---Capabilities specific to the notebook document support.
+---
+---@since 3.17.0
+---@field notebookDocument? lsp.NotebookDocumentClientCapabilities
+---Window specific client capabilities.
+---@field window? lsp.WindowClientCapabilities
+---General client capabilities.
+---
+---@since 3.16.0
+---@field general? lsp.GeneralClientCapabilities
+---Experimental client capabilities.
+---@field experimental? lsp.LSPAny
+
+---@class lsp.TextDocumentSyncOptions
+---Open and close notifications are sent to the server. If omitted open close notification should not
+---be sent.
+---@field openClose? boolean
+---Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
+---and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
+---@field change? lsp.TextDocumentSyncKind
+---If present will save notifications are sent to the server. If omitted the notification should not be
+---sent.
+---@field willSave? boolean
+---If present will save wait until requests are sent to the server. If omitted the request should not be
+---sent.
+---@field willSaveWaitUntil? boolean
+---If present save notifications are sent to the server. If omitted the notification should not be
+---sent.
+---@field save? boolean|lsp.SaveOptions
+
+---Options specific to a notebook plus its cells
+---to be synced to the server.
+---
+---If a selector provides a notebook document
+---filter but no cell selector all cells of a
+---matching notebook document will be synced.
+---
+---If a selector provides no notebook document
+---filter but only a cell selector all notebook
+---document that contain at least one matching
+---cell will be synced.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentSyncOptions
+---The notebooks to be synced
+---@field notebookSelector anonym15|anonym17[]
+---Whether save notification should be forwarded to
+---the server. Will only be honored if mode === `notebook`.
+---@field save? boolean
+
+---Registration options specific to a notebook.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentSyncRegistrationOptions: lsp.NotebookDocumentSyncOptions, lsp.StaticRegistrationOptions
+
+---@class lsp.WorkspaceFoldersServerCapabilities
+---The server has support for workspace folders
+---@field supported? boolean
+---Whether the server wants to receive workspace folder
+---change notifications.
+---
+---If a string is provided the string is treated as an ID
+---under which the notification is registered on the client
+---side. The ID can be used to unregister for these events
+---using the `client/unregisterCapability` request.
+---@field changeNotifications? string|boolean
+
+---Options for notifications/requests for user operations on files.
+---
+---@since 3.16.0
+---@class lsp.FileOperationOptions
+---The server is interested in receiving didCreateFiles notifications.
+---@field didCreate? lsp.FileOperationRegistrationOptions
+---The server is interested in receiving willCreateFiles requests.
+---@field willCreate? lsp.FileOperationRegistrationOptions
+---The server is interested in receiving didRenameFiles notifications.
+---@field didRename? lsp.FileOperationRegistrationOptions
+---The server is interested in receiving willRenameFiles requests.
+---@field willRename? lsp.FileOperationRegistrationOptions
+---The server is interested in receiving didDeleteFiles file notifications.
+---@field didDelete? lsp.FileOperationRegistrationOptions
+---The server is interested in receiving willDeleteFiles file requests.
+---@field willDelete? lsp.FileOperationRegistrationOptions
+
+---Structure to capture a description for an error code.
+---
+---@since 3.16.0
+---@class lsp.CodeDescription
+---An URI to open with more information about the diagnostic error.
+---@field href lsp.URI
+
+---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.
+---@class lsp.DiagnosticRelatedInformation
+---The location of this related diagnostic information.
+---@field location lsp.Location
+---The message of this related diagnostic information.
+---@field message string
+
+---Represents a parameter of a callable-signature. A parameter can
+---have a label and a doc-comment.
+---@class lsp.ParameterInformation
+---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.
+---
+---*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`.
+---@field label string|{ [1]: uinteger, [2]: uinteger }
+---The human-readable doc-comment of this parameter. Will be shown
+---in the UI but can be omitted.
+---@field documentation? string|lsp.MarkupContent
+
+---A notebook cell text document filter denotes a cell text
+---document by different properties.
+---
+---@since 3.17.0
+---@class lsp.NotebookCellTextDocumentFilter
+---A filter that matches against the notebook
+---containing the notebook cell. If a string
+---value is provided it matches against the
+---notebook type. '*' matches every notebook.
+---@field notebook string|lsp.NotebookDocumentFilter
+---A language id like `python`.
+---
+---Will be matched against the language id of the
+---notebook cell document. '*' matches every language.
+---@field language? string
+
+---Matching options for the file operation pattern.
+---
+---@since 3.16.0
+---@class lsp.FileOperationPatternOptions
+---The pattern should be matched ignoring casing.
+---@field ignoreCase? boolean
+
+---@class lsp.ExecutionSummary
+---A strict monotonically increasing value
+---indicating the execution order of a cell
+---inside a notebook.
+---@field executionOrder uinteger
+---Whether the execution was successful or
+---not if known by the client.
+---@field success? boolean
+
+---Workspace specific client capabilities.
+---@class lsp.WorkspaceClientCapabilities
+---The client supports applying batch edits
+---to the workspace by supporting the request
+---'workspace/applyEdit'
+---@field applyEdit? boolean
+---Capabilities specific to `WorkspaceEdit`s.
+---@field workspaceEdit? lsp.WorkspaceEditClientCapabilities
+---Capabilities specific to the `workspace/didChangeConfiguration` notification.
+---@field didChangeConfiguration? lsp.DidChangeConfigurationClientCapabilities
+---Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
+---@field didChangeWatchedFiles? lsp.DidChangeWatchedFilesClientCapabilities
+---Capabilities specific to the `workspace/symbol` request.
+---@field symbol? lsp.WorkspaceSymbolClientCapabilities
+---Capabilities specific to the `workspace/executeCommand` request.
+---@field executeCommand? lsp.ExecuteCommandClientCapabilities
+---The client has support for workspace folders.
+---
+---@since 3.6.0
+---@field workspaceFolders? boolean
+---The client supports `workspace/configuration` requests.
+---
+---@since 3.6.0
+---@field configuration? boolean
+---Capabilities specific to the semantic token requests scoped to the
+---workspace.
+---
+---@since 3.16.0.
+---@field semanticTokens? lsp.SemanticTokensWorkspaceClientCapabilities
+---Capabilities specific to the code lens requests scoped to the
+---workspace.
+---
+---@since 3.16.0.
+---@field codeLens? lsp.CodeLensWorkspaceClientCapabilities
+---The client has support for file notifications/requests for user operations on files.
+---
+---Since 3.16.0
+---@field fileOperations? lsp.FileOperationClientCapabilities
+---Capabilities specific to the inline values requests scoped to the
+---workspace.
+---
+---@since 3.17.0.
+---@field inlineValue? lsp.InlineValueWorkspaceClientCapabilities
+---Capabilities specific to the inlay hint requests scoped to the
+---workspace.
+---
+---@since 3.17.0.
+---@field inlayHint? lsp.InlayHintWorkspaceClientCapabilities
+---Capabilities specific to the diagnostic requests scoped to the
+---workspace.
+---
+---@since 3.17.0.
+---@field diagnostics? lsp.DiagnosticWorkspaceClientCapabilities
+
+---Text document specific client capabilities.
+---@class lsp.TextDocumentClientCapabilities
+---Defines which synchronization capabilities the client supports.
+---@field synchronization? lsp.TextDocumentSyncClientCapabilities
+---Capabilities specific to the `textDocument/completion` request.
+---@field completion? lsp.CompletionClientCapabilities
+---Capabilities specific to the `textDocument/hover` request.
+---@field hover? lsp.HoverClientCapabilities
+---Capabilities specific to the `textDocument/signatureHelp` request.
+---@field signatureHelp? lsp.SignatureHelpClientCapabilities
+---Capabilities specific to the `textDocument/declaration` request.
+---
+---@since 3.14.0
+---@field declaration? lsp.DeclarationClientCapabilities
+---Capabilities specific to the `textDocument/definition` request.
+---@field definition? lsp.DefinitionClientCapabilities
+---Capabilities specific to the `textDocument/typeDefinition` request.
+---
+---@since 3.6.0
+---@field typeDefinition? lsp.TypeDefinitionClientCapabilities
+---Capabilities specific to the `textDocument/implementation` request.
+---
+---@since 3.6.0
+---@field implementation? lsp.ImplementationClientCapabilities
+---Capabilities specific to the `textDocument/references` request.
+---@field references? lsp.ReferenceClientCapabilities
+---Capabilities specific to the `textDocument/documentHighlight` request.
+---@field documentHighlight? lsp.DocumentHighlightClientCapabilities
+---Capabilities specific to the `textDocument/documentSymbol` request.
+---@field documentSymbol? lsp.DocumentSymbolClientCapabilities
+---Capabilities specific to the `textDocument/codeAction` request.
+---@field codeAction? lsp.CodeActionClientCapabilities
+---Capabilities specific to the `textDocument/codeLens` request.
+---@field codeLens? lsp.CodeLensClientCapabilities
+---Capabilities specific to the `textDocument/documentLink` request.
+---@field documentLink? lsp.DocumentLinkClientCapabilities
+---Capabilities specific to the `textDocument/documentColor` and the
+---`textDocument/colorPresentation` request.
+---
+---@since 3.6.0
+---@field colorProvider? lsp.DocumentColorClientCapabilities
+---Capabilities specific to the `textDocument/formatting` request.
+---@field formatting? lsp.DocumentFormattingClientCapabilities
+---Capabilities specific to the `textDocument/rangeFormatting` request.
+---@field rangeFormatting? lsp.DocumentRangeFormattingClientCapabilities
+---Capabilities specific to the `textDocument/onTypeFormatting` request.
+---@field onTypeFormatting? lsp.DocumentOnTypeFormattingClientCapabilities
+---Capabilities specific to the `textDocument/rename` request.
+---@field rename? lsp.RenameClientCapabilities
+---Capabilities specific to the `textDocument/foldingRange` request.
+---
+---@since 3.10.0
+---@field foldingRange? lsp.FoldingRangeClientCapabilities
+---Capabilities specific to the `textDocument/selectionRange` request.
+---
+---@since 3.15.0
+---@field selectionRange? lsp.SelectionRangeClientCapabilities
+---Capabilities specific to the `textDocument/publishDiagnostics` notification.
+---@field publishDiagnostics? lsp.PublishDiagnosticsClientCapabilities
+---Capabilities specific to the various call hierarchy requests.
+---
+---@since 3.16.0
+---@field callHierarchy? lsp.CallHierarchyClientCapabilities
+---Capabilities specific to the various semantic token request.
+---
+---@since 3.16.0
+---@field semanticTokens? lsp.SemanticTokensClientCapabilities
+---Capabilities specific to the `textDocument/linkedEditingRange` request.
+---
+---@since 3.16.0
+---@field linkedEditingRange? lsp.LinkedEditingRangeClientCapabilities
+---Client capabilities specific to the `textDocument/moniker` request.
+---
+---@since 3.16.0
+---@field moniker? lsp.MonikerClientCapabilities
+---Capabilities specific to the various type hierarchy requests.
+---
+---@since 3.17.0
+---@field typeHierarchy? lsp.TypeHierarchyClientCapabilities
+---Capabilities specific to the `textDocument/inlineValue` request.
+---
+---@since 3.17.0
+---@field inlineValue? lsp.InlineValueClientCapabilities
+---Capabilities specific to the `textDocument/inlayHint` request.
+---
+---@since 3.17.0
+---@field inlayHint? lsp.InlayHintClientCapabilities
+---Capabilities specific to the diagnostic pull model.
+---
+---@since 3.17.0
+---@field diagnostic? lsp.DiagnosticClientCapabilities
+---Client capabilities specific to inline completions.
+---
+---@since 3.18.0
+---@field inlineCompletion? lsp.InlineCompletionClientCapabilities
+
+---Capabilities specific to the notebook document support.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentClientCapabilities
+---Capabilities specific to notebook document synchronization
+---
+---@since 3.17.0
+---@field synchronization lsp.NotebookDocumentSyncClientCapabilities
+
+---@class lsp.WindowClientCapabilities
+---It indicates whether the client supports server initiated
+---progress using the `window/workDoneProgress/create` request.
+---
+---The capability also controls Whether client supports handling
+---of progress notifications. If set servers are allowed to report a
+---`workDoneProgress` property in the request specific server
+---capabilities.
+---
+---@since 3.15.0
+---@field workDoneProgress? boolean
+---Capabilities specific to the showMessage request.
+---
+---@since 3.16.0
+---@field showMessage? lsp.ShowMessageRequestClientCapabilities
+---Capabilities specific to the showDocument request.
+---
+---@since 3.16.0
+---@field showDocument? lsp.ShowDocumentClientCapabilities
+
+---General client capabilities.
+---
+---@since 3.16.0
+---@class lsp.GeneralClientCapabilities
+---Client capability that signals how the client
+---handles stale requests (e.g. a request
+---for which the client will not process the response
+---anymore since the information is outdated).
+---
+---@since 3.17.0
+---@field staleRequestSupport? anonym18
+---Client capabilities specific to regular expressions.
+---
+---@since 3.16.0
+---@field regularExpressions? lsp.RegularExpressionsClientCapabilities
+---Client capabilities specific to the client's markdown parser.
+---
+---@since 3.16.0
+---@field markdown? lsp.MarkdownClientCapabilities
+---The position encodings supported by the client. Client and server
+---have to agree on the same position encoding to ensure that offsets
+---(e.g. character position in a line) are interpreted the same on both
+---sides.
+---
+---To keep the protocol backwards compatible the following applies: if
+---the value 'utf-16' is missing from the array of position encodings
+---servers can assume that the client supports UTF-16. UTF-16 is
+---therefore a mandatory encoding.
+---
+---If omitted it defaults to ['utf-16'].
+---
+---Implementation considerations: since the conversion from one encoding
+---into another requires the content of the file / line the conversion
+---is best done where the file is read which is usually on the server
+---side.
+---
+---@since 3.17.0
+---@field positionEncodings? lsp.PositionEncodingKind[]
+
+---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.
+---
+---@since 3.17.0
+---@class lsp.RelativePattern
+---A workspace folder or a base URI to which this pattern will be matched
+---against relatively.
+---@field baseUri lsp.WorkspaceFolder|lsp.URI
+---The actual glob pattern;
+---@field pattern lsp.Pattern
+
+---@class lsp.WorkspaceEditClientCapabilities
+---The client supports versioned document changes in `WorkspaceEdit`s
+---@field documentChanges? boolean
+---The resource operations the client supports. Clients should at least
+---support 'create', 'rename' and 'delete' files and folders.
+---
+---@since 3.13.0
+---@field resourceOperations? lsp.ResourceOperationKind[]
+---The failure handling strategy of a client if applying the workspace edit
+---fails.
+---
+---@since 3.13.0
+---@field failureHandling? lsp.FailureHandlingKind
+---Whether the client normalizes line endings to the client specific
+---setting.
+---If set to `true` the client will normalize line ending characters
+---in a workspace edit to the client-specified new line
+---character.
+---
+---@since 3.16.0
+---@field normalizesLineEndings? boolean
+---Whether the client in general supports change annotations on text edits,
+---create file, rename file and delete file changes.
+---
+---@since 3.16.0
+---@field changeAnnotationSupport? anonym19
+
+---@class lsp.DidChangeConfigurationClientCapabilities
+---Did change configuration notification supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---@class lsp.DidChangeWatchedFilesClientCapabilities
+---Did change watched files notification supports dynamic registration. Please note
+---that the current protocol doesn't support static configuration for file changes
+---from the server side.
+---@field dynamicRegistration? boolean
+---Whether the client has support for {@link RelativePattern relative pattern}
+---or not.
+---
+---@since 3.17.0
+---@field relativePatternSupport? boolean
+
+---Client capabilities for a {@link WorkspaceSymbolRequest}.
+---@class lsp.WorkspaceSymbolClientCapabilities
+---Symbol request supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
+---@field symbolKind? anonym20
+---The client supports tags on `SymbolInformation`.
+---Clients supporting tags have to handle unknown tags gracefully.
+---
+---@since 3.16.0
+---@field tagSupport? anonym21
+---The client support partial workspace symbols. The client will send the
+---request `workspaceSymbol/resolve` to the server to resolve additional
+---properties.
+---
+---@since 3.17.0
+---@field resolveSupport? anonym22
+
+---The client capabilities of a {@link ExecuteCommandRequest}.
+---@class lsp.ExecuteCommandClientCapabilities
+---Execute command supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---@since 3.16.0
+---@class lsp.SemanticTokensWorkspaceClientCapabilities
+---Whether the client implementation supports a refresh request sent from
+---the server to the client.
+---
+---Note that this event is global and will force the client to refresh all
+---semantic tokens currently shown. It should be used with absolute care
+---and is useful for situation where a server for example detects a project
+---wide change that requires such a calculation.
+---@field refreshSupport? boolean
+
+---@since 3.16.0
+---@class lsp.CodeLensWorkspaceClientCapabilities
+---Whether the client implementation supports a refresh request sent from the
+---server to the client.
+---
+---Note that this event is global and will force the client to refresh all
+---code lenses currently shown. It should be used with absolute care and is
+---useful for situation where a server for example detect a project wide
+---change that requires such a calculation.
+---@field refreshSupport? boolean
+
+---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
+---like renaming a file in the UI.
+---
+---@since 3.16.0
+---@class lsp.FileOperationClientCapabilities
+---Whether the client supports dynamic registration for file requests/notifications.
+---@field dynamicRegistration? boolean
+---The client has support for sending didCreateFiles notifications.
+---@field didCreate? boolean
+---The client has support for sending willCreateFiles requests.
+---@field willCreate? boolean
+---The client has support for sending didRenameFiles notifications.
+---@field didRename? boolean
+---The client has support for sending willRenameFiles requests.
+---@field willRename? boolean
+---The client has support for sending didDeleteFiles notifications.
+---@field didDelete? boolean
+---The client has support for sending willDeleteFiles requests.
+---@field willDelete? boolean
+
+---Client workspace capabilities specific to inline values.
+---
+---@since 3.17.0
+---@class lsp.InlineValueWorkspaceClientCapabilities
+---Whether the client implementation supports a refresh request sent from the
+---server to the client.
+---
+---Note that this event is global and will force the client to refresh all
+---inline values currently shown. It should be used with absolute care and is
+---useful for situation where a server for example detects a project wide
+---change that requires such a calculation.
+---@field refreshSupport? boolean
+
+---Client workspace capabilities specific to inlay hints.
+---
+---@since 3.17.0
+---@class lsp.InlayHintWorkspaceClientCapabilities
+---Whether the client implementation supports a refresh request sent from
+---the server to the client.
+---
+---Note that this event is global and will force the client to refresh all
+---inlay hints currently shown. It should be used with absolute care and
+---is useful for situation where a server for example detects a project wide
+---change that requires such a calculation.
+---@field refreshSupport? boolean
+
+---Workspace client capabilities specific to diagnostic pull requests.
+---
+---@since 3.17.0
+---@class lsp.DiagnosticWorkspaceClientCapabilities
+---Whether the client implementation supports a refresh request sent from
+---the server to the client.
+---
+---Note that this event is global and will force the client to refresh all
+---pulled diagnostics currently shown. It should be used with absolute care and
+---is useful for situation where a server for example detects a project wide
+---change that requires such a calculation.
+---@field refreshSupport? boolean
+
+---@class lsp.TextDocumentSyncClientCapabilities
+---Whether text document synchronization supports dynamic registration.
+---@field dynamicRegistration? boolean
+---The client supports sending will save notifications.
+---@field willSave? boolean
+---The client supports sending a will save request and
+---waits for a response providing text edits which will
+---be applied to the document before it is saved.
+---@field willSaveWaitUntil? boolean
+---The client supports did save notifications.
+---@field didSave? boolean
+
+---Completion client capabilities
+---@class lsp.CompletionClientCapabilities
+---Whether completion supports dynamic registration.
+---@field dynamicRegistration? boolean
+---The client supports the following `CompletionItem` specific
+---capabilities.
+---@field completionItem? anonym26
+---@field completionItemKind? anonym27
+---Defines how the client handles whitespace and indentation
+---when accepting a completion item that uses multi line
+---text in either `insertText` or `textEdit`.
+---
+---@since 3.17.0
+---@field insertTextMode? lsp.InsertTextMode
+---The client supports to send additional context information for a
+---`textDocument/completion` request.
+---@field contextSupport? boolean
+---The client supports the following `CompletionList` specific
+---capabilities.
+---
+---@since 3.17.0
+---@field completionList? anonym28
+
+---@class lsp.HoverClientCapabilities
+---Whether hover supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Client supports the following content formats for the content
+---property. The order describes the preferred format of the client.
+---@field contentFormat? lsp.MarkupKind[]
+
+---Client Capabilities for a {@link SignatureHelpRequest}.
+---@class lsp.SignatureHelpClientCapabilities
+---Whether signature help supports dynamic registration.
+---@field dynamicRegistration? boolean
+---The client supports the following `SignatureInformation`
+---specific properties.
+---@field signatureInformation? anonym30
+---The client supports to send additional context information for a
+---`textDocument/signatureHelp` request. A client that opts into
+---contextSupport will also support the `retriggerCharacters` on
+---`SignatureHelpOptions`.
+---
+---@since 3.15.0
+---@field contextSupport? boolean
+
+---@since 3.14.0
+---@class lsp.DeclarationClientCapabilities
+---Whether declaration supports dynamic registration. If this is set to `true`
+---the client supports the new `DeclarationRegistrationOptions` return value
+---for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---The client supports additional metadata in the form of declaration links.
+---@field linkSupport? boolean
+
+---Client Capabilities for a {@link DefinitionRequest}.
+---@class lsp.DefinitionClientCapabilities
+---Whether definition supports dynamic registration.
+---@field dynamicRegistration? boolean
+---The client supports additional metadata in the form of definition links.
+---
+---@since 3.14.0
+---@field linkSupport? boolean
+
+---Since 3.6.0
+---@class lsp.TypeDefinitionClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `TypeDefinitionRegistrationOptions` return value
+---for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---The client supports additional metadata in the form of definition links.
+---
+---Since 3.14.0
+---@field linkSupport? boolean
+
+---@since 3.6.0
+---@class lsp.ImplementationClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `ImplementationRegistrationOptions` return value
+---for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---The client supports additional metadata in the form of definition links.
+---
+---@since 3.14.0
+---@field linkSupport? boolean
+
+---Client Capabilities for a {@link ReferencesRequest}.
+---@class lsp.ReferenceClientCapabilities
+---Whether references supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---Client Capabilities for a {@link DocumentHighlightRequest}.
+---@class lsp.DocumentHighlightClientCapabilities
+---Whether document highlight supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---Client Capabilities for a {@link DocumentSymbolRequest}.
+---@class lsp.DocumentSymbolClientCapabilities
+---Whether document symbol supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Specific capabilities for the `SymbolKind` in the
+---`textDocument/documentSymbol` request.
+---@field symbolKind? anonym31
+---The client supports hierarchical document symbols.
+---@field hierarchicalDocumentSymbolSupport? boolean
+---The client supports tags on `SymbolInformation`. Tags are supported on
+---`DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
+---Clients supporting tags have to handle unknown tags gracefully.
+---
+---@since 3.16.0
+---@field tagSupport? anonym32
+---The client supports an additional label presented in the UI when
+---registering a document symbol provider.
+---
+---@since 3.16.0
+---@field labelSupport? boolean
+
+---The Client Capabilities of a {@link CodeActionRequest}.
+---@class lsp.CodeActionClientCapabilities
+---Whether code action supports dynamic registration.
+---@field dynamicRegistration? boolean
+---The client support code action literals of type `CodeAction` as a valid
+---response of the `textDocument/codeAction` request. If the property is not
+---set the request can only return `Command` literals.
+---
+---@since 3.8.0
+---@field codeActionLiteralSupport? anonym34
+---Whether code action supports the `isPreferred` property.
+---
+---@since 3.15.0
+---@field isPreferredSupport? boolean
+---Whether code action supports the `disabled` property.
+---
+---@since 3.16.0
+---@field disabledSupport? boolean
+---Whether code action supports the `data` property which is
+---preserved between a `textDocument/codeAction` and a
+---`codeAction/resolve` request.
+---
+---@since 3.16.0
+---@field dataSupport? boolean
+---Whether the client supports resolving additional code action
+---properties via a separate `codeAction/resolve` request.
+---
+---@since 3.16.0
+---@field resolveSupport? anonym35
+---Whether the client honors the change annotations in
+---text edits and resource operations returned via the
+---`CodeAction#edit` property by for example presenting
+---the workspace edit in the user interface and asking
+---for confirmation.
+---
+---@since 3.16.0
+---@field honorsChangeAnnotations? boolean
+
+---The client capabilities of a {@link CodeLensRequest}.
+---@class lsp.CodeLensClientCapabilities
+---Whether code lens supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---The client capabilities of a {@link DocumentLinkRequest}.
+---@class lsp.DocumentLinkClientCapabilities
+---Whether document link supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Whether the client supports the `tooltip` property on `DocumentLink`.
+---
+---@since 3.15.0
+---@field tooltipSupport? boolean
+
+---@class lsp.DocumentColorClientCapabilities
+---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.
+---@field dynamicRegistration? boolean
+
+---Client capabilities of a {@link DocumentFormattingRequest}.
+---@class lsp.DocumentFormattingClientCapabilities
+---Whether formatting supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---Client capabilities of a {@link DocumentRangeFormattingRequest}.
+---@class lsp.DocumentRangeFormattingClientCapabilities
+---Whether range formatting supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Whether the client supports formatting multiple ranges at once.
+---
+---@since 3.18.0
+---@proposed
+---@field rangesSupport? boolean
+
+---Client capabilities of a {@link DocumentOnTypeFormattingRequest}.
+---@class lsp.DocumentOnTypeFormattingClientCapabilities
+---Whether on type formatting supports dynamic registration.
+---@field dynamicRegistration? boolean
+
+---@class lsp.RenameClientCapabilities
+---Whether rename supports dynamic registration.
+---@field dynamicRegistration? boolean
+---Client supports testing for validity of rename operations
+---before execution.
+---
+---@since 3.12.0
+---@field prepareSupport? boolean
+---Client supports the default behavior result.
+---
+---The value indicates the default behavior used by the
+---client.
+---
+---@since 3.16.0
+---@field prepareSupportDefaultBehavior? lsp.PrepareSupportDefaultBehavior
+---Whether the client honors the change annotations in
+---text edits and resource operations returned via the
+---rename request's workspace edit by for example presenting
+---the workspace edit in the user interface and asking
+---for confirmation.
+---
+---@since 3.16.0
+---@field honorsChangeAnnotations? boolean
+
+---@class lsp.FoldingRangeClientCapabilities
+---Whether implementation supports dynamic registration for folding range
+---providers. If this is set to `true` the client supports the new
+---`FoldingRangeRegistrationOptions` return value for the corresponding
+---server capability as well.
+---@field dynamicRegistration? boolean
+---The maximum number of folding ranges that the client prefers to receive
+---per document. The value serves as a hint, servers are free to follow the
+---limit.
+---@field rangeLimit? uinteger
+---If set, the client signals that it only supports folding complete lines.
+---If set, client will ignore specified `startCharacter` and `endCharacter`
+---properties in a FoldingRange.
+---@field lineFoldingOnly? boolean
+---Specific options for the folding range kind.
+---
+---@since 3.17.0
+---@field foldingRangeKind? anonym36
+---Specific options for the folding range.
+---
+---@since 3.17.0
+---@field foldingRange? anonym37
+
+---@class lsp.SelectionRangeClientCapabilities
+---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.
+---@field dynamicRegistration? boolean
+
+---The publish diagnostic client capabilities.
+---@class lsp.PublishDiagnosticsClientCapabilities
+---Whether the clients accepts diagnostics with related information.
+---@field relatedInformation? boolean
+---Client supports the tag property to provide meta data about a diagnostic.
+---Clients supporting tags have to handle unknown tags gracefully.
+---
+---@since 3.15.0
+---@field tagSupport? anonym38
+---Whether the client interprets the version property of the
+---`textDocument/publishDiagnostics` notification's parameter.
+---
+---@since 3.15.0
+---@field versionSupport? boolean
+---Client supports a codeDescription property
+---
+---@since 3.16.0
+---@field codeDescriptionSupport? boolean
+---Whether code action supports the `data` property which is
+---preserved between a `textDocument/publishDiagnostics` and
+---`textDocument/codeAction` request.
+---
+---@since 3.16.0
+---@field dataSupport? boolean
+
+---@since 3.16.0
+---@class lsp.CallHierarchyClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+
+---@since 3.16.0
+---@class lsp.SemanticTokensClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---Which requests the client supports and might send to the server
+---depending on the server's capability. Please note that clients might not
+---show semantic tokens or degrade some of the user experience if a range
+---or full request is advertised by the client but not provided by the
+---server. If for example the client capability `requests.full` and
+---`request.range` are both set to true but the server only provides a
+---range provider the client might not render a minimap correctly or might
+---even decide to not show any semantic tokens at all.
+---@field requests anonym41
+---The token types that the client supports.
+---@field tokenTypes string[]
+---The token modifiers that the client supports.
+---@field tokenModifiers string[]
+---The token formats the clients supports.
+---@field formats lsp.TokenFormat[]
+---Whether the client supports tokens that can overlap each other.
+---@field overlappingTokenSupport? boolean
+---Whether the client supports tokens that can span multiple lines.
+---@field multilineTokenSupport? boolean
+---Whether the client allows the server to actively cancel a
+---semantic token request, e.g. supports returning
+---LSPErrorCodes.ServerCancelled. If a server does the client
+---needs to retrigger the request.
+---
+---@since 3.17.0
+---@field serverCancelSupport? boolean
+---Whether the client uses semantic tokens to augment existing
+---syntax tokens. If set to `true` client side created syntax
+---tokens and semantic tokens are both used for colorization. If
+---set to `false` the client only uses the returned semantic tokens
+---for colorization.
+---
+---If the value is `undefined` then the client behavior is not
+---specified.
+---
+---@since 3.17.0
+---@field augmentsSyntaxTokens? boolean
+
+---Client capabilities for the linked editing range request.
+---
+---@since 3.16.0
+---@class lsp.LinkedEditingRangeClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+
+---Client capabilities specific to the moniker request.
+---
+---@since 3.16.0
+---@class lsp.MonikerClientCapabilities
+---Whether moniker supports dynamic registration. If this is set to `true`
+---the client supports the new `MonikerRegistrationOptions` return value
+---for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+
+---@since 3.17.0
+---@class lsp.TypeHierarchyClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+
+---Client capabilities specific to inline values.
+---
+---@since 3.17.0
+---@class lsp.InlineValueClientCapabilities
+---Whether implementation supports dynamic registration for inline value providers.
+---@field dynamicRegistration? boolean
+
+---Inlay hint client capabilities.
+---
+---@since 3.17.0
+---@class lsp.InlayHintClientCapabilities
+---Whether inlay hints support dynamic registration.
+---@field dynamicRegistration? boolean
+---Indicates which properties a client can resolve lazily on an inlay
+---hint.
+---@field resolveSupport? anonym42
+
+---Client capabilities specific to diagnostic pull requests.
+---
+---@since 3.17.0
+---@class lsp.DiagnosticClientCapabilities
+---Whether implementation supports dynamic registration. If this is set to `true`
+---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---Whether the clients supports related documents for document diagnostic pulls.
+---@field relatedDocumentSupport? boolean
+
+---Client capabilities specific to inline completions.
+---
+---@since 3.18.0
+---@class lsp.InlineCompletionClientCapabilities
+---Whether implementation supports dynamic registration for inline completion providers.
+---@field dynamicRegistration? boolean
+
+---Notebook specific client capabilities.
+---
+---@since 3.17.0
+---@class lsp.NotebookDocumentSyncClientCapabilities
+---Whether implementation supports dynamic registration. If this is
+---set to `true` the client supports the new
+---`(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
+---return value for the corresponding server capability as well.
+---@field dynamicRegistration? boolean
+---The client supports sending execution summary data per cell.
+---@field executionSummarySupport? boolean
+
+---Show message request client capabilities
+---@class lsp.ShowMessageRequestClientCapabilities
+---Capabilities specific to the `MessageActionItem` type.
+---@field messageActionItem? anonym43
+
+---Client capabilities for the showDocument request.
+---
+---@since 3.16.0
+---@class lsp.ShowDocumentClientCapabilities
+---The client has support for the showDocument
+---request.
+---@field support boolean
+
+---Client capabilities specific to regular expressions.
+---
+---@since 3.16.0
+---@class lsp.RegularExpressionsClientCapabilities
+---The engine's name.
+---@field engine string
+---The engine's version.
+---@field version? string
+
+---Client capabilities specific to the used markdown parser.
+---
+---@since 3.16.0
+---@class lsp.MarkdownClientCapabilities
+---The name of the parser.
+---@field parser string
+---The version of the parser.
+---@field version? string
+---A list of HTML tags that the client allows / supports in
+---Markdown.
+---
+---@since 3.17.0
+---@field allowedTags? string[]
+
+---A set of predefined token types. This set is not fixed
+---an clients can specify additional token types via the
+---corresponding client capabilities.
+---
+---@since 3.16.0
+---@alias lsp.SemanticTokenTypes
+---| "namespace" # namespace
+---| "type" # type
+---| "class" # class
+---| "enum" # enum
+---| "interface" # interface
+---| "struct" # struct
+---| "typeParameter" # typeParameter
+---| "parameter" # parameter
+---| "variable" # variable
+---| "property" # property
+---| "enumMember" # enumMember
+---| "event" # event
+---| "function" # function
+---| "method" # method
+---| "macro" # macro
+---| "keyword" # keyword
+---| "modifier" # modifier
+---| "comment" # comment
+---| "string" # string
+---| "number" # number
+---| "regexp" # regexp
+---| "operator" # operator
+---| "decorator" # decorator
+
+---A set of predefined token modifiers. This set is not fixed
+---an clients can specify additional token types via the
+---corresponding client capabilities.
+---
+---@since 3.16.0
+---@alias lsp.SemanticTokenModifiers
+---| "declaration" # declaration
+---| "definition" # definition
+---| "readonly" # readonly
+---| "static" # static
+---| "deprecated" # deprecated
+---| "abstract" # abstract
+---| "async" # async
+---| "modification" # modification
+---| "documentation" # documentation
+---| "defaultLibrary" # defaultLibrary
+
+---The document diagnostic report kinds.
+---
+---@since 3.17.0
+---@alias lsp.DocumentDiagnosticReportKind
+---| "full" # Full
+---| "unchanged" # Unchanged
+
+---Predefined error codes.
+---@alias lsp.ErrorCodes
+---| -32700 # ParseError
+---| -32600 # InvalidRequest
+---| -32601 # MethodNotFound
+---| -32602 # InvalidParams
+---| -32603 # InternalError
+---| -32002 # ServerNotInitialized
+---| -32001 # UnknownErrorCode
+
+---@alias lsp.LSPErrorCodes
+---| -32803 # RequestFailed
+---| -32802 # ServerCancelled
+---| -32801 # ContentModified
+---| -32800 # RequestCancelled
+
+---A set of predefined range kinds.
+---@alias lsp.FoldingRangeKind
+---| "comment" # Comment
+---| "imports" # Imports
+---| "region" # Region
+
+---A symbol kind.
+---@alias lsp.SymbolKind
+---| 1 # File
+---| 2 # Module
+---| 3 # Namespace
+---| 4 # Package
+---| 5 # Class
+---| 6 # Method
+---| 7 # Property
+---| 8 # Field
+---| 9 # Constructor
+---| 10 # Enum
+---| 11 # Interface
+---| 12 # Function
+---| 13 # Variable
+---| 14 # Constant
+---| 15 # String
+---| 16 # Number
+---| 17 # Boolean
+---| 18 # Array
+---| 19 # Object
+---| 20 # Key
+---| 21 # Null
+---| 22 # EnumMember
+---| 23 # Struct
+---| 24 # Event
+---| 25 # Operator
+---| 26 # TypeParameter
+
+---Symbol tags are extra annotations that tweak the rendering of a symbol.
+---
+---@since 3.16
+---@alias lsp.SymbolTag
+---| 1 # Deprecated
+
+---Moniker uniqueness level to define scope of the moniker.
+---
+---@since 3.16.0
+---@alias lsp.UniquenessLevel
+---| "document" # document
+---| "project" # project
+---| "group" # group
+---| "scheme" # scheme
+---| "global" # global
+
+---The moniker kind.
+---
+---@since 3.16.0
+---@alias lsp.MonikerKind
+---| "import" # import
+---| "export" # export
+---| "local" # local
+
+---Inlay hint kinds.
+---
+---@since 3.17.0
+---@alias lsp.InlayHintKind
+---| 1 # Type
+---| 2 # Parameter
+
+---Defines whether the insert text in a completion item should be interpreted as
+---plain text or a snippet.
+---@alias lsp.InsertTextFormat
+---| 1 # PlainText
+---| 2 # Snippet
+
+---The message type
+---@alias lsp.MessageType
+---| 1 # Error
+---| 2 # Warning
+---| 3 # Info
+---| 4 # Log
+
+---Defines how the host (editor) should sync
+---document changes to the language server.
+---@alias lsp.TextDocumentSyncKind
+---| 0 # None
+---| 1 # Full
+---| 2 # Incremental
+
+---Represents reasons why a text document is saved.
+---@alias lsp.TextDocumentSaveReason
+---| 1 # Manual
+---| 2 # AfterDelay
+---| 3 # FocusOut
+
+---The kind of a completion entry.
+---@alias lsp.CompletionItemKind
+---| 1 # Text
+---| 2 # Method
+---| 3 # Function
+---| 4 # Constructor
+---| 5 # Field
+---| 6 # Variable
+---| 7 # Class
+---| 8 # Interface
+---| 9 # Module
+---| 10 # Property
+---| 11 # Unit
+---| 12 # Value
+---| 13 # Enum
+---| 14 # Keyword
+---| 15 # Snippet
+---| 16 # Color
+---| 17 # File
+---| 18 # Reference
+---| 19 # Folder
+---| 20 # EnumMember
+---| 21 # Constant
+---| 22 # Struct
+---| 23 # Event
+---| 24 # Operator
+---| 25 # TypeParameter
+
+---Completion item tags are extra annotations that tweak the rendering of a completion
+---item.
+---
+---@since 3.15.0
+---@alias lsp.CompletionItemTag
+---| 1 # Deprecated
+
+---How whitespace and indentation is handled during completion
+---item insertion.
+---
+---@since 3.16.0
+---@alias lsp.InsertTextMode
+---| 1 # asIs
+---| 2 # adjustIndentation
+
+---A document highlight kind.
+---@alias lsp.DocumentHighlightKind
+---| 1 # Text
+---| 2 # Read
+---| 3 # Write
+
+---A set of predefined code action kinds
+---@alias lsp.CodeActionKind
+---| "" # Empty
+---| "quickfix" # QuickFix
+---| "refactor" # Refactor
+---| "refactor.extract" # RefactorExtract
+---| "refactor.inline" # RefactorInline
+---| "refactor.rewrite" # RefactorRewrite
+---| "source" # Source
+---| "source.organizeImports" # SourceOrganizeImports
+---| "source.fixAll" # SourceFixAll
+
+---@alias lsp.TraceValues
+---| "off" # Off
+---| "messages" # Messages
+---| "verbose" # Verbose
+
+---Describes the content type that a client supports in various
+---result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
+---
+---Please note that `MarkupKinds` must not start with a `$`. This kinds
+---are reserved for internal usage.
+---@alias lsp.MarkupKind
+---| "plaintext" # PlainText
+---| "markdown" # Markdown
+
+---Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.
+---
+---@since 3.18.0
+---@alias lsp.InlineCompletionTriggerKind
+---| 0 # Invoked
+---| 1 # Automatic
+
+---A set of predefined position encoding kinds.
+---
+---@since 3.17.0
+---@alias lsp.PositionEncodingKind
+---| "utf-8" # UTF8
+---| "utf-16" # UTF16
+---| "utf-32" # UTF32
+
+---The file event type
+---@alias lsp.FileChangeType
+---| 1 # Created
+---| 2 # Changed
+---| 3 # Deleted
+
+---@alias lsp.WatchKind
+---| 1 # Create
+---| 2 # Change
+---| 4 # Delete
+
+---The diagnostic's severity.
+---@alias lsp.DiagnosticSeverity
+---| 1 # Error
+---| 2 # Warning
+---| 3 # Information
+---| 4 # Hint
+
+---The diagnostic tags.
+---
+---@since 3.15.0
+---@alias lsp.DiagnosticTag
+---| 1 # Unnecessary
+---| 2 # Deprecated
+
+---How a completion was triggered
+---@alias lsp.CompletionTriggerKind
+---| 1 # Invoked
+---| 2 # TriggerCharacter
+---| 3 # TriggerForIncompleteCompletions
+
+---How a signature help was triggered.
+---
+---@since 3.15.0
+---@alias lsp.SignatureHelpTriggerKind
+---| 1 # Invoked
+---| 2 # TriggerCharacter
+---| 3 # ContentChange
+
+---The reason why code actions were requested.
+---
+---@since 3.17.0
+---@alias lsp.CodeActionTriggerKind
+---| 1 # Invoked
+---| 2 # Automatic
+
+---A pattern kind describing if a glob pattern matches a file a folder or
+---both.
+---
+---@since 3.16.0
+---@alias lsp.FileOperationPatternKind
+---| "file" # file
+---| "folder" # folder
+
+---A notebook cell kind.
+---
+---@since 3.17.0
+---@alias lsp.NotebookCellKind
+---| 1 # Markup
+---| 2 # Code
+
+---@alias lsp.ResourceOperationKind
+---| "create" # Create
+---| "rename" # Rename
+---| "delete" # Delete
+
+---@alias lsp.FailureHandlingKind
+---| "abort" # Abort
+---| "transactional" # Transactional
+---| "textOnlyTransactional" # TextOnlyTransactional
+---| "undo" # Undo
+
+---@alias lsp.PrepareSupportDefaultBehavior
+---| 1 # Identifier
+
+---@alias lsp.TokenFormat
+---| "relative" # Relative
+
+---The definition of a symbol represented as one or many {@link Location locations}.
+---For most programming languages there is only one location at which a symbol is
+---defined.
+---
+---Servers should prefer returning `DefinitionLink` over `Definition` if supported
+---by the client.
+---@alias lsp.Definition lsp.Location|lsp.Location[]
+
+---Information about where a symbol is defined.
+---
+---Provides additional metadata over normal {@link Location location} definitions, including the range of
+---the defining symbol
+---@alias lsp.DefinitionLink lsp.LocationLink
+
+---LSP arrays.
+---@since 3.17.0
+---@alias lsp.LSPArray lsp.LSPAny[]
+
+---The LSP any type.
+---Please note that strictly speaking a property with the value `undefined`
+---can't be converted into JSON preserving the property name. However for
+---convenience it is allowed and assumed that all these properties are
+---optional as well.
+---@since 3.17.0
+---@alias lsp.LSPAny lsp.LSPObject|lsp.LSPArray|string|integer|uinteger|decimal|boolean|lsp.null
+
+---The declaration of a symbol representation as one or many {@link Location locations}.
+---@alias lsp.Declaration lsp.Location|lsp.Location[]
+
+---Information about where a symbol is declared.
+---
+---Provides additional metadata over normal {@link Location location} declarations, including the range of
+---the declaring symbol.
+---
+---Servers should prefer returning `DeclarationLink` over `Declaration` if supported
+---by the client.
+---@alias lsp.DeclarationLink lsp.LocationLink
+
+---Inline value information can be provided by different means:
+---- directly as a text value (class InlineValueText).
+---- as a name to use for a variable lookup (class InlineValueVariableLookup)
+---- as an evaluatable expression (class InlineValueEvaluatableExpression)
+---The InlineValue types combines all inline value types into one type.
+---
+---@since 3.17.0
+---@alias lsp.InlineValue lsp.InlineValueText|lsp.InlineValueVariableLookup|lsp.InlineValueEvaluatableExpression
+
+---The result of a document diagnostic pull request. A report can
+---either be a full report containing all diagnostics for the
+---requested document or an unchanged report indicating that nothing
+---has changed in terms of diagnostics in comparison to the last
+---pull request.
+---
+---@since 3.17.0
+---@alias lsp.DocumentDiagnosticReport lsp.RelatedFullDocumentDiagnosticReport|lsp.RelatedUnchangedDocumentDiagnosticReport
+
+---@alias lsp.PrepareRenameResult lsp.Range|anonym44|anonym45
+
+---A document selector is the combination of one or many document filters.
+---
+---@sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`;
+---
+---The use of a string as a document filter is deprecated @since 3.16.0.
+---@alias lsp.DocumentSelector lsp.DocumentFilter[]
+
+---@alias lsp.ProgressToken integer|string
+
+---An identifier to refer to a change annotation stored with a workspace edit.
+---@alias lsp.ChangeAnnotationIdentifier string
+
+---A workspace diagnostic document report.
+---
+---@since 3.17.0
+---@alias lsp.WorkspaceDocumentDiagnosticReport lsp.WorkspaceFullDocumentDiagnosticReport|lsp.WorkspaceUnchangedDocumentDiagnosticReport
+
+---An event describing a change to a text document. If only a text is provided
+---it is considered to be the full content of the document.
+---@alias lsp.TextDocumentContentChangeEvent anonym46|anonym47
+
+---MarkedString can be used to render human readable text. It is either a markdown string
+---or a code-block that provides a language and a code snippet. The language identifier
+---is semantically equal to the optional language identifier in fenced code blocks in GitHub
+---issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
+---
+---The pair of a language and a value is an equivalent to markdown:
+---```${language}
+---${value}
+---```
+---
+---Note that markdown strings will be sanitized - that means html will be escaped.
+---@deprecated use MarkupContent instead.
+---@alias lsp.MarkedString string|anonym48
+
+---A document filter describes a top level text document or
+---a notebook cell document.
+---
+---@since 3.17.0 - proposed support for NotebookCellTextDocumentFilter.
+---@alias lsp.DocumentFilter lsp.TextDocumentFilter|lsp.NotebookCellTextDocumentFilter
+
+---LSP object definition.
+---@since 3.17.0
+---@alias lsp.LSPObject table<string, lsp.LSPAny>
+
+---The glob pattern. Either a string pattern or a relative pattern.
+---
+---@since 3.17.0
+---@alias lsp.GlobPattern lsp.Pattern|lsp.RelativePattern
+
+---A document filter denotes a document by different properties like
+---the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
+---its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
+---
+---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`)
+---
+---@sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
+---@sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
+---
+---@since 3.17.0
+---@alias lsp.TextDocumentFilter anonym49|anonym50|anonym51
+
+---A notebook document filter denotes a notebook document by
+---different properties. The properties will be match
+---against the notebook's URI (same as with documents)
+---
+---@since 3.17.0
+---@alias lsp.NotebookDocumentFilter anonym52|anonym53|anonym54
+
+---The glob pattern to watch relative to the base path. 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 conditions (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`)
+---
+---@since 3.17.0
+---@alias lsp.Pattern string
+
+---@class anonym1
+---The name of the server as defined by the server.
+---@field name string
+---The server's version as defined by the server.
+---@field version? string
+
+---@class anonym3
+---@field insert lsp.Range
+---@field replace lsp.Range
+
+---@class anonym2
+---A default commit character set.
+---
+---@since 3.17.0
+---@field commitCharacters? string[]
+---A default edit range.
+---
+---@since 3.17.0
+---@field editRange? lsp.Range|anonym3
+---A default insert text format.
+---
+---@since 3.17.0
+---@field insertTextFormat? lsp.InsertTextFormat
+---A default insert text mode.
+---
+---@since 3.17.0
+---@field insertTextMode? lsp.InsertTextMode
+---A default data value.
+---
+---@since 3.17.0
+---@field data? lsp.LSPAny
+
+---@class anonym4
+---Human readable description of why the code action is currently disabled.
+---
+---This is displayed in the code actions UI.
+---@field reason string
+
+---@class anonym5
+---@field uri lsp.DocumentUri
+
+---@class anonym6
+
+---@class anonym7
+---The server supports deltas for full documents.
+---@field delta? boolean
+
+---@class anonym9
+---The change to the cell array.
+---@field array lsp.NotebookCellArrayChange
+---Additional opened cell text documents.
+---@field didOpen? lsp.TextDocumentItem[]
+---Additional closed cell text documents.
+---@field didClose? lsp.TextDocumentIdentifier[]
+
+---@class anonym10
+---@field document lsp.VersionedTextDocumentIdentifier
+---@field changes lsp.TextDocumentContentChangeEvent[]
+
+---@class anonym8
+---Changes to the cell structure to add or
+---remove cells.
+---@field structure? anonym9
+---Changes to notebook cells properties like its
+---kind, execution summary or metadata.
+---@field data? lsp.NotebookCell[]
+---Changes to the text content of notebook cells.
+---@field textContent? anonym10[]
+
+---@class anonym11
+---The name of the client as defined by the client.
+---@field name string
+---The client's version as defined by the client.
+---@field version? string
+
+---@class anonym12
+---The server supports workspace folder.
+---
+---@since 3.6.0
+---@field workspaceFolders? lsp.WorkspaceFoldersServerCapabilities
+---The server is interested in notifications/requests for operations on files.
+---
+---@since 3.16.0
+---@field fileOperations? lsp.FileOperationOptions
+
+---@class anonym13
+---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
+---@field labelDetailsSupport? boolean
+
+---@class anonym15
+---@field language string
+
+---@class anonym14
+---The notebook to be synced If a string
+---value is provided it matches against the
+---notebook type. '*' matches every notebook.
+---@field notebook string|lsp.NotebookDocumentFilter
+---The cells of the matching notebook to be synced.
+---@field cells? anonym15[]
+
+---@class anonym17
+---@field language string
+
+---@class anonym16
+---The notebook to be synced If a string
+---value is provided it matches against the
+---notebook type. '*' matches every notebook.
+---@field notebook? string|lsp.NotebookDocumentFilter
+---The cells of the matching notebook to be synced.
+---@field cells anonym17[]
+
+---@class anonym18
+---The client will actively cancel the request.
+---@field cancel boolean
+---The list of requests for which the client
+---will retry the request if it receives a
+---response with error code `ContentModified`
+---@field retryOnContentModified string[]
+
+---@class anonym19
+---Whether the client groups edits with equal labels into tree nodes,
+---for instance all edits labelled with "Changes in Strings" would
+---be a tree node.
+---@field groupsOnLabel? boolean
+
+---@class anonym20
+---The symbol kind values the client supports. When this
+---property exists the client also guarantees that it will
+---handle values outside its set gracefully and falls back
+---to a default value when unknown.
+---
+---If this property is not present the client only supports
+---the symbol kinds from `File` to `Array` as defined in
+---the initial version of the protocol.
+---@field valueSet? lsp.SymbolKind[]
+
+---@class anonym21
+---The tags supported by the client.
+---@field valueSet lsp.SymbolTag[]
+
+---@class anonym22
+---The properties that a client can resolve lazily. Usually
+---`location.range`
+---@field properties string[]
+
+---@class anonym24
+---The tags supported by the client.
+---@field valueSet lsp.CompletionItemTag[]
+
+---@class anonym25
+---The properties that a client can resolve lazily.
+---@field properties string[]
+
+---@class anonym26
+---@field valueSet lsp.InsertTextMode[]
+
+---@class anonym23
+---Client supports snippets as insert text.
+---
+---A snippet can define tab stops and placeholders with `$1`, `$2`
+---and `${3:foo}`. `$0` defines the final tab stop, it defaults to
+---the end of the snippet. Placeholders with equal identifiers are linked,
+---that is typing in one will update others too.
+---@field snippetSupport? boolean
+---Client supports commit characters on a completion item.
+---@field commitCharactersSupport? boolean
+---Client supports the following content formats for the documentation
+---property. The order describes the preferred format of the client.
+---@field documentationFormat? lsp.MarkupKind[]
+---Client supports the deprecated property on a completion item.
+---@field deprecatedSupport? boolean
+---Client supports the preselect property on a completion item.
+---@field preselectSupport? boolean
+---Client supports the tag property on a completion item. Clients supporting
+---tags have to handle unknown tags gracefully. Clients especially need to
+---preserve unknown tags when sending a completion item back to the server in
+---a resolve call.
+---
+---@since 3.15.0
+---@field tagSupport? anonym24
+---Client support insert replace edit to control different behavior if a
+---completion item is inserted in the text or should replace text.
+---
+---@since 3.16.0
+---@field insertReplaceSupport? boolean
+---Indicates which properties a client can resolve lazily on a completion
+---item. Before version 3.16.0 only the predefined properties `documentation`
+---and `details` could be resolved lazily.
+---
+---@since 3.16.0
+---@field resolveSupport? anonym25
+---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
+---@field insertTextModeSupport? anonym26
+---The client has support for completion item label
+---details (see also `CompletionItemLabelDetails`).
+---
+---@since 3.17.0
+---@field labelDetailsSupport? boolean
+
+---@class anonym27
+---The completion item kind values the client supports. When this
+---property exists the client also guarantees that it will
+---handle values outside its set gracefully and falls back
+---to a default value when unknown.
+---
+---If this property is not present the client only supports
+---the completion items kinds from `Text` to `Reference` as defined in
+---the initial version of the protocol.
+---@field valueSet? lsp.CompletionItemKind[]
+
+---@class anonym28
+---The client supports the following itemDefaults on
+---a completion list.
+---
+---The value lists the supported property names of the
+---`CompletionList.itemDefaults` object. If omitted
+---no properties are supported.
+---
+---@since 3.17.0
+---@field itemDefaults? string[]
+
+---@class anonym30
+---The client supports processing label offsets instead of a
+---simple label string.
+---
+---@since 3.14.0
+---@field labelOffsetSupport? boolean
+
+---@class anonym29
+---Client supports the following content formats for the documentation
+---property. The order describes the preferred format of the client.
+---@field documentationFormat? lsp.MarkupKind[]
+---Client capabilities specific to parameter information.
+---@field parameterInformation? anonym30
+---The client supports the `activeParameter` property on `SignatureInformation`
+---literal.
+---
+---@since 3.16.0
+---@field activeParameterSupport? boolean
+
+---@class anonym31
+---The symbol kind values the client supports. When this
+---property exists the client also guarantees that it will
+---handle values outside its set gracefully and falls back
+---to a default value when unknown.
+---
+---If this property is not present the client only supports
+---the symbol kinds from `File` to `Array` as defined in
+---the initial version of the protocol.
+---@field valueSet? lsp.SymbolKind[]
+
+---@class anonym32
+---The tags supported by the client.
+---@field valueSet lsp.SymbolTag[]
+
+---@class anonym34
+---The code action kind values the client supports. When this
+---property exists the client also guarantees that it will
+---handle values outside its set gracefully and falls back
+---to a default value when unknown.
+---@field valueSet lsp.CodeActionKind[]
+
+---@class anonym33
+---The code action kind is support with the following value
+---set.
+---@field codeActionKind anonym34
+
+---@class anonym35
+---The properties that a client can resolve lazily.
+---@field properties string[]
+
+---@class anonym36
+---The folding range kind values the client supports. When this
+---property exists the client also guarantees that it will
+---handle values outside its set gracefully and falls back
+---to a default value when unknown.
+---@field valueSet? lsp.FoldingRangeKind[]
+
+---@class anonym37
+---If set, the client signals that it supports setting collapsedText on
+---folding ranges to display custom labels instead of the default text.
+---
+---@since 3.17.0
+---@field collapsedText? boolean
+
+---@class anonym38
+---The tags supported by the client.
+---@field valueSet lsp.DiagnosticTag[]
+
+---@class anonym40
+
+---@class anonym41
+---The client will send the `textDocument/semanticTokens/full/delta` request if
+---the server provides a corresponding handler.
+---@field delta? boolean
+
+---@class anonym39
+---The client will send the `textDocument/semanticTokens/range` request if
+---the server provides a corresponding handler.
+---@field range? boolean|anonym40
+---The client will send the `textDocument/semanticTokens/full` request if
+---the server provides a corresponding handler.
+---@field full? boolean|anonym41
+
+---@class anonym42
+---The properties that a client can resolve lazily.
+---@field properties string[]
+
+---@class anonym43
+---Whether the client supports additional attributes which
+---are preserved and send back to the server in the
+---request's response.
+---@field additionalPropertiesSupport? boolean
+
+---@class anonym44
+---@field range lsp.Range
+---@field placeholder string
+
+---@class anonym45
+---@field defaultBehavior boolean
+
+---@class anonym46
+---The range of the document that changed.
+---@field range lsp.Range
+---The optional length of the range that got replaced.
+---
+---@deprecated use range instead.
+---@field rangeLength? uinteger
+---The new text for the provided range.
+---@field text string
+
+---@class anonym47
+---The new text of the whole document.
+---@field text string
+
+---@class anonym48
+---@field language string
+---@field value string
+
+---@class anonym49
+---A language id, like `typescript`.
+---@field language string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme? string
+---A glob pattern, like `*.{ts,js}`.
+---@field pattern? string
+
+---@class anonym50
+---A language id, like `typescript`.
+---@field language? string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme string
+---A glob pattern, like `*.{ts,js}`.
+---@field pattern? string
+
+---@class anonym51
+---A language id, like `typescript`.
+---@field language? string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme? string
+---A glob pattern, like `*.{ts,js}`.
+---@field pattern string
+
+---@class anonym52
+---The type of the enclosing notebook.
+---@field notebookType string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme? string
+---A glob pattern.
+---@field pattern? string
+
+---@class anonym53
+---The type of the enclosing notebook.
+---@field notebookType? string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme string
+---A glob pattern.
+---@field pattern? string
+
+---@class anonym54
+---The type of the enclosing notebook.
+---@field notebookType? string
+---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
+---@field scheme? string
+---A glob pattern.
+---@field pattern string