neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

protocol.lua (193400B)


      1 --[[
      2 THIS FILE IS GENERATED by src/gen/gen_lsp.lua
      3 DO NOT EDIT MANUALLY
      4 
      5 Based on LSP protocol 3.18
      6 
      7 Regenerate:
      8 nvim -l src/gen/gen_lsp.lua --version 3.18
      9 --]]
     10 
     11 ---@meta
     12 error('Cannot require a meta file')
     13 
     14 ---@alias lsp.null vim.NIL
     15 ---@alias uinteger integer
     16 ---@alias decimal number
     17 ---@alias lsp.DocumentUri string
     18 ---@alias lsp.URI string
     19 
     20 ---@class lsp.ImplementationParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
     21 
     22 ---Represents a location inside a resource, such as a line
     23 ---inside a text file.
     24 ---@class lsp.Location
     25 ---
     26 ---@field uri lsp.DocumentUri
     27 ---
     28 ---@field range lsp.Range
     29 
     30 ---@class lsp.ImplementationRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.ImplementationOptions, lsp.StaticRegistrationOptions
     31 
     32 ---@class lsp.TypeDefinitionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
     33 
     34 ---@class lsp.TypeDefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.TypeDefinitionOptions, lsp.StaticRegistrationOptions
     35 
     36 ---A workspace folder inside a client.
     37 ---@class lsp.WorkspaceFolder
     38 ---
     39 ---The associated URI for this workspace folder.
     40 ---@field uri lsp.URI
     41 ---
     42 ---The name of the workspace folder. Used to refer to this
     43 ---workspace folder in the user interface.
     44 ---@field name string
     45 
     46 ---The parameters of a `workspace/didChangeWorkspaceFolders` notification.
     47 ---@class lsp.DidChangeWorkspaceFoldersParams
     48 ---
     49 ---The actual workspace folder change event.
     50 ---@field event lsp.WorkspaceFoldersChangeEvent
     51 
     52 ---The parameters of a configuration request.
     53 ---@class lsp.ConfigurationParams
     54 ---
     55 ---@field items lsp.ConfigurationItem[]
     56 
     57 ---Parameters for a {@link DocumentColorRequest}.
     58 ---@class lsp.DocumentColorParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
     59 ---
     60 ---The text document.
     61 ---@field textDocument lsp.TextDocumentIdentifier
     62 
     63 ---Represents a color range from a document.
     64 ---@class lsp.ColorInformation
     65 ---
     66 ---The range in the document where this color appears.
     67 ---@field range lsp.Range
     68 ---
     69 ---The actual color value for this color range.
     70 ---@field color lsp.Color
     71 
     72 ---@class lsp.DocumentColorRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentColorOptions, lsp.StaticRegistrationOptions
     73 
     74 ---Parameters for a {@link ColorPresentationRequest}.
     75 ---@class lsp.ColorPresentationParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
     76 ---
     77 ---The text document.
     78 ---@field textDocument lsp.TextDocumentIdentifier
     79 ---
     80 ---The color to request presentations for.
     81 ---@field color lsp.Color
     82 ---
     83 ---The range where the color would be inserted. Serves as a context.
     84 ---@field range lsp.Range
     85 
     86 ---@class lsp.ColorPresentation
     87 ---
     88 ---The label of this color presentation. It will be shown on the color
     89 ---picker header. By default this is also the text that is inserted when selecting
     90 ---this color presentation.
     91 ---@field label string
     92 ---
     93 ---An {@link TextEdit edit} which is applied to a document when selecting
     94 ---this presentation for the color.  When `falsy` the {@link ColorPresentation.label label}
     95 ---is used.
     96 ---@field textEdit? lsp.TextEdit
     97 ---
     98 ---An optional array of additional {@link TextEdit text edits} that are applied when
     99 ---selecting this color presentation. Edits must not overlap with the main {@link ColorPresentation.textEdit edit} nor with themselves.
    100 ---@field additionalTextEdits? lsp.TextEdit[]
    101 
    102 ---@class lsp.WorkDoneProgressOptions
    103 ---
    104 ---@field workDoneProgress? boolean
    105 
    106 ---General text document registration options.
    107 ---@class lsp.TextDocumentRegistrationOptions
    108 ---
    109 ---A document selector to identify the scope of the registration. If set to null
    110 ---the document selector provided on the client side will be used.
    111 ---@field documentSelector lsp.DocumentSelector|lsp.null
    112 
    113 ---Parameters for a {@link FoldingRangeRequest}.
    114 ---@class lsp.FoldingRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    115 ---
    116 ---The text document.
    117 ---@field textDocument lsp.TextDocumentIdentifier
    118 
    119 ---Represents a folding range. To be valid, start and end line must be bigger than zero and smaller
    120 ---than the number of lines in the document. Clients are free to ignore invalid ranges.
    121 ---@class lsp.FoldingRange
    122 ---
    123 ---The zero-based start line of the range to fold. The folded area starts after the line's last character.
    124 ---To be valid, the end must be zero or larger and smaller than the number of lines in the document.
    125 ---@field startLine uinteger
    126 ---
    127 ---The zero-based character offset from where the folded range starts. If not defined, defaults to the length of the start line.
    128 ---@field startCharacter? uinteger
    129 ---
    130 ---The zero-based end line of the range to fold. The folded area ends with the line's last character.
    131 ---To be valid, the end must be zero or larger and smaller than the number of lines in the document.
    132 ---@field endLine uinteger
    133 ---
    134 ---The zero-based character offset before the folded range ends. If not defined, defaults to the length of the end line.
    135 ---@field endCharacter? uinteger
    136 ---
    137 ---Describes the kind of the folding range such as 'comment' or 'region'. The kind
    138 ---is used to categorize folding ranges and used by commands like 'Fold all comments'.
    139 ---See {@link FoldingRangeKind} for an enumeration of standardized kinds.
    140 ---@field kind? lsp.FoldingRangeKind
    141 ---
    142 ---The text that the client should show when the specified range is
    143 ---collapsed. If not defined or not supported by the client, a default
    144 ---will be chosen by the client.
    145 ---
    146 ---@since 3.17.0
    147 ---@field collapsedText? string
    148 
    149 ---@class lsp.FoldingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.FoldingRangeOptions, lsp.StaticRegistrationOptions
    150 
    151 ---@class lsp.DeclarationParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
    152 
    153 ---@class lsp.DeclarationRegistrationOptions: lsp.DeclarationOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
    154 
    155 ---A parameter literal used in selection range requests.
    156 ---@class lsp.SelectionRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    157 ---
    158 ---The text document.
    159 ---@field textDocument lsp.TextDocumentIdentifier
    160 ---
    161 ---The positions inside the text document.
    162 ---@field positions lsp.Position[]
    163 
    164 ---A selection range represents a part of a selection hierarchy. A selection range
    165 ---may have a parent selection range that contains it.
    166 ---@class lsp.SelectionRange
    167 ---
    168 ---The {@link Range range} of this selection range.
    169 ---@field range lsp.Range
    170 ---
    171 ---The parent selection range containing this range. Therefore `parent.range` must contain `this.range`.
    172 ---@field parent? lsp.SelectionRange
    173 
    174 ---@class lsp.SelectionRangeRegistrationOptions: lsp.SelectionRangeOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
    175 
    176 ---@class lsp.WorkDoneProgressCreateParams
    177 ---
    178 ---The token to be used to report progress.
    179 ---@field token lsp.ProgressToken
    180 
    181 ---@class lsp.WorkDoneProgressCancelParams
    182 ---
    183 ---The token to be used to report progress.
    184 ---@field token lsp.ProgressToken
    185 
    186 ---The parameter of a `textDocument/prepareCallHierarchy` request.
    187 ---
    188 ---@since 3.16.0
    189 ---@class lsp.CallHierarchyPrepareParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
    190 
    191 ---Represents programming constructs like functions or constructors in the context
    192 ---of call hierarchy.
    193 ---
    194 ---@since 3.16.0
    195 ---@class lsp.CallHierarchyItem
    196 ---
    197 ---The name of this item.
    198 ---@field name string
    199 ---
    200 ---The kind of this item.
    201 ---@field kind lsp.SymbolKind
    202 ---
    203 ---Tags for this item.
    204 ---@field tags? lsp.SymbolTag[]
    205 ---
    206 ---More detail for this item, e.g. the signature of a function.
    207 ---@field detail? string
    208 ---
    209 ---The resource identifier of this item.
    210 ---@field uri lsp.DocumentUri
    211 ---
    212 ---The range enclosing this symbol not including leading/trailing whitespace but everything else, e.g. comments and code.
    213 ---@field range lsp.Range
    214 ---
    215 ---The range that should be selected and revealed when this symbol is being picked, e.g. the name of a function.
    216 ---Must be contained by the {@link CallHierarchyItem.range `range`}.
    217 ---@field selectionRange lsp.Range
    218 ---
    219 ---A data entry field that is preserved between a call hierarchy prepare and
    220 ---incoming calls or outgoing calls requests.
    221 ---@field data? lsp.LSPAny
    222 
    223 ---Call hierarchy options used during static or dynamic registration.
    224 ---
    225 ---@since 3.16.0
    226 ---@class lsp.CallHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CallHierarchyOptions, lsp.StaticRegistrationOptions
    227 
    228 ---The parameter of a `callHierarchy/incomingCalls` request.
    229 ---
    230 ---@since 3.16.0
    231 ---@class lsp.CallHierarchyIncomingCallsParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    232 ---
    233 ---@field item lsp.CallHierarchyItem
    234 
    235 ---Represents an incoming call, e.g. a caller of a method or constructor.
    236 ---
    237 ---@since 3.16.0
    238 ---@class lsp.CallHierarchyIncomingCall
    239 ---
    240 ---The item that makes the call.
    241 ---@field from lsp.CallHierarchyItem
    242 ---
    243 ---The ranges at which the calls appear. This is relative to the caller
    244 ---denoted by {@link CallHierarchyIncomingCall.from `this.from`}.
    245 ---@field fromRanges lsp.Range[]
    246 
    247 ---The parameter of a `callHierarchy/outgoingCalls` request.
    248 ---
    249 ---@since 3.16.0
    250 ---@class lsp.CallHierarchyOutgoingCallsParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    251 ---
    252 ---@field item lsp.CallHierarchyItem
    253 
    254 ---Represents an outgoing call, e.g. calling a getter from a method or a method from a constructor etc.
    255 ---
    256 ---@since 3.16.0
    257 ---@class lsp.CallHierarchyOutgoingCall
    258 ---
    259 ---The item that is called.
    260 ---@field to lsp.CallHierarchyItem
    261 ---
    262 ---The range at which this item is called. This is the range relative to the caller, e.g the item
    263 ---passed to {@link CallHierarchyItemProvider.provideCallHierarchyOutgoingCalls `provideCallHierarchyOutgoingCalls`}
    264 ---and not {@link CallHierarchyOutgoingCall.to `this.to`}.
    265 ---@field fromRanges lsp.Range[]
    266 
    267 ---@since 3.16.0
    268 ---@class lsp.SemanticTokensParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    269 ---
    270 ---The text document.
    271 ---@field textDocument lsp.TextDocumentIdentifier
    272 
    273 ---@since 3.16.0
    274 ---@class lsp.SemanticTokens
    275 ---
    276 ---An optional result id. If provided and clients support delta updating
    277 ---the client will include the result id in the next semantic token request.
    278 ---A server can then instead of computing all semantic tokens again simply
    279 ---send a delta.
    280 ---@field resultId? string
    281 ---
    282 ---The actual tokens.
    283 ---@field data uinteger[]
    284 
    285 ---@since 3.16.0
    286 ---@class lsp.SemanticTokensPartialResult
    287 ---
    288 ---@field data uinteger[]
    289 
    290 ---@since 3.16.0
    291 ---@class lsp.SemanticTokensRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.SemanticTokensOptions, lsp.StaticRegistrationOptions
    292 
    293 ---@since 3.16.0
    294 ---@class lsp.SemanticTokensDeltaParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    295 ---
    296 ---The text document.
    297 ---@field textDocument lsp.TextDocumentIdentifier
    298 ---
    299 ---The result id of a previous response. The result Id can either point to a full response
    300 ---or a delta response depending on what was received last.
    301 ---@field previousResultId string
    302 
    303 ---@since 3.16.0
    304 ---@class lsp.SemanticTokensDelta
    305 ---
    306 ---@field resultId? string
    307 ---
    308 ---The semantic token edits to transform a previous result into a new result.
    309 ---@field edits lsp.SemanticTokensEdit[]
    310 
    311 ---@since 3.16.0
    312 ---@class lsp.SemanticTokensDeltaPartialResult
    313 ---
    314 ---@field edits lsp.SemanticTokensEdit[]
    315 
    316 ---@since 3.16.0
    317 ---@class lsp.SemanticTokensRangeParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    318 ---
    319 ---The text document.
    320 ---@field textDocument lsp.TextDocumentIdentifier
    321 ---
    322 ---The range the semantic tokens are requested for.
    323 ---@field range lsp.Range
    324 
    325 ---Params to show a resource in the UI.
    326 ---
    327 ---@since 3.16.0
    328 ---@class lsp.ShowDocumentParams
    329 ---
    330 ---The uri to show.
    331 ---@field uri lsp.URI
    332 ---
    333 ---Indicates to show the resource in an external program.
    334 ---To show, for example, `https://code.visualstudio.com/`
    335 ---in the default WEB browser set `external` to `true`.
    336 ---@field external? boolean
    337 ---
    338 ---An optional property to indicate whether the editor
    339 ---showing the document should take focus or not.
    340 ---Clients might ignore this property if an external
    341 ---program is started.
    342 ---@field takeFocus? boolean
    343 ---
    344 ---An optional selection range if the document is a text
    345 ---document. Clients might ignore the property if an
    346 ---external program is started or the file is not a text
    347 ---file.
    348 ---@field selection? lsp.Range
    349 
    350 ---The result of a showDocument request.
    351 ---
    352 ---@since 3.16.0
    353 ---@class lsp.ShowDocumentResult
    354 ---
    355 ---A boolean indicating if the show was successful.
    356 ---@field success boolean
    357 
    358 ---@class lsp.LinkedEditingRangeParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
    359 
    360 ---The result of a linked editing range request.
    361 ---
    362 ---@since 3.16.0
    363 ---@class lsp.LinkedEditingRanges
    364 ---
    365 ---A list of ranges that can be edited together. The ranges must have
    366 ---identical length and contain identical text content. The ranges cannot overlap.
    367 ---@field ranges lsp.Range[]
    368 ---
    369 ---An optional word pattern (regular expression) that describes valid contents for
    370 ---the given ranges. If no pattern is provided, the client configuration's word
    371 ---pattern will be used.
    372 ---@field wordPattern? string
    373 
    374 ---@class lsp.LinkedEditingRangeRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.LinkedEditingRangeOptions, lsp.StaticRegistrationOptions
    375 
    376 ---The parameters sent in notifications/requests for user-initiated creation of
    377 ---files.
    378 ---
    379 ---@since 3.16.0
    380 ---@class lsp.CreateFilesParams
    381 ---
    382 ---An array of all files/folders created in this operation.
    383 ---@field files lsp.FileCreate[]
    384 
    385 ---A workspace edit represents changes to many resources managed in the workspace. The edit
    386 ---should either provide `changes` or `documentChanges`. If documentChanges are present
    387 ---they are preferred over `changes` if the client can handle versioned document edits.
    388 ---
    389 ---Since version 3.13.0 a workspace edit can contain resource operations as well. If resource
    390 ---operations are present clients need to execute the operations in the order in which they
    391 ---are provided. So a workspace edit for example can consist of the following two changes:
    392 ---(1) a create file a.txt and (2) a text document edit which insert text into file a.txt.
    393 ---
    394 ---An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will
    395 ---cause failure of the operation. How the client recovers from the failure is described by
    396 ---the client capability: `workspace.workspaceEdit.failureHandling`
    397 ---@class lsp.WorkspaceEdit
    398 ---
    399 ---Holds changes to existing resources.
    400 ---@field changes? table<lsp.DocumentUri, lsp.TextEdit[]>
    401 ---
    402 ---Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes
    403 ---are either an array of `TextDocumentEdit`s to express changes to n different text documents
    404 ---where each text document edit addresses a specific version of a text document. Or it can contain
    405 ---above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.
    406 ---
    407 ---Whether a client supports versioned document edits is expressed via
    408 ---`workspace.workspaceEdit.documentChanges` client capability.
    409 ---
    410 ---If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then
    411 ---only plain `TextEdit`s using the `changes` property are supported.
    412 ---@field documentChanges? (lsp.TextDocumentEdit|lsp.CreateFile|lsp.RenameFile|lsp.DeleteFile)[]
    413 ---
    414 ---A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and
    415 ---delete file / folder operations.
    416 ---
    417 ---Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.
    418 ---
    419 ---@since 3.16.0
    420 ---@field changeAnnotations? table<lsp.ChangeAnnotationIdentifier, lsp.ChangeAnnotation>
    421 
    422 ---The options to register for file operations.
    423 ---
    424 ---@since 3.16.0
    425 ---@class lsp.FileOperationRegistrationOptions
    426 ---
    427 ---The actual filters.
    428 ---@field filters lsp.FileOperationFilter[]
    429 
    430 ---The parameters sent in notifications/requests for user-initiated renames of
    431 ---files.
    432 ---
    433 ---@since 3.16.0
    434 ---@class lsp.RenameFilesParams
    435 ---
    436 ---An array of all files/folders renamed in this operation. When a folder is renamed, only
    437 ---the folder will be included, and not its children.
    438 ---@field files lsp.FileRename[]
    439 
    440 ---The parameters sent in notifications/requests for user-initiated deletes of
    441 ---files.
    442 ---
    443 ---@since 3.16.0
    444 ---@class lsp.DeleteFilesParams
    445 ---
    446 ---An array of all files/folders deleted in this operation.
    447 ---@field files lsp.FileDelete[]
    448 
    449 ---@class lsp.MonikerParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
    450 
    451 ---Moniker definition to match LSIF 0.5 moniker definition.
    452 ---
    453 ---@since 3.16.0
    454 ---@class lsp.Moniker
    455 ---
    456 ---The scheme of the moniker. For example tsc or .Net
    457 ---@field scheme string
    458 ---
    459 ---The identifier of the moniker. The value is opaque in LSIF however
    460 ---schema owners are allowed to define the structure if they want.
    461 ---@field identifier string
    462 ---
    463 ---The scope in which the moniker is unique
    464 ---@field unique lsp.UniquenessLevel
    465 ---
    466 ---The moniker kind if known.
    467 ---@field kind? lsp.MonikerKind
    468 
    469 ---@class lsp.MonikerRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.MonikerOptions
    470 
    471 ---The parameter of a `textDocument/prepareTypeHierarchy` request.
    472 ---
    473 ---@since 3.17.0
    474 ---@class lsp.TypeHierarchyPrepareParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
    475 
    476 ---@since 3.17.0
    477 ---@class lsp.TypeHierarchyItem
    478 ---
    479 ---The name of this item.
    480 ---@field name string
    481 ---
    482 ---The kind of this item.
    483 ---@field kind lsp.SymbolKind
    484 ---
    485 ---Tags for this item.
    486 ---@field tags? lsp.SymbolTag[]
    487 ---
    488 ---More detail for this item, e.g. the signature of a function.
    489 ---@field detail? string
    490 ---
    491 ---The resource identifier of this item.
    492 ---@field uri lsp.DocumentUri
    493 ---
    494 ---The range enclosing this symbol not including leading/trailing whitespace
    495 ---but everything else, e.g. comments and code.
    496 ---@field range lsp.Range
    497 ---
    498 ---The range that should be selected and revealed when this symbol is being
    499 ---picked, e.g. the name of a function. Must be contained by the
    500 ---{@link TypeHierarchyItem.range `range`}.
    501 ---@field selectionRange lsp.Range
    502 ---
    503 ---A data entry field that is preserved between a type hierarchy prepare and
    504 ---supertypes or subtypes requests. It could also be used to identify the
    505 ---type hierarchy in the server, helping improve the performance on
    506 ---resolving supertypes and subtypes.
    507 ---@field data? lsp.LSPAny
    508 
    509 ---Type hierarchy options used during static or dynamic registration.
    510 ---
    511 ---@since 3.17.0
    512 ---@class lsp.TypeHierarchyRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.TypeHierarchyOptions, lsp.StaticRegistrationOptions
    513 
    514 ---The parameter of a `typeHierarchy/supertypes` request.
    515 ---
    516 ---@since 3.17.0
    517 ---@class lsp.TypeHierarchySupertypesParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    518 ---
    519 ---@field item lsp.TypeHierarchyItem
    520 
    521 ---The parameter of a `typeHierarchy/subtypes` request.
    522 ---
    523 ---@since 3.17.0
    524 ---@class lsp.TypeHierarchySubtypesParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    525 ---
    526 ---@field item lsp.TypeHierarchyItem
    527 
    528 ---A parameter literal used in inline value requests.
    529 ---
    530 ---@since 3.17.0
    531 ---@class lsp.InlineValueParams: lsp.WorkDoneProgressParams
    532 ---
    533 ---The text document.
    534 ---@field textDocument lsp.TextDocumentIdentifier
    535 ---
    536 ---The document range for which inline values should be computed.
    537 ---@field range lsp.Range
    538 ---
    539 ---Additional information about the context in which inline values were
    540 ---requested.
    541 ---@field context lsp.InlineValueContext
    542 
    543 ---Inline value options used during static or dynamic registration.
    544 ---
    545 ---@since 3.17.0
    546 ---@class lsp.InlineValueRegistrationOptions: lsp.InlineValueOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
    547 
    548 ---A parameter literal used in inlay hint requests.
    549 ---
    550 ---@since 3.17.0
    551 ---@class lsp.InlayHintParams: lsp.WorkDoneProgressParams
    552 ---
    553 ---The text document.
    554 ---@field textDocument lsp.TextDocumentIdentifier
    555 ---
    556 ---The document range for which inlay hints should be computed.
    557 ---@field range lsp.Range
    558 
    559 ---Inlay hint information.
    560 ---
    561 ---@since 3.17.0
    562 ---@class lsp.InlayHint
    563 ---
    564 ---The position of this hint.
    565 ---
    566 ---If multiple hints have the same position, they will be shown in the order
    567 ---they appear in the response.
    568 ---@field position lsp.Position
    569 ---
    570 ---The label of this hint. A human readable string or an array of
    571 ---InlayHintLabelPart label parts.
    572 ---
    573 ---*Note* that neither the string nor the label part can be empty.
    574 ---@field label string|lsp.InlayHintLabelPart[]
    575 ---
    576 ---The kind of this hint. Can be omitted in which case the client
    577 ---should fall back to a reasonable default.
    578 ---@field kind? lsp.InlayHintKind
    579 ---
    580 ---Optional text edits that are performed when accepting this inlay hint.
    581 ---
    582 ---*Note* that edits are expected to change the document so that the inlay
    583 ---hint (or its nearest variant) is now part of the document and the inlay
    584 ---hint itself is now obsolete.
    585 ---@field textEdits? lsp.TextEdit[]
    586 ---
    587 ---The tooltip text when you hover over this item.
    588 ---@field tooltip? string|lsp.MarkupContent
    589 ---
    590 ---Render padding before the hint.
    591 ---
    592 ---Note: Padding should use the editor's background color, not the
    593 ---background color of the hint itself. That means padding can be used
    594 ---to visually align/separate an inlay hint.
    595 ---@field paddingLeft? boolean
    596 ---
    597 ---Render padding after the hint.
    598 ---
    599 ---Note: Padding should use the editor's background color, not the
    600 ---background color of the hint itself. That means padding can be used
    601 ---to visually align/separate an inlay hint.
    602 ---@field paddingRight? boolean
    603 ---
    604 ---A data entry field that is preserved on an inlay hint between
    605 ---a `textDocument/inlayHint` and a `inlayHint/resolve` request.
    606 ---@field data? lsp.LSPAny
    607 
    608 ---Inlay hint options used during static or dynamic registration.
    609 ---
    610 ---@since 3.17.0
    611 ---@class lsp.InlayHintRegistrationOptions: lsp.InlayHintOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
    612 
    613 ---Parameters of the document diagnostic request.
    614 ---
    615 ---@since 3.17.0
    616 ---@class lsp.DocumentDiagnosticParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    617 ---
    618 ---The text document.
    619 ---@field textDocument lsp.TextDocumentIdentifier
    620 ---
    621 ---The additional identifier  provided during registration.
    622 ---@field identifier? string
    623 ---
    624 ---The result id of a previous response if provided.
    625 ---@field previousResultId? string
    626 
    627 ---A partial result for a document diagnostic report.
    628 ---
    629 ---@since 3.17.0
    630 ---@class lsp.DocumentDiagnosticReportPartialResult
    631 ---
    632 ---@field relatedDocuments table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
    633 
    634 ---Cancellation data returned from a diagnostic request.
    635 ---
    636 ---@since 3.17.0
    637 ---@class lsp.DiagnosticServerCancellationData
    638 ---
    639 ---@field retriggerRequest boolean
    640 
    641 ---Diagnostic registration options.
    642 ---
    643 ---@since 3.17.0
    644 ---@class lsp.DiagnosticRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DiagnosticOptions, lsp.StaticRegistrationOptions
    645 
    646 ---Parameters of the workspace diagnostic request.
    647 ---
    648 ---@since 3.17.0
    649 ---@class lsp.WorkspaceDiagnosticParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
    650 ---
    651 ---The additional identifier provided during registration.
    652 ---@field identifier? string
    653 ---
    654 ---The currently known diagnostic reports with their
    655 ---previous result ids.
    656 ---@field previousResultIds lsp.PreviousResultId[]
    657 
    658 ---A workspace diagnostic report.
    659 ---
    660 ---@since 3.17.0
    661 ---@class lsp.WorkspaceDiagnosticReport
    662 ---
    663 ---@field items lsp.WorkspaceDocumentDiagnosticReport[]
    664 
    665 ---A partial result for a workspace diagnostic report.
    666 ---
    667 ---@since 3.17.0
    668 ---@class lsp.WorkspaceDiagnosticReportPartialResult
    669 ---
    670 ---@field items lsp.WorkspaceDocumentDiagnosticReport[]
    671 
    672 ---The params sent in an open notebook document notification.
    673 ---
    674 ---@since 3.17.0
    675 ---@class lsp.DidOpenNotebookDocumentParams
    676 ---
    677 ---The notebook document that got opened.
    678 ---@field notebookDocument lsp.NotebookDocument
    679 ---
    680 ---The text documents that represent the content
    681 ---of a notebook cell.
    682 ---@field cellTextDocuments lsp.TextDocumentItem[]
    683 
    684 ---Registration options specific to a notebook.
    685 ---
    686 ---@since 3.17.0
    687 ---@class lsp.NotebookDocumentSyncRegistrationOptions: lsp.NotebookDocumentSyncOptions, lsp.StaticRegistrationOptions
    688 
    689 ---The params sent in a change notebook document notification.
    690 ---
    691 ---@since 3.17.0
    692 ---@class lsp.DidChangeNotebookDocumentParams
    693 ---
    694 ---The notebook document that did change. The version number points
    695 ---to the version after all provided changes have been applied. If
    696 ---only the text document content of a cell changes the notebook version
    697 ---doesn't necessarily have to change.
    698 ---@field notebookDocument lsp.VersionedNotebookDocumentIdentifier
    699 ---
    700 ---The actual changes to the notebook document.
    701 ---
    702 ---The changes describe single state changes to the notebook document.
    703 ---So if there are two changes c1 (at array index 0) and c2 (at array
    704 ---index 1) for a notebook in state S then c1 moves the notebook from
    705 ---S to S' and c2 from S' to S''. So c1 is computed on the state S and
    706 ---c2 is computed on the state S'.
    707 ---
    708 ---To mirror the content of a notebook using change events use the following approach:
    709 ---- start with the same initial content
    710 ---- apply the 'notebookDocument/didChange' notifications in the order you receive them.
    711 ---- apply the `NotebookChangeEvent`s in a single notification in the order
    712 ---  you receive them.
    713 ---@field change lsp.NotebookDocumentChangeEvent
    714 
    715 ---The params sent in a save notebook document notification.
    716 ---
    717 ---@since 3.17.0
    718 ---@class lsp.DidSaveNotebookDocumentParams
    719 ---
    720 ---The notebook document that got saved.
    721 ---@field notebookDocument lsp.NotebookDocumentIdentifier
    722 
    723 ---The params sent in a close notebook document notification.
    724 ---
    725 ---@since 3.17.0
    726 ---@class lsp.DidCloseNotebookDocumentParams
    727 ---
    728 ---The notebook document that got closed.
    729 ---@field notebookDocument lsp.NotebookDocumentIdentifier
    730 ---
    731 ---The text documents that represent the content
    732 ---of a notebook cell that got closed.
    733 ---@field cellTextDocuments lsp.TextDocumentIdentifier[]
    734 
    735 ---A parameter literal used in inline completion requests.
    736 ---
    737 ---@since 3.18.0
    738 ---@proposed
    739 ---@class lsp.InlineCompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
    740 ---
    741 ---Additional information about the context in which inline completions were
    742 ---requested.
    743 ---@field context lsp.InlineCompletionContext
    744 
    745 ---Represents a collection of {@link InlineCompletionItem inline completion items} to be presented in the editor.
    746 ---
    747 ---@since 3.18.0
    748 ---@proposed
    749 ---@class lsp.InlineCompletionList
    750 ---
    751 ---The inline completion items
    752 ---@field items lsp.InlineCompletionItem[]
    753 
    754 ---An inline completion item represents a text snippet that is proposed inline to complete text that is being typed.
    755 ---
    756 ---@since 3.18.0
    757 ---@proposed
    758 ---@class lsp.InlineCompletionItem
    759 ---
    760 ---The text to replace the range with. Must be set.
    761 ---@field insertText string|lsp.StringValue
    762 ---
    763 ---A text that is used to decide if this inline completion should be shown. When `falsy` the {@link InlineCompletionItem.insertText} is used.
    764 ---@field filterText? string
    765 ---
    766 ---The range to replace. Must begin and end on the same line.
    767 ---@field range? lsp.Range
    768 ---
    769 ---An optional {@link Command} that is executed *after* inserting this completion.
    770 ---@field command? lsp.Command
    771 
    772 ---Inline completion options used during static or dynamic registration.
    773 ---
    774 ---@since 3.18.0
    775 ---@proposed
    776 ---@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
    777 
    778 ---Parameters for the `workspace/textDocumentContent` request.
    779 ---
    780 ---@since 3.18.0
    781 ---@proposed
    782 ---@class lsp.TextDocumentContentParams
    783 ---
    784 ---The uri of the text document.
    785 ---@field uri lsp.DocumentUri
    786 
    787 ---Result of the `workspace/textDocumentContent` request.
    788 ---
    789 ---@since 3.18.0
    790 ---@proposed
    791 ---@class lsp.TextDocumentContentResult
    792 ---
    793 ---The text content of the text document. Please note, that the content of
    794 ---any subsequent open notifications for the text document might differ
    795 ---from the returned content due to whitespace and line ending
    796 ---normalizations done on the client
    797 ---@field text string
    798 
    799 ---Text document content provider registration options.
    800 ---
    801 ---@since 3.18.0
    802 ---@proposed
    803 ---@class lsp.TextDocumentContentRegistrationOptions: lsp.TextDocumentContentOptions, lsp.StaticRegistrationOptions
    804 
    805 ---Parameters for the `workspace/textDocumentContent/refresh` request.
    806 ---
    807 ---@since 3.18.0
    808 ---@proposed
    809 ---@class lsp.TextDocumentContentRefreshParams
    810 ---
    811 ---The uri of the text document to refresh.
    812 ---@field uri lsp.DocumentUri
    813 
    814 ---@class lsp.RegistrationParams
    815 ---
    816 ---@field registrations lsp.Registration[]
    817 
    818 ---@class lsp.UnregistrationParams
    819 ---
    820 ---@field unregisterations lsp.Unregistration[]
    821 
    822 ---@class lsp.InitializeParams: lsp._InitializeParams, lsp.WorkspaceFoldersInitializeParams
    823 
    824 ---The result returned from an initialize request.
    825 ---@class lsp.InitializeResult
    826 ---
    827 ---The capabilities the language server provides.
    828 ---@field capabilities lsp.ServerCapabilities
    829 ---
    830 ---Information about the server.
    831 ---
    832 ---@since 3.15.0
    833 ---@field serverInfo? lsp.ServerInfo
    834 
    835 ---The data type of the ResponseError if the
    836 ---initialize request fails.
    837 ---@class lsp.InitializeError
    838 ---
    839 ---Indicates whether the client execute the following retry logic:
    840 ---(1) show the message provided by the ResponseError to the user
    841 ---(2) user selects retry or cancel
    842 ---(3) if user selected retry the initialize method is sent again.
    843 ---@field retry boolean
    844 
    845 ---@class lsp.InitializedParams
    846 
    847 ---The parameters of a change configuration notification.
    848 ---@class lsp.DidChangeConfigurationParams
    849 ---
    850 ---The actual changed settings
    851 ---@field settings lsp.LSPAny
    852 
    853 ---@class lsp.DidChangeConfigurationRegistrationOptions
    854 ---
    855 ---@field section? string|string[]
    856 
    857 ---The parameters of a notification message.
    858 ---@class lsp.ShowMessageParams
    859 ---
    860 ---The message type. See {@link MessageType}
    861 ---@field type lsp.MessageType
    862 ---
    863 ---The actual message.
    864 ---@field message string
    865 
    866 ---@class lsp.ShowMessageRequestParams
    867 ---
    868 ---The message type. See {@link MessageType}
    869 ---@field type lsp.MessageType
    870 ---
    871 ---The actual message.
    872 ---@field message string
    873 ---
    874 ---The message action items to present.
    875 ---@field actions? lsp.MessageActionItem[]
    876 
    877 ---@class lsp.MessageActionItem
    878 ---
    879 ---A short title like 'Retry', 'Open Log' etc.
    880 ---@field title string
    881 
    882 ---The log message parameters.
    883 ---@class lsp.LogMessageParams
    884 ---
    885 ---The message type. See {@link MessageType}
    886 ---@field type lsp.MessageType
    887 ---
    888 ---The actual message.
    889 ---@field message string
    890 
    891 ---The parameters sent in an open text document notification
    892 ---@class lsp.DidOpenTextDocumentParams
    893 ---
    894 ---The document that was opened.
    895 ---@field textDocument lsp.TextDocumentItem
    896 
    897 ---The change text document notification's parameters.
    898 ---@class lsp.DidChangeTextDocumentParams
    899 ---
    900 ---The document that did change. The version number points
    901 ---to the version after all provided content changes have
    902 ---been applied.
    903 ---@field textDocument lsp.VersionedTextDocumentIdentifier
    904 ---
    905 ---The actual content changes. The content changes describe single state changes
    906 ---to the document. So if there are two content changes c1 (at array index 0) and
    907 ---c2 (at array index 1) for a document in state S then c1 moves the document from
    908 ---S to S' and c2 from S' to S''. So c1 is computed on the state S and c2 is computed
    909 ---on the state S'.
    910 ---
    911 ---To mirror the content of a document using change events use the following approach:
    912 ---- start with the same initial content
    913 ---- apply the 'textDocument/didChange' notifications in the order you receive them.
    914 ---- apply the `TextDocumentContentChangeEvent`s in a single notification in the order
    915 ---  you receive them.
    916 ---@field contentChanges lsp.TextDocumentContentChangeEvent[]
    917 
    918 ---Describe options to be used when registered for text document change events.
    919 ---@class lsp.TextDocumentChangeRegistrationOptions: lsp.TextDocumentRegistrationOptions
    920 ---
    921 ---How documents are synced to the server.
    922 ---@field syncKind lsp.TextDocumentSyncKind
    923 
    924 ---The parameters sent in a close text document notification
    925 ---@class lsp.DidCloseTextDocumentParams
    926 ---
    927 ---The document that was closed.
    928 ---@field textDocument lsp.TextDocumentIdentifier
    929 
    930 ---The parameters sent in a save text document notification
    931 ---@class lsp.DidSaveTextDocumentParams
    932 ---
    933 ---The document that was saved.
    934 ---@field textDocument lsp.TextDocumentIdentifier
    935 ---
    936 ---Optional the content when saved. Depends on the includeText value
    937 ---when the save notification was requested.
    938 ---@field text? string
    939 
    940 ---Save registration options.
    941 ---@class lsp.TextDocumentSaveRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.SaveOptions
    942 
    943 ---The parameters sent in a will save text document notification.
    944 ---@class lsp.WillSaveTextDocumentParams
    945 ---
    946 ---The document that will be saved.
    947 ---@field textDocument lsp.TextDocumentIdentifier
    948 ---
    949 ---The 'TextDocumentSaveReason'.
    950 ---@field reason lsp.TextDocumentSaveReason
    951 
    952 ---A text edit applicable to a text document.
    953 ---@class lsp.TextEdit
    954 ---
    955 ---The range of the text document to be manipulated. To insert
    956 ---text into a document create a range where start === end.
    957 ---@field range lsp.Range
    958 ---
    959 ---The string to be inserted. For delete operations use an
    960 ---empty string.
    961 ---@field newText string
    962 
    963 ---The watched files change notification's parameters.
    964 ---@class lsp.DidChangeWatchedFilesParams
    965 ---
    966 ---The actual file events.
    967 ---@field changes lsp.FileEvent[]
    968 
    969 ---Describe options to be used when registered for text document change events.
    970 ---@class lsp.DidChangeWatchedFilesRegistrationOptions
    971 ---
    972 ---The watchers to register.
    973 ---@field watchers lsp.FileSystemWatcher[]
    974 
    975 ---The publish diagnostic notification's parameters.
    976 ---@class lsp.PublishDiagnosticsParams
    977 ---
    978 ---The URI for which diagnostic information is reported.
    979 ---@field uri lsp.DocumentUri
    980 ---
    981 ---Optional the version number of the document the diagnostics are published for.
    982 ---
    983 ---@since 3.15.0
    984 ---@field version? integer
    985 ---
    986 ---An array of diagnostic information items.
    987 ---@field diagnostics lsp.Diagnostic[]
    988 
    989 ---Completion parameters
    990 ---@class lsp.CompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
    991 ---
    992 ---The completion context. This is only available it the client specifies
    993 ---to send this using the client capability `textDocument.completion.contextSupport === true`
    994 ---@field context? lsp.CompletionContext
    995 
    996 ---A completion item represents a text snippet that is
    997 ---proposed to complete text that is being typed.
    998 ---@class lsp.CompletionItem
    999 ---
   1000 ---The label of this completion item.
   1001 ---
   1002 ---The label property is also by default the text that
   1003 ---is inserted when selecting this completion.
   1004 ---
   1005 ---If label details are provided the label itself should
   1006 ---be an unqualified name of the completion item.
   1007 ---@field label string
   1008 ---
   1009 ---Additional details for the label
   1010 ---
   1011 ---@since 3.17.0
   1012 ---@field labelDetails? lsp.CompletionItemLabelDetails
   1013 ---
   1014 ---The kind of this completion item. Based of the kind
   1015 ---an icon is chosen by the editor.
   1016 ---@field kind? lsp.CompletionItemKind
   1017 ---
   1018 ---Tags for this completion item.
   1019 ---
   1020 ---@since 3.15.0
   1021 ---@field tags? lsp.CompletionItemTag[]
   1022 ---
   1023 ---A human-readable string with additional information
   1024 ---about this item, like type or symbol information.
   1025 ---@field detail? string
   1026 ---
   1027 ---A human-readable string that represents a doc-comment.
   1028 ---@field documentation? string|lsp.MarkupContent
   1029 ---
   1030 ---Indicates if this item is deprecated.
   1031 ---@deprecated Use `tags` instead.
   1032 ---@field deprecated? boolean
   1033 ---
   1034 ---Select this item when showing.
   1035 ---
   1036 ---*Note* that only one completion item can be selected and that the
   1037 ---tool / client decides which item that is. The rule is that the *first*
   1038 ---item of those that match best is selected.
   1039 ---@field preselect? boolean
   1040 ---
   1041 ---A string that should be used when comparing this item
   1042 ---with other items. When `falsy` the {@link CompletionItem.label label}
   1043 ---is used.
   1044 ---@field sortText? string
   1045 ---
   1046 ---A string that should be used when filtering a set of
   1047 ---completion items. When `falsy` the {@link CompletionItem.label label}
   1048 ---is used.
   1049 ---@field filterText? string
   1050 ---
   1051 ---A string that should be inserted into a document when selecting
   1052 ---this completion. When `falsy` the {@link CompletionItem.label label}
   1053 ---is used.
   1054 ---
   1055 ---The `insertText` is subject to interpretation by the client side.
   1056 ---Some tools might not take the string literally. For example
   1057 ---VS Code when code complete is requested in this example
   1058 ---`con<cursor position>` and a completion item with an `insertText` of
   1059 ---`console` is provided it will only insert `sole`. Therefore it is
   1060 ---recommended to use `textEdit` instead since it avoids additional client
   1061 ---side interpretation.
   1062 ---@field insertText? string
   1063 ---
   1064 ---The format of the insert text. The format applies to both the
   1065 ---`insertText` property and the `newText` property of a provided
   1066 ---`textEdit`. If omitted defaults to `InsertTextFormat.PlainText`.
   1067 ---
   1068 ---Please note that the insertTextFormat doesn't apply to
   1069 ---`additionalTextEdits`.
   1070 ---@field insertTextFormat? lsp.InsertTextFormat
   1071 ---
   1072 ---How whitespace and indentation is handled during completion
   1073 ---item insertion. If not provided the clients default value depends on
   1074 ---the `textDocument.completion.insertTextMode` client capability.
   1075 ---
   1076 ---@since 3.16.0
   1077 ---@field insertTextMode? lsp.InsertTextMode
   1078 ---
   1079 ---An {@link TextEdit edit} which is applied to a document when selecting
   1080 ---this completion. When an edit is provided the value of
   1081 ---{@link CompletionItem.insertText insertText} is ignored.
   1082 ---
   1083 ---Most editors support two different operations when accepting a completion
   1084 ---item. One is to insert a completion text and the other is to replace an
   1085 ---existing text with a completion text. Since this can usually not be
   1086 ---predetermined by a server it can report both ranges. Clients need to
   1087 ---signal support for `InsertReplaceEdits` via the
   1088 ---`textDocument.completion.insertReplaceSupport` client capability
   1089 ---property.
   1090 ---
   1091 ---*Note 1:* The text edit's range as well as both ranges from an insert
   1092 ---replace edit must be a [single line] and they must contain the position
   1093 ---at which completion has been requested.
   1094 ---*Note 2:* If an `InsertReplaceEdit` is returned the edit's insert range
   1095 ---must be a prefix of the edit's replace range, that means it must be
   1096 ---contained and starting at the same position.
   1097 ---
   1098 ---@since 3.16.0 additional type `InsertReplaceEdit`
   1099 ---@field textEdit? lsp.TextEdit|lsp.InsertReplaceEdit
   1100 ---
   1101 ---The edit text used if the completion item is part of a CompletionList and
   1102 ---CompletionList defines an item default for the text edit range.
   1103 ---
   1104 ---Clients will only honor this property if they opt into completion list
   1105 ---item defaults using the capability `completionList.itemDefaults`.
   1106 ---
   1107 ---If not provided and a list's default range is provided the label
   1108 ---property is used as a text.
   1109 ---
   1110 ---@since 3.17.0
   1111 ---@field textEditText? string
   1112 ---
   1113 ---An optional array of additional {@link TextEdit text edits} that are applied when
   1114 ---selecting this completion. Edits must not overlap (including the same insert position)
   1115 ---with the main {@link CompletionItem.textEdit edit} nor with themselves.
   1116 ---
   1117 ---Additional text edits should be used to change text unrelated to the current cursor position
   1118 ---(for example adding an import statement at the top of the file if the completion item will
   1119 ---insert an unqualified type).
   1120 ---@field additionalTextEdits? lsp.TextEdit[]
   1121 ---
   1122 ---An optional set of characters that when pressed while this completion is active will accept it first and
   1123 ---then type that character. *Note* that all commit characters should have `length=1` and that superfluous
   1124 ---characters will be ignored.
   1125 ---@field commitCharacters? string[]
   1126 ---
   1127 ---An optional {@link Command command} that is executed *after* inserting this completion. *Note* that
   1128 ---additional modifications to the current document should be described with the
   1129 ---{@link CompletionItem.additionalTextEdits additionalTextEdits}-property.
   1130 ---@field command? lsp.Command
   1131 ---
   1132 ---A data entry field that is preserved on a completion item between a
   1133 ---{@link CompletionRequest} and a {@link CompletionResolveRequest}.
   1134 ---@field data? lsp.LSPAny
   1135 
   1136 ---Represents a collection of {@link CompletionItem completion items} to be presented
   1137 ---in the editor.
   1138 ---@class lsp.CompletionList
   1139 ---
   1140 ---This list it not complete. Further typing results in recomputing this list.
   1141 ---
   1142 ---Recomputed lists have all their items replaced (not appended) in the
   1143 ---incomplete completion sessions.
   1144 ---@field isIncomplete boolean
   1145 ---
   1146 ---In many cases the items of an actual completion result share the same
   1147 ---value for properties like `commitCharacters` or the range of a text
   1148 ---edit. A completion list can therefore define item defaults which will
   1149 ---be used if a completion item itself doesn't specify the value.
   1150 ---
   1151 ---If a completion list specifies a default value and a completion item
   1152 ---also specifies a corresponding value, the rules for combining these are
   1153 ---defined by `applyKinds` (if the client supports it), defaulting to
   1154 ---ApplyKind.Replace.
   1155 ---
   1156 ---Servers are only allowed to return default values if the client
   1157 ---signals support for this via the `completionList.itemDefaults`
   1158 ---capability.
   1159 ---
   1160 ---@since 3.17.0
   1161 ---@field itemDefaults? lsp.CompletionItemDefaults
   1162 ---
   1163 ---Specifies how fields from a completion item should be combined with those
   1164 ---from `completionList.itemDefaults`.
   1165 ---
   1166 ---If unspecified, all fields will be treated as ApplyKind.Replace.
   1167 ---
   1168 ---If a field's value is ApplyKind.Replace, the value from a completion item
   1169 ---(if provided and not `null`) will always be used instead of the value
   1170 ---from `completionItem.itemDefaults`.
   1171 ---
   1172 ---If a field's value is ApplyKind.Merge, the values will be merged using
   1173 ---the rules defined against each field below.
   1174 ---
   1175 ---Servers are only allowed to return `applyKind` if the client
   1176 ---signals support for this via the `completionList.applyKindSupport`
   1177 ---capability.
   1178 ---
   1179 ---@since 3.18.0
   1180 ---@field applyKind? lsp.CompletionItemApplyKinds
   1181 ---
   1182 ---The completion items.
   1183 ---@field items lsp.CompletionItem[]
   1184 
   1185 ---Registration options for a {@link CompletionRequest}.
   1186 ---@class lsp.CompletionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CompletionOptions
   1187 
   1188 ---Parameters for a {@link HoverRequest}.
   1189 ---@class lsp.HoverParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
   1190 
   1191 ---The result of a hover request.
   1192 ---@class lsp.Hover
   1193 ---
   1194 ---The hover's content
   1195 ---@field contents lsp.MarkupContent|lsp.MarkedString|lsp.MarkedString[]
   1196 ---
   1197 ---An optional range inside the text document that is used to
   1198 ---visualize the hover, e.g. by changing the background color.
   1199 ---@field range? lsp.Range
   1200 
   1201 ---Registration options for a {@link HoverRequest}.
   1202 ---@class lsp.HoverRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.HoverOptions
   1203 
   1204 ---Parameters for a {@link SignatureHelpRequest}.
   1205 ---@class lsp.SignatureHelpParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
   1206 ---
   1207 ---The signature help context. This is only available if the client specifies
   1208 ---to send this using the client capability `textDocument.signatureHelp.contextSupport === true`
   1209 ---
   1210 ---@since 3.15.0
   1211 ---@field context? lsp.SignatureHelpContext
   1212 
   1213 ---Signature help represents the signature of something
   1214 ---callable. There can be multiple signature but only one
   1215 ---active and only one active parameter.
   1216 ---@class lsp.SignatureHelp
   1217 ---
   1218 ---One or more signatures.
   1219 ---@field signatures lsp.SignatureInformation[]
   1220 ---
   1221 ---The active signature. If omitted or the value lies outside the
   1222 ---range of `signatures` the value defaults to zero or is ignored if
   1223 ---the `SignatureHelp` has no signatures.
   1224 ---
   1225 ---Whenever possible implementors should make an active decision about
   1226 ---the active signature and shouldn't rely on a default value.
   1227 ---
   1228 ---In future version of the protocol this property might become
   1229 ---mandatory to better express this.
   1230 ---@field activeSignature? uinteger
   1231 ---
   1232 ---The active parameter of the active signature.
   1233 ---
   1234 ---If `null`, no parameter of the signature is active (for example a named
   1235 ---argument that does not match any declared parameters). This is only valid
   1236 ---if the client specifies the client capability
   1237 ---`textDocument.signatureHelp.noActiveParameterSupport === true`
   1238 ---
   1239 ---If omitted or the value lies outside the range of
   1240 ---`signatures[activeSignature].parameters` defaults to 0 if the active
   1241 ---signature has parameters.
   1242 ---
   1243 ---If the active signature has no parameters it is ignored.
   1244 ---
   1245 ---In future version of the protocol this property might become
   1246 ---mandatory (but still nullable) to better express the active parameter if
   1247 ---the active signature does have any.
   1248 ---@field activeParameter? uinteger|lsp.null
   1249 
   1250 ---Registration options for a {@link SignatureHelpRequest}.
   1251 ---@class lsp.SignatureHelpRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.SignatureHelpOptions
   1252 
   1253 ---Parameters for a {@link DefinitionRequest}.
   1254 ---@class lsp.DefinitionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1255 
   1256 ---Registration options for a {@link DefinitionRequest}.
   1257 ---@class lsp.DefinitionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DefinitionOptions
   1258 
   1259 ---Parameters for a {@link ReferencesRequest}.
   1260 ---@class lsp.ReferenceParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1261 ---
   1262 ---@field context lsp.ReferenceContext
   1263 
   1264 ---Registration options for a {@link ReferencesRequest}.
   1265 ---@class lsp.ReferenceRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.ReferenceOptions
   1266 
   1267 ---Parameters for a {@link DocumentHighlightRequest}.
   1268 ---@class lsp.DocumentHighlightParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1269 
   1270 ---A document highlight is a range inside a text document which deserves
   1271 ---special attention. Usually a document highlight is visualized by changing
   1272 ---the background color of its range.
   1273 ---@class lsp.DocumentHighlight
   1274 ---
   1275 ---The range this highlight applies to.
   1276 ---@field range lsp.Range
   1277 ---
   1278 ---The highlight kind, default is {@link DocumentHighlightKind.Text text}.
   1279 ---@field kind? lsp.DocumentHighlightKind
   1280 
   1281 ---Registration options for a {@link DocumentHighlightRequest}.
   1282 ---@class lsp.DocumentHighlightRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentHighlightOptions
   1283 
   1284 ---Parameters for a {@link DocumentSymbolRequest}.
   1285 ---@class lsp.DocumentSymbolParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1286 ---
   1287 ---The text document.
   1288 ---@field textDocument lsp.TextDocumentIdentifier
   1289 
   1290 ---Represents information about programming constructs like variables, classes,
   1291 ---interfaces etc.
   1292 ---@class lsp.SymbolInformation: lsp.BaseSymbolInformation
   1293 ---
   1294 ---Indicates if this symbol is deprecated.
   1295 ---
   1296 ---@deprecated Use tags instead
   1297 ---@field deprecated? boolean
   1298 ---
   1299 ---The location of this symbol. The location's range is used by a tool
   1300 ---to reveal the location in the editor. If the symbol is selected in the
   1301 ---tool the range's start information is used to position the cursor. So
   1302 ---the range usually spans more than the actual symbol's name and does
   1303 ---normally include things like visibility modifiers.
   1304 ---
   1305 ---The range doesn't have to denote a node range in the sense of an abstract
   1306 ---syntax tree. It can therefore not be used to re-construct a hierarchy of
   1307 ---the symbols.
   1308 ---@field location lsp.Location
   1309 
   1310 ---Represents programming constructs like variables, classes, interfaces etc.
   1311 ---that appear in a document. Document symbols can be hierarchical and they
   1312 ---have two ranges: one that encloses its definition and one that points to
   1313 ---its most interesting range, e.g. the range of an identifier.
   1314 ---@class lsp.DocumentSymbol
   1315 ---
   1316 ---The name of this symbol. Will be displayed in the user interface and therefore must not be
   1317 ---an empty string or a string only consisting of white spaces.
   1318 ---@field name string
   1319 ---
   1320 ---More detail for this symbol, e.g the signature of a function.
   1321 ---@field detail? string
   1322 ---
   1323 ---The kind of this symbol.
   1324 ---@field kind lsp.SymbolKind
   1325 ---
   1326 ---Tags for this document symbol.
   1327 ---
   1328 ---@since 3.16.0
   1329 ---@field tags? lsp.SymbolTag[]
   1330 ---
   1331 ---Indicates if this symbol is deprecated.
   1332 ---
   1333 ---@deprecated Use tags instead
   1334 ---@field deprecated? boolean
   1335 ---
   1336 ---The range enclosing this symbol not including leading/trailing whitespace but everything else
   1337 ---like comments. This information is typically used to determine if the clients cursor is
   1338 ---inside the symbol to reveal in the symbol in the UI.
   1339 ---@field range lsp.Range
   1340 ---
   1341 ---The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
   1342 ---Must be contained by the `range`.
   1343 ---@field selectionRange lsp.Range
   1344 ---
   1345 ---Children of this symbol, e.g. properties of a class.
   1346 ---@field children? lsp.DocumentSymbol[]
   1347 
   1348 ---Registration options for a {@link DocumentSymbolRequest}.
   1349 ---@class lsp.DocumentSymbolRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentSymbolOptions
   1350 
   1351 ---The parameters of a {@link CodeActionRequest}.
   1352 ---@class lsp.CodeActionParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1353 ---
   1354 ---The document in which the command was invoked.
   1355 ---@field textDocument lsp.TextDocumentIdentifier
   1356 ---
   1357 ---The range for which the command was invoked.
   1358 ---@field range lsp.Range
   1359 ---
   1360 ---Context carrying additional information.
   1361 ---@field context lsp.CodeActionContext
   1362 
   1363 ---Represents a reference to a command. Provides a title which
   1364 ---will be used to represent a command in the UI and, optionally,
   1365 ---an array of arguments which will be passed to the command handler
   1366 ---function when invoked.
   1367 ---@class lsp.Command
   1368 ---
   1369 ---Title of the command, like `save`.
   1370 ---@field title string
   1371 ---
   1372 ---An optional tooltip.
   1373 ---
   1374 ---@since 3.18.0
   1375 ---@proposed
   1376 ---@field tooltip? string
   1377 ---
   1378 ---The identifier of the actual command handler.
   1379 ---@field command string
   1380 ---
   1381 ---Arguments that the command handler should be
   1382 ---invoked with.
   1383 ---@field arguments? lsp.LSPAny[]
   1384 
   1385 ---A code action represents a change that can be performed in code, e.g. to fix a problem or
   1386 ---to refactor code.
   1387 ---
   1388 ---A CodeAction must set either `edit` and/or a `command`. If both are supplied, the `edit` is applied first, then the `command` is executed.
   1389 ---@class lsp.CodeAction
   1390 ---
   1391 ---A short, human-readable, title for this code action.
   1392 ---@field title string
   1393 ---
   1394 ---The kind of the code action.
   1395 ---
   1396 ---Used to filter code actions.
   1397 ---@field kind? lsp.CodeActionKind
   1398 ---
   1399 ---The diagnostics that this code action resolves.
   1400 ---@field diagnostics? lsp.Diagnostic[]
   1401 ---
   1402 ---Marks this as a preferred action. Preferred actions are used by the `auto fix` command and can be targeted
   1403 ---by keybindings.
   1404 ---
   1405 ---A quick fix should be marked preferred if it properly addresses the underlying error.
   1406 ---A refactoring should be marked preferred if it is the most reasonable choice of actions to take.
   1407 ---
   1408 ---@since 3.15.0
   1409 ---@field isPreferred? boolean
   1410 ---
   1411 ---Marks that the code action cannot currently be applied.
   1412 ---
   1413 ---Clients should follow the following guidelines regarding disabled code actions:
   1414 ---
   1415 ---  - Disabled code actions are not shown in automatic [lightbulbs](https://code.visualstudio.com/docs/editor/editingevolved#_code-action)
   1416 ---    code action menus.
   1417 ---
   1418 ---  - Disabled actions are shown as faded out in the code action menu when the user requests a more specific type
   1419 ---    of code action, such as refactorings.
   1420 ---
   1421 ---  - If the user has a [keybinding](https://code.visualstudio.com/docs/editor/refactoring#_keybindings-for-code-actions)
   1422 ---    that auto applies a code action and only disabled code actions are returned, the client should show the user an
   1423 ---    error message with `reason` in the editor.
   1424 ---
   1425 ---@since 3.16.0
   1426 ---@field disabled? lsp.CodeActionDisabled
   1427 ---
   1428 ---The workspace edit this code action performs.
   1429 ---@field edit? lsp.WorkspaceEdit
   1430 ---
   1431 ---A command this code action executes. If a code action
   1432 ---provides an edit and a command, first the edit is
   1433 ---executed and then the command.
   1434 ---@field command? lsp.Command
   1435 ---
   1436 ---A data entry field that is preserved on a code action between
   1437 ---a `textDocument/codeAction` and a `codeAction/resolve` request.
   1438 ---
   1439 ---@since 3.16.0
   1440 ---@field data? lsp.LSPAny
   1441 ---
   1442 ---Tags for this code action.
   1443 ---
   1444 ---@since 3.18.0 - proposed
   1445 ---@field tags? lsp.CodeActionTag[]
   1446 
   1447 ---Registration options for a {@link CodeActionRequest}.
   1448 ---@class lsp.CodeActionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CodeActionOptions
   1449 
   1450 ---The parameters of a {@link WorkspaceSymbolRequest}.
   1451 ---@class lsp.WorkspaceSymbolParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1452 ---
   1453 ---A query string to filter symbols by. Clients may send an empty
   1454 ---string here to request all symbols.
   1455 ---
   1456 ---The `query`-parameter should be interpreted in a *relaxed way* as editors
   1457 ---will apply their own highlighting and scoring on the results. A good rule
   1458 ---of thumb is to match case-insensitive and to simply check that the
   1459 ---characters of *query* appear in their order in a candidate symbol.
   1460 ---Servers shouldn't use prefix, substring, or similar strict matching.
   1461 ---@field query string
   1462 
   1463 ---A special workspace symbol that supports locations without a range.
   1464 ---
   1465 ---See also SymbolInformation.
   1466 ---
   1467 ---@since 3.17.0
   1468 ---@class lsp.WorkspaceSymbol: lsp.BaseSymbolInformation
   1469 ---
   1470 ---The location of the symbol. Whether a server is allowed to
   1471 ---return a location without a range depends on the client
   1472 ---capability `workspace.symbol.resolveSupport`.
   1473 ---
   1474 ---See SymbolInformation#location for more details.
   1475 ---@field location lsp.Location|lsp.LocationUriOnly
   1476 ---
   1477 ---A data entry field that is preserved on a workspace symbol between a
   1478 ---workspace symbol request and a workspace symbol resolve request.
   1479 ---@field data? lsp.LSPAny
   1480 
   1481 ---Registration options for a {@link WorkspaceSymbolRequest}.
   1482 ---@class lsp.WorkspaceSymbolRegistrationOptions: lsp.WorkspaceSymbolOptions
   1483 
   1484 ---The parameters of a {@link CodeLensRequest}.
   1485 ---@class lsp.CodeLensParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1486 ---
   1487 ---The document to request code lens for.
   1488 ---@field textDocument lsp.TextDocumentIdentifier
   1489 
   1490 ---A code lens represents a {@link Command command} that should be shown along with
   1491 ---source text, like the number of references, a way to run tests, etc.
   1492 ---
   1493 ---A code lens is _unresolved_ when no command is associated to it. For performance
   1494 ---reasons the creation of a code lens and resolving should be done in two stages.
   1495 ---@class lsp.CodeLens
   1496 ---
   1497 ---The range in which this code lens is valid. Should only span a single line.
   1498 ---@field range lsp.Range
   1499 ---
   1500 ---The command this code lens represents.
   1501 ---@field command? lsp.Command
   1502 ---
   1503 ---A data entry field that is preserved on a code lens item between
   1504 ---a {@link CodeLensRequest} and a {@link CodeLensResolveRequest}
   1505 ---@field data? lsp.LSPAny
   1506 
   1507 ---Registration options for a {@link CodeLensRequest}.
   1508 ---@class lsp.CodeLensRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CodeLensOptions
   1509 
   1510 ---The parameters of a {@link DocumentLinkRequest}.
   1511 ---@class lsp.DocumentLinkParams: lsp.WorkDoneProgressParams, lsp.PartialResultParams
   1512 ---
   1513 ---The document to provide document links for.
   1514 ---@field textDocument lsp.TextDocumentIdentifier
   1515 
   1516 ---A document link is a range in a text document that links to an internal or external resource, like another
   1517 ---text document or a web site.
   1518 ---@class lsp.DocumentLink
   1519 ---
   1520 ---The range this link applies to.
   1521 ---@field range lsp.Range
   1522 ---
   1523 ---The uri this link points to. If missing a resolve request is sent later.
   1524 ---@field target? lsp.URI
   1525 ---
   1526 ---The tooltip text when you hover over this link.
   1527 ---
   1528 ---If a tooltip is provided, is will be displayed in a string that includes instructions on how to
   1529 ---trigger the link, such as `{0} (ctrl + click)`. The specific instructions vary depending on OS,
   1530 ---user settings, and localization.
   1531 ---
   1532 ---@since 3.15.0
   1533 ---@field tooltip? string
   1534 ---
   1535 ---A data entry field that is preserved on a document link between a
   1536 ---DocumentLinkRequest and a DocumentLinkResolveRequest.
   1537 ---@field data? lsp.LSPAny
   1538 
   1539 ---Registration options for a {@link DocumentLinkRequest}.
   1540 ---@class lsp.DocumentLinkRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentLinkOptions
   1541 
   1542 ---The parameters of a {@link DocumentFormattingRequest}.
   1543 ---@class lsp.DocumentFormattingParams: lsp.WorkDoneProgressParams
   1544 ---
   1545 ---The document to format.
   1546 ---@field textDocument lsp.TextDocumentIdentifier
   1547 ---
   1548 ---The format options.
   1549 ---@field options lsp.FormattingOptions
   1550 
   1551 ---Registration options for a {@link DocumentFormattingRequest}.
   1552 ---@class lsp.DocumentFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentFormattingOptions
   1553 
   1554 ---The parameters of a {@link DocumentRangeFormattingRequest}.
   1555 ---@class lsp.DocumentRangeFormattingParams: lsp.WorkDoneProgressParams
   1556 ---
   1557 ---The document to format.
   1558 ---@field textDocument lsp.TextDocumentIdentifier
   1559 ---
   1560 ---The range to format
   1561 ---@field range lsp.Range
   1562 ---
   1563 ---The format options
   1564 ---@field options lsp.FormattingOptions
   1565 
   1566 ---Registration options for a {@link DocumentRangeFormattingRequest}.
   1567 ---@class lsp.DocumentRangeFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentRangeFormattingOptions
   1568 
   1569 ---The parameters of a {@link DocumentRangesFormattingRequest}.
   1570 ---
   1571 ---@since 3.18.0
   1572 ---@proposed
   1573 ---@class lsp.DocumentRangesFormattingParams: lsp.WorkDoneProgressParams
   1574 ---
   1575 ---The document to format.
   1576 ---@field textDocument lsp.TextDocumentIdentifier
   1577 ---
   1578 ---The ranges to format
   1579 ---@field ranges lsp.Range[]
   1580 ---
   1581 ---The format options
   1582 ---@field options lsp.FormattingOptions
   1583 
   1584 ---The parameters of a {@link DocumentOnTypeFormattingRequest}.
   1585 ---@class lsp.DocumentOnTypeFormattingParams
   1586 ---
   1587 ---The document to format.
   1588 ---@field textDocument lsp.TextDocumentIdentifier
   1589 ---
   1590 ---The position around which the on type formatting should happen.
   1591 ---This is not necessarily the exact position where the character denoted
   1592 ---by the property `ch` got typed.
   1593 ---@field position lsp.Position
   1594 ---
   1595 ---The character that has been typed that triggered the formatting
   1596 ---on type request. That is not necessarily the last character that
   1597 ---got inserted into the document since the client could auto insert
   1598 ---characters as well (e.g. like automatic brace completion).
   1599 ---@field ch string
   1600 ---
   1601 ---The formatting options.
   1602 ---@field options lsp.FormattingOptions
   1603 
   1604 ---Registration options for a {@link DocumentOnTypeFormattingRequest}.
   1605 ---@class lsp.DocumentOnTypeFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.DocumentOnTypeFormattingOptions
   1606 
   1607 ---The parameters of a {@link RenameRequest}.
   1608 ---@class lsp.RenameParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
   1609 ---
   1610 ---The new name of the symbol. If the given name is not valid the
   1611 ---request must return a {@link ResponseError} with an
   1612 ---appropriate message set.
   1613 ---@field newName string
   1614 
   1615 ---Registration options for a {@link RenameRequest}.
   1616 ---@class lsp.RenameRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.RenameOptions
   1617 
   1618 ---@class lsp.PrepareRenameParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams
   1619 
   1620 ---The parameters of a {@link ExecuteCommandRequest}.
   1621 ---@class lsp.ExecuteCommandParams: lsp.WorkDoneProgressParams
   1622 ---
   1623 ---The identifier of the actual command handler.
   1624 ---@field command string
   1625 ---
   1626 ---Arguments that the command should be invoked with.
   1627 ---@field arguments? lsp.LSPAny[]
   1628 
   1629 ---Registration options for a {@link ExecuteCommandRequest}.
   1630 ---@class lsp.ExecuteCommandRegistrationOptions: lsp.ExecuteCommandOptions
   1631 
   1632 ---The parameters passed via an apply workspace edit request.
   1633 ---@class lsp.ApplyWorkspaceEditParams
   1634 ---
   1635 ---An optional label of the workspace edit. This label is
   1636 ---presented in the user interface for example on an undo
   1637 ---stack to undo the workspace edit.
   1638 ---@field label? string
   1639 ---
   1640 ---The edits to apply.
   1641 ---@field edit lsp.WorkspaceEdit
   1642 ---
   1643 ---Additional data about the edit.
   1644 ---
   1645 ---@since 3.18.0
   1646 ---@proposed
   1647 ---@field metadata? lsp.WorkspaceEditMetadata
   1648 
   1649 ---The result returned from the apply workspace edit request.
   1650 ---
   1651 ---@since 3.17 renamed from ApplyWorkspaceEditResponse
   1652 ---@class lsp.ApplyWorkspaceEditResult
   1653 ---
   1654 ---Indicates whether the edit was applied or not.
   1655 ---@field applied boolean
   1656 ---
   1657 ---An optional textual description for why the edit was not applied.
   1658 ---This may be used by the server for diagnostic logging or to provide
   1659 ---a suitable error for a request that triggered the edit.
   1660 ---@field failureReason? string
   1661 ---
   1662 ---Depending on the client's failure handling strategy `failedChange` might
   1663 ---contain the index of the change that failed. This property is only available
   1664 ---if the client signals a `failureHandlingStrategy` in its client capabilities.
   1665 ---@field failedChange? uinteger
   1666 
   1667 ---@class lsp.WorkDoneProgressBegin
   1668 ---
   1669 ---@field kind "begin"
   1670 ---
   1671 ---Mandatory title of the progress operation. Used to briefly inform about
   1672 ---the kind of operation being performed.
   1673 ---
   1674 ---Examples: "Indexing" or "Linking dependencies".
   1675 ---@field title string
   1676 ---
   1677 ---Controls if a cancel button should show to allow the user to cancel the
   1678 ---long running operation. Clients that don't support cancellation are allowed
   1679 ---to ignore the setting.
   1680 ---@field cancellable? boolean
   1681 ---
   1682 ---Optional, more detailed associated progress message. Contains
   1683 ---complementary information to the `title`.
   1684 ---
   1685 ---Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
   1686 ---If unset, the previous progress message (if any) is still valid.
   1687 ---@field message? string
   1688 ---
   1689 ---Optional progress percentage to display (value 100 is considered 100%).
   1690 ---If not provided infinite progress is assumed and clients are allowed
   1691 ---to ignore the `percentage` value in subsequent in report notifications.
   1692 ---
   1693 ---The value should be steadily rising. Clients are free to ignore values
   1694 ---that are not following this rule. The value range is [0, 100].
   1695 ---@field percentage? uinteger
   1696 
   1697 ---@class lsp.WorkDoneProgressReport
   1698 ---
   1699 ---@field kind "report"
   1700 ---
   1701 ---Controls enablement state of a cancel button.
   1702 ---
   1703 ---Clients that don't support cancellation or don't support controlling the button's
   1704 ---enablement state are allowed to ignore the property.
   1705 ---@field cancellable? boolean
   1706 ---
   1707 ---Optional, more detailed associated progress message. Contains
   1708 ---complementary information to the `title`.
   1709 ---
   1710 ---Examples: "3/25 files", "project/src/module2", "node_modules/some_dep".
   1711 ---If unset, the previous progress message (if any) is still valid.
   1712 ---@field message? string
   1713 ---
   1714 ---Optional progress percentage to display (value 100 is considered 100%).
   1715 ---If not provided infinite progress is assumed and clients are allowed
   1716 ---to ignore the `percentage` value in subsequent in report notifications.
   1717 ---
   1718 ---The value should be steadily rising. Clients are free to ignore values
   1719 ---that are not following this rule. The value range is [0, 100]
   1720 ---@field percentage? uinteger
   1721 
   1722 ---@class lsp.WorkDoneProgressEnd
   1723 ---
   1724 ---@field kind "end"
   1725 ---
   1726 ---Optional, a final message indicating to for example indicate the outcome
   1727 ---of the operation.
   1728 ---@field message? string
   1729 
   1730 ---@class lsp.SetTraceParams
   1731 ---
   1732 ---@field value lsp.TraceValue
   1733 
   1734 ---@class lsp.LogTraceParams
   1735 ---
   1736 ---@field message string
   1737 ---
   1738 ---@field verbose? string
   1739 
   1740 ---@class lsp.CancelParams
   1741 ---
   1742 ---The request id to cancel.
   1743 ---@field id integer|string
   1744 
   1745 ---@class lsp.ProgressParams
   1746 ---
   1747 ---The progress token provided by the client or server.
   1748 ---@field token lsp.ProgressToken
   1749 ---
   1750 ---The progress data.
   1751 ---@field value lsp.LSPAny
   1752 
   1753 ---A parameter literal used in requests to pass a text document and a position inside that
   1754 ---document.
   1755 ---@class lsp.TextDocumentPositionParams
   1756 ---
   1757 ---The text document.
   1758 ---@field textDocument lsp.TextDocumentIdentifier
   1759 ---
   1760 ---The position inside the text document.
   1761 ---@field position lsp.Position
   1762 
   1763 ---@class lsp.WorkDoneProgressParams
   1764 ---
   1765 ---An optional token that a server can use to report work done progress.
   1766 ---@field workDoneToken? lsp.ProgressToken
   1767 
   1768 ---@class lsp.PartialResultParams
   1769 ---
   1770 ---An optional token that a server can use to report partial results (e.g. streaming) to
   1771 ---the client.
   1772 ---@field partialResultToken? lsp.ProgressToken
   1773 
   1774 ---Represents the connection of two locations. Provides additional metadata over normal {@link Location locations},
   1775 ---including an origin range.
   1776 ---@class lsp.LocationLink
   1777 ---
   1778 ---Span of the origin of this link.
   1779 ---
   1780 ---Used as the underlined span for mouse interaction. Defaults to the word range at
   1781 ---the definition position.
   1782 ---@field originSelectionRange? lsp.Range
   1783 ---
   1784 ---The target resource identifier of this link.
   1785 ---@field targetUri lsp.DocumentUri
   1786 ---
   1787 ---The full target range of this link. If the target for example is a symbol then target range is the
   1788 ---range enclosing this symbol not including leading/trailing whitespace but everything else
   1789 ---like comments. This information is typically used to highlight the range in the editor.
   1790 ---@field targetRange lsp.Range
   1791 ---
   1792 ---The range that should be selected and revealed when this link is being followed, e.g the name of a function.
   1793 ---Must be contained by the `targetRange`. See also `DocumentSymbol#range`
   1794 ---@field targetSelectionRange lsp.Range
   1795 
   1796 ---A range in a text document expressed as (zero-based) start and end positions.
   1797 ---
   1798 ---If you want to specify a range that contains a line including the line ending
   1799 ---character(s) then use an end position denoting the start of the next line.
   1800 ---For example:
   1801 ---```ts
   1802 ---{
   1803 ---    start: { line: 5, character: 23 }
   1804 ---    end : { line 6, character : 0 }
   1805 ---}
   1806 ---```
   1807 ---@class lsp.Range
   1808 ---
   1809 ---The range's start position.
   1810 ---@field start lsp.Position
   1811 ---
   1812 ---The range's end position.
   1813 ---@field end lsp.Position
   1814 
   1815 ---@class lsp.ImplementationOptions: lsp.WorkDoneProgressOptions
   1816 
   1817 ---Static registration options to be returned in the initialize
   1818 ---request.
   1819 ---@class lsp.StaticRegistrationOptions
   1820 ---
   1821 ---The id used to register the request. The id can be used to deregister
   1822 ---the request again. See also Registration#id.
   1823 ---@field id? string
   1824 
   1825 ---@class lsp.TypeDefinitionOptions: lsp.WorkDoneProgressOptions
   1826 
   1827 ---The workspace folder change event.
   1828 ---@class lsp.WorkspaceFoldersChangeEvent
   1829 ---
   1830 ---The array of added workspace folders
   1831 ---@field added lsp.WorkspaceFolder[]
   1832 ---
   1833 ---The array of the removed workspace folders
   1834 ---@field removed lsp.WorkspaceFolder[]
   1835 
   1836 ---@class lsp.ConfigurationItem
   1837 ---
   1838 ---The scope to get the configuration section for.
   1839 ---@field scopeUri? lsp.URI
   1840 ---
   1841 ---The configuration section asked for.
   1842 ---@field section? string
   1843 
   1844 ---A literal to identify a text document in the client.
   1845 ---@class lsp.TextDocumentIdentifier
   1846 ---
   1847 ---The text document's uri.
   1848 ---@field uri lsp.DocumentUri
   1849 
   1850 ---Represents a color in RGBA space.
   1851 ---@class lsp.Color
   1852 ---
   1853 ---The red component of this color in the range [0-1].
   1854 ---@field red decimal
   1855 ---
   1856 ---The green component of this color in the range [0-1].
   1857 ---@field green decimal
   1858 ---
   1859 ---The blue component of this color in the range [0-1].
   1860 ---@field blue decimal
   1861 ---
   1862 ---The alpha component of this color in the range [0-1].
   1863 ---@field alpha decimal
   1864 
   1865 ---@class lsp.DocumentColorOptions: lsp.WorkDoneProgressOptions
   1866 
   1867 ---@class lsp.FoldingRangeOptions: lsp.WorkDoneProgressOptions
   1868 
   1869 ---@class lsp.DeclarationOptions: lsp.WorkDoneProgressOptions
   1870 
   1871 ---Position in a text document expressed as zero-based line and character
   1872 ---offset. Prior to 3.17 the offsets were always based on a UTF-16 string
   1873 ---representation. So a string of the form `a𐐀b` the character offset of the
   1874 ---character `a` is 0, the character offset of `𐐀` is 1 and the character
   1875 ---offset of b is 3 since `𐐀` is represented using two code units in UTF-16.
   1876 ---Since 3.17 clients and servers can agree on a different string encoding
   1877 ---representation (e.g. UTF-8). The client announces it's supported encoding
   1878 ---via the client capability [`general.positionEncodings`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#clientCapabilities).
   1879 ---The value is an array of position encodings the client supports, with
   1880 ---decreasing preference (e.g. the encoding at index `0` is the most preferred
   1881 ---one). To stay backwards compatible the only mandatory encoding is UTF-16
   1882 ---represented via the string `utf-16`. The server can pick one of the
   1883 ---encodings offered by the client and signals that encoding back to the
   1884 ---client via the initialize result's property
   1885 ---[`capabilities.positionEncoding`](https://microsoft.github.io/language-server-protocol/specifications/specification-current/#serverCapabilities). If the string value
   1886 ---`utf-16` is missing from the client's capability `general.positionEncodings`
   1887 ---servers can safely assume that the client supports UTF-16. If the server
   1888 ---omits the position encoding in its initialize result the encoding defaults
   1889 ---to the string value `utf-16`. Implementation considerations: since the
   1890 ---conversion from one encoding into another requires the content of the
   1891 ---file / line the conversion is best done where the file is read which is
   1892 ---usually on the server side.
   1893 ---
   1894 ---Positions are line end character agnostic. So you can not specify a position
   1895 ---that denotes `\r|\n` or `\n|` where `|` represents the character offset.
   1896 ---
   1897 ---@since 3.17.0 - support for negotiated position encoding.
   1898 ---@class lsp.Position
   1899 ---
   1900 ---Line position in a document (zero-based).
   1901 ---@field line uinteger
   1902 ---
   1903 ---Character offset on a line in a document (zero-based).
   1904 ---
   1905 ---The meaning of this offset is determined by the negotiated
   1906 ---`PositionEncodingKind`.
   1907 ---@field character uinteger
   1908 
   1909 ---@class lsp.SelectionRangeOptions: lsp.WorkDoneProgressOptions
   1910 
   1911 ---Call hierarchy options used during static registration.
   1912 ---
   1913 ---@since 3.16.0
   1914 ---@class lsp.CallHierarchyOptions: lsp.WorkDoneProgressOptions
   1915 
   1916 ---@since 3.16.0
   1917 ---@class lsp.SemanticTokensOptions: lsp.WorkDoneProgressOptions
   1918 ---
   1919 ---The legend used by the server
   1920 ---@field legend lsp.SemanticTokensLegend
   1921 ---
   1922 ---Server supports providing semantic tokens for a specific range
   1923 ---of a document.
   1924 ---@field range? boolean|lsp._anonym1.range
   1925 ---
   1926 ---Server supports providing semantic tokens for a full document.
   1927 ---@field full? boolean|lsp.SemanticTokensFullDelta
   1928 
   1929 ---@since 3.16.0
   1930 ---@class lsp.SemanticTokensEdit
   1931 ---
   1932 ---The start offset of the edit.
   1933 ---@field start uinteger
   1934 ---
   1935 ---The count of elements to remove.
   1936 ---@field deleteCount uinteger
   1937 ---
   1938 ---The elements to insert.
   1939 ---@field data? uinteger[]
   1940 
   1941 ---@class lsp.LinkedEditingRangeOptions: lsp.WorkDoneProgressOptions
   1942 
   1943 ---Represents information on a file/folder create.
   1944 ---
   1945 ---@since 3.16.0
   1946 ---@class lsp.FileCreate
   1947 ---
   1948 ---A file:// URI for the location of the file/folder being created.
   1949 ---@field uri string
   1950 
   1951 ---Describes textual changes on a text document. A TextDocumentEdit describes all changes
   1952 ---on a document version Si and after they are applied move the document to version Si+1.
   1953 ---So the creator of a TextDocumentEdit doesn't need to sort the array of edits or do any
   1954 ---kind of ordering. However the edits must be non overlapping.
   1955 ---@class lsp.TextDocumentEdit
   1956 ---
   1957 ---The text document to change.
   1958 ---@field textDocument lsp.OptionalVersionedTextDocumentIdentifier
   1959 ---
   1960 ---The edits to be applied.
   1961 ---
   1962 ---@since 3.16.0 - support for AnnotatedTextEdit. This is guarded using a
   1963 ---client capability.
   1964 ---
   1965 ---@since 3.18.0 - support for SnippetTextEdit. This is guarded using a
   1966 ---client capability.
   1967 ---@field edits (lsp.TextEdit|lsp.AnnotatedTextEdit|lsp.SnippetTextEdit)[]
   1968 
   1969 ---Create file operation.
   1970 ---@class lsp.CreateFile: lsp.ResourceOperation
   1971 ---
   1972 ---A create
   1973 ---@field kind "create"
   1974 ---
   1975 ---The resource to create.
   1976 ---@field uri lsp.DocumentUri
   1977 ---
   1978 ---Additional options
   1979 ---@field options? lsp.CreateFileOptions
   1980 
   1981 ---Rename file operation
   1982 ---@class lsp.RenameFile: lsp.ResourceOperation
   1983 ---
   1984 ---A rename
   1985 ---@field kind "rename"
   1986 ---
   1987 ---The old (existing) location.
   1988 ---@field oldUri lsp.DocumentUri
   1989 ---
   1990 ---The new location.
   1991 ---@field newUri lsp.DocumentUri
   1992 ---
   1993 ---Rename options.
   1994 ---@field options? lsp.RenameFileOptions
   1995 
   1996 ---Delete file operation
   1997 ---@class lsp.DeleteFile: lsp.ResourceOperation
   1998 ---
   1999 ---A delete
   2000 ---@field kind "delete"
   2001 ---
   2002 ---The file to delete.
   2003 ---@field uri lsp.DocumentUri
   2004 ---
   2005 ---Delete options.
   2006 ---@field options? lsp.DeleteFileOptions
   2007 
   2008 ---Additional information that describes document changes.
   2009 ---
   2010 ---@since 3.16.0
   2011 ---@class lsp.ChangeAnnotation
   2012 ---
   2013 ---A human-readable string describing the actual change. The string
   2014 ---is rendered prominent in the user interface.
   2015 ---@field label string
   2016 ---
   2017 ---A flag which indicates that user confirmation is needed
   2018 ---before applying the change.
   2019 ---@field needsConfirmation? boolean
   2020 ---
   2021 ---A human-readable string which is rendered less prominent in
   2022 ---the user interface.
   2023 ---@field description? string
   2024 
   2025 ---A filter to describe in which file operation requests or notifications
   2026 ---the server is interested in receiving.
   2027 ---
   2028 ---@since 3.16.0
   2029 ---@class lsp.FileOperationFilter
   2030 ---
   2031 ---A Uri scheme like `file` or `untitled`.
   2032 ---@field scheme? string
   2033 ---
   2034 ---The actual file operation pattern.
   2035 ---@field pattern lsp.FileOperationPattern
   2036 
   2037 ---Represents information on a file/folder rename.
   2038 ---
   2039 ---@since 3.16.0
   2040 ---@class lsp.FileRename
   2041 ---
   2042 ---A file:// URI for the original location of the file/folder being renamed.
   2043 ---@field oldUri string
   2044 ---
   2045 ---A file:// URI for the new location of the file/folder being renamed.
   2046 ---@field newUri string
   2047 
   2048 ---Represents information on a file/folder delete.
   2049 ---
   2050 ---@since 3.16.0
   2051 ---@class lsp.FileDelete
   2052 ---
   2053 ---A file:// URI for the location of the file/folder being deleted.
   2054 ---@field uri string
   2055 
   2056 ---@class lsp.MonikerOptions: lsp.WorkDoneProgressOptions
   2057 
   2058 ---Type hierarchy options used during static registration.
   2059 ---
   2060 ---@since 3.17.0
   2061 ---@class lsp.TypeHierarchyOptions: lsp.WorkDoneProgressOptions
   2062 
   2063 ---@since 3.17.0
   2064 ---@class lsp.InlineValueContext
   2065 ---
   2066 ---The stack frame (as a DAP Id) where the execution has stopped.
   2067 ---@field frameId integer
   2068 ---
   2069 ---The document range where execution has stopped.
   2070 ---Typically the end position of the range denotes the line where the inline values are shown.
   2071 ---@field stoppedLocation lsp.Range
   2072 
   2073 ---Provide inline value as text.
   2074 ---
   2075 ---@since 3.17.0
   2076 ---@class lsp.InlineValueText
   2077 ---
   2078 ---The document range for which the inline value applies.
   2079 ---@field range lsp.Range
   2080 ---
   2081 ---The text of the inline value.
   2082 ---@field text string
   2083 
   2084 ---Provide inline value through a variable lookup.
   2085 ---If only a range is specified, the variable name will be extracted from the underlying document.
   2086 ---An optional variable name can be used to override the extracted name.
   2087 ---
   2088 ---@since 3.17.0
   2089 ---@class lsp.InlineValueVariableLookup
   2090 ---
   2091 ---The document range for which the inline value applies.
   2092 ---The range is used to extract the variable name from the underlying document.
   2093 ---@field range lsp.Range
   2094 ---
   2095 ---If specified the name of the variable to look up.
   2096 ---@field variableName? string
   2097 ---
   2098 ---How to perform the lookup.
   2099 ---@field caseSensitiveLookup boolean
   2100 
   2101 ---Provide an inline value through an expression evaluation.
   2102 ---If only a range is specified, the expression will be extracted from the underlying document.
   2103 ---An optional expression can be used to override the extracted expression.
   2104 ---
   2105 ---@since 3.17.0
   2106 ---@class lsp.InlineValueEvaluatableExpression
   2107 ---
   2108 ---The document range for which the inline value applies.
   2109 ---The range is used to extract the evaluatable expression from the underlying document.
   2110 ---@field range lsp.Range
   2111 ---
   2112 ---If specified the expression overrides the extracted expression.
   2113 ---@field expression? string
   2114 
   2115 ---Inline value options used during static registration.
   2116 ---
   2117 ---@since 3.17.0
   2118 ---@class lsp.InlineValueOptions: lsp.WorkDoneProgressOptions
   2119 
   2120 ---An inlay hint label part allows for interactive and composite labels
   2121 ---of inlay hints.
   2122 ---
   2123 ---@since 3.17.0
   2124 ---@class lsp.InlayHintLabelPart
   2125 ---
   2126 ---The value of this label part.
   2127 ---@field value string
   2128 ---
   2129 ---The tooltip text when you hover over this label part. Depending on
   2130 ---the client capability `inlayHint.resolveSupport` clients might resolve
   2131 ---this property late using the resolve request.
   2132 ---@field tooltip? string|lsp.MarkupContent
   2133 ---
   2134 ---An optional source code location that represents this
   2135 ---label part.
   2136 ---
   2137 ---The editor will use this location for the hover and for code navigation
   2138 ---features: This part will become a clickable link that resolves to the
   2139 ---definition of the symbol at the given location (not necessarily the
   2140 ---location itself), it shows the hover that shows at the given location,
   2141 ---and it shows a context menu with further code navigation commands.
   2142 ---
   2143 ---Depending on the client capability `inlayHint.resolveSupport` clients
   2144 ---might resolve this property late using the resolve request.
   2145 ---@field location? lsp.Location
   2146 ---
   2147 ---An optional command for this label part.
   2148 ---
   2149 ---Depending on the client capability `inlayHint.resolveSupport` clients
   2150 ---might resolve this property late using the resolve request.
   2151 ---@field command? lsp.Command
   2152 
   2153 ---A `MarkupContent` literal represents a string value which content is interpreted base on its
   2154 ---kind flag. Currently the protocol supports `plaintext` and `markdown` as markup kinds.
   2155 ---
   2156 ---If the kind is `markdown` then the value can contain fenced code blocks like in GitHub issues.
   2157 ---See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
   2158 ---
   2159 ---Here is an example how such a string can be constructed using JavaScript / TypeScript:
   2160 ---```ts
   2161 ---let markdown: MarkdownContent = {
   2162 --- kind: MarkupKind.Markdown,
   2163 --- value: [
   2164 ---   '# Header',
   2165 ---   'Some text',
   2166 ---   '```typescript',
   2167 ---   'someCode();',
   2168 ---   '```'
   2169 --- ].join('\n')
   2170 ---};
   2171 ---```
   2172 ---
   2173 ---*Please Note* that clients might sanitize the return markdown. A client could decide to
   2174 ---remove HTML from the markdown to avoid script execution.
   2175 ---@class lsp.MarkupContent
   2176 ---
   2177 ---The type of the Markup
   2178 ---@field kind lsp.MarkupKind
   2179 ---
   2180 ---The content itself
   2181 ---@field value string
   2182 
   2183 ---Inlay hint options used during static registration.
   2184 ---
   2185 ---@since 3.17.0
   2186 ---@class lsp.InlayHintOptions: lsp.WorkDoneProgressOptions
   2187 ---
   2188 ---The server provides support to resolve additional
   2189 ---information for an inlay hint item.
   2190 ---@field resolveProvider? boolean
   2191 
   2192 ---A full diagnostic report with a set of related documents.
   2193 ---
   2194 ---@since 3.17.0
   2195 ---@class lsp.RelatedFullDocumentDiagnosticReport: lsp.FullDocumentDiagnosticReport
   2196 ---
   2197 ---Diagnostics of related documents. This information is useful
   2198 ---in programming languages where code in a file A can generate
   2199 ---diagnostics in a file B which A depends on. An example of
   2200 ---such a language is C/C++ where marco definitions in a file
   2201 ---a.cpp and result in errors in a header file b.hpp.
   2202 ---
   2203 ---@since 3.17.0
   2204 ---@field relatedDocuments? table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
   2205 
   2206 ---An unchanged diagnostic report with a set of related documents.
   2207 ---
   2208 ---@since 3.17.0
   2209 ---@class lsp.RelatedUnchangedDocumentDiagnosticReport: lsp.UnchangedDocumentDiagnosticReport
   2210 ---
   2211 ---Diagnostics of related documents. This information is useful
   2212 ---in programming languages where code in a file A can generate
   2213 ---diagnostics in a file B which A depends on. An example of
   2214 ---such a language is C/C++ where marco definitions in a file
   2215 ---a.cpp and result in errors in a header file b.hpp.
   2216 ---
   2217 ---@since 3.17.0
   2218 ---@field relatedDocuments? table<lsp.DocumentUri, lsp.FullDocumentDiagnosticReport|lsp.UnchangedDocumentDiagnosticReport>
   2219 
   2220 ---A diagnostic report with a full set of problems.
   2221 ---
   2222 ---@since 3.17.0
   2223 ---@class lsp.FullDocumentDiagnosticReport
   2224 ---
   2225 ---A full document diagnostic report.
   2226 ---@field kind "full"
   2227 ---
   2228 ---An optional result id. If provided it will
   2229 ---be sent on the next diagnostic request for the
   2230 ---same document.
   2231 ---@field resultId? string
   2232 ---
   2233 ---The actual items.
   2234 ---@field items lsp.Diagnostic[]
   2235 
   2236 ---A diagnostic report indicating that the last returned
   2237 ---report is still accurate.
   2238 ---
   2239 ---@since 3.17.0
   2240 ---@class lsp.UnchangedDocumentDiagnosticReport
   2241 ---
   2242 ---A document diagnostic report indicating
   2243 ---no changes to the last result. A server can
   2244 ---only return `unchanged` if result ids are
   2245 ---provided.
   2246 ---@field kind "unchanged"
   2247 ---
   2248 ---A result id which will be sent on the next
   2249 ---diagnostic request for the same document.
   2250 ---@field resultId string
   2251 
   2252 ---Diagnostic options.
   2253 ---
   2254 ---@since 3.17.0
   2255 ---@class lsp.DiagnosticOptions: lsp.WorkDoneProgressOptions
   2256 ---
   2257 ---An optional identifier under which the diagnostics are
   2258 ---managed by the client.
   2259 ---@field identifier? string
   2260 ---
   2261 ---Whether the language has inter file dependencies meaning that
   2262 ---editing code in one file can result in a different diagnostic
   2263 ---set in another file. Inter file dependencies are common for
   2264 ---most programming languages and typically uncommon for linters.
   2265 ---@field interFileDependencies boolean
   2266 ---
   2267 ---The server provides support for workspace diagnostics as well.
   2268 ---@field workspaceDiagnostics boolean
   2269 
   2270 ---A previous result id in a workspace pull request.
   2271 ---
   2272 ---@since 3.17.0
   2273 ---@class lsp.PreviousResultId
   2274 ---
   2275 ---The URI for which the client knowns a
   2276 ---result id.
   2277 ---@field uri lsp.DocumentUri
   2278 ---
   2279 ---The value of the previous result id.
   2280 ---@field value string
   2281 
   2282 ---A notebook document.
   2283 ---
   2284 ---@since 3.17.0
   2285 ---@class lsp.NotebookDocument
   2286 ---
   2287 ---The notebook document's uri.
   2288 ---@field uri lsp.URI
   2289 ---
   2290 ---The type of the notebook.
   2291 ---@field notebookType string
   2292 ---
   2293 ---The version number of this document (it will increase after each
   2294 ---change, including undo/redo).
   2295 ---@field version integer
   2296 ---
   2297 ---Additional metadata stored with the notebook
   2298 ---document.
   2299 ---
   2300 ---Note: should always be an object literal (e.g. LSPObject)
   2301 ---@field metadata? lsp.LSPObject
   2302 ---
   2303 ---The cells of a notebook.
   2304 ---@field cells lsp.NotebookCell[]
   2305 
   2306 ---An item to transfer a text document from the client to the
   2307 ---server.
   2308 ---@class lsp.TextDocumentItem
   2309 ---
   2310 ---The text document's uri.
   2311 ---@field uri lsp.DocumentUri
   2312 ---
   2313 ---The text document's language identifier.
   2314 ---@field languageId lsp.LanguageKind
   2315 ---
   2316 ---The version number of this document (it will increase after each
   2317 ---change, including undo/redo).
   2318 ---@field version integer
   2319 ---
   2320 ---The content of the opened text document.
   2321 ---@field text string
   2322 
   2323 ---Options specific to a notebook plus its cells
   2324 ---to be synced to the server.
   2325 ---
   2326 ---If a selector provides a notebook document
   2327 ---filter but no cell selector all cells of a
   2328 ---matching notebook document will be synced.
   2329 ---
   2330 ---If a selector provides no notebook document
   2331 ---filter but only a cell selector all notebook
   2332 ---document that contain at least one matching
   2333 ---cell will be synced.
   2334 ---
   2335 ---@since 3.17.0
   2336 ---@class lsp.NotebookDocumentSyncOptions
   2337 ---
   2338 ---The notebooks to be synced
   2339 ---@field notebookSelector (lsp.NotebookDocumentFilterWithNotebook|lsp.NotebookDocumentFilterWithCells)[]
   2340 ---
   2341 ---Whether save notification should be forwarded to
   2342 ---the server. Will only be honored if mode === `notebook`.
   2343 ---@field save? boolean
   2344 
   2345 ---A versioned notebook document identifier.
   2346 ---
   2347 ---@since 3.17.0
   2348 ---@class lsp.VersionedNotebookDocumentIdentifier
   2349 ---
   2350 ---The version number of this notebook document.
   2351 ---@field version integer
   2352 ---
   2353 ---The notebook document's uri.
   2354 ---@field uri lsp.URI
   2355 
   2356 ---A change event for a notebook document.
   2357 ---
   2358 ---@since 3.17.0
   2359 ---@class lsp.NotebookDocumentChangeEvent
   2360 ---
   2361 ---The changed meta data if any.
   2362 ---
   2363 ---Note: should always be an object literal (e.g. LSPObject)
   2364 ---@field metadata? lsp.LSPObject
   2365 ---
   2366 ---Changes to cells
   2367 ---@field cells? lsp.NotebookDocumentCellChanges
   2368 
   2369 ---A literal to identify a notebook document in the client.
   2370 ---
   2371 ---@since 3.17.0
   2372 ---@class lsp.NotebookDocumentIdentifier
   2373 ---
   2374 ---The notebook document's uri.
   2375 ---@field uri lsp.URI
   2376 
   2377 ---Provides information about the context in which an inline completion was requested.
   2378 ---
   2379 ---@since 3.18.0
   2380 ---@proposed
   2381 ---@class lsp.InlineCompletionContext
   2382 ---
   2383 ---Describes how the inline completion was triggered.
   2384 ---@field triggerKind lsp.InlineCompletionTriggerKind
   2385 ---
   2386 ---Provides information about the currently selected item in the autocomplete widget if it is visible.
   2387 ---@field selectedCompletionInfo? lsp.SelectedCompletionInfo
   2388 
   2389 ---A string value used as a snippet is a template which allows to insert text
   2390 ---and to control the editor cursor when insertion happens.
   2391 ---
   2392 ---A snippet can define tab stops and placeholders with `$1`, `$2`
   2393 ---and `${3:foo}`. `$0` defines the final tab stop, it defaults to
   2394 ---the end of the snippet. Variables are defined with `$name` and
   2395 ---`${name:default value}`.
   2396 ---
   2397 ---@since 3.18.0
   2398 ---@proposed
   2399 ---@class lsp.StringValue
   2400 ---
   2401 ---The kind of string value.
   2402 ---@field kind "snippet"
   2403 ---
   2404 ---The snippet string.
   2405 ---@field value string
   2406 
   2407 ---Inline completion options used during static registration.
   2408 ---
   2409 ---@since 3.18.0
   2410 ---@proposed
   2411 ---@class lsp.InlineCompletionOptions: lsp.WorkDoneProgressOptions
   2412 
   2413 ---Text document content provider options.
   2414 ---
   2415 ---@since 3.18.0
   2416 ---@proposed
   2417 ---@class lsp.TextDocumentContentOptions
   2418 ---
   2419 ---The schemes for which the server provides content.
   2420 ---@field schemes string[]
   2421 
   2422 ---General parameters to register for a notification or to register a provider.
   2423 ---@class lsp.Registration
   2424 ---
   2425 ---The id used to register the request. The id can be used to deregister
   2426 ---the request again.
   2427 ---@field id string
   2428 ---
   2429 ---The method / capability to register for.
   2430 ---@field method vim.lsp.protocol.Method
   2431 ---
   2432 ---Options necessary for the registration.
   2433 ---@field registerOptions? lsp.LSPAny
   2434 
   2435 ---General parameters to unregister a request or notification.
   2436 ---@class lsp.Unregistration
   2437 ---
   2438 ---The id used to unregister the request or notification. Usually an id
   2439 ---provided during the register request.
   2440 ---@field id string
   2441 ---
   2442 ---The method to unregister for.
   2443 ---@field method vim.lsp.protocol.Method
   2444 
   2445 ---The initialize parameters
   2446 ---@class lsp._InitializeParams: lsp.WorkDoneProgressParams
   2447 ---
   2448 ---The process Id of the parent process that started
   2449 ---the server.
   2450 ---
   2451 ---Is `null` if the process has not been started by another process.
   2452 ---If the parent process is not alive then the server should exit.
   2453 ---@field processId integer|lsp.null
   2454 ---
   2455 ---Information about the client
   2456 ---
   2457 ---@since 3.15.0
   2458 ---@field clientInfo? lsp.ClientInfo
   2459 ---
   2460 ---The locale the client is currently showing the user interface
   2461 ---in. This must not necessarily be the locale of the operating
   2462 ---system.
   2463 ---
   2464 ---Uses IETF language tags as the value's syntax
   2465 ---(See https://en.wikipedia.org/wiki/IETF_language_tag)
   2466 ---
   2467 ---@since 3.16.0
   2468 ---@field locale? string
   2469 ---
   2470 ---The rootPath of the workspace. Is null
   2471 ---if no folder is open.
   2472 ---
   2473 ---@deprecated in favour of rootUri.
   2474 ---@field rootPath? string|lsp.null
   2475 ---
   2476 ---The rootUri of the workspace. Is null if no
   2477 ---folder is open. If both `rootPath` and `rootUri` are set
   2478 ---`rootUri` wins.
   2479 ---
   2480 ---@deprecated in favour of workspaceFolders.
   2481 ---@field rootUri lsp.DocumentUri|lsp.null
   2482 ---
   2483 ---The capabilities provided by the client (editor or tool)
   2484 ---@field capabilities lsp.ClientCapabilities
   2485 ---
   2486 ---User provided initialization options.
   2487 ---@field initializationOptions? lsp.LSPAny
   2488 ---
   2489 ---The initial trace setting. If omitted trace is disabled ('off').
   2490 ---@field trace? lsp.TraceValue
   2491 
   2492 ---@class lsp.WorkspaceFoldersInitializeParams
   2493 ---
   2494 ---The workspace folders configured in the client when the server starts.
   2495 ---
   2496 ---This property is only available if the client supports workspace folders.
   2497 ---It can be `null` if the client supports workspace folders but none are
   2498 ---configured.
   2499 ---
   2500 ---@since 3.6.0
   2501 ---@field workspaceFolders? lsp.WorkspaceFolder[]|lsp.null
   2502 
   2503 ---Defines the capabilities provided by a language
   2504 ---server.
   2505 ---@class lsp.ServerCapabilities
   2506 ---
   2507 ---The position encoding the server picked from the encodings offered
   2508 ---by the client via the client capability `general.positionEncodings`.
   2509 ---
   2510 ---If the client didn't provide any position encodings the only valid
   2511 ---value that a server can return is 'utf-16'.
   2512 ---
   2513 ---If omitted it defaults to 'utf-16'.
   2514 ---
   2515 ---@since 3.17.0
   2516 ---@field positionEncoding? lsp.PositionEncodingKind
   2517 ---
   2518 ---Defines how text documents are synced. Is either a detailed structure
   2519 ---defining each notification or for backwards compatibility the
   2520 ---TextDocumentSyncKind number.
   2521 ---@field textDocumentSync? lsp.TextDocumentSyncOptions|lsp.TextDocumentSyncKind
   2522 ---
   2523 ---Defines how notebook documents are synced.
   2524 ---
   2525 ---@since 3.17.0
   2526 ---@field notebookDocumentSync? lsp.NotebookDocumentSyncOptions|lsp.NotebookDocumentSyncRegistrationOptions
   2527 ---
   2528 ---The server provides completion support.
   2529 ---@field completionProvider? lsp.CompletionOptions
   2530 ---
   2531 ---The server provides hover support.
   2532 ---@field hoverProvider? boolean|lsp.HoverOptions
   2533 ---
   2534 ---The server provides signature help support.
   2535 ---@field signatureHelpProvider? lsp.SignatureHelpOptions
   2536 ---
   2537 ---The server provides Goto Declaration support.
   2538 ---@field declarationProvider? boolean|lsp.DeclarationOptions|lsp.DeclarationRegistrationOptions
   2539 ---
   2540 ---The server provides goto definition support.
   2541 ---@field definitionProvider? boolean|lsp.DefinitionOptions
   2542 ---
   2543 ---The server provides Goto Type Definition support.
   2544 ---@field typeDefinitionProvider? boolean|lsp.TypeDefinitionOptions|lsp.TypeDefinitionRegistrationOptions
   2545 ---
   2546 ---The server provides Goto Implementation support.
   2547 ---@field implementationProvider? boolean|lsp.ImplementationOptions|lsp.ImplementationRegistrationOptions
   2548 ---
   2549 ---The server provides find references support.
   2550 ---@field referencesProvider? boolean|lsp.ReferenceOptions
   2551 ---
   2552 ---The server provides document highlight support.
   2553 ---@field documentHighlightProvider? boolean|lsp.DocumentHighlightOptions
   2554 ---
   2555 ---The server provides document symbol support.
   2556 ---@field documentSymbolProvider? boolean|lsp.DocumentSymbolOptions
   2557 ---
   2558 ---The server provides code actions. CodeActionOptions may only be
   2559 ---specified if the client states that it supports
   2560 ---`codeActionLiteralSupport` in its initial `initialize` request.
   2561 ---@field codeActionProvider? boolean|lsp.CodeActionOptions
   2562 ---
   2563 ---The server provides code lens.
   2564 ---@field codeLensProvider? lsp.CodeLensOptions
   2565 ---
   2566 ---The server provides document link support.
   2567 ---@field documentLinkProvider? lsp.DocumentLinkOptions
   2568 ---
   2569 ---The server provides color provider support.
   2570 ---@field colorProvider? boolean|lsp.DocumentColorOptions|lsp.DocumentColorRegistrationOptions
   2571 ---
   2572 ---The server provides workspace symbol support.
   2573 ---@field workspaceSymbolProvider? boolean|lsp.WorkspaceSymbolOptions
   2574 ---
   2575 ---The server provides document formatting.
   2576 ---@field documentFormattingProvider? boolean|lsp.DocumentFormattingOptions
   2577 ---
   2578 ---The server provides document range formatting.
   2579 ---@field documentRangeFormattingProvider? boolean|lsp.DocumentRangeFormattingOptions
   2580 ---
   2581 ---The server provides document formatting on typing.
   2582 ---@field documentOnTypeFormattingProvider? lsp.DocumentOnTypeFormattingOptions
   2583 ---
   2584 ---The server provides rename support. RenameOptions may only be
   2585 ---specified if the client states that it supports
   2586 ---`prepareSupport` in its initial `initialize` request.
   2587 ---@field renameProvider? boolean|lsp.RenameOptions
   2588 ---
   2589 ---The server provides folding provider support.
   2590 ---@field foldingRangeProvider? boolean|lsp.FoldingRangeOptions|lsp.FoldingRangeRegistrationOptions
   2591 ---
   2592 ---The server provides selection range support.
   2593 ---@field selectionRangeProvider? boolean|lsp.SelectionRangeOptions|lsp.SelectionRangeRegistrationOptions
   2594 ---
   2595 ---The server provides execute command support.
   2596 ---@field executeCommandProvider? lsp.ExecuteCommandOptions
   2597 ---
   2598 ---The server provides call hierarchy support.
   2599 ---
   2600 ---@since 3.16.0
   2601 ---@field callHierarchyProvider? boolean|lsp.CallHierarchyOptions|lsp.CallHierarchyRegistrationOptions
   2602 ---
   2603 ---The server provides linked editing range support.
   2604 ---
   2605 ---@since 3.16.0
   2606 ---@field linkedEditingRangeProvider? boolean|lsp.LinkedEditingRangeOptions|lsp.LinkedEditingRangeRegistrationOptions
   2607 ---
   2608 ---The server provides semantic tokens support.
   2609 ---
   2610 ---@since 3.16.0
   2611 ---@field semanticTokensProvider? lsp.SemanticTokensOptions|lsp.SemanticTokensRegistrationOptions
   2612 ---
   2613 ---The server provides moniker support.
   2614 ---
   2615 ---@since 3.16.0
   2616 ---@field monikerProvider? boolean|lsp.MonikerOptions|lsp.MonikerRegistrationOptions
   2617 ---
   2618 ---The server provides type hierarchy support.
   2619 ---
   2620 ---@since 3.17.0
   2621 ---@field typeHierarchyProvider? boolean|lsp.TypeHierarchyOptions|lsp.TypeHierarchyRegistrationOptions
   2622 ---
   2623 ---The server provides inline values.
   2624 ---
   2625 ---@since 3.17.0
   2626 ---@field inlineValueProvider? boolean|lsp.InlineValueOptions|lsp.InlineValueRegistrationOptions
   2627 ---
   2628 ---The server provides inlay hints.
   2629 ---
   2630 ---@since 3.17.0
   2631 ---@field inlayHintProvider? boolean|lsp.InlayHintOptions|lsp.InlayHintRegistrationOptions
   2632 ---
   2633 ---The server has support for pull model diagnostics.
   2634 ---
   2635 ---@since 3.17.0
   2636 ---@field diagnosticProvider? lsp.DiagnosticOptions|lsp.DiagnosticRegistrationOptions
   2637 ---
   2638 ---Inline completion options used during static registration.
   2639 ---
   2640 ---@since 3.18.0
   2641 ---@proposed
   2642 ---@field inlineCompletionProvider? boolean|lsp.InlineCompletionOptions
   2643 ---
   2644 ---Workspace specific server capabilities.
   2645 ---@field workspace? lsp.WorkspaceOptions
   2646 ---
   2647 ---Experimental server capabilities.
   2648 ---@field experimental? lsp.LSPAny
   2649 
   2650 ---Information about the server
   2651 ---
   2652 ---@since 3.15.0
   2653 ---@since 3.18.0 ServerInfo type name added.
   2654 ---@class lsp.ServerInfo
   2655 ---
   2656 ---The name of the server as defined by the server.
   2657 ---@field name string
   2658 ---
   2659 ---The server's version as defined by the server.
   2660 ---@field version? string
   2661 
   2662 ---A text document identifier to denote a specific version of a text document.
   2663 ---@class lsp.VersionedTextDocumentIdentifier: lsp.TextDocumentIdentifier
   2664 ---
   2665 ---The version number of this document.
   2666 ---@field version integer
   2667 
   2668 ---Save options.
   2669 ---@class lsp.SaveOptions
   2670 ---
   2671 ---The client is supposed to include the content on save.
   2672 ---@field includeText? boolean
   2673 
   2674 ---An event describing a file change.
   2675 ---@class lsp.FileEvent
   2676 ---
   2677 ---The file's uri.
   2678 ---@field uri lsp.DocumentUri
   2679 ---
   2680 ---The change type.
   2681 ---@field type lsp.FileChangeType
   2682 
   2683 ---@class lsp.FileSystemWatcher
   2684 ---
   2685 ---The glob pattern to watch. See {@link GlobPattern glob pattern} for more detail.
   2686 ---
   2687 ---@since 3.17.0 support for relative patterns.
   2688 ---@field globPattern lsp.GlobPattern
   2689 ---
   2690 ---The kind of events of interest. If omitted it defaults
   2691 ---to WatchKind.Create | WatchKind.Change | WatchKind.Delete
   2692 ---which is 7.
   2693 ---@field kind? lsp.WatchKind
   2694 
   2695 ---Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
   2696 ---are only valid in the scope of a resource.
   2697 ---@class lsp.Diagnostic
   2698 ---
   2699 ---The range at which the message applies
   2700 ---@field range lsp.Range
   2701 ---
   2702 ---The diagnostic's severity. To avoid interpretation mismatches when a
   2703 ---server is used with different clients it is highly recommended that servers
   2704 ---always provide a severity value.
   2705 ---@field severity? lsp.DiagnosticSeverity
   2706 ---
   2707 ---The diagnostic's code, which usually appear in the user interface.
   2708 ---@field code? integer|string
   2709 ---
   2710 ---An optional property to describe the error code.
   2711 ---Requires the code field (above) to be present/not null.
   2712 ---
   2713 ---@since 3.16.0
   2714 ---@field codeDescription? lsp.CodeDescription
   2715 ---
   2716 ---A human-readable string describing the source of this
   2717 ---diagnostic, e.g. 'typescript' or 'super lint'. It usually
   2718 ---appears in the user interface.
   2719 ---@field source? string
   2720 ---
   2721 ---The diagnostic's message. It usually appears in the user interface
   2722 ---@field message string
   2723 ---
   2724 ---Additional metadata about the diagnostic.
   2725 ---
   2726 ---@since 3.15.0
   2727 ---@field tags? lsp.DiagnosticTag[]
   2728 ---
   2729 ---An array of related diagnostic information, e.g. when symbol-names within
   2730 ---a scope collide all definitions can be marked via this property.
   2731 ---@field relatedInformation? lsp.DiagnosticRelatedInformation[]
   2732 ---
   2733 ---A data entry field that is preserved between a `textDocument/publishDiagnostics`
   2734 ---notification and `textDocument/codeAction` request.
   2735 ---
   2736 ---@since 3.16.0
   2737 ---@field data? lsp.LSPAny
   2738 
   2739 ---Contains additional information about the context in which a completion request is triggered.
   2740 ---@class lsp.CompletionContext
   2741 ---
   2742 ---How the completion was triggered.
   2743 ---@field triggerKind lsp.CompletionTriggerKind
   2744 ---
   2745 ---The trigger character (a single character) that has trigger code complete.
   2746 ---Is undefined if `triggerKind !== CompletionTriggerKind.TriggerCharacter`
   2747 ---@field triggerCharacter? string
   2748 
   2749 ---Additional details for a completion item label.
   2750 ---
   2751 ---@since 3.17.0
   2752 ---@class lsp.CompletionItemLabelDetails
   2753 ---
   2754 ---An optional string which is rendered less prominently directly after {@link CompletionItem.label label},
   2755 ---without any spacing. Should be used for function signatures and type annotations.
   2756 ---@field detail? string
   2757 ---
   2758 ---An optional string which is rendered less prominently after {@link CompletionItem.detail}. Should be used
   2759 ---for fully qualified names and file paths.
   2760 ---@field description? string
   2761 
   2762 ---A special text edit to provide an insert and a replace operation.
   2763 ---
   2764 ---@since 3.16.0
   2765 ---@class lsp.InsertReplaceEdit
   2766 ---
   2767 ---The string to be inserted.
   2768 ---@field newText string
   2769 ---
   2770 ---The range if the insert is requested
   2771 ---@field insert lsp.Range
   2772 ---
   2773 ---The range if the replace is requested.
   2774 ---@field replace lsp.Range
   2775 
   2776 ---In many cases the items of an actual completion result share the same
   2777 ---value for properties like `commitCharacters` or the range of a text
   2778 ---edit. A completion list can therefore define item defaults which will
   2779 ---be used if a completion item itself doesn't specify the value.
   2780 ---
   2781 ---If a completion list specifies a default value and a completion item
   2782 ---also specifies a corresponding value, the rules for combining these are
   2783 ---defined by `applyKinds` (if the client supports it), defaulting to
   2784 ---ApplyKind.Replace.
   2785 ---
   2786 ---Servers are only allowed to return default values if the client
   2787 ---signals support for this via the `completionList.itemDefaults`
   2788 ---capability.
   2789 ---
   2790 ---@since 3.17.0
   2791 ---@class lsp.CompletionItemDefaults
   2792 ---
   2793 ---A default commit character set.
   2794 ---
   2795 ---@since 3.17.0
   2796 ---@field commitCharacters? string[]
   2797 ---
   2798 ---A default edit range.
   2799 ---
   2800 ---@since 3.17.0
   2801 ---@field editRange? lsp.Range|lsp.EditRangeWithInsertReplace
   2802 ---
   2803 ---A default insert text format.
   2804 ---
   2805 ---@since 3.17.0
   2806 ---@field insertTextFormat? lsp.InsertTextFormat
   2807 ---
   2808 ---A default insert text mode.
   2809 ---
   2810 ---@since 3.17.0
   2811 ---@field insertTextMode? lsp.InsertTextMode
   2812 ---
   2813 ---A default data value.
   2814 ---
   2815 ---@since 3.17.0
   2816 ---@field data? lsp.LSPAny
   2817 
   2818 ---Specifies how fields from a completion item should be combined with those
   2819 ---from `completionList.itemDefaults`.
   2820 ---
   2821 ---If unspecified, all fields will be treated as ApplyKind.Replace.
   2822 ---
   2823 ---If a field's value is ApplyKind.Replace, the value from a completion item (if
   2824 ---provided and not `null`) will always be used instead of the value from
   2825 ---`completionItem.itemDefaults`.
   2826 ---
   2827 ---If a field's value is ApplyKind.Merge, the values will be merged using the rules
   2828 ---defined against each field below.
   2829 ---
   2830 ---Servers are only allowed to return `applyKind` if the client
   2831 ---signals support for this via the `completionList.applyKindSupport`
   2832 ---capability.
   2833 ---
   2834 ---@since 3.18.0
   2835 ---@class lsp.CompletionItemApplyKinds
   2836 ---
   2837 ---Specifies whether commitCharacters on a completion will replace or be
   2838 ---merged with those in `completionList.itemDefaults.commitCharacters`.
   2839 ---
   2840 ---If ApplyKind.Replace, the commit characters from the completion item will
   2841 ---always be used unless not provided, in which case those from
   2842 ---`completionList.itemDefaults.commitCharacters` will be used. An
   2843 ---empty list can be used if a completion item does not have any commit
   2844 ---characters and also should not use those from
   2845 ---`completionList.itemDefaults.commitCharacters`.
   2846 ---
   2847 ---If ApplyKind.Merge the commitCharacters for the completion will be the
   2848 ---union of all values in both `completionList.itemDefaults.commitCharacters`
   2849 ---and the completion's own `commitCharacters`.
   2850 ---
   2851 ---@since 3.18.0
   2852 ---@field commitCharacters? lsp.ApplyKind
   2853 ---
   2854 ---Specifies whether the `data` field on a completion will replace or
   2855 ---be merged with data from `completionList.itemDefaults.data`.
   2856 ---
   2857 ---If ApplyKind.Replace, the data from the completion item will be used if
   2858 ---provided (and not `null`), otherwise
   2859 ---`completionList.itemDefaults.data` will be used. An empty object can
   2860 ---be used if a completion item does not have any data but also should
   2861 ---not use the value from `completionList.itemDefaults.data`.
   2862 ---
   2863 ---If ApplyKind.Merge, a shallow merge will be performed between
   2864 ---`completionList.itemDefaults.data` and the completion's own data
   2865 ---using the following rules:
   2866 ---
   2867 ---- If a completion's `data` field is not provided (or `null`), the
   2868 ---  entire `data` field from `completionList.itemDefaults.data` will be
   2869 ---  used as-is.
   2870 ---- If a completion's `data` field is provided, each field will
   2871 ---  overwrite the field of the same name in
   2872 ---  `completionList.itemDefaults.data` but no merging of nested fields
   2873 ---  within that value will occur.
   2874 ---
   2875 ---@since 3.18.0
   2876 ---@field data? lsp.ApplyKind
   2877 
   2878 ---Completion options.
   2879 ---@class lsp.CompletionOptions: lsp.WorkDoneProgressOptions
   2880 ---
   2881 ---Most tools trigger completion request automatically without explicitly requesting
   2882 ---it using a keyboard shortcut (e.g. Ctrl+Space). Typically they do so when the user
   2883 ---starts to type an identifier. For example if the user types `c` in a JavaScript file
   2884 ---code complete will automatically pop up present `console` besides others as a
   2885 ---completion item. Characters that make up identifiers don't need to be listed here.
   2886 ---
   2887 ---If code complete should automatically be trigger on characters not being valid inside
   2888 ---an identifier (for example `.` in JavaScript) list them in `triggerCharacters`.
   2889 ---@field triggerCharacters? string[]
   2890 ---
   2891 ---The list of all possible characters that commit a completion. This field can be used
   2892 ---if clients don't support individual commit characters per completion item. See
   2893 ---`ClientCapabilities.textDocument.completion.completionItem.commitCharactersSupport`
   2894 ---
   2895 ---If a server provides both `allCommitCharacters` and commit characters on an individual
   2896 ---completion item the ones on the completion item win.
   2897 ---
   2898 ---@since 3.2.0
   2899 ---@field allCommitCharacters? string[]
   2900 ---
   2901 ---The server provides support to resolve additional
   2902 ---information for a completion item.
   2903 ---@field resolveProvider? boolean
   2904 ---
   2905 ---The server supports the following `CompletionItem` specific
   2906 ---capabilities.
   2907 ---
   2908 ---@since 3.17.0
   2909 ---@field completionItem? lsp.ServerCompletionItemOptions
   2910 
   2911 ---Hover options.
   2912 ---@class lsp.HoverOptions: lsp.WorkDoneProgressOptions
   2913 
   2914 ---Additional information about the context in which a signature help request was triggered.
   2915 ---
   2916 ---@since 3.15.0
   2917 ---@class lsp.SignatureHelpContext
   2918 ---
   2919 ---Action that caused signature help to be triggered.
   2920 ---@field triggerKind lsp.SignatureHelpTriggerKind
   2921 ---
   2922 ---Character that caused signature help to be triggered.
   2923 ---
   2924 ---This is undefined when `triggerKind !== SignatureHelpTriggerKind.TriggerCharacter`
   2925 ---@field triggerCharacter? string
   2926 ---
   2927 ---`true` if signature help was already showing when it was triggered.
   2928 ---
   2929 ---Retriggers occurs when the signature help is already active and can be caused by actions such as
   2930 ---typing a trigger character, a cursor move, or document content changes.
   2931 ---@field isRetrigger boolean
   2932 ---
   2933 ---The currently active `SignatureHelp`.
   2934 ---
   2935 ---The `activeSignatureHelp` has its `SignatureHelp.activeSignature` field updated based on
   2936 ---the user navigating through available signatures.
   2937 ---@field activeSignatureHelp? lsp.SignatureHelp
   2938 
   2939 ---Represents the signature of something callable. A signature
   2940 ---can have a label, like a function-name, a doc-comment, and
   2941 ---a set of parameters.
   2942 ---@class lsp.SignatureInformation
   2943 ---
   2944 ---The label of this signature. Will be shown in
   2945 ---the UI.
   2946 ---@field label string
   2947 ---
   2948 ---The human-readable doc-comment of this signature. Will be shown
   2949 ---in the UI but can be omitted.
   2950 ---@field documentation? string|lsp.MarkupContent
   2951 ---
   2952 ---The parameters of this signature.
   2953 ---@field parameters? lsp.ParameterInformation[]
   2954 ---
   2955 ---The index of the active parameter.
   2956 ---
   2957 ---If `null`, no parameter of the signature is active (for example a named
   2958 ---argument that does not match any declared parameters). This is only valid
   2959 ---if the client specifies the client capability
   2960 ---`textDocument.signatureHelp.noActiveParameterSupport === true`
   2961 ---
   2962 ---If provided (or `null`), this is used in place of
   2963 ---`SignatureHelp.activeParameter`.
   2964 ---
   2965 ---@since 3.16.0
   2966 ---@field activeParameter? uinteger|lsp.null
   2967 
   2968 ---Server Capabilities for a {@link SignatureHelpRequest}.
   2969 ---@class lsp.SignatureHelpOptions: lsp.WorkDoneProgressOptions
   2970 ---
   2971 ---List of characters that trigger signature help automatically.
   2972 ---@field triggerCharacters? string[]
   2973 ---
   2974 ---List of characters that re-trigger signature help.
   2975 ---
   2976 ---These trigger characters are only active when signature help is already showing. All trigger characters
   2977 ---are also counted as re-trigger characters.
   2978 ---
   2979 ---@since 3.15.0
   2980 ---@field retriggerCharacters? string[]
   2981 
   2982 ---Server Capabilities for a {@link DefinitionRequest}.
   2983 ---@class lsp.DefinitionOptions: lsp.WorkDoneProgressOptions
   2984 
   2985 ---Value-object that contains additional information when
   2986 ---requesting references.
   2987 ---@class lsp.ReferenceContext
   2988 ---
   2989 ---Include the declaration of the current symbol.
   2990 ---@field includeDeclaration boolean
   2991 
   2992 ---Reference options.
   2993 ---@class lsp.ReferenceOptions: lsp.WorkDoneProgressOptions
   2994 
   2995 ---Provider options for a {@link DocumentHighlightRequest}.
   2996 ---@class lsp.DocumentHighlightOptions: lsp.WorkDoneProgressOptions
   2997 
   2998 ---A base for all symbol information.
   2999 ---@class lsp.BaseSymbolInformation
   3000 ---
   3001 ---The name of this symbol.
   3002 ---@field name string
   3003 ---
   3004 ---The kind of this symbol.
   3005 ---@field kind lsp.SymbolKind
   3006 ---
   3007 ---Tags for this symbol.
   3008 ---
   3009 ---@since 3.16.0
   3010 ---@field tags? lsp.SymbolTag[]
   3011 ---
   3012 ---The name of the symbol containing this symbol. This information is for
   3013 ---user interface purposes (e.g. to render a qualifier in the user interface
   3014 ---if necessary). It can't be used to re-infer a hierarchy for the document
   3015 ---symbols.
   3016 ---@field containerName? string
   3017 
   3018 ---Provider options for a {@link DocumentSymbolRequest}.
   3019 ---@class lsp.DocumentSymbolOptions: lsp.WorkDoneProgressOptions
   3020 ---
   3021 ---A human-readable string that is shown when multiple outlines trees
   3022 ---are shown for the same document.
   3023 ---
   3024 ---@since 3.16.0
   3025 ---@field label? string
   3026 
   3027 ---Contains additional diagnostic information about the context in which
   3028 ---a {@link CodeActionProvider.provideCodeActions code action} is run.
   3029 ---@class lsp.CodeActionContext
   3030 ---
   3031 ---An array of diagnostics known on the client side overlapping the range provided to the
   3032 ---`textDocument/codeAction` request. They are provided so that the server knows which
   3033 ---errors are currently presented to the user for the given range. There is no guarantee
   3034 ---that these accurately reflect the error state of the resource. The primary parameter
   3035 ---to compute code actions is the provided range.
   3036 ---@field diagnostics lsp.Diagnostic[]
   3037 ---
   3038 ---Requested kind of actions to return.
   3039 ---
   3040 ---Actions not of this kind are filtered out by the client before being shown. So servers
   3041 ---can omit computing them.
   3042 ---@field only? lsp.CodeActionKind[]
   3043 ---
   3044 ---The reason why code actions were requested.
   3045 ---
   3046 ---@since 3.17.0
   3047 ---@field triggerKind? lsp.CodeActionTriggerKind
   3048 
   3049 ---Captures why the code action is currently disabled.
   3050 ---
   3051 ---@since 3.18.0
   3052 ---@class lsp.CodeActionDisabled
   3053 ---
   3054 ---Human readable description of why the code action is currently disabled.
   3055 ---
   3056 ---This is displayed in the code actions UI.
   3057 ---@field reason string
   3058 
   3059 ---Provider options for a {@link CodeActionRequest}.
   3060 ---@class lsp.CodeActionOptions: lsp.WorkDoneProgressOptions
   3061 ---
   3062 ---CodeActionKinds that this server may return.
   3063 ---
   3064 ---The list of kinds may be generic, such as `CodeActionKind.Refactor`, or the server
   3065 ---may list out every specific kind they provide.
   3066 ---@field codeActionKinds? lsp.CodeActionKind[]
   3067 ---
   3068 ---Static documentation for a class of code actions.
   3069 ---
   3070 ---Documentation from the provider should be shown in the code actions menu if either:
   3071 ---
   3072 ---- Code actions of `kind` are requested by the editor. In this case, the editor will show the documentation that
   3073 ---  most closely matches the requested code action kind. For example, if a provider has documentation for
   3074 ---  both `Refactor` and `RefactorExtract`, when the user requests code actions for `RefactorExtract`,
   3075 ---  the editor will use the documentation for `RefactorExtract` instead of the documentation for `Refactor`.
   3076 ---
   3077 ---- Any code actions of `kind` are returned by the provider.
   3078 ---
   3079 ---At most one documentation entry should be shown per provider.
   3080 ---
   3081 ---@since 3.18.0
   3082 ---@proposed
   3083 ---@field documentation? lsp.CodeActionKindDocumentation[]
   3084 ---
   3085 ---The server provides support to resolve additional
   3086 ---information for a code action.
   3087 ---
   3088 ---@since 3.16.0
   3089 ---@field resolveProvider? boolean
   3090 
   3091 ---Location with only uri and does not include range.
   3092 ---
   3093 ---@since 3.18.0
   3094 ---@class lsp.LocationUriOnly
   3095 ---
   3096 ---@field uri lsp.DocumentUri
   3097 
   3098 ---Server capabilities for a {@link WorkspaceSymbolRequest}.
   3099 ---@class lsp.WorkspaceSymbolOptions: lsp.WorkDoneProgressOptions
   3100 ---
   3101 ---The server provides support to resolve additional
   3102 ---information for a workspace symbol.
   3103 ---
   3104 ---@since 3.17.0
   3105 ---@field resolveProvider? boolean
   3106 
   3107 ---Code Lens provider options of a {@link CodeLensRequest}.
   3108 ---@class lsp.CodeLensOptions: lsp.WorkDoneProgressOptions
   3109 ---
   3110 ---Code lens has a resolve provider as well.
   3111 ---@field resolveProvider? boolean
   3112 
   3113 ---Provider options for a {@link DocumentLinkRequest}.
   3114 ---@class lsp.DocumentLinkOptions: lsp.WorkDoneProgressOptions
   3115 ---
   3116 ---Document links have a resolve provider as well.
   3117 ---@field resolveProvider? boolean
   3118 
   3119 ---Value-object describing what options formatting should use.
   3120 ---@class lsp.FormattingOptions
   3121 ---
   3122 ---Size of a tab in spaces.
   3123 ---@field tabSize uinteger
   3124 ---
   3125 ---Prefer spaces over tabs.
   3126 ---@field insertSpaces boolean
   3127 ---
   3128 ---Trim trailing whitespace on a line.
   3129 ---
   3130 ---@since 3.15.0
   3131 ---@field trimTrailingWhitespace? boolean
   3132 ---
   3133 ---Insert a newline character at the end of the file if one does not exist.
   3134 ---
   3135 ---@since 3.15.0
   3136 ---@field insertFinalNewline? boolean
   3137 ---
   3138 ---Trim all newlines after the final newline at the end of the file.
   3139 ---
   3140 ---@since 3.15.0
   3141 ---@field trimFinalNewlines? boolean
   3142 
   3143 ---Provider options for a {@link DocumentFormattingRequest}.
   3144 ---@class lsp.DocumentFormattingOptions: lsp.WorkDoneProgressOptions
   3145 
   3146 ---Provider options for a {@link DocumentRangeFormattingRequest}.
   3147 ---@class lsp.DocumentRangeFormattingOptions: lsp.WorkDoneProgressOptions
   3148 ---
   3149 ---Whether the server supports formatting multiple ranges at once.
   3150 ---
   3151 ---@since 3.18.0
   3152 ---@proposed
   3153 ---@field rangesSupport? boolean
   3154 
   3155 ---Provider options for a {@link DocumentOnTypeFormattingRequest}.
   3156 ---@class lsp.DocumentOnTypeFormattingOptions
   3157 ---
   3158 ---A character on which formatting should be triggered, like `{`.
   3159 ---@field firstTriggerCharacter string
   3160 ---
   3161 ---More trigger characters.
   3162 ---@field moreTriggerCharacter? string[]
   3163 
   3164 ---Provider options for a {@link RenameRequest}.
   3165 ---@class lsp.RenameOptions: lsp.WorkDoneProgressOptions
   3166 ---
   3167 ---Renames should be checked and tested before being executed.
   3168 ---
   3169 ---@since version 3.12.0
   3170 ---@field prepareProvider? boolean
   3171 
   3172 ---@since 3.18.0
   3173 ---@class lsp.PrepareRenamePlaceholder
   3174 ---
   3175 ---@field range lsp.Range
   3176 ---
   3177 ---@field placeholder string
   3178 
   3179 ---@since 3.18.0
   3180 ---@class lsp.PrepareRenameDefaultBehavior
   3181 ---
   3182 ---@field defaultBehavior boolean
   3183 
   3184 ---The server capabilities of a {@link ExecuteCommandRequest}.
   3185 ---@class lsp.ExecuteCommandOptions: lsp.WorkDoneProgressOptions
   3186 ---
   3187 ---The commands to be executed on the server
   3188 ---@field commands string[]
   3189 
   3190 ---Additional data about a workspace edit.
   3191 ---
   3192 ---@since 3.18.0
   3193 ---@proposed
   3194 ---@class lsp.WorkspaceEditMetadata
   3195 ---
   3196 ---Signal to the editor that this edit is a refactoring.
   3197 ---@field isRefactoring? boolean
   3198 
   3199 ---@since 3.16.0
   3200 ---@class lsp.SemanticTokensLegend
   3201 ---
   3202 ---The token types a server uses.
   3203 ---@field tokenTypes string[]
   3204 ---
   3205 ---The token modifiers a server uses.
   3206 ---@field tokenModifiers string[]
   3207 
   3208 ---Semantic tokens options to support deltas for full documents
   3209 ---
   3210 ---@since 3.18.0
   3211 ---@class lsp.SemanticTokensFullDelta
   3212 ---
   3213 ---The server supports deltas for full documents.
   3214 ---@field delta? boolean
   3215 
   3216 ---A text document identifier to optionally denote a specific version of a text document.
   3217 ---@class lsp.OptionalVersionedTextDocumentIdentifier: lsp.TextDocumentIdentifier
   3218 ---
   3219 ---The version number of this document. If a versioned text document identifier
   3220 ---is sent from the server to the client and the file is not open in the editor
   3221 ---(the server has not received an open notification before) the server can send
   3222 ---`null` to indicate that the version is unknown and the content on disk is the
   3223 ---truth (as specified with document content ownership).
   3224 ---@field version integer|lsp.null
   3225 
   3226 ---A special text edit with an additional change annotation.
   3227 ---
   3228 ---@since 3.16.0.
   3229 ---@class lsp.AnnotatedTextEdit: lsp.TextEdit
   3230 ---
   3231 ---The actual identifier of the change annotation
   3232 ---@field annotationId lsp.ChangeAnnotationIdentifier
   3233 
   3234 ---An interactive text edit.
   3235 ---
   3236 ---@since 3.18.0
   3237 ---@proposed
   3238 ---@class lsp.SnippetTextEdit
   3239 ---
   3240 ---The range of the text document to be manipulated.
   3241 ---@field range lsp.Range
   3242 ---
   3243 ---The snippet to be inserted.
   3244 ---@field snippet lsp.StringValue
   3245 ---
   3246 ---The actual identifier of the snippet edit.
   3247 ---@field annotationId? lsp.ChangeAnnotationIdentifier
   3248 
   3249 ---A generic resource operation.
   3250 ---@class lsp.ResourceOperation
   3251 ---
   3252 ---The resource operation kind.
   3253 ---@field kind string
   3254 ---
   3255 ---An optional annotation identifier describing the operation.
   3256 ---
   3257 ---@since 3.16.0
   3258 ---@field annotationId? lsp.ChangeAnnotationIdentifier
   3259 
   3260 ---Options to create a file.
   3261 ---@class lsp.CreateFileOptions
   3262 ---
   3263 ---Overwrite existing file. Overwrite wins over `ignoreIfExists`
   3264 ---@field overwrite? boolean
   3265 ---
   3266 ---Ignore if exists.
   3267 ---@field ignoreIfExists? boolean
   3268 
   3269 ---Rename file options
   3270 ---@class lsp.RenameFileOptions
   3271 ---
   3272 ---Overwrite target if existing. Overwrite wins over `ignoreIfExists`
   3273 ---@field overwrite? boolean
   3274 ---
   3275 ---Ignores if target exists.
   3276 ---@field ignoreIfExists? boolean
   3277 
   3278 ---Delete file options
   3279 ---@class lsp.DeleteFileOptions
   3280 ---
   3281 ---Delete the content recursively if a folder is denoted.
   3282 ---@field recursive? boolean
   3283 ---
   3284 ---Ignore the operation if the file doesn't exist.
   3285 ---@field ignoreIfNotExists? boolean
   3286 
   3287 ---A pattern to describe in which file operation requests or notifications
   3288 ---the server is interested in receiving.
   3289 ---
   3290 ---@since 3.16.0
   3291 ---@class lsp.FileOperationPattern
   3292 ---
   3293 ---The glob pattern to match. Glob patterns can have the following syntax:
   3294 ---- `*` to match one or more characters in a path segment
   3295 ---- `?` to match on one character in a path segment
   3296 ---- `**` to match any number of path segments, including none
   3297 ---- `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
   3298 ---- `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
   3299 ---- `[!...]` 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`)
   3300 ---@field glob string
   3301 ---
   3302 ---Whether to match files or folders with this pattern.
   3303 ---
   3304 ---Matches both if undefined.
   3305 ---@field matches? lsp.FileOperationPatternKind
   3306 ---
   3307 ---Additional options used during matching.
   3308 ---@field options? lsp.FileOperationPatternOptions
   3309 
   3310 ---A full document diagnostic report for a workspace diagnostic result.
   3311 ---
   3312 ---@since 3.17.0
   3313 ---@class lsp.WorkspaceFullDocumentDiagnosticReport: lsp.FullDocumentDiagnosticReport
   3314 ---
   3315 ---The URI for which diagnostic information is reported.
   3316 ---@field uri lsp.DocumentUri
   3317 ---
   3318 ---The version number for which the diagnostics are reported.
   3319 ---If the document is not marked as open `null` can be provided.
   3320 ---@field version integer|lsp.null
   3321 
   3322 ---An unchanged document diagnostic report for a workspace diagnostic result.
   3323 ---
   3324 ---@since 3.17.0
   3325 ---@class lsp.WorkspaceUnchangedDocumentDiagnosticReport: lsp.UnchangedDocumentDiagnosticReport
   3326 ---
   3327 ---The URI for which diagnostic information is reported.
   3328 ---@field uri lsp.DocumentUri
   3329 ---
   3330 ---The version number for which the diagnostics are reported.
   3331 ---If the document is not marked as open `null` can be provided.
   3332 ---@field version integer|lsp.null
   3333 
   3334 ---A notebook cell.
   3335 ---
   3336 ---A cell's document URI must be unique across ALL notebook
   3337 ---cells and can therefore be used to uniquely identify a
   3338 ---notebook cell or the cell's text document.
   3339 ---
   3340 ---@since 3.17.0
   3341 ---@class lsp.NotebookCell
   3342 ---
   3343 ---The cell's kind
   3344 ---@field kind lsp.NotebookCellKind
   3345 ---
   3346 ---The URI of the cell's text document
   3347 ---content.
   3348 ---@field document lsp.DocumentUri
   3349 ---
   3350 ---Additional metadata stored with the cell.
   3351 ---
   3352 ---Note: should always be an object literal (e.g. LSPObject)
   3353 ---@field metadata? lsp.LSPObject
   3354 ---
   3355 ---Additional execution summary information
   3356 ---if supported by the client.
   3357 ---@field executionSummary? lsp.ExecutionSummary
   3358 
   3359 ---@since 3.18.0
   3360 ---@class lsp.NotebookDocumentFilterWithNotebook
   3361 ---
   3362 ---The notebook to be synced If a string
   3363 ---value is provided it matches against the
   3364 ---notebook type. '*' matches every notebook.
   3365 ---@field notebook string|lsp.NotebookDocumentFilter
   3366 ---
   3367 ---The cells of the matching notebook to be synced.
   3368 ---@field cells? lsp.NotebookCellLanguage[]
   3369 
   3370 ---@since 3.18.0
   3371 ---@class lsp.NotebookDocumentFilterWithCells
   3372 ---
   3373 ---The notebook to be synced If a string
   3374 ---value is provided it matches against the
   3375 ---notebook type. '*' matches every notebook.
   3376 ---@field notebook? string|lsp.NotebookDocumentFilter
   3377 ---
   3378 ---The cells of the matching notebook to be synced.
   3379 ---@field cells lsp.NotebookCellLanguage[]
   3380 
   3381 ---Cell changes to a notebook document.
   3382 ---
   3383 ---@since 3.18.0
   3384 ---@class lsp.NotebookDocumentCellChanges
   3385 ---
   3386 ---Changes to the cell structure to add or
   3387 ---remove cells.
   3388 ---@field structure? lsp.NotebookDocumentCellChangeStructure
   3389 ---
   3390 ---Changes to notebook cells properties like its
   3391 ---kind, execution summary or metadata.
   3392 ---@field data? lsp.NotebookCell[]
   3393 ---
   3394 ---Changes to the text content of notebook cells.
   3395 ---@field textContent? lsp.NotebookDocumentCellContentChanges[]
   3396 
   3397 ---Describes the currently selected completion item.
   3398 ---
   3399 ---@since 3.18.0
   3400 ---@proposed
   3401 ---@class lsp.SelectedCompletionInfo
   3402 ---
   3403 ---The range that will be replaced if this completion item is accepted.
   3404 ---@field range lsp.Range
   3405 ---
   3406 ---The text the range will be replaced with if this completion is accepted.
   3407 ---@field text string
   3408 
   3409 ---Information about the client
   3410 ---
   3411 ---@since 3.15.0
   3412 ---@since 3.18.0 ClientInfo type name added.
   3413 ---@class lsp.ClientInfo
   3414 ---
   3415 ---The name of the client as defined by the client.
   3416 ---@field name string
   3417 ---
   3418 ---The client's version as defined by the client.
   3419 ---@field version? string
   3420 
   3421 ---Defines the capabilities provided by the client.
   3422 ---@class lsp.ClientCapabilities
   3423 ---
   3424 ---Workspace specific client capabilities.
   3425 ---@field workspace? lsp.WorkspaceClientCapabilities
   3426 ---
   3427 ---Text document specific client capabilities.
   3428 ---@field textDocument? lsp.TextDocumentClientCapabilities
   3429 ---
   3430 ---Capabilities specific to the notebook document support.
   3431 ---
   3432 ---@since 3.17.0
   3433 ---@field notebookDocument? lsp.NotebookDocumentClientCapabilities
   3434 ---
   3435 ---Window specific client capabilities.
   3436 ---@field window? lsp.WindowClientCapabilities
   3437 ---
   3438 ---General client capabilities.
   3439 ---
   3440 ---@since 3.16.0
   3441 ---@field general? lsp.GeneralClientCapabilities
   3442 ---
   3443 ---Experimental client capabilities.
   3444 ---@field experimental? lsp.LSPAny
   3445 
   3446 ---@class lsp.TextDocumentSyncOptions
   3447 ---
   3448 ---Open and close notifications are sent to the server. If omitted open close notification should not
   3449 ---be sent.
   3450 ---@field openClose? boolean
   3451 ---
   3452 ---Change notifications are sent to the server. See TextDocumentSyncKind.None, TextDocumentSyncKind.Full
   3453 ---and TextDocumentSyncKind.Incremental. If omitted it defaults to TextDocumentSyncKind.None.
   3454 ---@field change? lsp.TextDocumentSyncKind
   3455 ---
   3456 ---If present will save notifications are sent to the server. If omitted the notification should not be
   3457 ---sent.
   3458 ---@field willSave? boolean
   3459 ---
   3460 ---If present will save wait until requests are sent to the server. If omitted the request should not be
   3461 ---sent.
   3462 ---@field willSaveWaitUntil? boolean
   3463 ---
   3464 ---If present save notifications are sent to the server. If omitted the notification should not be
   3465 ---sent.
   3466 ---@field save? boolean|lsp.SaveOptions
   3467 
   3468 ---Defines workspace specific capabilities of the server.
   3469 ---
   3470 ---@since 3.18.0
   3471 ---@class lsp.WorkspaceOptions
   3472 ---
   3473 ---The server supports workspace folder.
   3474 ---
   3475 ---@since 3.6.0
   3476 ---@field workspaceFolders? lsp.WorkspaceFoldersServerCapabilities
   3477 ---
   3478 ---The server is interested in notifications/requests for operations on files.
   3479 ---
   3480 ---@since 3.16.0
   3481 ---@field fileOperations? lsp.FileOperationOptions
   3482 ---
   3483 ---The server supports the `workspace/textDocumentContent` request.
   3484 ---
   3485 ---@since 3.18.0
   3486 ---@proposed
   3487 ---@field textDocumentContent? lsp.TextDocumentContentOptions|lsp.TextDocumentContentRegistrationOptions
   3488 
   3489 ---@since 3.18.0
   3490 ---@class lsp.TextDocumentContentChangePartial
   3491 ---
   3492 ---The range of the document that changed.
   3493 ---@field range lsp.Range
   3494 ---
   3495 ---The optional length of the range that got replaced.
   3496 ---
   3497 ---@deprecated use range instead.
   3498 ---@field rangeLength? uinteger
   3499 ---
   3500 ---The new text for the provided range.
   3501 ---@field text string
   3502 
   3503 ---@since 3.18.0
   3504 ---@class lsp.TextDocumentContentChangeWholeDocument
   3505 ---
   3506 ---The new text of the whole document.
   3507 ---@field text string
   3508 
   3509 ---Structure to capture a description for an error code.
   3510 ---
   3511 ---@since 3.16.0
   3512 ---@class lsp.CodeDescription
   3513 ---
   3514 ---An URI to open with more information about the diagnostic error.
   3515 ---@field href lsp.URI
   3516 
   3517 ---Represents a related message and source code location for a diagnostic. This should be
   3518 ---used to point to code locations that cause or related to a diagnostics, e.g when duplicating
   3519 ---a symbol in a scope.
   3520 ---@class lsp.DiagnosticRelatedInformation
   3521 ---
   3522 ---The location of this related diagnostic information.
   3523 ---@field location lsp.Location
   3524 ---
   3525 ---The message of this related diagnostic information.
   3526 ---@field message string
   3527 
   3528 ---Edit range variant that includes ranges for insert and replace operations.
   3529 ---
   3530 ---@since 3.18.0
   3531 ---@class lsp.EditRangeWithInsertReplace
   3532 ---
   3533 ---@field insert lsp.Range
   3534 ---
   3535 ---@field replace lsp.Range
   3536 
   3537 ---@since 3.18.0
   3538 ---@class lsp.ServerCompletionItemOptions
   3539 ---
   3540 ---The server has support for completion item label
   3541 ---details (see also `CompletionItemLabelDetails`) when
   3542 ---receiving a completion item in a resolve call.
   3543 ---
   3544 ---@since 3.17.0
   3545 ---@field labelDetailsSupport? boolean
   3546 
   3547 ---@since 3.18.0
   3548 ---@deprecated use MarkupContent instead.
   3549 ---@class lsp.MarkedStringWithLanguage
   3550 ---
   3551 ---@field language string
   3552 ---
   3553 ---@field value string
   3554 
   3555 ---Represents a parameter of a callable-signature. A parameter can
   3556 ---have a label and a doc-comment.
   3557 ---@class lsp.ParameterInformation
   3558 ---
   3559 ---The label of this parameter information.
   3560 ---
   3561 ---Either a string or an inclusive start and exclusive end offsets within its containing
   3562 ---signature label. (see SignatureInformation.label). The offsets are based on a UTF-16
   3563 ---string representation as `Position` and `Range` does.
   3564 ---
   3565 ---To avoid ambiguities a server should use the [start, end] offset value instead of using
   3566 ---a substring. Whether a client support this is controlled via `labelOffsetSupport` client
   3567 ---capability.
   3568 ---
   3569 ---*Note*: a label of type string should be a substring of its containing signature label.
   3570 ---Its intended use case is to highlight the parameter label part in the `SignatureInformation.label`.
   3571 ---@field label string|[uinteger, uinteger]
   3572 ---
   3573 ---The human-readable doc-comment of this parameter. Will be shown
   3574 ---in the UI but can be omitted.
   3575 ---@field documentation? string|lsp.MarkupContent
   3576 
   3577 ---Documentation for a class of code actions.
   3578 ---
   3579 ---@since 3.18.0
   3580 ---@proposed
   3581 ---@class lsp.CodeActionKindDocumentation
   3582 ---
   3583 ---The kind of the code action being documented.
   3584 ---
   3585 ---If the kind is generic, such as `CodeActionKind.Refactor`, the documentation will be shown whenever any
   3586 ---refactorings are returned. If the kind if more specific, such as `CodeActionKind.RefactorExtract`, the
   3587 ---documentation will only be shown when extract refactoring code actions are returned.
   3588 ---@field kind lsp.CodeActionKind
   3589 ---
   3590 ---Command that is ued to display the documentation to the user.
   3591 ---
   3592 ---The title of this documentation code action is taken from {@linkcode Command.title}
   3593 ---@field command lsp.Command
   3594 
   3595 ---A notebook cell text document filter denotes a cell text
   3596 ---document by different properties.
   3597 ---
   3598 ---@since 3.17.0
   3599 ---@class lsp.NotebookCellTextDocumentFilter
   3600 ---
   3601 ---A filter that matches against the notebook
   3602 ---containing the notebook cell. If a string
   3603 ---value is provided it matches against the
   3604 ---notebook type. '*' matches every notebook.
   3605 ---@field notebook string|lsp.NotebookDocumentFilter
   3606 ---
   3607 ---A language id like `python`.
   3608 ---
   3609 ---Will be matched against the language id of the
   3610 ---notebook cell document. '*' matches every language.
   3611 ---@field language? string
   3612 
   3613 ---Matching options for the file operation pattern.
   3614 ---
   3615 ---@since 3.16.0
   3616 ---@class lsp.FileOperationPatternOptions
   3617 ---
   3618 ---The pattern should be matched ignoring casing.
   3619 ---@field ignoreCase? boolean
   3620 
   3621 ---@class lsp.ExecutionSummary
   3622 ---
   3623 ---A strict monotonically increasing value
   3624 ---indicating the execution order of a cell
   3625 ---inside a notebook.
   3626 ---@field executionOrder uinteger
   3627 ---
   3628 ---Whether the execution was successful or
   3629 ---not if known by the client.
   3630 ---@field success? boolean
   3631 
   3632 ---@since 3.18.0
   3633 ---@class lsp.NotebookCellLanguage
   3634 ---
   3635 ---@field language string
   3636 
   3637 ---Structural changes to cells in a notebook document.
   3638 ---
   3639 ---@since 3.18.0
   3640 ---@class lsp.NotebookDocumentCellChangeStructure
   3641 ---
   3642 ---The change to the cell array.
   3643 ---@field array lsp.NotebookCellArrayChange
   3644 ---
   3645 ---Additional opened cell text documents.
   3646 ---@field didOpen? lsp.TextDocumentItem[]
   3647 ---
   3648 ---Additional closed cell text documents.
   3649 ---@field didClose? lsp.TextDocumentIdentifier[]
   3650 
   3651 ---Content changes to a cell in a notebook document.
   3652 ---
   3653 ---@since 3.18.0
   3654 ---@class lsp.NotebookDocumentCellContentChanges
   3655 ---
   3656 ---@field document lsp.VersionedTextDocumentIdentifier
   3657 ---
   3658 ---@field changes lsp.TextDocumentContentChangeEvent[]
   3659 
   3660 ---Workspace specific client capabilities.
   3661 ---@class lsp.WorkspaceClientCapabilities
   3662 ---
   3663 ---The client supports applying batch edits
   3664 ---to the workspace by supporting the request
   3665 ---'workspace/applyEdit'
   3666 ---@field applyEdit? boolean
   3667 ---
   3668 ---Capabilities specific to `WorkspaceEdit`s.
   3669 ---@field workspaceEdit? lsp.WorkspaceEditClientCapabilities
   3670 ---
   3671 ---Capabilities specific to the `workspace/didChangeConfiguration` notification.
   3672 ---@field didChangeConfiguration? lsp.DidChangeConfigurationClientCapabilities
   3673 ---
   3674 ---Capabilities specific to the `workspace/didChangeWatchedFiles` notification.
   3675 ---@field didChangeWatchedFiles? lsp.DidChangeWatchedFilesClientCapabilities
   3676 ---
   3677 ---Capabilities specific to the `workspace/symbol` request.
   3678 ---@field symbol? lsp.WorkspaceSymbolClientCapabilities
   3679 ---
   3680 ---Capabilities specific to the `workspace/executeCommand` request.
   3681 ---@field executeCommand? lsp.ExecuteCommandClientCapabilities
   3682 ---
   3683 ---The client has support for workspace folders.
   3684 ---
   3685 ---@since 3.6.0
   3686 ---@field workspaceFolders? boolean
   3687 ---
   3688 ---The client supports `workspace/configuration` requests.
   3689 ---
   3690 ---@since 3.6.0
   3691 ---@field configuration? boolean
   3692 ---
   3693 ---Capabilities specific to the semantic token requests scoped to the
   3694 ---workspace.
   3695 ---
   3696 ---@since 3.16.0.
   3697 ---@field semanticTokens? lsp.SemanticTokensWorkspaceClientCapabilities
   3698 ---
   3699 ---Capabilities specific to the code lens requests scoped to the
   3700 ---workspace.
   3701 ---
   3702 ---@since 3.16.0.
   3703 ---@field codeLens? lsp.CodeLensWorkspaceClientCapabilities
   3704 ---
   3705 ---The client has support for file notifications/requests for user operations on files.
   3706 ---
   3707 ---Since 3.16.0
   3708 ---@field fileOperations? lsp.FileOperationClientCapabilities
   3709 ---
   3710 ---Capabilities specific to the inline values requests scoped to the
   3711 ---workspace.
   3712 ---
   3713 ---@since 3.17.0.
   3714 ---@field inlineValue? lsp.InlineValueWorkspaceClientCapabilities
   3715 ---
   3716 ---Capabilities specific to the inlay hint requests scoped to the
   3717 ---workspace.
   3718 ---
   3719 ---@since 3.17.0.
   3720 ---@field inlayHint? lsp.InlayHintWorkspaceClientCapabilities
   3721 ---
   3722 ---Capabilities specific to the diagnostic requests scoped to the
   3723 ---workspace.
   3724 ---
   3725 ---@since 3.17.0.
   3726 ---@field diagnostics? lsp.DiagnosticWorkspaceClientCapabilities
   3727 ---
   3728 ---Capabilities specific to the folding range requests scoped to the workspace.
   3729 ---
   3730 ---@since 3.18.0
   3731 ---@proposed
   3732 ---@field foldingRange? lsp.FoldingRangeWorkspaceClientCapabilities
   3733 ---
   3734 ---Capabilities specific to the `workspace/textDocumentContent` request.
   3735 ---
   3736 ---@since 3.18.0
   3737 ---@proposed
   3738 ---@field textDocumentContent? lsp.TextDocumentContentClientCapabilities
   3739 
   3740 ---Text document specific client capabilities.
   3741 ---@class lsp.TextDocumentClientCapabilities
   3742 ---
   3743 ---Defines which synchronization capabilities the client supports.
   3744 ---@field synchronization? lsp.TextDocumentSyncClientCapabilities
   3745 ---
   3746 ---Defines which filters the client supports.
   3747 ---
   3748 ---@since 3.18.0
   3749 ---@field filters? lsp.TextDocumentFilterClientCapabilities
   3750 ---
   3751 ---Capabilities specific to the `textDocument/completion` request.
   3752 ---@field completion? lsp.CompletionClientCapabilities
   3753 ---
   3754 ---Capabilities specific to the `textDocument/hover` request.
   3755 ---@field hover? lsp.HoverClientCapabilities
   3756 ---
   3757 ---Capabilities specific to the `textDocument/signatureHelp` request.
   3758 ---@field signatureHelp? lsp.SignatureHelpClientCapabilities
   3759 ---
   3760 ---Capabilities specific to the `textDocument/declaration` request.
   3761 ---
   3762 ---@since 3.14.0
   3763 ---@field declaration? lsp.DeclarationClientCapabilities
   3764 ---
   3765 ---Capabilities specific to the `textDocument/definition` request.
   3766 ---@field definition? lsp.DefinitionClientCapabilities
   3767 ---
   3768 ---Capabilities specific to the `textDocument/typeDefinition` request.
   3769 ---
   3770 ---@since 3.6.0
   3771 ---@field typeDefinition? lsp.TypeDefinitionClientCapabilities
   3772 ---
   3773 ---Capabilities specific to the `textDocument/implementation` request.
   3774 ---
   3775 ---@since 3.6.0
   3776 ---@field implementation? lsp.ImplementationClientCapabilities
   3777 ---
   3778 ---Capabilities specific to the `textDocument/references` request.
   3779 ---@field references? lsp.ReferenceClientCapabilities
   3780 ---
   3781 ---Capabilities specific to the `textDocument/documentHighlight` request.
   3782 ---@field documentHighlight? lsp.DocumentHighlightClientCapabilities
   3783 ---
   3784 ---Capabilities specific to the `textDocument/documentSymbol` request.
   3785 ---@field documentSymbol? lsp.DocumentSymbolClientCapabilities
   3786 ---
   3787 ---Capabilities specific to the `textDocument/codeAction` request.
   3788 ---@field codeAction? lsp.CodeActionClientCapabilities
   3789 ---
   3790 ---Capabilities specific to the `textDocument/codeLens` request.
   3791 ---@field codeLens? lsp.CodeLensClientCapabilities
   3792 ---
   3793 ---Capabilities specific to the `textDocument/documentLink` request.
   3794 ---@field documentLink? lsp.DocumentLinkClientCapabilities
   3795 ---
   3796 ---Capabilities specific to the `textDocument/documentColor` and the
   3797 ---`textDocument/colorPresentation` request.
   3798 ---
   3799 ---@since 3.6.0
   3800 ---@field colorProvider? lsp.DocumentColorClientCapabilities
   3801 ---
   3802 ---Capabilities specific to the `textDocument/formatting` request.
   3803 ---@field formatting? lsp.DocumentFormattingClientCapabilities
   3804 ---
   3805 ---Capabilities specific to the `textDocument/rangeFormatting` request.
   3806 ---@field rangeFormatting? lsp.DocumentRangeFormattingClientCapabilities
   3807 ---
   3808 ---Capabilities specific to the `textDocument/onTypeFormatting` request.
   3809 ---@field onTypeFormatting? lsp.DocumentOnTypeFormattingClientCapabilities
   3810 ---
   3811 ---Capabilities specific to the `textDocument/rename` request.
   3812 ---@field rename? lsp.RenameClientCapabilities
   3813 ---
   3814 ---Capabilities specific to the `textDocument/foldingRange` request.
   3815 ---
   3816 ---@since 3.10.0
   3817 ---@field foldingRange? lsp.FoldingRangeClientCapabilities
   3818 ---
   3819 ---Capabilities specific to the `textDocument/selectionRange` request.
   3820 ---
   3821 ---@since 3.15.0
   3822 ---@field selectionRange? lsp.SelectionRangeClientCapabilities
   3823 ---
   3824 ---Capabilities specific to the `textDocument/publishDiagnostics` notification.
   3825 ---@field publishDiagnostics? lsp.PublishDiagnosticsClientCapabilities
   3826 ---
   3827 ---Capabilities specific to the various call hierarchy requests.
   3828 ---
   3829 ---@since 3.16.0
   3830 ---@field callHierarchy? lsp.CallHierarchyClientCapabilities
   3831 ---
   3832 ---Capabilities specific to the various semantic token request.
   3833 ---
   3834 ---@since 3.16.0
   3835 ---@field semanticTokens? lsp.SemanticTokensClientCapabilities
   3836 ---
   3837 ---Capabilities specific to the `textDocument/linkedEditingRange` request.
   3838 ---
   3839 ---@since 3.16.0
   3840 ---@field linkedEditingRange? lsp.LinkedEditingRangeClientCapabilities
   3841 ---
   3842 ---Client capabilities specific to the `textDocument/moniker` request.
   3843 ---
   3844 ---@since 3.16.0
   3845 ---@field moniker? lsp.MonikerClientCapabilities
   3846 ---
   3847 ---Capabilities specific to the various type hierarchy requests.
   3848 ---
   3849 ---@since 3.17.0
   3850 ---@field typeHierarchy? lsp.TypeHierarchyClientCapabilities
   3851 ---
   3852 ---Capabilities specific to the `textDocument/inlineValue` request.
   3853 ---
   3854 ---@since 3.17.0
   3855 ---@field inlineValue? lsp.InlineValueClientCapabilities
   3856 ---
   3857 ---Capabilities specific to the `textDocument/inlayHint` request.
   3858 ---
   3859 ---@since 3.17.0
   3860 ---@field inlayHint? lsp.InlayHintClientCapabilities
   3861 ---
   3862 ---Capabilities specific to the diagnostic pull model.
   3863 ---
   3864 ---@since 3.17.0
   3865 ---@field diagnostic? lsp.DiagnosticClientCapabilities
   3866 ---
   3867 ---Client capabilities specific to inline completions.
   3868 ---
   3869 ---@since 3.18.0
   3870 ---@proposed
   3871 ---@field inlineCompletion? lsp.InlineCompletionClientCapabilities
   3872 
   3873 ---Capabilities specific to the notebook document support.
   3874 ---
   3875 ---@since 3.17.0
   3876 ---@class lsp.NotebookDocumentClientCapabilities
   3877 ---
   3878 ---Capabilities specific to notebook document synchronization
   3879 ---
   3880 ---@since 3.17.0
   3881 ---@field synchronization lsp.NotebookDocumentSyncClientCapabilities
   3882 
   3883 ---@class lsp.WindowClientCapabilities
   3884 ---
   3885 ---It indicates whether the client supports server initiated
   3886 ---progress using the `window/workDoneProgress/create` request.
   3887 ---
   3888 ---The capability also controls Whether client supports handling
   3889 ---of progress notifications. If set servers are allowed to report a
   3890 ---`workDoneProgress` property in the request specific server
   3891 ---capabilities.
   3892 ---
   3893 ---@since 3.15.0
   3894 ---@field workDoneProgress? boolean
   3895 ---
   3896 ---Capabilities specific to the showMessage request.
   3897 ---
   3898 ---@since 3.16.0
   3899 ---@field showMessage? lsp.ShowMessageRequestClientCapabilities
   3900 ---
   3901 ---Capabilities specific to the showDocument request.
   3902 ---
   3903 ---@since 3.16.0
   3904 ---@field showDocument? lsp.ShowDocumentClientCapabilities
   3905 
   3906 ---General client capabilities.
   3907 ---
   3908 ---@since 3.16.0
   3909 ---@class lsp.GeneralClientCapabilities
   3910 ---
   3911 ---Client capability that signals how the client
   3912 ---handles stale requests (e.g. a request
   3913 ---for which the client will not process the response
   3914 ---anymore since the information is outdated).
   3915 ---
   3916 ---@since 3.17.0
   3917 ---@field staleRequestSupport? lsp.StaleRequestSupportOptions
   3918 ---
   3919 ---Client capabilities specific to regular expressions.
   3920 ---
   3921 ---@since 3.16.0
   3922 ---@field regularExpressions? lsp.RegularExpressionsClientCapabilities
   3923 ---
   3924 ---Client capabilities specific to the client's markdown parser.
   3925 ---
   3926 ---@since 3.16.0
   3927 ---@field markdown? lsp.MarkdownClientCapabilities
   3928 ---
   3929 ---The position encodings supported by the client. Client and server
   3930 ---have to agree on the same position encoding to ensure that offsets
   3931 ---(e.g. character position in a line) are interpreted the same on both
   3932 ---sides.
   3933 ---
   3934 ---To keep the protocol backwards compatible the following applies: if
   3935 ---the value 'utf-16' is missing from the array of position encodings
   3936 ---servers can assume that the client supports UTF-16. UTF-16 is
   3937 ---therefore a mandatory encoding.
   3938 ---
   3939 ---If omitted it defaults to ['utf-16'].
   3940 ---
   3941 ---Implementation considerations: since the conversion from one encoding
   3942 ---into another requires the content of the file / line the conversion
   3943 ---is best done where the file is read which is usually on the server
   3944 ---side.
   3945 ---
   3946 ---@since 3.17.0
   3947 ---@field positionEncodings? lsp.PositionEncodingKind[]
   3948 
   3949 ---@class lsp.WorkspaceFoldersServerCapabilities
   3950 ---
   3951 ---The server has support for workspace folders
   3952 ---@field supported? boolean
   3953 ---
   3954 ---Whether the server wants to receive workspace folder
   3955 ---change notifications.
   3956 ---
   3957 ---If a string is provided the string is treated as an ID
   3958 ---under which the notification is registered on the client
   3959 ---side. The ID can be used to unregister for these events
   3960 ---using the `client/unregisterCapability` request.
   3961 ---@field changeNotifications? string|boolean
   3962 
   3963 ---Options for notifications/requests for user operations on files.
   3964 ---
   3965 ---@since 3.16.0
   3966 ---@class lsp.FileOperationOptions
   3967 ---
   3968 ---The server is interested in receiving didCreateFiles notifications.
   3969 ---@field didCreate? lsp.FileOperationRegistrationOptions
   3970 ---
   3971 ---The server is interested in receiving willCreateFiles requests.
   3972 ---@field willCreate? lsp.FileOperationRegistrationOptions
   3973 ---
   3974 ---The server is interested in receiving didRenameFiles notifications.
   3975 ---@field didRename? lsp.FileOperationRegistrationOptions
   3976 ---
   3977 ---The server is interested in receiving willRenameFiles requests.
   3978 ---@field willRename? lsp.FileOperationRegistrationOptions
   3979 ---
   3980 ---The server is interested in receiving didDeleteFiles file notifications.
   3981 ---@field didDelete? lsp.FileOperationRegistrationOptions
   3982 ---
   3983 ---The server is interested in receiving willDeleteFiles file requests.
   3984 ---@field willDelete? lsp.FileOperationRegistrationOptions
   3985 
   3986 ---A relative pattern is a helper to construct glob patterns that are matched
   3987 ---relatively to a base URI. The common value for a `baseUri` is a workspace
   3988 ---folder root, but it can be another absolute URI as well.
   3989 ---
   3990 ---@since 3.17.0
   3991 ---@class lsp.RelativePattern
   3992 ---
   3993 ---A workspace folder or a base URI to which this pattern will be matched
   3994 ---against relatively.
   3995 ---@field baseUri lsp.WorkspaceFolder|lsp.URI
   3996 ---
   3997 ---The actual glob pattern;
   3998 ---@field pattern lsp.Pattern
   3999 
   4000 ---A document filter where `language` is required field.
   4001 ---
   4002 ---@since 3.18.0
   4003 ---@class lsp.TextDocumentFilterLanguage
   4004 ---
   4005 ---A language id, like `typescript`.
   4006 ---@field language string
   4007 ---
   4008 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4009 ---@field scheme? string
   4010 ---
   4011 ---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
   4012 ---
   4013 ---@since 3.18.0 - support for relative patterns. Whether clients support
   4014 ---relative patterns depends on the client capability
   4015 ---`textDocuments.filters.relativePatternSupport`.
   4016 ---@field pattern? lsp.GlobPattern
   4017 
   4018 ---A document filter where `scheme` is required field.
   4019 ---
   4020 ---@since 3.18.0
   4021 ---@class lsp.TextDocumentFilterScheme
   4022 ---
   4023 ---A language id, like `typescript`.
   4024 ---@field language? string
   4025 ---
   4026 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4027 ---@field scheme string
   4028 ---
   4029 ---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
   4030 ---
   4031 ---@since 3.18.0 - support for relative patterns. Whether clients support
   4032 ---relative patterns depends on the client capability
   4033 ---`textDocuments.filters.relativePatternSupport`.
   4034 ---@field pattern? lsp.GlobPattern
   4035 
   4036 ---A document filter where `pattern` is required field.
   4037 ---
   4038 ---@since 3.18.0
   4039 ---@class lsp.TextDocumentFilterPattern
   4040 ---
   4041 ---A language id, like `typescript`.
   4042 ---@field language? string
   4043 ---
   4044 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4045 ---@field scheme? string
   4046 ---
   4047 ---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
   4048 ---
   4049 ---@since 3.18.0 - support for relative patterns. Whether clients support
   4050 ---relative patterns depends on the client capability
   4051 ---`textDocuments.filters.relativePatternSupport`.
   4052 ---@field pattern lsp.GlobPattern
   4053 
   4054 ---A notebook document filter where `notebookType` is required field.
   4055 ---
   4056 ---@since 3.18.0
   4057 ---@class lsp.NotebookDocumentFilterNotebookType
   4058 ---
   4059 ---The type of the enclosing notebook.
   4060 ---@field notebookType string
   4061 ---
   4062 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4063 ---@field scheme? string
   4064 ---
   4065 ---A glob pattern.
   4066 ---@field pattern? lsp.GlobPattern
   4067 
   4068 ---A notebook document filter where `scheme` is required field.
   4069 ---
   4070 ---@since 3.18.0
   4071 ---@class lsp.NotebookDocumentFilterScheme
   4072 ---
   4073 ---The type of the enclosing notebook.
   4074 ---@field notebookType? string
   4075 ---
   4076 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4077 ---@field scheme string
   4078 ---
   4079 ---A glob pattern.
   4080 ---@field pattern? lsp.GlobPattern
   4081 
   4082 ---A notebook document filter where `pattern` is required field.
   4083 ---
   4084 ---@since 3.18.0
   4085 ---@class lsp.NotebookDocumentFilterPattern
   4086 ---
   4087 ---The type of the enclosing notebook.
   4088 ---@field notebookType? string
   4089 ---
   4090 ---A Uri {@link Uri.scheme scheme}, like `file` or `untitled`.
   4091 ---@field scheme? string
   4092 ---
   4093 ---A glob pattern.
   4094 ---@field pattern lsp.GlobPattern
   4095 
   4096 ---A change describing how to move a `NotebookCell`
   4097 ---array from state S to S'.
   4098 ---
   4099 ---@since 3.17.0
   4100 ---@class lsp.NotebookCellArrayChange
   4101 ---
   4102 ---The start oftest of the cell that changed.
   4103 ---@field start uinteger
   4104 ---
   4105 ---The deleted cells
   4106 ---@field deleteCount uinteger
   4107 ---
   4108 ---The new cells, if any
   4109 ---@field cells? lsp.NotebookCell[]
   4110 
   4111 ---@class lsp.WorkspaceEditClientCapabilities
   4112 ---
   4113 ---The client supports versioned document changes in `WorkspaceEdit`s
   4114 ---@field documentChanges? boolean
   4115 ---
   4116 ---The resource operations the client supports. Clients should at least
   4117 ---support 'create', 'rename' and 'delete' files and folders.
   4118 ---
   4119 ---@since 3.13.0
   4120 ---@field resourceOperations? lsp.ResourceOperationKind[]
   4121 ---
   4122 ---The failure handling strategy of a client if applying the workspace edit
   4123 ---fails.
   4124 ---
   4125 ---@since 3.13.0
   4126 ---@field failureHandling? lsp.FailureHandlingKind
   4127 ---
   4128 ---Whether the client normalizes line endings to the client specific
   4129 ---setting.
   4130 ---If set to `true` the client will normalize line ending characters
   4131 ---in a workspace edit to the client-specified new line
   4132 ---character.
   4133 ---
   4134 ---@since 3.16.0
   4135 ---@field normalizesLineEndings? boolean
   4136 ---
   4137 ---Whether the client in general supports change annotations on text edits,
   4138 ---create file, rename file and delete file changes.
   4139 ---
   4140 ---@since 3.16.0
   4141 ---@field changeAnnotationSupport? lsp.ChangeAnnotationsSupportOptions
   4142 ---
   4143 ---Whether the client supports `WorkspaceEditMetadata` in `WorkspaceEdit`s.
   4144 ---
   4145 ---@since 3.18.0
   4146 ---@proposed
   4147 ---@field metadataSupport? boolean
   4148 ---
   4149 ---Whether the client supports snippets as text edits.
   4150 ---
   4151 ---@since 3.18.0
   4152 ---@proposed
   4153 ---@field snippetEditSupport? boolean
   4154 
   4155 ---@class lsp.DidChangeConfigurationClientCapabilities
   4156 ---
   4157 ---Did change configuration notification supports dynamic registration.
   4158 ---@field dynamicRegistration? boolean
   4159 
   4160 ---@class lsp.DidChangeWatchedFilesClientCapabilities
   4161 ---
   4162 ---Did change watched files notification supports dynamic registration. Please note
   4163 ---that the current protocol doesn't support static configuration for file changes
   4164 ---from the server side.
   4165 ---@field dynamicRegistration? boolean
   4166 ---
   4167 ---Whether the client has support for {@link  RelativePattern relative pattern}
   4168 ---or not.
   4169 ---
   4170 ---@since 3.17.0
   4171 ---@field relativePatternSupport? boolean
   4172 
   4173 ---Client capabilities for a {@link WorkspaceSymbolRequest}.
   4174 ---@class lsp.WorkspaceSymbolClientCapabilities
   4175 ---
   4176 ---Symbol request supports dynamic registration.
   4177 ---@field dynamicRegistration? boolean
   4178 ---
   4179 ---Specific capabilities for the `SymbolKind` in the `workspace/symbol` request.
   4180 ---@field symbolKind? lsp.ClientSymbolKindOptions
   4181 ---
   4182 ---The client supports tags on `SymbolInformation`.
   4183 ---Clients supporting tags have to handle unknown tags gracefully.
   4184 ---
   4185 ---@since 3.16.0
   4186 ---@field tagSupport? lsp.ClientSymbolTagOptions
   4187 ---
   4188 ---The client support partial workspace symbols. The client will send the
   4189 ---request `workspaceSymbol/resolve` to the server to resolve additional
   4190 ---properties.
   4191 ---
   4192 ---@since 3.17.0
   4193 ---@field resolveSupport? lsp.ClientSymbolResolveOptions
   4194 
   4195 ---The client capabilities of a {@link ExecuteCommandRequest}.
   4196 ---@class lsp.ExecuteCommandClientCapabilities
   4197 ---
   4198 ---Execute command supports dynamic registration.
   4199 ---@field dynamicRegistration? boolean
   4200 
   4201 ---@since 3.16.0
   4202 ---@class lsp.SemanticTokensWorkspaceClientCapabilities
   4203 ---
   4204 ---Whether the client implementation supports a refresh request sent from
   4205 ---the server to the client.
   4206 ---
   4207 ---Note that this event is global and will force the client to refresh all
   4208 ---semantic tokens currently shown. It should be used with absolute care
   4209 ---and is useful for situation where a server for example detects a project
   4210 ---wide change that requires such a calculation.
   4211 ---@field refreshSupport? boolean
   4212 
   4213 ---@since 3.16.0
   4214 ---@class lsp.CodeLensWorkspaceClientCapabilities
   4215 ---
   4216 ---Whether the client implementation supports a refresh request sent from the
   4217 ---server to the client.
   4218 ---
   4219 ---Note that this event is global and will force the client to refresh all
   4220 ---code lenses currently shown. It should be used with absolute care and is
   4221 ---useful for situation where a server for example detect a project wide
   4222 ---change that requires such a calculation.
   4223 ---@field refreshSupport? boolean
   4224 
   4225 ---Capabilities relating to events from file operations by the user in the client.
   4226 ---
   4227 ---These events do not come from the file system, they come from user operations
   4228 ---like renaming a file in the UI.
   4229 ---
   4230 ---@since 3.16.0
   4231 ---@class lsp.FileOperationClientCapabilities
   4232 ---
   4233 ---Whether the client supports dynamic registration for file requests/notifications.
   4234 ---@field dynamicRegistration? boolean
   4235 ---
   4236 ---The client has support for sending didCreateFiles notifications.
   4237 ---@field didCreate? boolean
   4238 ---
   4239 ---The client has support for sending willCreateFiles requests.
   4240 ---@field willCreate? boolean
   4241 ---
   4242 ---The client has support for sending didRenameFiles notifications.
   4243 ---@field didRename? boolean
   4244 ---
   4245 ---The client has support for sending willRenameFiles requests.
   4246 ---@field willRename? boolean
   4247 ---
   4248 ---The client has support for sending didDeleteFiles notifications.
   4249 ---@field didDelete? boolean
   4250 ---
   4251 ---The client has support for sending willDeleteFiles requests.
   4252 ---@field willDelete? boolean
   4253 
   4254 ---Client workspace capabilities specific to inline values.
   4255 ---
   4256 ---@since 3.17.0
   4257 ---@class lsp.InlineValueWorkspaceClientCapabilities
   4258 ---
   4259 ---Whether the client implementation supports a refresh request sent from the
   4260 ---server to the client.
   4261 ---
   4262 ---Note that this event is global and will force the client to refresh all
   4263 ---inline values currently shown. It should be used with absolute care and is
   4264 ---useful for situation where a server for example detects a project wide
   4265 ---change that requires such a calculation.
   4266 ---@field refreshSupport? boolean
   4267 
   4268 ---Client workspace capabilities specific to inlay hints.
   4269 ---
   4270 ---@since 3.17.0
   4271 ---@class lsp.InlayHintWorkspaceClientCapabilities
   4272 ---
   4273 ---Whether the client implementation supports a refresh request sent from
   4274 ---the server to the client.
   4275 ---
   4276 ---Note that this event is global and will force the client to refresh all
   4277 ---inlay hints currently shown. It should be used with absolute care and
   4278 ---is useful for situation where a server for example detects a project wide
   4279 ---change that requires such a calculation.
   4280 ---@field refreshSupport? boolean
   4281 
   4282 ---Workspace client capabilities specific to diagnostic pull requests.
   4283 ---
   4284 ---@since 3.17.0
   4285 ---@class lsp.DiagnosticWorkspaceClientCapabilities
   4286 ---
   4287 ---Whether the client implementation supports a refresh request sent from
   4288 ---the server to the client.
   4289 ---
   4290 ---Note that this event is global and will force the client to refresh all
   4291 ---pulled diagnostics currently shown. It should be used with absolute care and
   4292 ---is useful for situation where a server for example detects a project wide
   4293 ---change that requires such a calculation.
   4294 ---@field refreshSupport? boolean
   4295 
   4296 ---Client workspace capabilities specific to folding ranges
   4297 ---
   4298 ---@since 3.18.0
   4299 ---@proposed
   4300 ---@class lsp.FoldingRangeWorkspaceClientCapabilities
   4301 ---
   4302 ---Whether the client implementation supports a refresh request sent from the
   4303 ---server to the client.
   4304 ---
   4305 ---Note that this event is global and will force the client to refresh all
   4306 ---folding ranges currently shown. It should be used with absolute care and is
   4307 ---useful for situation where a server for example detects a project wide
   4308 ---change that requires such a calculation.
   4309 ---
   4310 ---@since 3.18.0
   4311 ---@proposed
   4312 ---@field refreshSupport? boolean
   4313 
   4314 ---Client capabilities for a text document content provider.
   4315 ---
   4316 ---@since 3.18.0
   4317 ---@proposed
   4318 ---@class lsp.TextDocumentContentClientCapabilities
   4319 ---
   4320 ---Text document content provider supports dynamic registration.
   4321 ---@field dynamicRegistration? boolean
   4322 
   4323 ---@class lsp.TextDocumentSyncClientCapabilities
   4324 ---
   4325 ---Whether text document synchronization supports dynamic registration.
   4326 ---@field dynamicRegistration? boolean
   4327 ---
   4328 ---The client supports sending will save notifications.
   4329 ---@field willSave? boolean
   4330 ---
   4331 ---The client supports sending a will save request and
   4332 ---waits for a response providing text edits which will
   4333 ---be applied to the document before it is saved.
   4334 ---@field willSaveWaitUntil? boolean
   4335 ---
   4336 ---The client supports did save notifications.
   4337 ---@field didSave? boolean
   4338 
   4339 ---@class lsp.TextDocumentFilterClientCapabilities
   4340 ---
   4341 ---The client supports Relative Patterns.
   4342 ---
   4343 ---@since 3.18.0
   4344 ---@field relativePatternSupport? boolean
   4345 
   4346 ---Completion client capabilities
   4347 ---@class lsp.CompletionClientCapabilities
   4348 ---
   4349 ---Whether completion supports dynamic registration.
   4350 ---@field dynamicRegistration? boolean
   4351 ---
   4352 ---The client supports the following `CompletionItem` specific
   4353 ---capabilities.
   4354 ---@field completionItem? lsp.ClientCompletionItemOptions
   4355 ---
   4356 ---@field completionItemKind? lsp.ClientCompletionItemOptionsKind
   4357 ---
   4358 ---Defines how the client handles whitespace and indentation
   4359 ---when accepting a completion item that uses multi line
   4360 ---text in either `insertText` or `textEdit`.
   4361 ---
   4362 ---@since 3.17.0
   4363 ---@field insertTextMode? lsp.InsertTextMode
   4364 ---
   4365 ---The client supports to send additional context information for a
   4366 ---`textDocument/completion` request.
   4367 ---@field contextSupport? boolean
   4368 ---
   4369 ---The client supports the following `CompletionList` specific
   4370 ---capabilities.
   4371 ---
   4372 ---@since 3.17.0
   4373 ---@field completionList? lsp.CompletionListCapabilities
   4374 
   4375 ---@class lsp.HoverClientCapabilities
   4376 ---
   4377 ---Whether hover supports dynamic registration.
   4378 ---@field dynamicRegistration? boolean
   4379 ---
   4380 ---Client supports the following content formats for the content
   4381 ---property. The order describes the preferred format of the client.
   4382 ---@field contentFormat? lsp.MarkupKind[]
   4383 
   4384 ---Client Capabilities for a {@link SignatureHelpRequest}.
   4385 ---@class lsp.SignatureHelpClientCapabilities
   4386 ---
   4387 ---Whether signature help supports dynamic registration.
   4388 ---@field dynamicRegistration? boolean
   4389 ---
   4390 ---The client supports the following `SignatureInformation`
   4391 ---specific properties.
   4392 ---@field signatureInformation? lsp.ClientSignatureInformationOptions
   4393 ---
   4394 ---The client supports to send additional context information for a
   4395 ---`textDocument/signatureHelp` request. A client that opts into
   4396 ---contextSupport will also support the `retriggerCharacters` on
   4397 ---`SignatureHelpOptions`.
   4398 ---
   4399 ---@since 3.15.0
   4400 ---@field contextSupport? boolean
   4401 
   4402 ---@since 3.14.0
   4403 ---@class lsp.DeclarationClientCapabilities
   4404 ---
   4405 ---Whether declaration supports dynamic registration. If this is set to `true`
   4406 ---the client supports the new `DeclarationRegistrationOptions` return value
   4407 ---for the corresponding server capability as well.
   4408 ---@field dynamicRegistration? boolean
   4409 ---
   4410 ---The client supports additional metadata in the form of declaration links.
   4411 ---@field linkSupport? boolean
   4412 
   4413 ---Client Capabilities for a {@link DefinitionRequest}.
   4414 ---@class lsp.DefinitionClientCapabilities
   4415 ---
   4416 ---Whether definition supports dynamic registration.
   4417 ---@field dynamicRegistration? boolean
   4418 ---
   4419 ---The client supports additional metadata in the form of definition links.
   4420 ---
   4421 ---@since 3.14.0
   4422 ---@field linkSupport? boolean
   4423 
   4424 ---Since 3.6.0
   4425 ---@class lsp.TypeDefinitionClientCapabilities
   4426 ---
   4427 ---Whether implementation supports dynamic registration. If this is set to `true`
   4428 ---the client supports the new `TypeDefinitionRegistrationOptions` return value
   4429 ---for the corresponding server capability as well.
   4430 ---@field dynamicRegistration? boolean
   4431 ---
   4432 ---The client supports additional metadata in the form of definition links.
   4433 ---
   4434 ---Since 3.14.0
   4435 ---@field linkSupport? boolean
   4436 
   4437 ---@since 3.6.0
   4438 ---@class lsp.ImplementationClientCapabilities
   4439 ---
   4440 ---Whether implementation supports dynamic registration. If this is set to `true`
   4441 ---the client supports the new `ImplementationRegistrationOptions` return value
   4442 ---for the corresponding server capability as well.
   4443 ---@field dynamicRegistration? boolean
   4444 ---
   4445 ---The client supports additional metadata in the form of definition links.
   4446 ---
   4447 ---@since 3.14.0
   4448 ---@field linkSupport? boolean
   4449 
   4450 ---Client Capabilities for a {@link ReferencesRequest}.
   4451 ---@class lsp.ReferenceClientCapabilities
   4452 ---
   4453 ---Whether references supports dynamic registration.
   4454 ---@field dynamicRegistration? boolean
   4455 
   4456 ---Client Capabilities for a {@link DocumentHighlightRequest}.
   4457 ---@class lsp.DocumentHighlightClientCapabilities
   4458 ---
   4459 ---Whether document highlight supports dynamic registration.
   4460 ---@field dynamicRegistration? boolean
   4461 
   4462 ---Client Capabilities for a {@link DocumentSymbolRequest}.
   4463 ---@class lsp.DocumentSymbolClientCapabilities
   4464 ---
   4465 ---Whether document symbol supports dynamic registration.
   4466 ---@field dynamicRegistration? boolean
   4467 ---
   4468 ---Specific capabilities for the `SymbolKind` in the
   4469 ---`textDocument/documentSymbol` request.
   4470 ---@field symbolKind? lsp.ClientSymbolKindOptions
   4471 ---
   4472 ---The client supports hierarchical document symbols.
   4473 ---@field hierarchicalDocumentSymbolSupport? boolean
   4474 ---
   4475 ---The client supports tags on `SymbolInformation`. Tags are supported on
   4476 ---`DocumentSymbol` if `hierarchicalDocumentSymbolSupport` is set to true.
   4477 ---Clients supporting tags have to handle unknown tags gracefully.
   4478 ---
   4479 ---@since 3.16.0
   4480 ---@field tagSupport? lsp.ClientSymbolTagOptions
   4481 ---
   4482 ---The client supports an additional label presented in the UI when
   4483 ---registering a document symbol provider.
   4484 ---
   4485 ---@since 3.16.0
   4486 ---@field labelSupport? boolean
   4487 
   4488 ---The Client Capabilities of a {@link CodeActionRequest}.
   4489 ---@class lsp.CodeActionClientCapabilities
   4490 ---
   4491 ---Whether code action supports dynamic registration.
   4492 ---@field dynamicRegistration? boolean
   4493 ---
   4494 ---The client support code action literals of type `CodeAction` as a valid
   4495 ---response of the `textDocument/codeAction` request. If the property is not
   4496 ---set the request can only return `Command` literals.
   4497 ---
   4498 ---@since 3.8.0
   4499 ---@field codeActionLiteralSupport? lsp.ClientCodeActionLiteralOptions
   4500 ---
   4501 ---Whether code action supports the `isPreferred` property.
   4502 ---
   4503 ---@since 3.15.0
   4504 ---@field isPreferredSupport? boolean
   4505 ---
   4506 ---Whether code action supports the `disabled` property.
   4507 ---
   4508 ---@since 3.16.0
   4509 ---@field disabledSupport? boolean
   4510 ---
   4511 ---Whether code action supports the `data` property which is
   4512 ---preserved between a `textDocument/codeAction` and a
   4513 ---`codeAction/resolve` request.
   4514 ---
   4515 ---@since 3.16.0
   4516 ---@field dataSupport? boolean
   4517 ---
   4518 ---Whether the client supports resolving additional code action
   4519 ---properties via a separate `codeAction/resolve` request.
   4520 ---
   4521 ---@since 3.16.0
   4522 ---@field resolveSupport? lsp.ClientCodeActionResolveOptions
   4523 ---
   4524 ---Whether the client honors the change annotations in
   4525 ---text edits and resource operations returned via the
   4526 ---`CodeAction#edit` property by for example presenting
   4527 ---the workspace edit in the user interface and asking
   4528 ---for confirmation.
   4529 ---
   4530 ---@since 3.16.0
   4531 ---@field honorsChangeAnnotations? boolean
   4532 ---
   4533 ---Whether the client supports documentation for a class of
   4534 ---code actions.
   4535 ---
   4536 ---@since 3.18.0
   4537 ---@proposed
   4538 ---@field documentationSupport? boolean
   4539 ---
   4540 ---Client supports the tag property on a code action. Clients
   4541 ---supporting tags have to handle unknown tags gracefully.
   4542 ---
   4543 ---@since 3.18.0 - proposed
   4544 ---@field tagSupport? lsp.CodeActionTagOptions
   4545 
   4546 ---The client capabilities  of a {@link CodeLensRequest}.
   4547 ---@class lsp.CodeLensClientCapabilities
   4548 ---
   4549 ---Whether code lens supports dynamic registration.
   4550 ---@field dynamicRegistration? boolean
   4551 ---
   4552 ---Whether the client supports resolving additional code lens
   4553 ---properties via a separate `codeLens/resolve` request.
   4554 ---
   4555 ---@since 3.18.0
   4556 ---@field resolveSupport? lsp.ClientCodeLensResolveOptions
   4557 
   4558 ---The client capabilities of a {@link DocumentLinkRequest}.
   4559 ---@class lsp.DocumentLinkClientCapabilities
   4560 ---
   4561 ---Whether document link supports dynamic registration.
   4562 ---@field dynamicRegistration? boolean
   4563 ---
   4564 ---Whether the client supports the `tooltip` property on `DocumentLink`.
   4565 ---
   4566 ---@since 3.15.0
   4567 ---@field tooltipSupport? boolean
   4568 
   4569 ---@class lsp.DocumentColorClientCapabilities
   4570 ---
   4571 ---Whether implementation supports dynamic registration. If this is set to `true`
   4572 ---the client supports the new `DocumentColorRegistrationOptions` return value
   4573 ---for the corresponding server capability as well.
   4574 ---@field dynamicRegistration? boolean
   4575 
   4576 ---Client capabilities of a {@link DocumentFormattingRequest}.
   4577 ---@class lsp.DocumentFormattingClientCapabilities
   4578 ---
   4579 ---Whether formatting supports dynamic registration.
   4580 ---@field dynamicRegistration? boolean
   4581 
   4582 ---Client capabilities of a {@link DocumentRangeFormattingRequest}.
   4583 ---@class lsp.DocumentRangeFormattingClientCapabilities
   4584 ---
   4585 ---Whether range formatting supports dynamic registration.
   4586 ---@field dynamicRegistration? boolean
   4587 ---
   4588 ---Whether the client supports formatting multiple ranges at once.
   4589 ---
   4590 ---@since 3.18.0
   4591 ---@proposed
   4592 ---@field rangesSupport? boolean
   4593 
   4594 ---Client capabilities of a {@link DocumentOnTypeFormattingRequest}.
   4595 ---@class lsp.DocumentOnTypeFormattingClientCapabilities
   4596 ---
   4597 ---Whether on type formatting supports dynamic registration.
   4598 ---@field dynamicRegistration? boolean
   4599 
   4600 ---@class lsp.RenameClientCapabilities
   4601 ---
   4602 ---Whether rename supports dynamic registration.
   4603 ---@field dynamicRegistration? boolean
   4604 ---
   4605 ---Client supports testing for validity of rename operations
   4606 ---before execution.
   4607 ---
   4608 ---@since 3.12.0
   4609 ---@field prepareSupport? boolean
   4610 ---
   4611 ---Client supports the default behavior result.
   4612 ---
   4613 ---The value indicates the default behavior used by the
   4614 ---client.
   4615 ---
   4616 ---@since 3.16.0
   4617 ---@field prepareSupportDefaultBehavior? lsp.PrepareSupportDefaultBehavior
   4618 ---
   4619 ---Whether the client honors the change annotations in
   4620 ---text edits and resource operations returned via the
   4621 ---rename request's workspace edit by for example presenting
   4622 ---the workspace edit in the user interface and asking
   4623 ---for confirmation.
   4624 ---
   4625 ---@since 3.16.0
   4626 ---@field honorsChangeAnnotations? boolean
   4627 
   4628 ---@class lsp.FoldingRangeClientCapabilities
   4629 ---
   4630 ---Whether implementation supports dynamic registration for folding range
   4631 ---providers. If this is set to `true` the client supports the new
   4632 ---`FoldingRangeRegistrationOptions` return value for the corresponding
   4633 ---server capability as well.
   4634 ---@field dynamicRegistration? boolean
   4635 ---
   4636 ---The maximum number of folding ranges that the client prefers to receive
   4637 ---per document. The value serves as a hint, servers are free to follow the
   4638 ---limit.
   4639 ---@field rangeLimit? uinteger
   4640 ---
   4641 ---If set, the client signals that it only supports folding complete lines.
   4642 ---If set, client will ignore specified `startCharacter` and `endCharacter`
   4643 ---properties in a FoldingRange.
   4644 ---@field lineFoldingOnly? boolean
   4645 ---
   4646 ---Specific options for the folding range kind.
   4647 ---
   4648 ---@since 3.17.0
   4649 ---@field foldingRangeKind? lsp.ClientFoldingRangeKindOptions
   4650 ---
   4651 ---Specific options for the folding range.
   4652 ---
   4653 ---@since 3.17.0
   4654 ---@field foldingRange? lsp.ClientFoldingRangeOptions
   4655 
   4656 ---@class lsp.SelectionRangeClientCapabilities
   4657 ---
   4658 ---Whether implementation supports dynamic registration for selection range providers. If this is set to `true`
   4659 ---the client supports the new `SelectionRangeRegistrationOptions` return value for the corresponding server
   4660 ---capability as well.
   4661 ---@field dynamicRegistration? boolean
   4662 
   4663 ---The publish diagnostic client capabilities.
   4664 ---@class lsp.PublishDiagnosticsClientCapabilities: lsp.DiagnosticsCapabilities
   4665 ---
   4666 ---Whether the client interprets the version property of the
   4667 ---`textDocument/publishDiagnostics` notification's parameter.
   4668 ---
   4669 ---@since 3.15.0
   4670 ---@field versionSupport? boolean
   4671 
   4672 ---@since 3.16.0
   4673 ---@class lsp.CallHierarchyClientCapabilities
   4674 ---
   4675 ---Whether implementation supports dynamic registration. If this is set to `true`
   4676 ---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4677 ---return value for the corresponding server capability as well.
   4678 ---@field dynamicRegistration? boolean
   4679 
   4680 ---@since 3.16.0
   4681 ---@class lsp.SemanticTokensClientCapabilities
   4682 ---
   4683 ---Whether implementation supports dynamic registration. If this is set to `true`
   4684 ---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4685 ---return value for the corresponding server capability as well.
   4686 ---@field dynamicRegistration? boolean
   4687 ---
   4688 ---Which requests the client supports and might send to the server
   4689 ---depending on the server's capability. Please note that clients might not
   4690 ---show semantic tokens or degrade some of the user experience if a range
   4691 ---or full request is advertised by the client but not provided by the
   4692 ---server. If for example the client capability `requests.full` and
   4693 ---`request.range` are both set to true but the server only provides a
   4694 ---range provider the client might not render a minimap correctly or might
   4695 ---even decide to not show any semantic tokens at all.
   4696 ---@field requests lsp.ClientSemanticTokensRequestOptions
   4697 ---
   4698 ---The token types that the client supports.
   4699 ---@field tokenTypes string[]
   4700 ---
   4701 ---The token modifiers that the client supports.
   4702 ---@field tokenModifiers string[]
   4703 ---
   4704 ---The token formats the clients supports.
   4705 ---@field formats lsp.TokenFormat[]
   4706 ---
   4707 ---Whether the client supports tokens that can overlap each other.
   4708 ---@field overlappingTokenSupport? boolean
   4709 ---
   4710 ---Whether the client supports tokens that can span multiple lines.
   4711 ---@field multilineTokenSupport? boolean
   4712 ---
   4713 ---Whether the client allows the server to actively cancel a
   4714 ---semantic token request, e.g. supports returning
   4715 ---LSPErrorCodes.ServerCancelled. If a server does the client
   4716 ---needs to retrigger the request.
   4717 ---
   4718 ---@since 3.17.0
   4719 ---@field serverCancelSupport? boolean
   4720 ---
   4721 ---Whether the client uses semantic tokens to augment existing
   4722 ---syntax tokens. If set to `true` client side created syntax
   4723 ---tokens and semantic tokens are both used for colorization. If
   4724 ---set to `false` the client only uses the returned semantic tokens
   4725 ---for colorization.
   4726 ---
   4727 ---If the value is `undefined` then the client behavior is not
   4728 ---specified.
   4729 ---
   4730 ---@since 3.17.0
   4731 ---@field augmentsSyntaxTokens? boolean
   4732 
   4733 ---Client capabilities for the linked editing range request.
   4734 ---
   4735 ---@since 3.16.0
   4736 ---@class lsp.LinkedEditingRangeClientCapabilities
   4737 ---
   4738 ---Whether implementation supports dynamic registration. If this is set to `true`
   4739 ---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4740 ---return value for the corresponding server capability as well.
   4741 ---@field dynamicRegistration? boolean
   4742 
   4743 ---Client capabilities specific to the moniker request.
   4744 ---
   4745 ---@since 3.16.0
   4746 ---@class lsp.MonikerClientCapabilities
   4747 ---
   4748 ---Whether moniker supports dynamic registration. If this is set to `true`
   4749 ---the client supports the new `MonikerRegistrationOptions` return value
   4750 ---for the corresponding server capability as well.
   4751 ---@field dynamicRegistration? boolean
   4752 
   4753 ---@since 3.17.0
   4754 ---@class lsp.TypeHierarchyClientCapabilities
   4755 ---
   4756 ---Whether implementation supports dynamic registration. If this is set to `true`
   4757 ---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4758 ---return value for the corresponding server capability as well.
   4759 ---@field dynamicRegistration? boolean
   4760 
   4761 ---Client capabilities specific to inline values.
   4762 ---
   4763 ---@since 3.17.0
   4764 ---@class lsp.InlineValueClientCapabilities
   4765 ---
   4766 ---Whether implementation supports dynamic registration for inline value providers.
   4767 ---@field dynamicRegistration? boolean
   4768 
   4769 ---Inlay hint client capabilities.
   4770 ---
   4771 ---@since 3.17.0
   4772 ---@class lsp.InlayHintClientCapabilities
   4773 ---
   4774 ---Whether inlay hints support dynamic registration.
   4775 ---@field dynamicRegistration? boolean
   4776 ---
   4777 ---Indicates which properties a client can resolve lazily on an inlay
   4778 ---hint.
   4779 ---@field resolveSupport? lsp.ClientInlayHintResolveOptions
   4780 
   4781 ---Client capabilities specific to diagnostic pull requests.
   4782 ---
   4783 ---@since 3.17.0
   4784 ---@class lsp.DiagnosticClientCapabilities: lsp.DiagnosticsCapabilities
   4785 ---
   4786 ---Whether implementation supports dynamic registration. If this is set to `true`
   4787 ---the client supports the new `(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4788 ---return value for the corresponding server capability as well.
   4789 ---@field dynamicRegistration? boolean
   4790 ---
   4791 ---Whether the clients supports related documents for document diagnostic pulls.
   4792 ---@field relatedDocumentSupport? boolean
   4793 
   4794 ---Client capabilities specific to inline completions.
   4795 ---
   4796 ---@since 3.18.0
   4797 ---@proposed
   4798 ---@class lsp.InlineCompletionClientCapabilities
   4799 ---
   4800 ---Whether implementation supports dynamic registration for inline completion providers.
   4801 ---@field dynamicRegistration? boolean
   4802 
   4803 ---Notebook specific client capabilities.
   4804 ---
   4805 ---@since 3.17.0
   4806 ---@class lsp.NotebookDocumentSyncClientCapabilities
   4807 ---
   4808 ---Whether implementation supports dynamic registration. If this is
   4809 ---set to `true` the client supports the new
   4810 ---`(TextDocumentRegistrationOptions & StaticRegistrationOptions)`
   4811 ---return value for the corresponding server capability as well.
   4812 ---@field dynamicRegistration? boolean
   4813 ---
   4814 ---The client supports sending execution summary data per cell.
   4815 ---@field executionSummarySupport? boolean
   4816 
   4817 ---Show message request client capabilities
   4818 ---@class lsp.ShowMessageRequestClientCapabilities
   4819 ---
   4820 ---Capabilities specific to the `MessageActionItem` type.
   4821 ---@field messageActionItem? lsp.ClientShowMessageActionItemOptions
   4822 
   4823 ---Client capabilities for the showDocument request.
   4824 ---
   4825 ---@since 3.16.0
   4826 ---@class lsp.ShowDocumentClientCapabilities
   4827 ---
   4828 ---The client has support for the showDocument
   4829 ---request.
   4830 ---@field support boolean
   4831 
   4832 ---@since 3.18.0
   4833 ---@class lsp.StaleRequestSupportOptions
   4834 ---
   4835 ---The client will actively cancel the request.
   4836 ---@field cancel boolean
   4837 ---
   4838 ---The list of requests for which the client
   4839 ---will retry the request if it receives a
   4840 ---response with error code `ContentModified`
   4841 ---@field retryOnContentModified string[]
   4842 
   4843 ---Client capabilities specific to regular expressions.
   4844 ---
   4845 ---@since 3.16.0
   4846 ---@class lsp.RegularExpressionsClientCapabilities
   4847 ---
   4848 ---The engine's name.
   4849 ---@field engine lsp.RegularExpressionEngineKind
   4850 ---
   4851 ---The engine's version.
   4852 ---@field version? string
   4853 
   4854 ---Client capabilities specific to the used markdown parser.
   4855 ---
   4856 ---@since 3.16.0
   4857 ---@class lsp.MarkdownClientCapabilities
   4858 ---
   4859 ---The name of the parser.
   4860 ---@field parser string
   4861 ---
   4862 ---The version of the parser.
   4863 ---@field version? string
   4864 ---
   4865 ---A list of HTML tags that the client allows / supports in
   4866 ---Markdown.
   4867 ---
   4868 ---@since 3.17.0
   4869 ---@field allowedTags? string[]
   4870 
   4871 ---@since 3.18.0
   4872 ---@class lsp.ChangeAnnotationsSupportOptions
   4873 ---
   4874 ---Whether the client groups edits with equal labels into tree nodes,
   4875 ---for instance all edits labelled with "Changes in Strings" would
   4876 ---be a tree node.
   4877 ---@field groupsOnLabel? boolean
   4878 
   4879 ---@since 3.18.0
   4880 ---@class lsp.ClientSymbolKindOptions
   4881 ---
   4882 ---The symbol kind values the client supports. When this
   4883 ---property exists the client also guarantees that it will
   4884 ---handle values outside its set gracefully and falls back
   4885 ---to a default value when unknown.
   4886 ---
   4887 ---If this property is not present the client only supports
   4888 ---the symbol kinds from `File` to `Array` as defined in
   4889 ---the initial version of the protocol.
   4890 ---@field valueSet? lsp.SymbolKind[]
   4891 
   4892 ---@since 3.18.0
   4893 ---@class lsp.ClientSymbolTagOptions
   4894 ---
   4895 ---The tags supported by the client.
   4896 ---@field valueSet lsp.SymbolTag[]
   4897 
   4898 ---@since 3.18.0
   4899 ---@class lsp.ClientSymbolResolveOptions
   4900 ---
   4901 ---The properties that a client can resolve lazily. Usually
   4902 ---`location.range`
   4903 ---@field properties string[]
   4904 
   4905 ---@since 3.18.0
   4906 ---@class lsp.ClientCompletionItemOptions
   4907 ---
   4908 ---Client supports snippets as insert text.
   4909 ---
   4910 ---A snippet can define tab stops and placeholders with `$1`, `$2`
   4911 ---and `${3:foo}`. `$0` defines the final tab stop, it defaults to
   4912 ---the end of the snippet. Placeholders with equal identifiers are linked,
   4913 ---that is typing in one will update others too.
   4914 ---@field snippetSupport? boolean
   4915 ---
   4916 ---Client supports commit characters on a completion item.
   4917 ---@field commitCharactersSupport? boolean
   4918 ---
   4919 ---Client supports the following content formats for the documentation
   4920 ---property. The order describes the preferred format of the client.
   4921 ---@field documentationFormat? lsp.MarkupKind[]
   4922 ---
   4923 ---Client supports the deprecated property on a completion item.
   4924 ---@field deprecatedSupport? boolean
   4925 ---
   4926 ---Client supports the preselect property on a completion item.
   4927 ---@field preselectSupport? boolean
   4928 ---
   4929 ---Client supports the tag property on a completion item. Clients supporting
   4930 ---tags have to handle unknown tags gracefully. Clients especially need to
   4931 ---preserve unknown tags when sending a completion item back to the server in
   4932 ---a resolve call.
   4933 ---
   4934 ---@since 3.15.0
   4935 ---@field tagSupport? lsp.CompletionItemTagOptions
   4936 ---
   4937 ---Client support insert replace edit to control different behavior if a
   4938 ---completion item is inserted in the text or should replace text.
   4939 ---
   4940 ---@since 3.16.0
   4941 ---@field insertReplaceSupport? boolean
   4942 ---
   4943 ---Indicates which properties a client can resolve lazily on a completion
   4944 ---item. Before version 3.16.0 only the predefined properties `documentation`
   4945 ---and `details` could be resolved lazily.
   4946 ---
   4947 ---@since 3.16.0
   4948 ---@field resolveSupport? lsp.ClientCompletionItemResolveOptions
   4949 ---
   4950 ---The client supports the `insertTextMode` property on
   4951 ---a completion item to override the whitespace handling mode
   4952 ---as defined by the client (see `insertTextMode`).
   4953 ---
   4954 ---@since 3.16.0
   4955 ---@field insertTextModeSupport? lsp.ClientCompletionItemInsertTextModeOptions
   4956 ---
   4957 ---The client has support for completion item label
   4958 ---details (see also `CompletionItemLabelDetails`).
   4959 ---
   4960 ---@since 3.17.0
   4961 ---@field labelDetailsSupport? boolean
   4962 
   4963 ---@since 3.18.0
   4964 ---@class lsp.ClientCompletionItemOptionsKind
   4965 ---
   4966 ---The completion item kind values the client supports. When this
   4967 ---property exists the client also guarantees that it will
   4968 ---handle values outside its set gracefully and falls back
   4969 ---to a default value when unknown.
   4970 ---
   4971 ---If this property is not present the client only supports
   4972 ---the completion items kinds from `Text` to `Reference` as defined in
   4973 ---the initial version of the protocol.
   4974 ---@field valueSet? lsp.CompletionItemKind[]
   4975 
   4976 ---The client supports the following `CompletionList` specific
   4977 ---capabilities.
   4978 ---
   4979 ---@since 3.17.0
   4980 ---@class lsp.CompletionListCapabilities
   4981 ---
   4982 ---The client supports the following itemDefaults on
   4983 ---a completion list.
   4984 ---
   4985 ---The value lists the supported property names of the
   4986 ---`CompletionList.itemDefaults` object. If omitted
   4987 ---no properties are supported.
   4988 ---
   4989 ---@since 3.17.0
   4990 ---@field itemDefaults? string[]
   4991 ---
   4992 ---Specifies whether the client supports `CompletionList.applyKind` to
   4993 ---indicate how supported values from `completionList.itemDefaults`
   4994 ---and `completion` will be combined.
   4995 ---
   4996 ---If a client supports `applyKind` it must support it for all fields
   4997 ---that it supports that are listed in `CompletionList.applyKind`. This
   4998 ---means when clients add support for new/future fields in completion
   4999 ---items the MUST also support merge for them if those fields are
   5000 ---defined in `CompletionList.applyKind`.
   5001 ---
   5002 ---@since 3.18.0
   5003 ---@field applyKindSupport? boolean
   5004 
   5005 ---@since 3.18.0
   5006 ---@class lsp.ClientSignatureInformationOptions
   5007 ---
   5008 ---Client supports the following content formats for the documentation
   5009 ---property. The order describes the preferred format of the client.
   5010 ---@field documentationFormat? lsp.MarkupKind[]
   5011 ---
   5012 ---Client capabilities specific to parameter information.
   5013 ---@field parameterInformation? lsp.ClientSignatureParameterInformationOptions
   5014 ---
   5015 ---The client supports the `activeParameter` property on `SignatureInformation`
   5016 ---literal.
   5017 ---
   5018 ---@since 3.16.0
   5019 ---@field activeParameterSupport? boolean
   5020 ---
   5021 ---The client supports the `activeParameter` property on
   5022 ---`SignatureHelp`/`SignatureInformation` being set to `null` to
   5023 ---indicate that no parameter should be active.
   5024 ---
   5025 ---@since 3.18.0
   5026 ---@proposed
   5027 ---@field noActiveParameterSupport? boolean
   5028 
   5029 ---@since 3.18.0
   5030 ---@class lsp.ClientCodeActionLiteralOptions
   5031 ---
   5032 ---The code action kind is support with the following value
   5033 ---set.
   5034 ---@field codeActionKind lsp.ClientCodeActionKindOptions
   5035 
   5036 ---@since 3.18.0
   5037 ---@class lsp.ClientCodeActionResolveOptions
   5038 ---
   5039 ---The properties that a client can resolve lazily.
   5040 ---@field properties string[]
   5041 
   5042 ---@since 3.18.0 - proposed
   5043 ---@class lsp.CodeActionTagOptions
   5044 ---
   5045 ---The tags supported by the client.
   5046 ---@field valueSet lsp.CodeActionTag[]
   5047 
   5048 ---@since 3.18.0
   5049 ---@class lsp.ClientCodeLensResolveOptions
   5050 ---
   5051 ---The properties that a client can resolve lazily.
   5052 ---@field properties string[]
   5053 
   5054 ---@since 3.18.0
   5055 ---@class lsp.ClientFoldingRangeKindOptions
   5056 ---
   5057 ---The folding range kind values the client supports. When this
   5058 ---property exists the client also guarantees that it will
   5059 ---handle values outside its set gracefully and falls back
   5060 ---to a default value when unknown.
   5061 ---@field valueSet? lsp.FoldingRangeKind[]
   5062 
   5063 ---@since 3.18.0
   5064 ---@class lsp.ClientFoldingRangeOptions
   5065 ---
   5066 ---If set, the client signals that it supports setting collapsedText on
   5067 ---folding ranges to display custom labels instead of the default text.
   5068 ---
   5069 ---@since 3.17.0
   5070 ---@field collapsedText? boolean
   5071 
   5072 ---General diagnostics capabilities for pull and push model.
   5073 ---@class lsp.DiagnosticsCapabilities
   5074 ---
   5075 ---Whether the clients accepts diagnostics with related information.
   5076 ---@field relatedInformation? boolean
   5077 ---
   5078 ---Client supports the tag property to provide meta data about a diagnostic.
   5079 ---Clients supporting tags have to handle unknown tags gracefully.
   5080 ---
   5081 ---@since 3.15.0
   5082 ---@field tagSupport? lsp.ClientDiagnosticsTagOptions
   5083 ---
   5084 ---Client supports a codeDescription property
   5085 ---
   5086 ---@since 3.16.0
   5087 ---@field codeDescriptionSupport? boolean
   5088 ---
   5089 ---Whether code action supports the `data` property which is
   5090 ---preserved between a `textDocument/publishDiagnostics` and
   5091 ---`textDocument/codeAction` request.
   5092 ---
   5093 ---@since 3.16.0
   5094 ---@field dataSupport? boolean
   5095 
   5096 ---@since 3.18.0
   5097 ---@class lsp.ClientSemanticTokensRequestOptions
   5098 ---
   5099 ---The client will send the `textDocument/semanticTokens/range` request if
   5100 ---the server provides a corresponding handler.
   5101 ---@field range? boolean|lsp._anonym2.range
   5102 ---
   5103 ---The client will send the `textDocument/semanticTokens/full` request if
   5104 ---the server provides a corresponding handler.
   5105 ---@field full? boolean|lsp.ClientSemanticTokensRequestFullDelta
   5106 
   5107 ---@since 3.18.0
   5108 ---@class lsp.ClientInlayHintResolveOptions
   5109 ---
   5110 ---The properties that a client can resolve lazily.
   5111 ---@field properties string[]
   5112 
   5113 ---@since 3.18.0
   5114 ---@class lsp.ClientShowMessageActionItemOptions
   5115 ---
   5116 ---Whether the client supports additional attributes which
   5117 ---are preserved and send back to the server in the
   5118 ---request's response.
   5119 ---@field additionalPropertiesSupport? boolean
   5120 
   5121 ---@since 3.18.0
   5122 ---@class lsp.CompletionItemTagOptions
   5123 ---
   5124 ---The tags supported by the client.
   5125 ---@field valueSet lsp.CompletionItemTag[]
   5126 
   5127 ---@since 3.18.0
   5128 ---@class lsp.ClientCompletionItemResolveOptions
   5129 ---
   5130 ---The properties that a client can resolve lazily.
   5131 ---@field properties string[]
   5132 
   5133 ---@since 3.18.0
   5134 ---@class lsp.ClientCompletionItemInsertTextModeOptions
   5135 ---
   5136 ---@field valueSet lsp.InsertTextMode[]
   5137 
   5138 ---@since 3.18.0
   5139 ---@class lsp.ClientSignatureParameterInformationOptions
   5140 ---
   5141 ---The client supports processing label offsets instead of a
   5142 ---simple label string.
   5143 ---
   5144 ---@since 3.14.0
   5145 ---@field labelOffsetSupport? boolean
   5146 
   5147 ---@since 3.18.0
   5148 ---@class lsp.ClientCodeActionKindOptions
   5149 ---
   5150 ---The code action kind values the client supports. When this
   5151 ---property exists the client also guarantees that it will
   5152 ---handle values outside its set gracefully and falls back
   5153 ---to a default value when unknown.
   5154 ---@field valueSet lsp.CodeActionKind[]
   5155 
   5156 ---@since 3.18.0
   5157 ---@class lsp.ClientDiagnosticsTagOptions
   5158 ---
   5159 ---The tags supported by the client.
   5160 ---@field valueSet lsp.DiagnosticTag[]
   5161 
   5162 ---@since 3.18.0
   5163 ---@class lsp.ClientSemanticTokensRequestFullDelta
   5164 ---
   5165 ---The client will send the `textDocument/semanticTokens/full/delta` request if
   5166 ---the server provides a corresponding handler.
   5167 ---@field delta? boolean
   5168 
   5169 ---A set of predefined token types. This set is not fixed
   5170 ---an clients can specify additional token types via the
   5171 ---corresponding client capabilities.
   5172 ---
   5173 ---@since 3.16.0
   5174 ---@alias lsp.SemanticTokenTypes
   5175 ---| "namespace" # namespace
   5176 ---| "type" # type
   5177 ---| "class" # class
   5178 ---| "enum" # enum
   5179 ---| "interface" # interface
   5180 ---| "struct" # struct
   5181 ---| "typeParameter" # typeParameter
   5182 ---| "parameter" # parameter
   5183 ---| "variable" # variable
   5184 ---| "property" # property
   5185 ---| "enumMember" # enumMember
   5186 ---| "event" # event
   5187 ---| "function" # function
   5188 ---| "method" # method
   5189 ---| "macro" # macro
   5190 ---| "keyword" # keyword
   5191 ---| "modifier" # modifier
   5192 ---| "comment" # comment
   5193 ---| "string" # string
   5194 ---| "number" # number
   5195 ---| "regexp" # regexp
   5196 ---| "operator" # operator
   5197 ---| "decorator" # decorator
   5198 ---| "label" # label
   5199 
   5200 ---A set of predefined token modifiers. This set is not fixed
   5201 ---an clients can specify additional token types via the
   5202 ---corresponding client capabilities.
   5203 ---
   5204 ---@since 3.16.0
   5205 ---@alias lsp.SemanticTokenModifiers
   5206 ---| "declaration" # declaration
   5207 ---| "definition" # definition
   5208 ---| "readonly" # readonly
   5209 ---| "static" # static
   5210 ---| "deprecated" # deprecated
   5211 ---| "abstract" # abstract
   5212 ---| "async" # async
   5213 ---| "modification" # modification
   5214 ---| "documentation" # documentation
   5215 ---| "defaultLibrary" # defaultLibrary
   5216 
   5217 ---The document diagnostic report kinds.
   5218 ---
   5219 ---@since 3.17.0
   5220 ---@alias lsp.DocumentDiagnosticReportKind
   5221 ---| "full" # Full
   5222 ---| "unchanged" # Unchanged
   5223 
   5224 ---Predefined error codes.
   5225 ---@alias lsp.ErrorCodes
   5226 ---| -32700 # ParseError
   5227 ---| -32600 # InvalidRequest
   5228 ---| -32601 # MethodNotFound
   5229 ---| -32602 # InvalidParams
   5230 ---| -32603 # InternalError
   5231 ---| -32002 # ServerNotInitialized
   5232 ---| -32001 # UnknownErrorCode
   5233 
   5234 ---@alias lsp.LSPErrorCodes
   5235 ---| -32803 # RequestFailed
   5236 ---| -32802 # ServerCancelled
   5237 ---| -32801 # ContentModified
   5238 ---| -32800 # RequestCancelled
   5239 
   5240 ---A set of predefined range kinds.
   5241 ---@alias lsp.FoldingRangeKind
   5242 ---| "comment" # Comment
   5243 ---| "imports" # Imports
   5244 ---| "region" # Region
   5245 
   5246 ---A symbol kind.
   5247 ---@alias lsp.SymbolKind
   5248 ---| 1 # File
   5249 ---| 2 # Module
   5250 ---| 3 # Namespace
   5251 ---| 4 # Package
   5252 ---| 5 # Class
   5253 ---| 6 # Method
   5254 ---| 7 # Property
   5255 ---| 8 # Field
   5256 ---| 9 # Constructor
   5257 ---| 10 # Enum
   5258 ---| 11 # Interface
   5259 ---| 12 # Function
   5260 ---| 13 # Variable
   5261 ---| 14 # Constant
   5262 ---| 15 # String
   5263 ---| 16 # Number
   5264 ---| 17 # Boolean
   5265 ---| 18 # Array
   5266 ---| 19 # Object
   5267 ---| 20 # Key
   5268 ---| 21 # Null
   5269 ---| 22 # EnumMember
   5270 ---| 23 # Struct
   5271 ---| 24 # Event
   5272 ---| 25 # Operator
   5273 ---| 26 # TypeParameter
   5274 
   5275 ---Symbol tags are extra annotations that tweak the rendering of a symbol.
   5276 ---
   5277 ---@since 3.16
   5278 ---@alias lsp.SymbolTag
   5279 ---| 1 # Deprecated
   5280 
   5281 ---Moniker uniqueness level to define scope of the moniker.
   5282 ---
   5283 ---@since 3.16.0
   5284 ---@alias lsp.UniquenessLevel
   5285 ---| "document" # document
   5286 ---| "project" # project
   5287 ---| "group" # group
   5288 ---| "scheme" # scheme
   5289 ---| "global" # global
   5290 
   5291 ---The moniker kind.
   5292 ---
   5293 ---@since 3.16.0
   5294 ---@alias lsp.MonikerKind
   5295 ---| "import" # import
   5296 ---| "export" # export
   5297 ---| "local" # local
   5298 
   5299 ---Inlay hint kinds.
   5300 ---
   5301 ---@since 3.17.0
   5302 ---@alias lsp.InlayHintKind
   5303 ---| 1 # Type
   5304 ---| 2 # Parameter
   5305 
   5306 ---The message type
   5307 ---@alias lsp.MessageType
   5308 ---| 1 # Error
   5309 ---| 2 # Warning
   5310 ---| 3 # Info
   5311 ---| 4 # Log
   5312 ---| 5 # Debug
   5313 
   5314 ---Defines how the host (editor) should sync
   5315 ---document changes to the language server.
   5316 ---@alias lsp.TextDocumentSyncKind
   5317 ---| 0 # None
   5318 ---| 1 # Full
   5319 ---| 2 # Incremental
   5320 
   5321 ---Represents reasons why a text document is saved.
   5322 ---@alias lsp.TextDocumentSaveReason
   5323 ---| 1 # Manual
   5324 ---| 2 # AfterDelay
   5325 ---| 3 # FocusOut
   5326 
   5327 ---The kind of a completion entry.
   5328 ---@alias lsp.CompletionItemKind
   5329 ---| 1 # Text
   5330 ---| 2 # Method
   5331 ---| 3 # Function
   5332 ---| 4 # Constructor
   5333 ---| 5 # Field
   5334 ---| 6 # Variable
   5335 ---| 7 # Class
   5336 ---| 8 # Interface
   5337 ---| 9 # Module
   5338 ---| 10 # Property
   5339 ---| 11 # Unit
   5340 ---| 12 # Value
   5341 ---| 13 # Enum
   5342 ---| 14 # Keyword
   5343 ---| 15 # Snippet
   5344 ---| 16 # Color
   5345 ---| 17 # File
   5346 ---| 18 # Reference
   5347 ---| 19 # Folder
   5348 ---| 20 # EnumMember
   5349 ---| 21 # Constant
   5350 ---| 22 # Struct
   5351 ---| 23 # Event
   5352 ---| 24 # Operator
   5353 ---| 25 # TypeParameter
   5354 
   5355 ---Completion item tags are extra annotations that tweak the rendering of a completion
   5356 ---item.
   5357 ---
   5358 ---@since 3.15.0
   5359 ---@alias lsp.CompletionItemTag
   5360 ---| 1 # Deprecated
   5361 
   5362 ---Defines whether the insert text in a completion item should be interpreted as
   5363 ---plain text or a snippet.
   5364 ---@alias lsp.InsertTextFormat
   5365 ---| 1 # PlainText
   5366 ---| 2 # Snippet
   5367 
   5368 ---How whitespace and indentation is handled during completion
   5369 ---item insertion.
   5370 ---
   5371 ---@since 3.16.0
   5372 ---@alias lsp.InsertTextMode
   5373 ---| 1 # asIs
   5374 ---| 2 # adjustIndentation
   5375 
   5376 ---A document highlight kind.
   5377 ---@alias lsp.DocumentHighlightKind
   5378 ---| 1 # Text
   5379 ---| 2 # Read
   5380 ---| 3 # Write
   5381 
   5382 ---A set of predefined code action kinds
   5383 ---@alias lsp.CodeActionKind
   5384 ---| "" # Empty
   5385 ---| "quickfix" # QuickFix
   5386 ---| "refactor" # Refactor
   5387 ---| "refactor.extract" # RefactorExtract
   5388 ---| "refactor.inline" # RefactorInline
   5389 ---| "refactor.move" # RefactorMove
   5390 ---| "refactor.rewrite" # RefactorRewrite
   5391 ---| "source" # Source
   5392 ---| "source.organizeImports" # SourceOrganizeImports
   5393 ---| "source.fixAll" # SourceFixAll
   5394 ---| "notebook" # Notebook
   5395 
   5396 ---Code action tags are extra annotations that tweak the behavior of a code action.
   5397 ---
   5398 ---@since 3.18.0 - proposed
   5399 ---@alias lsp.CodeActionTag
   5400 ---| 1 # LLMGenerated
   5401 
   5402 ---@alias lsp.TraceValue
   5403 ---| "off" # Off
   5404 ---| "messages" # Messages
   5405 ---| "verbose" # Verbose
   5406 
   5407 ---Describes the content type that a client supports in various
   5408 ---result literals like `Hover`, `ParameterInfo` or `CompletionItem`.
   5409 ---
   5410 ---Please note that `MarkupKinds` must not start with a `$`. This kinds
   5411 ---are reserved for internal usage.
   5412 ---@alias lsp.MarkupKind
   5413 ---| "plaintext" # PlainText
   5414 ---| "markdown" # Markdown
   5415 
   5416 ---Predefined Language kinds
   5417 ---@since 3.18.0
   5418 ---@alias lsp.LanguageKind
   5419 ---| "abap" # ABAP
   5420 ---| "bat" # WindowsBat
   5421 ---| "bibtex" # BibTeX
   5422 ---| "clojure" # Clojure
   5423 ---| "coffeescript" # Coffeescript
   5424 ---| "c" # C
   5425 ---| "cpp" # CPP
   5426 ---| "csharp" # CSharp
   5427 ---| "css" # CSS
   5428 ---| "d" # D
   5429 ---| "pascal" # Delphi
   5430 ---| "diff" # Diff
   5431 ---| "dart" # Dart
   5432 ---| "dockerfile" # Dockerfile
   5433 ---| "elixir" # Elixir
   5434 ---| "erlang" # Erlang
   5435 ---| "fsharp" # FSharp
   5436 ---| "git-commit" # GitCommit
   5437 ---| "rebase" # GitRebase
   5438 ---| "go" # Go
   5439 ---| "groovy" # Groovy
   5440 ---| "handlebars" # Handlebars
   5441 ---| "haskell" # Haskell
   5442 ---| "html" # HTML
   5443 ---| "ini" # Ini
   5444 ---| "java" # Java
   5445 ---| "javascript" # JavaScript
   5446 ---| "javascriptreact" # JavaScriptReact
   5447 ---| "json" # JSON
   5448 ---| "latex" # LaTeX
   5449 ---| "less" # Less
   5450 ---| "lua" # Lua
   5451 ---| "makefile" # Makefile
   5452 ---| "markdown" # Markdown
   5453 ---| "objective-c" # ObjectiveC
   5454 ---| "objective-cpp" # ObjectiveCPP
   5455 ---| "pascal" # Pascal
   5456 ---| "perl" # Perl
   5457 ---| "perl6" # Perl6
   5458 ---| "php" # PHP
   5459 ---| "powershell" # Powershell
   5460 ---| "jade" # Pug
   5461 ---| "python" # Python
   5462 ---| "r" # R
   5463 ---| "razor" # Razor
   5464 ---| "ruby" # Ruby
   5465 ---| "rust" # Rust
   5466 ---| "scss" # SCSS
   5467 ---| "sass" # SASS
   5468 ---| "scala" # Scala
   5469 ---| "shaderlab" # ShaderLab
   5470 ---| "shellscript" # ShellScript
   5471 ---| "sql" # SQL
   5472 ---| "swift" # Swift
   5473 ---| "typescript" # TypeScript
   5474 ---| "typescriptreact" # TypeScriptReact
   5475 ---| "tex" # TeX
   5476 ---| "vb" # VisualBasic
   5477 ---| "xml" # XML
   5478 ---| "xsl" # XSL
   5479 ---| "yaml" # YAML
   5480 
   5481 ---Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered.
   5482 ---
   5483 ---@since 3.18.0
   5484 ---@proposed
   5485 ---@alias lsp.InlineCompletionTriggerKind
   5486 ---| 1 # Invoked
   5487 ---| 2 # Automatic
   5488 
   5489 ---A set of predefined position encoding kinds.
   5490 ---
   5491 ---@since 3.17.0
   5492 ---@alias lsp.PositionEncodingKind
   5493 ---| "utf-8" # UTF8
   5494 ---| "utf-16" # UTF16
   5495 ---| "utf-32" # UTF32
   5496 
   5497 ---The file event type
   5498 ---@alias lsp.FileChangeType
   5499 ---| 1 # Created
   5500 ---| 2 # Changed
   5501 ---| 3 # Deleted
   5502 
   5503 ---@alias lsp.WatchKind
   5504 ---| 1 # Create
   5505 ---| 2 # Change
   5506 ---| 4 # Delete
   5507 
   5508 ---The diagnostic's severity.
   5509 ---@alias lsp.DiagnosticSeverity
   5510 ---| 1 # Error
   5511 ---| 2 # Warning
   5512 ---| 3 # Information
   5513 ---| 4 # Hint
   5514 
   5515 ---The diagnostic tags.
   5516 ---
   5517 ---@since 3.15.0
   5518 ---@alias lsp.DiagnosticTag
   5519 ---| 1 # Unnecessary
   5520 ---| 2 # Deprecated
   5521 
   5522 ---How a completion was triggered
   5523 ---@alias lsp.CompletionTriggerKind
   5524 ---| 1 # Invoked
   5525 ---| 2 # TriggerCharacter
   5526 ---| 3 # TriggerForIncompleteCompletions
   5527 
   5528 ---Defines how values from a set of defaults and an individual item will be
   5529 ---merged.
   5530 ---
   5531 ---@since 3.18.0
   5532 ---@alias lsp.ApplyKind
   5533 ---| 1 # Replace
   5534 ---| 2 # Merge
   5535 
   5536 ---How a signature help was triggered.
   5537 ---
   5538 ---@since 3.15.0
   5539 ---@alias lsp.SignatureHelpTriggerKind
   5540 ---| 1 # Invoked
   5541 ---| 2 # TriggerCharacter
   5542 ---| 3 # ContentChange
   5543 
   5544 ---The reason why code actions were requested.
   5545 ---
   5546 ---@since 3.17.0
   5547 ---@alias lsp.CodeActionTriggerKind
   5548 ---| 1 # Invoked
   5549 ---| 2 # Automatic
   5550 
   5551 ---A pattern kind describing if a glob pattern matches a file a folder or
   5552 ---both.
   5553 ---
   5554 ---@since 3.16.0
   5555 ---@alias lsp.FileOperationPatternKind
   5556 ---| "file" # file
   5557 ---| "folder" # folder
   5558 
   5559 ---A notebook cell kind.
   5560 ---
   5561 ---@since 3.17.0
   5562 ---@alias lsp.NotebookCellKind
   5563 ---| 1 # Markup
   5564 ---| 2 # Code
   5565 
   5566 ---@alias lsp.ResourceOperationKind
   5567 ---| "create" # Create
   5568 ---| "rename" # Rename
   5569 ---| "delete" # Delete
   5570 
   5571 ---@alias lsp.FailureHandlingKind
   5572 ---| "abort" # Abort
   5573 ---| "transactional" # Transactional
   5574 ---| "textOnlyTransactional" # TextOnlyTransactional
   5575 ---| "undo" # Undo
   5576 
   5577 ---@alias lsp.PrepareSupportDefaultBehavior
   5578 ---| 1 # Identifier
   5579 
   5580 ---@alias lsp.TokenFormat
   5581 ---| "relative" # Relative
   5582 
   5583 ---The definition of a symbol represented as one or many {@link Location locations}.
   5584 ---For most programming languages there is only one location at which a symbol is
   5585 ---defined.
   5586 ---
   5587 ---Servers should prefer returning `DefinitionLink` over `Definition` if supported
   5588 ---by the client.
   5589 ---@alias lsp.Definition lsp.Location|lsp.Location[]
   5590 
   5591 ---Information about where a symbol is defined.
   5592 ---
   5593 ---Provides additional metadata over normal {@link Location location} definitions, including the range of
   5594 ---the defining symbol
   5595 ---@alias lsp.DefinitionLink lsp.LocationLink
   5596 
   5597 ---LSP arrays.
   5598 ---@since 3.17.0
   5599 ---@alias lsp.LSPArray lsp.LSPAny[]
   5600 
   5601 ---The LSP any type.
   5602 ---Please note that strictly speaking a property with the value `undefined`
   5603 ---can't be converted into JSON preserving the property name. However for
   5604 ---convenience it is allowed and assumed that all these properties are
   5605 ---optional as well.
   5606 ---@since 3.17.0
   5607 ---@alias lsp.LSPAny lsp.LSPObject|lsp.LSPArray|string|integer|uinteger|decimal|boolean|lsp.null
   5608 
   5609 ---The declaration of a symbol representation as one or many {@link Location locations}.
   5610 ---@alias lsp.Declaration lsp.Location|lsp.Location[]
   5611 
   5612 ---Information about where a symbol is declared.
   5613 ---
   5614 ---Provides additional metadata over normal {@link Location location} declarations, including the range of
   5615 ---the declaring symbol.
   5616 ---
   5617 ---Servers should prefer returning `DeclarationLink` over `Declaration` if supported
   5618 ---by the client.
   5619 ---@alias lsp.DeclarationLink lsp.LocationLink
   5620 
   5621 ---Inline value information can be provided by different means:
   5622 ---- directly as a text value (class InlineValueText).
   5623 ---- as a name to use for a variable lookup (class InlineValueVariableLookup)
   5624 ---- as an evaluatable expression (class InlineValueEvaluatableExpression)
   5625 ---The InlineValue types combines all inline value types into one type.
   5626 ---
   5627 ---@since 3.17.0
   5628 ---@alias lsp.InlineValue lsp.InlineValueText|lsp.InlineValueVariableLookup|lsp.InlineValueEvaluatableExpression
   5629 
   5630 ---The result of a document diagnostic pull request. A report can
   5631 ---either be a full report containing all diagnostics for the
   5632 ---requested document or an unchanged report indicating that nothing
   5633 ---has changed in terms of diagnostics in comparison to the last
   5634 ---pull request.
   5635 ---
   5636 ---@since 3.17.0
   5637 ---@alias lsp.DocumentDiagnosticReport lsp.RelatedFullDocumentDiagnosticReport|lsp.RelatedUnchangedDocumentDiagnosticReport
   5638 
   5639 ---@alias lsp.PrepareRenameResult lsp.Range|lsp.PrepareRenamePlaceholder|lsp.PrepareRenameDefaultBehavior
   5640 
   5641 ---A document selector is the combination of one or many document filters.
   5642 ---
   5643 ---\@sample `let sel:DocumentSelector = [{ language: 'typescript' }, { language: 'json', pattern: '**∕tsconfig.json' }]`;
   5644 ---
   5645 ---The use of a string as a document filter is deprecated @since 3.16.0.
   5646 ---@alias lsp.DocumentSelector lsp.DocumentFilter[]
   5647 
   5648 ---@alias lsp.ProgressToken integer|string
   5649 
   5650 ---An identifier to refer to a change annotation stored with a workspace edit.
   5651 ---@alias lsp.ChangeAnnotationIdentifier string
   5652 
   5653 ---A workspace diagnostic document report.
   5654 ---
   5655 ---@since 3.17.0
   5656 ---@alias lsp.WorkspaceDocumentDiagnosticReport lsp.WorkspaceFullDocumentDiagnosticReport|lsp.WorkspaceUnchangedDocumentDiagnosticReport
   5657 
   5658 ---An event describing a change to a text document. If only a text is provided
   5659 ---it is considered to be the full content of the document.
   5660 ---@alias lsp.TextDocumentContentChangeEvent lsp.TextDocumentContentChangePartial|lsp.TextDocumentContentChangeWholeDocument
   5661 
   5662 ---MarkedString can be used to render human readable text. It is either a markdown string
   5663 ---or a code-block that provides a language and a code snippet. The language identifier
   5664 ---is semantically equal to the optional language identifier in fenced code blocks in GitHub
   5665 ---issues. See https://help.github.com/articles/creating-and-highlighting-code-blocks/#syntax-highlighting
   5666 ---
   5667 ---The pair of a language and a value is an equivalent to markdown:
   5668 ---```${language}
   5669 ---${value}
   5670 ---```
   5671 ---
   5672 ---Note that markdown strings will be sanitized - that means html will be escaped.
   5673 ---@deprecated use MarkupContent instead.
   5674 ---@alias lsp.MarkedString string|lsp.MarkedStringWithLanguage
   5675 
   5676 ---A document filter describes a top level text document or
   5677 ---a notebook cell document.
   5678 ---
   5679 ---@since 3.17.0 - support for NotebookCellTextDocumentFilter.
   5680 ---@alias lsp.DocumentFilter lsp.TextDocumentFilter|lsp.NotebookCellTextDocumentFilter
   5681 
   5682 ---LSP object definition.
   5683 ---@since 3.17.0
   5684 ---@alias lsp.LSPObject table<string, lsp.LSPAny>
   5685 
   5686 ---The glob pattern. Either a string pattern or a relative pattern.
   5687 ---
   5688 ---@since 3.17.0
   5689 ---@alias lsp.GlobPattern lsp.Pattern|lsp.RelativePattern
   5690 
   5691 ---A document filter denotes a document by different properties like
   5692 ---the {@link TextDocument.languageId language}, the {@link Uri.scheme scheme} of
   5693 ---its resource, or a glob-pattern that is applied to the {@link TextDocument.fileName path}.
   5694 ---
   5695 ---Glob patterns can have the following syntax:
   5696 ---- `*` to match one or more characters in a path segment
   5697 ---- `?` to match on one character in a path segment
   5698 ---- `**` to match any number of path segments, including none
   5699 ---- `{}` to group sub patterns into an OR expression. (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
   5700 ---- `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
   5701 ---- `[!...]` 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`)
   5702 ---
   5703 ---\@sample A language filter that applies to typescript files on disk: `{ language: 'typescript', scheme: 'file' }`
   5704 ---\@sample A language filter that applies to all package.json paths: `{ language: 'json', pattern: '**package.json' }`
   5705 ---
   5706 ---@since 3.17.0
   5707 ---@alias lsp.TextDocumentFilter lsp.TextDocumentFilterLanguage|lsp.TextDocumentFilterScheme|lsp.TextDocumentFilterPattern
   5708 
   5709 ---A notebook document filter denotes a notebook document by
   5710 ---different properties. The properties will be match
   5711 ---against the notebook's URI (same as with documents)
   5712 ---
   5713 ---@since 3.17.0
   5714 ---@alias lsp.NotebookDocumentFilter lsp.NotebookDocumentFilterNotebookType|lsp.NotebookDocumentFilterScheme|lsp.NotebookDocumentFilterPattern
   5715 
   5716 ---The glob pattern to watch relative to the base path. Glob patterns can have the following syntax:
   5717 ---- `*` to match one or more characters in a path segment
   5718 ---- `?` to match on one character in a path segment
   5719 ---- `**` to match any number of path segments, including none
   5720 ---- `{}` to group conditions (e.g. `**/*.{ts,js}` matches all TypeScript and JavaScript files)
   5721 ---- `[]` to declare a range of characters to match in a path segment (e.g., `example.[0-9]` to match on `example.0`, `example.1`, …)
   5722 ---- `[!...]` 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`)
   5723 ---
   5724 ---@since 3.17.0
   5725 ---@alias lsp.Pattern string
   5726 
   5727 ---@alias lsp.RegularExpressionEngineKind string
   5728 
   5729 ---@class lsp._anonym1.range
   5730 
   5731 ---@class lsp._anonym2.range