mirror of
https://github.com/neovim/neovim
synced 2025-07-16 01:01:49 +00:00
refactor(api): use typed keysets
Initially this is just for geting rid of boilerplate, but eventually the types could get exposed as metadata
This commit is contained in:
@ -260,19 +260,18 @@ local function get_api_keysets()
|
||||
|
||||
local ret = {} --- @type table<string, vim.EvalFn>
|
||||
|
||||
--- @type {[1]: string, [2]: {[1]: string, [2]: string}[] }[]
|
||||
--- @type {name: string, keys: string[], types: table<string,string>}[]
|
||||
local keysets = metadata.keysets
|
||||
|
||||
for _, keyset in ipairs(keysets) do
|
||||
local kname = keyset[1]
|
||||
local kdef = keyset[2]
|
||||
for _, field in ipairs(kdef) do
|
||||
field[2] = api_type(field[2])
|
||||
for _, k in ipairs(keysets) do
|
||||
local params = {}
|
||||
for _, key in ipairs(k.keys) do
|
||||
table.insert(params, {key, api_type(k.types[key] or 'any')})
|
||||
end
|
||||
ret[kname] = {
|
||||
ret[k.name] = {
|
||||
signature = 'NA',
|
||||
name = kname,
|
||||
params = kdef,
|
||||
name = k.name,
|
||||
params = params,
|
||||
}
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user