aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/_meta/protocol.lua
diff options
context:
space:
mode:
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.