diff options
Diffstat (limited to 'scripts/gen_lsp.lua')
-rw-r--r-- | scripts/gen_lsp.lua | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/scripts/gen_lsp.lua b/scripts/gen_lsp.lua index c8dcf8c018..8afbae239a 100644 --- a/scripts/gen_lsp.lua +++ b/scripts/gen_lsp.lua @@ -58,14 +58,6 @@ end ---@param protocol vim._gen_lsp.Protocol local function gen_methods(protocol) - local output = { - '-- Generated by gen_lsp.lua, keep at end of file.', - '---', - '---@enum vim.lsp.protocol.Methods', - '---@see https://microsoft.github.io/language-server-protocol/specification/#metaModel', - '--- LSP method names.', - 'protocol.Methods = {', - } local indent = (' '):rep(2) --- @class vim._gen_lsp.Request @@ -98,6 +90,41 @@ local function gen_methods(protocol) table.sort(all, function(a, b) return to_luaname(a.method) < to_luaname(b.method) end) + + local output = { + '-- Generated by gen_lsp.lua, keep at end of file.', + '--- @alias vim.lsp.protocol.Method.ClientToServer', + } + for _, item in ipairs(all) do + if item.method and item.messageDirection == 'clientToServer' then + output[#output + 1] = ("--- | '%s',"):format(item.method) + end + end + + vim.list_extend(output, { + '', + '--- @alias vim.lsp.protocol.Method.ServerToClient', + }) + for _, item in ipairs(all) do + if item.method and item.messageDirection == 'serverToClient' then + output[#output + 1] = ("--- | '%s',"):format(item.method) + end + end + + vim.list_extend(output, { + '', + '--- @alias vim.lsp.protocol.Method', + '--- | vim.lsp.protocol.Method.ClientToServer', + '--- | vim.lsp.protocol.Method.ServerToClient', + '', + '-- Generated by gen_lsp.lua, keep at end of file.', + '---', + '--- @enum vim.lsp.protocol.Methods', + '--- @see https://microsoft.github.io/language-server-protocol/specification/#metaModel', + '--- LSP method names.', + 'protocol.Methods = {', + }) + for _, item in ipairs(all) do if item.method then if item.documentation then |