aboutsummaryrefslogtreecommitdiff
path: root/scripts/gen_eval_files.lua
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-08-01 14:01:19 +0200
committerbfredl <bjorn.linse@gmail.com>2023-08-07 13:11:15 +0200
commit7bc93e0e2f246dd78026a3472d929a0fe450f70d (patch)
tree9e5b99830c3f08e0ffd75c7a0533b39033490a5b /scripts/gen_eval_files.lua
parentc01e624b0762b24a4988bf9474a57d5b6278d180 (diff)
downloadrneovim-7bc93e0e2f246dd78026a3472d929a0fe450f70d.tar.gz
rneovim-7bc93e0e2f246dd78026a3472d929a0fe450f70d.tar.bz2
rneovim-7bc93e0e2f246dd78026a3472d929a0fe450f70d.zip
refactor(api): use typed keysets
Initially this is just for geting rid of boilerplate, but eventually the types could get exposed as metadata
Diffstat (limited to 'scripts/gen_eval_files.lua')
-rwxr-xr-xscripts/gen_eval_files.lua17
1 files changed, 8 insertions, 9 deletions
diff --git a/scripts/gen_eval_files.lua b/scripts/gen_eval_files.lua
index c3123fd47c..eea76958ae 100755
--- a/scripts/gen_eval_files.lua
+++ b/scripts/gen_eval_files.lua
@@ -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