mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
feat(gen_lsp.lua): protocol.Methods #24504
This commit is contained in:
parent
e55e80d51c
commit
da09f9b551
@ -2189,6 +2189,12 @@ make_client_capabilities()
|
||||
Return: ~
|
||||
lsp.ClientCapabilities
|
||||
|
||||
Methods *vim.lsp.protocol.Methods*
|
||||
LSP method names.
|
||||
|
||||
See also: ~
|
||||
• https://microsoft.github.io/language-server-protocol/specifications/specification-current/#metaModel
|
||||
|
||||
*vim.lsp.protocol.resolve_capabilities()*
|
||||
resolve_capabilities({server_capabilities})
|
||||
Creates a normalized object describing LSP server capabilities.
|
||||
|
@ -176,6 +176,8 @@ The following changes to existing APIs or features add new behavior.
|
||||
supports it, unless |'keywordprg'| was customized before calling
|
||||
|vim.lsp.start()|.
|
||||
|
||||
• |vim.lsp.protocol.Methods| all the lsp methods constants.
|
||||
|
||||
==============================================================================
|
||||
REMOVED FEATURES *news-removed*
|
||||
|
||||
|
@ -923,4 +923,274 @@ function protocol.resolve_capabilities(server_capabilities)
|
||||
return server_capabilities
|
||||
end
|
||||
|
||||
-- Generated by lsp_types.lua, keep at end of file.
|
||||
--- LSP method names.
|
||||
---
|
||||
---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#metaModel
|
||||
protocol.Methods = {
|
||||
--- 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 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',
|
||||
--- 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',
|
||||
--- 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 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 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',
|
||||
--- 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',
|
||||
--- 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 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 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',
|
||||
--- 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',
|
||||
--- @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',
|
||||
--- 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 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 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 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',
|
||||
--- The document diagnostic request definition.
|
||||
--- @since 3.17.0
|
||||
textDocument_diagnostic = 'textDocument/diagnostic',
|
||||
--- 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 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',
|
||||
--- 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',
|
||||
--- 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',
|
||||
textDocument_signatureHelp = 'textDocument/signatureHelp',
|
||||
--- 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',
|
||||
--- 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',
|
||||
--- 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 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 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 provide document links
|
||||
textDocument_documentLink = 'textDocument/documentLink',
|
||||
--- A request to to format a whole document.
|
||||
textDocument_formatting = 'textDocument/formatting',
|
||||
--- 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 format a document on type.
|
||||
textDocument_onTypeFormatting = 'textDocument/onTypeFormatting',
|
||||
--- A request to rename a symbol.
|
||||
textDocument_rename = 'textDocument/rename',
|
||||
--- A request to test and perform the setup necessary for a rename.
|
||||
--- @since 3.16 - support for default behavior
|
||||
textDocument_prepareRename = 'textDocument/prepareRename',
|
||||
--- The `workspace/workspaceFolders` is sent from the server to the client to fetch the open workspace folders.
|
||||
workspace_workspaceFolders = 'workspace/workspaceFolders',
|
||||
--- 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',
|
||||
--- @since 3.16.0
|
||||
workspace_semanticTokens_refresh = 'workspace/semanticTokens/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
|
||||
--- 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 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 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',
|
||||
--- @since 3.17.0
|
||||
workspace_inlineValue_refresh = 'workspace/inlineValue/refresh',
|
||||
--- @since 3.17.0
|
||||
workspace_inlayHint_refresh = 'workspace/inlayHint/refresh',
|
||||
--- 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 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',
|
||||
--- A request to refresh all code actions
|
||||
--- @since 3.16.0
|
||||
workspace_codeLens_refresh = 'workspace/codeLens/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',
|
||||
--- A request sent from the server to the client to modified certain resources.
|
||||
workspace_applyEdit = 'workspace/applyEdit',
|
||||
--- 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 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',
|
||||
--- 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',
|
||||
--- A request to resolve the supertypes for a given `TypeHierarchyItem`.
|
||||
--- @since 3.17.0
|
||||
typeHierarchy_supertypes = 'typeHierarchy/supertypes',
|
||||
--- A request to resolve the subtypes for a given `TypeHierarchyItem`.
|
||||
--- @since 3.17.0
|
||||
typeHierarchy_subtypes = 'typeHierarchy/subtypes',
|
||||
--- 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',
|
||||
--- 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',
|
||||
--- 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 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 the range inside the workspace
|
||||
--- symbol's location.
|
||||
--- @since 3.17.0
|
||||
workspaceSymbol_resolve = 'workspaceSymbol/resolve',
|
||||
--- A request to resolve a command for a given code lens.
|
||||
codeLens_resolve = 'codeLens/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',
|
||||
}
|
||||
local function freeze(t)
|
||||
return setmetatable({}, {
|
||||
__index = t,
|
||||
__newindex = function()
|
||||
error('cannot modify immutable table')
|
||||
end,
|
||||
})
|
||||
end
|
||||
protocol.Methods = freeze(protocol.Methods)
|
||||
|
||||
return protocol
|
||||
|
@ -1,7 +1,7 @@
|
||||
--[[
|
||||
This file is autogenerated from scripts/lsp_types.lua
|
||||
Regenerate:
|
||||
nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua
|
||||
nvim -l scripts/lsp_types.lua gen --version 3.1x --runtime/lua/vim/lsp/types/protocol.lua
|
||||
--]]
|
||||
|
||||
---@alias lsp.null nil
|
||||
|
@ -2,8 +2,9 @@
|
||||
Generates lua-ls annotations for lsp
|
||||
USAGE:
|
||||
nvim -l scripts/lsp_types.lua gen # this will overwrite runtime/lua/vim/lsp/types/protocol.lua
|
||||
nvim -l scripts/lsp_types.lua gen --build/new_lsp_types.lua
|
||||
nvim -l scripts/lsp_types.lua gen --out runtime/lua/vim/lsp/types/protocol.lua --ref 2023.0.0a2 # specify a git reference from microsoft/lsprotocol
|
||||
nvim -l scripts/lsp_types.lua gen --version 3.1x --build/new_lsp_types.lua
|
||||
nvim -l scripts/lsp_types.lua gen --version 3.1x --out runtime/lua/vim/lsp/types/protocol.lua
|
||||
nvim -l scripts/lsp_types.lua gen --version 3.1x --methods
|
||||
--]]
|
||||
|
||||
local M = {}
|
||||
@ -18,24 +19,117 @@ local function tofile(fname, text)
|
||||
end
|
||||
end
|
||||
|
||||
function M.gen(opt)
|
||||
if vim.uv.fs_stat('./lsp.json') then
|
||||
vim.fn.delete('./lsp.json')
|
||||
local function sort_by_method(tbl)
|
||||
local single, client, textD, workspace, others = {}, {}, {}, {}, {}
|
||||
for _, item in ipairs(tbl) do
|
||||
local parts = vim.split(item.method, '/', { trimempty = true })
|
||||
if #parts == 1 then
|
||||
single[#single + 1] = item
|
||||
elseif parts[1] == 'textDocument' then
|
||||
textD[#textD + 1] = item
|
||||
elseif parts[1] == 'client' then
|
||||
client[#client + 1] = item
|
||||
elseif parts[1] == 'workspace' then
|
||||
workspace[#workspace + 1] = item
|
||||
else
|
||||
others[#others + 1] = item
|
||||
end
|
||||
end
|
||||
vim.fn.system({
|
||||
'curl',
|
||||
'https://raw.githubusercontent.com/microsoft/lsprotocol/' .. opt.ref .. '/generator/lsp.json',
|
||||
'-o',
|
||||
'./lsp.json',
|
||||
|
||||
local res = {}
|
||||
for _, item in ipairs({ single, client, textD, workspace, others }) do
|
||||
res = vim.list_extend(res, item)
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
local function read_json(opt)
|
||||
local uri = 'https://raw.githubusercontent.com/microsoft/language-server-protocol/gh-pages/_specifications/lsp/'
|
||||
.. opt.version
|
||||
.. '/metaModel/metaModel.json'
|
||||
|
||||
local res = vim.system({ 'curl', uri, '-o', '-' }):wait()
|
||||
|
||||
if res.code ~= 0 then
|
||||
io.write(res.stderr)
|
||||
return
|
||||
end
|
||||
return vim.json.decode(res.stdout)
|
||||
end
|
||||
|
||||
local function gen_methods(protocol)
|
||||
local output = {
|
||||
'-- Generated by lsp_types.lua, keep at end of file.',
|
||||
'--- LSP method names.',
|
||||
'---',
|
||||
'---@see https://microsoft.github.io/language-server-protocol/specifications/specification-current/#metaModel',
|
||||
'protocol.Methods = {',
|
||||
}
|
||||
local indent = (' '):rep(2)
|
||||
|
||||
for _, item in ipairs(sort_by_method(protocol.requests)) do
|
||||
if item.method then
|
||||
local name = item.method:gsub('/', '_', 3)
|
||||
if item.documentation then
|
||||
local document = vim.split(item.documentation, '\n?\n', { trimempty = true })
|
||||
for _, docstring in ipairs(document) do
|
||||
output[#output + 1] = indent .. '--- ' .. docstring
|
||||
end
|
||||
end
|
||||
output[#output + 1] = indent .. name .. " = '" .. item.method .. "',"
|
||||
end
|
||||
end
|
||||
output[#output + 1] = '}'
|
||||
output = vim.list_extend(
|
||||
output,
|
||||
vim.split(
|
||||
[[
|
||||
local function freeze(t)
|
||||
return setmetatable({}, {
|
||||
__index = t,
|
||||
__newindex = function()
|
||||
error('cannot modify immutable table')
|
||||
end,
|
||||
})
|
||||
local protocol = vim.fn.json_decode(vim.fn.readfile('./lsp.json'))
|
||||
vim.fn.delete('./lsp.json')
|
||||
protocol = protocol or {}
|
||||
end
|
||||
protocol.Methods = freeze(protocol.Methods)
|
||||
|
||||
return protocol
|
||||
]],
|
||||
'\n',
|
||||
{ trimempty = true }
|
||||
)
|
||||
)
|
||||
|
||||
local fname = './runtime/lua/vim/lsp/protocol.lua'
|
||||
local bufnr = vim.fn.bufadd(fname)
|
||||
vim.fn.bufload(bufnr)
|
||||
vim.api.nvim_set_current_buf(bufnr)
|
||||
local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
|
||||
local index = vim.iter(ipairs(lines)):find(function(key, item)
|
||||
return vim.startswith(item, '-- Generated by') and key or nil
|
||||
end)
|
||||
index = index and index - 1 or vim.api.nvim_buf_line_count(bufnr) - 1
|
||||
vim.api.nvim_buf_set_lines(bufnr, index, -1, true, output)
|
||||
vim.cmd.write()
|
||||
end
|
||||
|
||||
function M.gen(opt)
|
||||
local protocol = read_json(opt)
|
||||
if not protocol then
|
||||
os.exit(1)
|
||||
return
|
||||
end
|
||||
|
||||
if opt.methods then
|
||||
gen_methods(protocol)
|
||||
end
|
||||
|
||||
local output = {
|
||||
'--[[',
|
||||
'This file is autogenerated from scripts/lsp_types.lua',
|
||||
'Regenerate:',
|
||||
[=[nvim -l scripts/lsp_types.lua gen --runtime/lua/vim/lsp/types/protocol.lua]=],
|
||||
[=[nvim -l scripts/lsp_types.lua gen --version 3.1x --runtime/lua/vim/lsp/types/protocol.lua]=],
|
||||
'--]]',
|
||||
'',
|
||||
'---@alias lsp.null nil',
|
||||
@ -190,14 +284,17 @@ end
|
||||
|
||||
local opt = {
|
||||
output_file = 'runtime/lua/vim/lsp/types/protocol.lua',
|
||||
ref = 'main',
|
||||
version = nil,
|
||||
methods = nil,
|
||||
}
|
||||
|
||||
for i = 1, #_G.arg do
|
||||
if _G.arg[i] == '--out' then
|
||||
opt.output_file = _G.arg[i+1]
|
||||
elseif _G.arg[i] == '--ref' then
|
||||
opt.ref = _G.arg[i+1]
|
||||
opt.output_file = _G.arg[i + 1]
|
||||
elseif _G.arg[i] == '--version' then
|
||||
opt.version = _G.arg[i + 1]
|
||||
elseif _G.arg[i] == '--methods' then
|
||||
opt.methods = true
|
||||
elseif vim.startswith(_G.arg[i], '--') then
|
||||
opt.output_file = _G.arg[i]:sub(3)
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user