aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/generators/gen_keysets.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/generators/gen_keysets.lua')
-rw-r--r--src/nvim/generators/gen_keysets.lua80
1 files changed, 0 insertions, 80 deletions
diff --git a/src/nvim/generators/gen_keysets.lua b/src/nvim/generators/gen_keysets.lua
deleted file mode 100644
index b1c1f3e2d8..0000000000
--- a/src/nvim/generators/gen_keysets.lua
+++ /dev/null
@@ -1,80 +0,0 @@
-local nvimsrcdir = arg[1]
-local shared_file = arg[2]
-local funcs_file = arg[3]
-local defs_file = arg[4]
-
-_G.vim = loadfile(shared_file)()
-
-if nvimsrcdir == '--help' then
- print([[
-Usage:
- lua gen_keyset.lua TODOFIXUPDATETHIS
-
-Will generate build/src/nvim/auto/keyset.generated.h with definition of functions
-static const array.
-]])
- os.exit(0)
-end
-
-
-package.path = nvimsrcdir .. '/?.lua;' .. package.path
-local hashy = require'generators.hashy'
-
-local funcspipe = io.open(funcs_file, 'wb')
-local defspipe = io.open(defs_file, 'wb')
-
-local keysets = require'api.keysets'
-
-local keywords = {
- register = true;
- default = true;
-}
-
-local function sanitize(key)
- if keywords[key] then
- return key .. "_"
- end
- return key
-end
-
-for _, v in ipairs(keysets) do
- local name = v[1]
- local keys = v[2]
- local neworder, hashfun = hashy.hashy_hash(name, keys, function (idx)
- return name.."_table["..idx.."].str"
- end)
-
- defspipe:write("typedef struct {\n")
- for _, key in ipairs(neworder) do
- defspipe:write(" Object "..sanitize(key)..";\n")
- end
- defspipe:write("} KeyDict_"..name..";\n\n")
-
- defspipe:write("extern KeySetLink "..name.."_table[];\n")
-
- funcspipe:write("KeySetLink "..name.."_table[] = {\n")
- for _, key in ipairs(neworder) do
- funcspipe:write(' {"'..key..'", offsetof(KeyDict_'..name..", "..sanitize(key)..")},\n")
- end
- funcspipe:write(' {NULL, 0},\n')
- funcspipe:write("};\n\n")
-
- funcspipe:write(hashfun)
-
- funcspipe:write([[
-Object *KeyDict_]]..name..[[_get_field(void *retval, const char *str, size_t len)
-{
- int hash = ]]..name..[[_hash(str, len);
- if (hash == -1) {
- return NULL;
- }
-
- return (Object *)((char *)retval + ]]..name..[[_table[hash].ptr_off);
-}
-
-]])
- defspipe:write("#define api_free_keydict_"..name.."(x) api_free_keydict(x, "..name.."_table)\n")
-end
-
-funcspipe:close()
-defspipe:close()