aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2018-12-01 10:35:45 +0100
committerBjörn Linse <bjorn.linse@gmail.com>2018-12-01 10:37:46 +0100
commit2271b10a8e890f24d38caa7e8199ba3b83164872 (patch)
tree137f26108553f5d5d8b3ba9168a2f8ca1dcc959c
parenta9e368a7050c86dff36d80dc1cced21de14dd3ac (diff)
downloadrneovim-2271b10a8e890f24d38caa7e8199ba3b83164872.tar.gz
rneovim-2271b10a8e890f24d38caa7e8199ba3b83164872.tar.bz2
rneovim-2271b10a8e890f24d38caa7e8199ba3b83164872.zip
insert: make <cmd> mapping work in completion (CTRL-X) mode
-rw-r--r--src/nvim/edit.c3
-rw-r--r--test/functional/ex_cmds/cmd_map_spec.lua34
2 files changed, 36 insertions, 1 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 451d19b8e3..c04190eaba 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -3195,7 +3195,8 @@ static bool ins_compl_prep(int c)
/* Ignore end of Select mode mapping and mouse scroll buttons. */
if (c == K_SELECT || c == K_MOUSEDOWN || c == K_MOUSEUP
- || c == K_MOUSELEFT || c == K_MOUSERIGHT || c == K_EVENT) {
+ || c == K_MOUSELEFT || c == K_MOUSERIGHT || c == K_EVENT
+ || c == K_COMMAND) {
return retval;
}
diff --git a/test/functional/ex_cmds/cmd_map_spec.lua b/test/functional/ex_cmds/cmd_map_spec.lua
index 67b3ab49d6..a5ce1abff7 100644
--- a/test/functional/ex_cmds/cmd_map_spec.lua
+++ b/test/functional/ex_cmds/cmd_map_spec.lua
@@ -29,6 +29,9 @@ describe('mappings with <Cmd>', function()
[5] = {background = Screen.colors.LightGrey},
[6] = {foreground = Screen.colors.Blue1},
[7] = {bold = true, reverse = true},
+ [8] = {background = Screen.colors.WebGray},
+ [9] = {background = Screen.colors.LightMagenta},
+ [10] = {foreground = Screen.colors.Red},
})
screen:attach()
@@ -656,6 +659,37 @@ describe('mappings with <Cmd>', function()
eq('n', eval('mode(1)'))
end)
+ it('works in insert completion (Ctrl-X) mode', function()
+ feed('os<c-x><c-n>')
+ screen:expect([[
+ some short lines |
+ some^ |
+ {8:some } |
+ {9:short }{1: }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {4:-- Keyword Local completion (^N^P) }{3:match 1 of 2} |
+ ]])
+
+ feed('<f3>')
+ eq('ic', eval('m'))
+
+ -- ensure a redraw, this would have moved the cursor
+ -- instead if CTRL-X mode was left.
+ feed('<up>')
+ screen:expect([[
+ some short lines |
+ some^ |
+ {9:some } |
+ {9:short }{1: }|
+ {1:~ }|
+ {1:~ }|
+ {1:~ }|
+ {4:-- Keyword Local completion (^N^P) }{10:Back at original} |
+ ]])
+ end)
+
it('works in cmdline mode', function()
feed(':text<F3>')
eq('c', eval('m'))