aboutsummaryrefslogtreecommitdiff
path: root/src/gen
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-03-07 13:07:50 +0800
committerzeertzjq <zeertzjq@outlook.com>2025-03-08 05:45:38 +0800
commit3824f52e52ef95342788042a69e142e2aef72243 (patch)
tree1b160b87d8afb42ae3ec00dcd5b91c351407c582 /src/gen
parent3d49c55d3c33a243f4236cf57b179608c288b145 (diff)
downloadrneovim-3824f52e52ef95342788042a69e142e2aef72243.tar.gz
rneovim-3824f52e52ef95342788042a69e142e2aef72243.tar.bz2
rneovim-3824f52e52ef95342788042a69e142e2aef72243.zip
refactor(keycodes): generate key_names_table[] using Lua
This allows easier refactoring.
Diffstat (limited to 'src/gen')
-rw-r--r--src/gen/gen_keycodes.lua19
1 files changed, 19 insertions, 0 deletions
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()