From 3824f52e52ef95342788042a69e142e2aef72243 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 7 Mar 2025 13:07:50 +0800 Subject: refactor(keycodes): generate key_names_table[] using Lua This allows easier refactoring. --- src/gen/gen_keycodes.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/gen/gen_keycodes.lua (limited to 'src/gen') diff --git a/src/gen/gen_keycodes.lua b/src/gen/gen_keycodes.lua new file mode 100644 index 0000000000..fff5b59396 --- /dev/null +++ b/src/gen/gen_keycodes.lua @@ -0,0 +1,19 @@ +local names_file = arg[1] + +local keycodes = require('nvim.keycodes') +local keycode_names = keycodes.names + +local names_tgt = assert(io.open(names_file, 'w')) + +names_tgt:write([[ +static const struct key_name_entry { + int key; ///< Special key code or ascii value + const char *name; ///< Name of key +} key_names_table[] = {]]) + +for _, keycode in ipairs(keycode_names) do + names_tgt:write(('\n {%s, "%s"},'):format(keycode[1], keycode[2])) +end + +names_tgt:write('\n {0, NULL},\n};\n') +names_tgt:close() -- cgit