aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorOlivier G-R <olivier@fractalwire.io>2019-03-26 20:44:59 +0100
committerJustin M. Keyes <justinkz@gmail.com>2019-03-29 01:11:57 +0100
commitf6fb370b1bcc5f87c72b14c5eb4f29521ab06163 (patch)
tree73ded197a0f51dac3b3d6775112387cb6212d452 /test
parent33f99431dcd4e71bdb97b6a8d73ac2a76cd7422e (diff)
downloadrneovim-f6fb370b1bcc5f87c72b14c5eb4f29521ab06163.tar.gz
rneovim-f6fb370b1bcc5f87c72b14c5eb4f29521ab06163.tar.bz2
rneovim-f6fb370b1bcc5f87c72b14c5eb4f29521ab06163.zip
keymap: add more (keypad) keycodes #9793
- K_KORIGIN instead of K_KCENTER: This name is similar to what is used by xev. Alternative could be K_KBEGIN as hinted here: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-PC-Style-Function-Keys But I find Begin and Home too similar, and it might induced some confusion. The naming looked related to some old keyboard configuration. - keymap.c: alias KPPeriod to kDel instead of kPoint. This might seems weird, but this is actually the behaviour that should be expected. libtermkey produces "KPPeriod" when num lock is off. To fix this would need to change this name in termkey. closes #9780 closes #9793
Diffstat (limited to 'test')
-rw-r--r--test/functional/ui/input_spec.lua48
-rw-r--r--test/symbolic/klee/nvim/keymap.c20
2 files changed, 68 insertions, 0 deletions
diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua
index 850efed282..a638ec226a 100644
--- a/test/functional/ui/input_spec.lua
+++ b/test/functional/ui/input_spec.lua
@@ -30,6 +30,22 @@ describe('mappings', function()
add_mapping('<c-s-a-d-up>', '<c-s-a-d-up>')
add_mapping('<c-d-a>', '<c-d-a>')
add_mapping('<d-1>', '<d-1>')
+ add_mapping('<khome>','<khome>')
+ add_mapping('<kup>','<kup>')
+ add_mapping('<kpageup>','<kpageup>')
+ add_mapping('<kleft>','<kleft>')
+ add_mapping('<korigin>','<korigin>')
+ add_mapping('<kright>','<kright>')
+ add_mapping('<kend>','<kend>')
+ add_mapping('<kdown>','<kdown>')
+ add_mapping('<kpagedown>','<kpagedown>')
+ add_mapping('<kinsert>','<kinsert>')
+ add_mapping('<kdel>','<kdel>')
+ add_mapping('<kdivide>','<kdivide>')
+ add_mapping('<kmultiply>','<kmultiply>')
+ add_mapping('<kminus>','<kminus>')
+ add_mapping('<kplus>','<kplus>')
+ add_mapping('<kenter>','<kenter>')
end)
it('ok', function()
@@ -48,6 +64,38 @@ describe('mappings', function()
check_mapping('<c-d-a>', '<c-d-a>')
check_mapping('<d-c-a>', '<c-d-a>')
check_mapping('<d-1>', '<d-1>')
+ check_mapping('<khome>','<khome>')
+ check_mapping('<KP7>','<khome>')
+ check_mapping('<kup>','<kup>')
+ check_mapping('<KP8>','<kup>')
+ check_mapping('<kpageup>','<kpageup>')
+ check_mapping('<KP9>','<kpageup>')
+ check_mapping('<kleft>','<kleft>')
+ check_mapping('<KP4>','<kleft>')
+ check_mapping('<korigin>','<korigin>')
+ check_mapping('<KP5>','<korigin>')
+ check_mapping('<kright>','<kright>')
+ check_mapping('<KP6>','<kright>')
+ check_mapping('<kend>','<kend>')
+ check_mapping('<KP1>','<kend>')
+ check_mapping('<kdown>','<kdown>')
+ check_mapping('<KP2>','<kdown>')
+ check_mapping('<kpagedown>','<kpagedown>')
+ check_mapping('<KP3>','<kpagedown>')
+ check_mapping('<kinsert>','<kinsert>')
+ check_mapping('<KP0>','<kinsert>')
+ check_mapping('<kdel>','<kdel>')
+ check_mapping('<KPPeriod>','<kdel>')
+ check_mapping('<kdivide>','<kdivide>')
+ check_mapping('<KPDiv>','<kdivide>')
+ check_mapping('<kmultiply>','<kmultiply>')
+ check_mapping('<KPMult>','<kmultiply>')
+ check_mapping('<kminus>','<kminus>')
+ check_mapping('<KPMinus>','<kminus>')
+ check_mapping('<kplus>','<kplus>')
+ check_mapping('<KPPlus>','<kplus>')
+ check_mapping('<kenter>','<kenter>')
+ check_mapping('<KPEnter>','<kenter>')
end)
end)
diff --git a/test/symbolic/klee/nvim/keymap.c b/test/symbolic/klee/nvim/keymap.c
index a341a73689..07eb4fa70a 100644
--- a/test/symbolic/klee/nvim/keymap.c
+++ b/test/symbolic/klee/nvim/keymap.c
@@ -165,6 +165,7 @@ static const struct key_name_entry {
{ K_DEL, "Del" },
{ K_DEL, "Delete" }, // Alternative name
{ K_KDEL, "kDel" },
+ { K_KDEL, "KPPeriod" }, // termkey KPPeriod value
{ K_UP, "Up" },
{ K_DOWN, "Down" },
{ K_LEFT, "Left" },
@@ -173,6 +174,14 @@ static const struct key_name_entry {
{ K_XDOWN, "xDown" },
{ K_XLEFT, "xLeft" },
{ K_XRIGHT, "xRight" },
+ { K_KUP, "kUp" },
+ { K_KUP, "KP8" },
+ { K_KDOWN, "kDown" },
+ { K_KDOWN, "KP2" },
+ { K_KLEFT, "kLeft" },
+ { K_KLEFT, "KP4" },
+ { K_KRIGHT, "kRight" },
+ { K_KRIGHT, "KP6" },
{ K_F1, "F1" },
{ K_F2, "F2" },
@@ -225,8 +234,10 @@ static const struct key_name_entry {
{ K_INS, "Insert" },
{ K_INS, "Ins" }, // Alternative name
{ K_KINS, "kInsert" },
+ { K_KINS, "KP0" },
{ K_HOME, "Home" },
{ K_KHOME, "kHome" },
+ { K_KHOME, "KP7" },
{ K_XHOME, "xHome" },
{ K_ZHOME, "zHome" },
{ K_END, "End" },
@@ -236,13 +247,22 @@ static const struct key_name_entry {
{ K_PAGEUP, "PageUp" },
{ K_PAGEDOWN, "PageDown" },
{ K_KPAGEUP, "kPageUp" },
+ { K_KPAGEUP, "KP9" },
{ K_KPAGEDOWN, "kPageDown" },
+ { K_KPAGEDOWN, "KP3" },
+ { K_KORIGIN, "kOrigin" },
+ { K_KORIGIN, "KP5" },
{ K_KPLUS, "kPlus" },
+ { K_KPLUS, "KPPlus" },
{ K_KMINUS, "kMinus" },
+ { K_KMINUS, "KPMinus" },
{ K_KDIVIDE, "kDivide" },
+ { K_KDIVIDE, "KPDiv" },
{ K_KMULTIPLY, "kMultiply" },
+ { K_KMULTIPLY, "KPMult" },
{ K_KENTER, "kEnter" },
+ { K_KENTER, "KPEnter" },
{ K_KPOINT, "kPoint" },
{ K_K0, "k0" },