feat(lsp): update LSP types

This commit is contained in:
Maria José Solano
2025-02-17 17:52:55 -08:00
parent a75b09019f
commit ae2fd91b41
2 changed files with 229 additions and 13 deletions

View File

@ -775,6 +775,42 @@ error('Cannot require a meta file')
---@proposed
---@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.TextDocumentRegistrationOptions, lsp.StaticRegistrationOptions
---Parameters for the `workspace/textDocumentContent` request.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentParams
---
---The uri of the text document.
---@field uri lsp.DocumentUri
---Result of the `workspace/textDocumentContent` request.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentResult
---
---The text content of the text document. Please note, that the content of
---any subsequent open notifications for the text document might differ
---from the returned content due to whitespace and line ending
---normalizations done on the client
---@field text string
---Text document content provider registration options.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentRegistrationOptions: lsp.TextDocumentContentOptions, lsp.StaticRegistrationOptions
---Parameters for the `workspace/textDocumentContent/refresh` request.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentRefreshParams
---
---The uri of the text document to refresh.
---@field uri lsp.DocumentUri
---@class lsp.RegistrationParams
---
---@field registrations lsp.Registration[]
@ -1113,7 +1149,9 @@ error('Cannot require a meta file')
---be used if a completion item itself doesn't specify the value.
---
---If a completion list specifies a default value and a completion item
---also specifies a corresponding value the one from the item is used.
---also specifies a corresponding value, the rules for combining these are
---defined by `applyKinds` (if the client supports it), defaulting to
---ApplyKind.Replace.
---
---Servers are only allowed to return default values if the client
---signals support for this via the `completionList.itemDefaults`
@ -1122,6 +1160,25 @@ error('Cannot require a meta file')
---@since 3.17.0
---@field itemDefaults? lsp.CompletionItemDefaults
---
---Specifies how fields from a completion item should be combined with those
---from `completionList.itemDefaults`.
---
---If unspecified, all fields will be treated as ApplyKind.Replace.
---
---If a field's value is ApplyKind.Replace, the value from a completion item
---(if provided and not `null`) will always be used instead of the value
---from `completionItem.itemDefaults`.
---
---If a field's value is ApplyKind.Merge, the values will be merged using
---the rules defined against each field below.
---
---Servers are only allowed to return `applyKind` if the client
---signals support for this via the `completionList.applyKindSupport`
---capability.
---
---@since 3.18.0
---@field applyKind? lsp.CompletionItemApplyKinds
---
---The completion items.
---@field items lsp.CompletionItem[]
@ -1381,6 +1438,11 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@field data? lsp.LSPAny
---
---Tags for this code action.
---
---@since 3.18.0 - proposed
---@field tags? lsp.CodeActionTag[]
---Registration options for a {@link CodeActionRequest}.
---@class lsp.CodeActionRegistrationOptions: lsp.TextDocumentRegistrationOptions, lsp.CodeActionOptions
@ -1842,18 +1904,12 @@ error('Cannot require a meta file')
---@class lsp.Position
---
---Line position in a document (zero-based).
---
---If a line number is greater than the number of lines in a document, it defaults back to the number of lines in the document.
---If a line number is negative, it defaults to 0.
---@field line uinteger
---
---Character offset on a line in a document (zero-based).
---
---The meaning of this offset is determined by the negotiated
---`PositionEncodingKind`.
---
---If the character value is greater than the line length it defaults back to the
---line length.
---@field character uinteger
---@class lsp.SelectionRangeOptions: lsp.WorkDoneProgressOptions
@ -2360,6 +2416,15 @@ error('Cannot require a meta file')
---@proposed
---@class lsp.InlineCompletionOptions: lsp.WorkDoneProgressOptions
---Text document content provider options.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentOptions
---
---The schemes for which the server provides content.
---@field schemes string[]
---General parameters to register for a notification or to register a provider.
---@class lsp.Registration
---
@ -2720,7 +2785,9 @@ error('Cannot require a meta file')
---be used if a completion item itself doesn't specify the value.
---
---If a completion list specifies a default value and a completion item
---also specifies a corresponding value the one from the item is used.
---also specifies a corresponding value, the rules for combining these are
---defined by `applyKinds` (if the client supports it), defaulting to
---ApplyKind.Replace.
---
---Servers are only allowed to return default values if the client
---signals support for this via the `completionList.itemDefaults`
@ -2754,6 +2821,66 @@ error('Cannot require a meta file')
---@since 3.17.0
---@field data? lsp.LSPAny
---Specifies how fields from a completion item should be combined with those
---from `completionList.itemDefaults`.
---
---If unspecified, all fields will be treated as ApplyKind.Replace.
---
---If a field's value is ApplyKind.Replace, the value from a completion item (if
---provided and not `null`) will always be used instead of the value from
---`completionItem.itemDefaults`.
---
---If a field's value is ApplyKind.Merge, the values will be merged using the rules
---defined against each field below.
---
---Servers are only allowed to return `applyKind` if the client
---signals support for this via the `completionList.applyKindSupport`
---capability.
---
---@since 3.18.0
---@class lsp.CompletionItemApplyKinds
---
---Specifies whether commitCharacters on a completion will replace or be
---merged with those in `completionList.itemDefaults.commitCharacters`.
---
---If ApplyKind.Replace, the commit characters from the completion item will
---always be used unless not provided, in which case those from
---`completionList.itemDefaults.commitCharacters` will be used. An
---empty list can be used if a completion item does not have any commit
---characters and also should not use those from
---`completionList.itemDefaults.commitCharacters`.
---
---If ApplyKind.Merge the commitCharacters for the completion will be the
---union of all values in both `completionList.itemDefaults.commitCharacters`
---and the completion's own `commitCharacters`.
---
---@since 3.18.0
---@field commitCharacters? lsp.ApplyKind
---
---Specifies whether the `data` field on a completion will replace or
---be merged with data from `completionList.itemDefaults.data`.
---
---If ApplyKind.Replace, the data from the completion item will be used if
---provided (and not `null`), otherwise
---`completionList.itemDefaults.data` will be used. An empty object can
---be used if a completion item does not have any data but also should
---not use the value from `completionList.itemDefaults.data`.
---
---If ApplyKind.Merge, a shallow merge will be performed between
---`completionList.itemDefaults.data` and the completion's own data
---using the following rules:
---
---- If a completion's `data` field is not provided (or `null`), the
--- entire `data` field from `completionList.itemDefaults.data` will be
--- used as-is.
---- If a completion's `data` field is provided, each field will
--- overwrite the field of the same name in
--- `completionList.itemDefaults.data` but no merging of nested fields
--- within that value will occur.
---
---@since 3.18.0
---@field data? lsp.ApplyKind
---Completion options.
---@class lsp.CompletionOptions: lsp.WorkDoneProgressOptions
---
@ -3358,6 +3485,12 @@ error('Cannot require a meta file')
---
---@since 3.16.0
---@field fileOperations? lsp.FileOperationOptions
---
---The server supports the `workspace/textDocumentContent` request.
---
---@since 3.18.0
---@proposed
---@field textDocumentContent? lsp.TextDocumentContentOptions|lsp.TextDocumentContentRegistrationOptions
---@since 3.18.0
---@class lsp.TextDocumentContentChangePartial
@ -3603,6 +3736,12 @@ error('Cannot require a meta file')
---@since 3.18.0
---@proposed
---@field foldingRange? lsp.FoldingRangeWorkspaceClientCapabilities
---
---Capabilities specific to the `workspace/textDocumentContent` request.
---
---@since 3.18.0
---@proposed
---@field textDocumentContent? lsp.TextDocumentContentClientCapabilities
---Text document specific client capabilities.
---@class lsp.TextDocumentClientCapabilities
@ -3610,6 +3749,11 @@ error('Cannot require a meta file')
---Defines which synchronization capabilities the client supports.
---@field synchronization? lsp.TextDocumentSyncClientCapabilities
---
---Defines which filters the client supports.
---
---@since 3.18.0
---@field filters? lsp.TextDocumentFilterClientCapabilities
---
---Capabilities specific to the `textDocument/completion` request.
---@field completion? lsp.CompletionClientCapabilities
---
@ -3872,7 +4016,9 @@ error('Cannot require a meta file')
---
---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
---
---@since 3.18.0 - support for relative patterns.
---@since 3.18.0 - support for relative patterns. Whether clients support
---relative patterns depends on the client capability
---`textDocuments.filters.relativePatternSupport`.
---@field pattern? lsp.GlobPattern
---A document filter where `scheme` is required field.
@ -3888,7 +4034,9 @@ error('Cannot require a meta file')
---
---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
---
---@since 3.18.0 - support for relative patterns.
---@since 3.18.0 - support for relative patterns. Whether clients support
---relative patterns depends on the client capability
---`textDocuments.filters.relativePatternSupport`.
---@field pattern? lsp.GlobPattern
---A document filter where `pattern` is required field.
@ -3904,7 +4052,9 @@ error('Cannot require a meta file')
---
---A glob pattern, like **/*.{ts,js}. See TextDocumentFilter for examples.
---
---@since 3.18.0 - support for relative patterns.
---@since 3.18.0 - support for relative patterns. Whether clients support
---relative patterns depends on the client capability
---`textDocuments.filters.relativePatternSupport`.
---@field pattern lsp.GlobPattern
---A notebook document filter where `notebookType` is required field.
@ -4167,6 +4317,15 @@ error('Cannot require a meta file')
---@proposed
---@field refreshSupport? boolean
---Client capabilities for a text document content provider.
---
---@since 3.18.0
---@proposed
---@class lsp.TextDocumentContentClientCapabilities
---
---Text document content provider supports dynamic registration.
---@field dynamicRegistration? boolean
---@class lsp.TextDocumentSyncClientCapabilities
---
---Whether text document synchronization supports dynamic registration.
@ -4183,6 +4342,13 @@ error('Cannot require a meta file')
---The client supports did save notifications.
---@field didSave? boolean
---@class lsp.TextDocumentFilterClientCapabilities
---
---The client supports Relative Patterns.
---
---@since 3.18.0
---@field relativePatternSupport? boolean
---Completion client capabilities
---@class lsp.CompletionClientCapabilities
---
@ -4376,6 +4542,12 @@ error('Cannot require a meta file')
---@since 3.18.0
---@proposed
---@field documentationSupport? boolean
---
---Client supports the tag property on a code action. Clients
---supporting tags have to handle unknown tags gracefully.
---
---@since 3.18.0 - proposed
---@field tagSupport? lsp.CodeActionTagOptions
---The client capabilities of a {@link CodeLensRequest}.
---@class lsp.CodeLensClientCapabilities
@ -4822,6 +4994,19 @@ error('Cannot require a meta file')
---
---@since 3.17.0
---@field itemDefaults? string[]
---
---Specifies whether the client supports `CompletionList.applyKind` to
---indicate how supported values from `completionList.itemDefaults`
---and `completion` will be combined.
---
---If a client supports `applyKind` it must support it for all fields
---that it supports that are listed in `CompletionList.applyKind`. This
---means when clients add support for new/future fields in completion
---items the MUST also support merge for them if those fields are
---defined in `CompletionList.applyKind`.
---
---@since 3.18.0
---@field applyKindSupport? boolean
---@since 3.18.0
---@class lsp.ClientSignatureInformationOptions
@ -4860,6 +5045,12 @@ error('Cannot require a meta file')
---The properties that a client can resolve lazily.
---@field properties string[]
---@since 3.18.0 - proposed
---@class lsp.CodeActionTagOptions
---
---The tags supported by the client.
---@field valueSet lsp.CodeActionTag[]
---@since 3.18.0
---@class lsp.ClientCodeLensResolveOptions
---
@ -5208,6 +5399,12 @@ error('Cannot require a meta file')
---| "source.fixAll" # SourceFixAll
---| "notebook" # Notebook
---Code action tags are extra annotations that tweak the behavior of a code action.
---
---@since 3.18.0 - proposed
---@alias lsp.CodeActionTag
---| 1 # LLMGenerated
---@alias lsp.TraceValue
---| "off" # Off
---| "messages" # Messages
@ -5224,7 +5421,6 @@ error('Cannot require a meta file')
---Predefined Language kinds
---@since 3.18.0
---@proposed
---@alias lsp.LanguageKind
---| "abap" # ABAP
---| "bat" # WindowsBat
@ -5335,6 +5531,14 @@ error('Cannot require a meta file')
---| 2 # TriggerCharacter
---| 3 # TriggerForIncompleteCompletions
---Defines how values from a set of defaults and an individual item will be
---merged.
---
---@since 3.18.0
---@alias lsp.ApplyKind
---| 1 # Replace
---| 2 # Merge
---How a signature help was triggered.
---
---@since 3.15.0
@ -5478,7 +5682,7 @@ error('Cannot require a meta file')
---A document filter describes a top level text document or
---a notebook cell document.
---
---@since 3.17.0 - proposed support for NotebookCellTextDocumentFilter.
---@since 3.17.0 - support for NotebookCellTextDocumentFilter.
---@alias lsp.DocumentFilter lsp.TextDocumentFilter|lsp.NotebookCellTextDocumentFilter
---LSP object definition.

View File

@ -693,6 +693,7 @@ end
--- | 'workspace/didRenameFiles',
--- | 'workspace/executeCommand',
--- | 'workspace/symbol',
--- | 'workspace/textDocumentContent',
--- | 'workspace/willCreateFiles',
--- | 'workspace/willDeleteFiles',
--- | 'workspace/willRenameFiles',
@ -716,6 +717,7 @@ end
--- | 'workspace/inlayHint/refresh',
--- | 'workspace/inlineValue/refresh',
--- | 'workspace/semanticTokens/refresh',
--- | 'workspace/textDocumentContent/refresh',
--- | 'workspace/workspaceFolders',
--- @alias vim.lsp.protocol.Method
@ -1049,6 +1051,16 @@ protocol.Methods = {
--- need to advertise support for WorkspaceSymbols via the client capability
--- `workspace.symbol.resolveSupport`.
workspace_symbol = 'workspace/symbol',
--- The `workspace/textDocumentContent` request is sent from the client to the
--- server to request the content of a text document.
--- @since 3.18.0
--- @proposed
workspace_textDocumentContent = 'workspace/textDocumentContent',
--- The `workspace/textDocumentContent` request is sent from the server to the client to refresh
--- the content of a specific text document.
--- @since 3.18.0
--- @proposed
workspace_textDocumentContent_refresh = 'workspace/textDocumentContent/refresh',
--- The will create files request is sent from the client to the server before files are actually
--- created as long as the creation is triggered from within the client.
--- The request can return a `WorkspaceEdit` which will be applied to workspace before the