diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2023-08-01 07:36:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-01 07:36:57 -0700 |
commit | dfe19d6e0047ea2a2a75dff0c57f4c4de1c0196a (patch) | |
tree | eda17150f1d1cc8985c925a1994b8ad960a48c2e /runtime/lua/vim | |
parent | 48d533272e57e91e4d14c93b26d4922957f40cd7 (diff) | |
parent | f41496ce74fb30c18bb9a03027a172800b269643 (diff) | |
download | rneovim-dfe19d6e0047ea2a2a75dff0c57f4c4de1c0196a.tar.gz rneovim-dfe19d6e0047ea2a2a75dff0c57f4c4de1c0196a.tar.bz2 rneovim-dfe19d6e0047ea2a2a75dff0c57f4c4de1c0196a.zip |
Merge #24504 feat(lsp): protocol.Methods
Diffstat (limited to 'runtime/lua/vim')
-rw-r--r-- | runtime/lua/vim/lsp/protocol.lua | 270 | ||||
-rw-r--r-- | runtime/lua/vim/lsp/types/protocol.lua | 73 |
2 files changed, 304 insertions, 39 deletions
diff --git a/runtime/lua/vim/lsp/protocol.lua b/runtime/lua/vim/lsp/protocol.lua index 31cc071d18..3844c697c6 100644 --- a/runtime/lua/vim/lsp/protocol.lua +++ b/runtime/lua/vim/lsp/protocol.lua @@ -923,4 +923,274 @@ function protocol.resolve_capabilities(server_capabilities) return server_capabilities end +-- Generated by gen_lsp.lua, keep at end of file. +--- LSP method names. +--- +---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#metaModel +protocol.Methods = { + --- A request to resolve the incoming calls for a given `CallHierarchyItem`. + --- @since 3.16.0 + callHierarchy_incomingCalls = 'callHierarchy/incomingCalls', + --- A request to resolve the outgoing calls for a given `CallHierarchyItem`. + --- @since 3.16.0 + callHierarchy_outgoingCalls = 'callHierarchy/outgoingCalls', + --- The `client/registerCapability` request is sent from the server to the client to register a new capability + --- handler on the client side. + client_registerCapability = 'client/registerCapability', + --- The `client/unregisterCapability` request is sent from the server to the client to unregister a previously registered capability + --- handler on the client side. + client_unregisterCapability = 'client/unregisterCapability', + --- Request to resolve additional information for a given code action.The request's + --- parameter is of type {@link CodeAction} the response + --- is of type {@link CodeAction} or a Thenable that resolves to such. + codeAction_resolve = 'codeAction/resolve', + --- A request to resolve a command for a given code lens. + codeLens_resolve = 'codeLens/resolve', + --- Request to resolve additional information for a given completion item.The request's + --- parameter is of type {@link CompletionItem} the response + --- is of type {@link CompletionItem} or a Thenable that resolves to such. + completionItem_resolve = 'completionItem/resolve', + --- Request to resolve additional information for a given document link. The request's + --- parameter is of type {@link DocumentLink} the response + --- is of type {@link DocumentLink} or a Thenable that resolves to such. + documentLink_resolve = 'documentLink/resolve', + --- The initialize request is sent from the client to the server. + --- It is sent once as the request after starting up the server. + --- The requests parameter is of type {@link InitializeParams} + --- the response if of type {@link InitializeResult} of a Thenable that + --- resolves to such. + initialize = 'initialize', + --- A request to resolve additional properties for an inlay hint. + --- The request's parameter is of type {@link InlayHint}, the response is + --- of type {@link InlayHint} or a Thenable that resolves to such. + --- @since 3.17.0 + inlayHint_resolve = 'inlayHint/resolve', + --- A shutdown request is sent from the client to the server. + --- It is sent once when the client decides to shutdown the + --- server. The only notification that is sent after a shutdown request + --- is the exit event. + shutdown = 'shutdown', + --- A request to provide commands for the given text document and range. + textDocument_codeAction = 'textDocument/codeAction', + --- A request to provide code lens for the given text document. + textDocument_codeLens = 'textDocument/codeLens', + --- A request to list all presentation for a color. The request's + --- parameter is of type {@link ColorPresentationParams} the + --- response is of type {@link ColorInformation ColorInformation[]} or a Thenable + --- that resolves to such. + textDocument_colorPresentation = 'textDocument/colorPresentation', + --- Request to request completion at a given text document position. The request's + --- parameter is of type {@link TextDocumentPosition} the response + --- is of type {@link CompletionItem CompletionItem[]} or {@link CompletionList} + --- or a Thenable that resolves to such. + --- The request can delay the computation of the {@link CompletionItem.detail `detail`} + --- and {@link CompletionItem.documentation `documentation`} properties to the `completionItem/resolve` + --- request. However, properties that are needed for the initial sorting and filtering, like `sortText`, + --- `filterText`, `insertText`, and `textEdit`, must not be changed during resolve. + textDocument_completion = 'textDocument/completion', + --- A request to resolve the type definition locations of a symbol at a given text + --- document position. The request's parameter is of type [TextDocumentPositionParams] + --- (#TextDocumentPositionParams) the response is of type {@link Declaration} + --- or a typed array of {@link DeclarationLink} or a Thenable that resolves + --- to such. + textDocument_declaration = 'textDocument/declaration', + --- A request to resolve the definition location of a symbol at a given text + --- document position. The request's parameter is of type [TextDocumentPosition] + --- (#TextDocumentPosition) the response is of either type {@link Definition} + --- or a typed array of {@link DefinitionLink} or a Thenable that resolves + --- to such. + textDocument_definition = 'textDocument/definition', + --- The document diagnostic request definition. + --- @since 3.17.0 + textDocument_diagnostic = 'textDocument/diagnostic', + --- A request to list all color symbols found in a given text document. The request's + --- parameter is of type {@link DocumentColorParams} the + --- response is of type {@link ColorInformation ColorInformation[]} or a Thenable + --- that resolves to such. + textDocument_documentColor = 'textDocument/documentColor', + --- Request to resolve a {@link DocumentHighlight} for a given + --- text document position. The request's parameter is of type [TextDocumentPosition] + --- (#TextDocumentPosition) the request response is of type [DocumentHighlight[]] + --- (#DocumentHighlight) or a Thenable that resolves to such. + textDocument_documentHighlight = 'textDocument/documentHighlight', + --- A request to provide document links + textDocument_documentLink = 'textDocument/documentLink', + --- A request to list all symbols found in a given text document. The request's + --- parameter is of type {@link TextDocumentIdentifier} the + --- response is of type {@link SymbolInformation SymbolInformation[]} or a Thenable + --- that resolves to such. + textDocument_documentSymbol = 'textDocument/documentSymbol', + --- A request to provide folding ranges in a document. The request's + --- parameter is of type {@link FoldingRangeParams}, the + --- response is of type {@link FoldingRangeList} or a Thenable + --- that resolves to such. + textDocument_foldingRange = 'textDocument/foldingRange', + --- A request to format a whole document. + textDocument_formatting = 'textDocument/formatting', + --- Request to request hover information at a given text document position. The request's + --- parameter is of type {@link TextDocumentPosition} the response is of + --- type {@link Hover} or a Thenable that resolves to such. + textDocument_hover = 'textDocument/hover', + --- A request to resolve the implementation locations of a symbol at a given text + --- document position. The request's parameter is of type [TextDocumentPositionParams] + --- (#TextDocumentPositionParams) the response is of type {@link Definition} or a + --- Thenable that resolves to such. + textDocument_implementation = 'textDocument/implementation', + --- A request to provide inlay hints in a document. The request's parameter is of + --- type {@link InlayHintsParams}, the response is of type + --- {@link InlayHint InlayHint[]} or a Thenable that resolves to such. + --- @since 3.17.0 + textDocument_inlayHint = 'textDocument/inlayHint', + --- A request to provide inline completions in a document. The request's parameter is of + --- type {@link InlineCompletionParams}, the response is of type + --- {@link InlineCompletion InlineCompletion[]} or a Thenable that resolves to such. + --- @since 3.18.0 + textDocument_inlineCompletion = 'textDocument/inlineCompletion', + --- A request to provide inline values in a document. The request's parameter is of + --- type {@link InlineValueParams}, the response is of type + --- {@link InlineValue InlineValue[]} or a Thenable that resolves to such. + --- @since 3.17.0 + textDocument_inlineValue = 'textDocument/inlineValue', + --- A request to provide ranges that can be edited together. + --- @since 3.16.0 + textDocument_linkedEditingRange = 'textDocument/linkedEditingRange', + --- A request to get the moniker of a symbol at a given text document position. + --- The request parameter is of type {@link TextDocumentPositionParams}. + --- The response is of type {@link Moniker Moniker[]} or `null`. + textDocument_moniker = 'textDocument/moniker', + --- A request to format a document on type. + textDocument_onTypeFormatting = 'textDocument/onTypeFormatting', + --- A request to result a `CallHierarchyItem` in a document at a given position. + --- Can be used as an input to an incoming or outgoing call hierarchy. + --- @since 3.16.0 + textDocument_prepareCallHierarchy = 'textDocument/prepareCallHierarchy', + --- A request to test and perform the setup necessary for a rename. + --- @since 3.16 - support for default behavior + textDocument_prepareRename = 'textDocument/prepareRename', + --- A request to result a `TypeHierarchyItem` in a document at a given position. + --- Can be used as an input to a subtypes or supertypes type hierarchy. + --- @since 3.17.0 + textDocument_prepareTypeHierarchy = 'textDocument/prepareTypeHierarchy', + --- A request to format a range in a document. + textDocument_rangeFormatting = 'textDocument/rangeFormatting', + --- A request to format ranges in a document. + --- @since 3.18.0 + --- @proposed + textDocument_rangesFormatting = 'textDocument/rangesFormatting', + --- A request to resolve project-wide references for the symbol denoted + --- by the given text document position. The request's parameter is of + --- type {@link ReferenceParams} the response is of type + --- {@link Location Location[]} or a Thenable that resolves to such. + textDocument_references = 'textDocument/references', + --- A request to rename a symbol. + textDocument_rename = 'textDocument/rename', + --- A request to provide selection ranges in a document. The request's + --- parameter is of type {@link SelectionRangeParams}, the + --- response is of type {@link SelectionRange SelectionRange[]} or a Thenable + --- that resolves to such. + textDocument_selectionRange = 'textDocument/selectionRange', + --- @since 3.16.0 + textDocument_semanticTokens_full = 'textDocument/semanticTokens/full', + --- @since 3.16.0 + textDocument_semanticTokens_full_delta = 'textDocument/semanticTokens/full/delta', + --- @since 3.16.0 + textDocument_semanticTokens_range = 'textDocument/semanticTokens/range', + textDocument_signatureHelp = 'textDocument/signatureHelp', + --- A request to resolve the type definition locations of a symbol at a given text + --- document position. The request's parameter is of type [TextDocumentPositionParams] + --- (#TextDocumentPositionParams) the response is of type {@link Definition} or a + --- Thenable that resolves to such. + textDocument_typeDefinition = 'textDocument/typeDefinition', + --- A document will save request is sent from the client to the server before + --- the document is actually saved. The request can return an array of TextEdits + --- which will be applied to the text document before it is saved. Please note that + --- clients might drop results if computing the text edits took too long or if a + --- server constantly fails on this request. This is done to keep the save fast and + --- reliable. + textDocument_willSaveWaitUntil = 'textDocument/willSaveWaitUntil', + --- A request to resolve the subtypes for a given `TypeHierarchyItem`. + --- @since 3.17.0 + typeHierarchy_subtypes = 'typeHierarchy/subtypes', + --- A request to resolve the supertypes for a given `TypeHierarchyItem`. + --- @since 3.17.0 + typeHierarchy_supertypes = 'typeHierarchy/supertypes', + --- A request to show a document. This request might open an + --- external program depending on the value of the URI to open. + --- For example a request to open `https://code.visualstudio.com/` + --- will very likely open the URI in a WEB browser. + --- @since 3.16.0 + window_showDocument = 'window/showDocument', + --- The show message request is sent from the server to the client to show a message + --- and a set of options actions to the user. + window_showMessageRequest = 'window/showMessageRequest', + --- The `window/workDoneProgress/create` request is sent from the server to the client to initiate progress + --- reporting from the server. + window_workDoneProgress_create = 'window/workDoneProgress/create', + --- A request to resolve the range inside the workspace + --- symbol's location. + --- @since 3.17.0 + workspaceSymbol_resolve = 'workspaceSymbol/resolve', + --- A request sent from the server to the client to modified certain resources. + workspace_applyEdit = 'workspace/applyEdit', + --- A request to refresh all code actions + --- @since 3.16.0 + workspace_codeLens_refresh = 'workspace/codeLens/refresh', + --- The 'workspace/configuration' request is sent from the server to the client to fetch a certain + --- configuration setting. + --- This pull model replaces the old push model were the client signaled configuration change via an + --- event. If the server still needs to react to configuration changes (since the server caches the + --- result of `workspace/configuration` requests) the server should register for an empty configuration + --- change event and empty the cache if such an event is received. + workspace_configuration = 'workspace/configuration', + --- The workspace diagnostic request definition. + --- @since 3.17.0 + workspace_diagnostic = 'workspace/diagnostic', + --- The diagnostic refresh request definition. + --- @since 3.17.0 + workspace_diagnostic_refresh = 'workspace/diagnostic/refresh', + --- A request send from the client to the server to execute a command. The request might return + --- a workspace edit which the client will apply to the workspace. + workspace_executeCommand = 'workspace/executeCommand', + --- @since 3.17.0 + workspace_inlayHint_refresh = 'workspace/inlayHint/refresh', + --- @since 3.17.0 + workspace_inlineValue_refresh = 'workspace/inlineValue/refresh', + --- @since 3.16.0 + workspace_semanticTokens_refresh = 'workspace/semanticTokens/refresh', + --- A request to list project-wide symbols matching the query string given + --- by the {@link WorkspaceSymbolParams}. The response is + --- of type {@link SymbolInformation SymbolInformation[]} or a Thenable that + --- resolves to such. + --- @since 3.17.0 - support for WorkspaceSymbol in the returned data. Clients + --- need to advertise support for WorkspaceSymbols via the client capability + --- `workspace.symbol.resolveSupport`. + workspace_symbol = 'workspace/symbol', + --- 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 + --- files are created. Hence the `WorkspaceEdit` can not manipulate the content of the file + --- to be created. + --- @since 3.16.0 + workspace_willCreateFiles = 'workspace/willCreateFiles', + --- The did delete files notification is sent from the client to the server when + --- files were deleted from within the client. + --- @since 3.16.0 + workspace_willDeleteFiles = 'workspace/willDeleteFiles', + --- The will rename files request is sent from the client to the server before files are actually + --- renamed as long as the rename is triggered from within the client. + --- @since 3.16.0 + workspace_willRenameFiles = 'workspace/willRenameFiles', + --- The `workspace/workspaceFolders` is sent from the server to the client to fetch the open workspace folders. + workspace_workspaceFolders = 'workspace/workspaceFolders', +} +local function freeze(t) + return setmetatable({}, { + __index = t, + __newindex = function() + error('cannot modify immutable table') + end, + }) +end +protocol.Methods = freeze(protocol.Methods) + return protocol diff --git a/runtime/lua/vim/lsp/types/protocol.lua b/runtime/lua/vim/lsp/types/protocol.lua index 4b6660eb51..e1ed8dbcc3 100644 --- a/runtime/lua/vim/lsp/types/protocol.lua +++ b/runtime/lua/vim/lsp/types/protocol.lua @@ -1,7 +1,7 @@ --[[ -This file is autogenerated from scripts/lsp_types.lua +This file is autogenerated from scripts/gen_lsp.lua Regenerate: -nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua +nvim -l scripts/gen_lsp.lua gen --version 3.18 --runtime/lua/vim/lsp/types/protocol.lua --]] ---@alias lsp.null nil @@ -611,16 +611,12 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---A parameter literal used in inline completion requests. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionParams: lsp.TextDocumentPositionParams, lsp.WorkDoneProgressParams ---Additional information about the context in which inline completions were ---requested. ---@field context lsp.InlineCompletionContext ---Represents a collection of {@link InlineCompletionItem inline completion items} to be presented in the editor. ---- ----@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionList ---The inline completion items ---@field items lsp.InlineCompletionItem[] @@ -628,10 +624,11 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---An inline completion item represents a text snippet that is proposed inline to complete text that is being typed. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionItem ---The text to replace the range with. Must be set. ----@field insertText string|lsp.StringValue +---@field insertText string +---The format of the insert text. The format applies to the `insertText`. If omitted defaults to `InsertTextFormat.PlainText`. +---@field insertTextFormat? lsp.InsertTextFormat ---A text that is used to decide if this inline completion should be shown. When `falsy` the {@link InlineCompletionItem.insertText} is used. ---@field filterText? string ---The range to replace. Must begin and end on the same line. @@ -642,7 +639,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Inline completion options used during static or dynamic registration. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionRegistrationOptions: lsp.InlineCompletionOptions, lsp.StaticRegistrationOptions ---@class lsp.RegistrationParams @@ -1249,6 +1245,18 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Registration options for a {@link DocumentRangeFormattingRequest}. ---@class lsp.DocumentRangeFormattingRegistrationOptions: lsp.TextDocumentRegistrationOptions +---The parameters of a {@link DocumentRangesFormattingRequest}. +--- +---@since 3.18.0 +---@proposed +---@class lsp.DocumentRangesFormattingParams +---The document to format. +---@field textDocument lsp.TextDocumentIdentifier +---The ranges to format +---@field ranges lsp.Range[] +---The format options +---@field options lsp.FormattingOptions + ---The parameters of a {@link DocumentOnTypeFormattingRequest}. ---@class lsp.DocumentOnTypeFormattingParams ---The document to format. @@ -1904,36 +1912,18 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Provides information about the context in which an inline completion was requested. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionContext ---Describes how the inline completion was triggered. ---@field triggerKind lsp.InlineCompletionTriggerKind ---Provides information about the currently selected item in the autocomplete widget if it is visible. ---@field selectedCompletionInfo? lsp.SelectedCompletionInfo ----A string value used as a snippet is a template which allows to insert text ----and to control the editor cursor when insertion happens. ---- ----A snippet can define tab stops and placeholders with `$1`, `$2` ----and `${3:foo}`. `$0` defines the final tab stop, it defaults to ----the end of the snippet. Variables are defined with `$name` and ----`${name:default value}`. ---- ----@since 3.18.0 ----@proposed ----@class lsp.StringValue ----The kind of string value. ----@field kind "snippet" ----The snippet string. ----@field value string - ---Inline completion options used during static registration. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionOptions ----General parameters to register for a notification or to register a provider. +---General parameters to to register for an notification or to register a provider. ---@class lsp.Registration ---The id used to register the request. The id can be used to deregister ---the request again. @@ -2104,7 +2094,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Inline completion options used during static registration. --- ---@since 3.18.0 ----@proposed ---@field inlineCompletionProvider? boolean|lsp.InlineCompletionOptions ---Workspace specific server capabilities. ---@field workspace? anonym12 @@ -2399,6 +2388,11 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Provider options for a {@link DocumentRangeFormattingRequest}. ---@class lsp.DocumentRangeFormattingOptions +---Whether the server supports formatting multiple ranges at once. +--- +---@since 3.18.0 +---@proposed +---@field rangesSupport? boolean ---Provider options for a {@link DocumentOnTypeFormattingRequest}. ---@class lsp.DocumentOnTypeFormattingOptions @@ -2548,7 +2542,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Describes the currently selected completion item. --- ---@since 3.18.0 ----@proposed ---@class lsp.SelectedCompletionInfo ---The range that will be replaced if this completion item is accepted. ---@field range lsp.Range @@ -2857,7 +2850,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Client capabilities specific to inline completions. --- ---@since 3.18.0 ----@proposed ---@field inlineCompletion? lsp.InlineCompletionClientCapabilities ---Capabilities specific to the notebook document support. @@ -3283,6 +3275,11 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---@class lsp.DocumentRangeFormattingClientCapabilities ---Whether range formatting supports dynamic registration. ---@field dynamicRegistration? boolean +---Whether the client supports formatting multiple ranges at once. +--- +---@since 3.18.0 +---@proposed +---@field rangesSupport? boolean ---Client capabilities of a {@link DocumentOnTypeFormattingRequest}. ---@class lsp.DocumentOnTypeFormattingClientCapabilities @@ -3474,7 +3471,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Client capabilities specific to inline completions. --- ---@since 3.18.0 ----@proposed ---@class lsp.InlineCompletionClientCapabilities ---Whether implementation supports dynamic registration for inline completion providers. ---@field dynamicRegistration? boolean @@ -3663,6 +3659,12 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---| 1 # Type ---| 2 # Parameter +---Defines whether the insert text in a completion item should be interpreted as +---plain text or a snippet. +---@alias lsp.InsertTextFormat +---| 1 # PlainText +---| 2 # Snippet + ---The message type ---@alias lsp.MessageType ---| 1 # Error @@ -3718,12 +3720,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---@alias lsp.CompletionItemTag ---| 1 # Deprecated ----Defines whether the insert text in a completion item should be interpreted as ----plain text or a snippet. ----@alias lsp.InsertTextFormat ----| 1 # PlainText ----| 2 # Snippet - ---How whitespace and indentation is handled during completion ---item insertion. --- @@ -3767,7 +3763,6 @@ nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua ---Describes how an {@link InlineCompletionItemProvider inline completion provider} was triggered. --- ---@since 3.18.0 ----@proposed ---@alias lsp.InlineCompletionTriggerKind ---| 0 # Invoked ---| 1 # Automatic |