diff options
author | ckelsel <ckelsel@hotmail.com> | 2018-01-15 19:41:29 +0800 |
---|---|---|
committer | ckelsel <ckelsel@hotmail.com> | 2018-01-15 19:48:18 +0800 |
commit | 28998cfd815abd690ffa0b9bab786263af619008 (patch) | |
tree | 93bd429b1b7e777d641d303cc0588b5556f5c6bc /src/nvim/getchar.c | |
parent | 63bb7198dfded8a5c37195ebc8503516a1eda0f3 (diff) | |
download | rneovim-28998cfd815abd690ffa0b9bab786263af619008.tar.gz rneovim-28998cfd815abd690ffa0b9bab786263af619008.tar.bz2 rneovim-28998cfd815abd690ffa0b9bab786263af619008.zip |
vim-patch:8.0.0402: :map completion does not have <special>
Problem: :map completion does not have <special>. (Dominique Pelle)
Solution: Recognize <special> in completion. Add a test.
https://github.com/vim/vim/commit/cf5fdf7d1689ecb145b634dcb9c6e9fc60f63869
Diffstat (limited to 'src/nvim/getchar.c')
-rw-r--r-- | src/nvim/getchar.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c index 1b5d3472ab..7df1bf8429 100644 --- a/src/nvim/getchar.c +++ b/src/nvim/getchar.c @@ -3366,6 +3366,10 @@ set_context_in_map_cmd ( arg = skipwhite(arg + 8); continue; } + if (STRNCMP(arg, "<special>", 9) == 0) { + arg = skipwhite(arg + 9); + continue; + } if (STRNCMP(arg, "<script>", 8) == 0) { arg = skipwhite(arg + 8); continue; @@ -3408,21 +3412,24 @@ int ExpandMappings(regmatch_T *regmatch, int *num_file, char_u ***file) for (round = 1; round <= 2; ++round) { count = 0; - for (i = 0; i < 6; ++i) { - if (i == 0) + for (i = 0; i < 7; i++) { + if (i == 0) { p = (char_u *)"<silent>"; - else if (i == 1) + } else if (i == 1) { p = (char_u *)"<unique>"; - else if (i == 2) + } else if (i == 2) { p = (char_u *)"<script>"; - else if (i == 3) + } else if (i == 3) { p = (char_u *)"<expr>"; - else if (i == 4 && !expand_buffer) + } else if (i == 4 && !expand_buffer) { p = (char_u *)"<buffer>"; - else if (i == 5) + } else if (i == 5) { p = (char_u *)"<nowait>"; - else + } else if (i == 6) { + p = (char_u *)"<special>"; + } else { continue; + } if (vim_regexec(regmatch, p, (colnr_T)0)) { if (round == 1) |