Debug Key Bindings
If you need help debugging or understanding key bindings DYI way, you can
create a test.lua
file with the following script, launch xplr with
xplr --extra-config test.lua
, press #
and play around.
-- The global key bindings inherited by all the modes.
xplr.config.general.global_key_bindings = {
on_key = {
esc = {
help = "escape",
messages = {
{ LogInfo = "global on_key(esc) called" },
"PopMode",
},
},
["ctrl-c"] = {
help = "terminate",
messages = {
"Terminate",
},
},
},
}
-- Press `#` to enter the `debug key bindings` mode.
xplr.config.modes.builtin.default.key_bindings.on_key["#"] = {
help = "test",
messages = {
"PopMode",
{ SwitchModeCustom = "debug_key_bindings" },
},
}
-- The `debug key bindings` mode.
xplr.config.modes.custom.debug_key_bindings = {
name = "debug key bindings",
key_bindings = {
on_key = {
["1"] = {
messages = {
{ LogInfo = "on_key(1) called" },
},
},
a = {
messages = {
{ LogInfo = "on_key(a) called" },
},
},
["`"] = {
messages = {
{ LogInfo = "on_key(`) called" },
},
},
tab = {
messages = {
{ LogInfo = "on_key(tab) called" },
},
},
f1 = {
messages = {
{ LogInfo = "on_key(f1) called" },
},
},
},
on_alphabet = {
messages = {
{ LogInfo = "on_alphabet called" },
},
},
on_number = {
messages = {
{ LogInfo = "on_number called" },
},
},
-- on_alphanumeric = {
-- messages = {
-- { LogInfo = "on_alphanumeric called" },
-- },
-- },
on_special_character = {
messages = {
{ LogInfo = "on_special_character called" },
},
},
-- on_character = {
-- messages = {
-- { LogInfo = "on_character called" },
-- },
-- },
on_navigation = {
messages = {
{ LogInfo = "on_navigation called" },
},
},
on_function = {
messages = {
{ LogInfo = "on_function called" },
},
},
default = {
messages = {
{ LogInfo = "default called" },
},
},
},
}