aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen_lsp.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gen_lsp.lua')
-rw-r--r--scripts/gen_lsp.lua8
1 files changed, 5 insertions, 3 deletions
diff --git a/scripts/gen_lsp.lua b/scripts/gen_lsp.lua
index ef9d6c41df..a1bcce4135 100644
--- a/scripts/gen_lsp.lua
+++ b/scripts/gen_lsp.lua
@@ -35,7 +35,8 @@ end
-- Gets the Lua symbol for a given fully-qualified LSP method name.
local function name(s)
- return s:gsub('/', '_', 3)
+ -- "$/" prefix is special: https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#dollarRequests
+ return s:gsub('^%$', 'dollar'):gsub('/', '_')
end
local function gen_methods(protocol)
@@ -48,10 +49,11 @@ local function gen_methods(protocol)
}
local indent = (' '):rep(2)
- table.sort(protocol.requests, function(a, b)
+ local all = vim.list_extend(protocol.requests, protocol.notifications)
+ table.sort(all, function(a, b)
return name(a.method) < name(b.method)
end)
- for _, item in ipairs(protocol.requests) do
+ for _, item in ipairs(all) do
if item.method then
if item.documentation then
local document = vim.split(item.documentation, '\n?\n', { trimempty = true })