aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-02-20 08:24:49 +0800
committerGitHub <noreply@github.com>2023-02-20 08:24:49 +0800
commit8784f064f15e5ae0b6bc85c2972ec16c64656e2b (patch)
tree43f623d6fe8257aa5ca9d1da7011bb84ca9dc12e
parent020d3e355e457fb18f9810cdbb2f8b26898b4fe3 (diff)
downloadrneovim-8784f064f15e5ae0b6bc85c2972ec16c64656e2b.tar.gz
rneovim-8784f064f15e5ae0b6bc85c2972ec16c64656e2b.tar.bz2
rneovim-8784f064f15e5ae0b6bc85c2972ec16c64656e2b.zip
vim-patch:9.0.1329: completion of map includes simplified ones (#22335)
Problem: Completion of map includes simplified ones. Solution: Do not complete simplified mappings. (closes vim/vim#12013) https://github.com/vim/vim/commit/997b8a015cd39141866e953651d55c705275cbd6
-rw-r--r--src/nvim/mapping.c2
-rw-r--r--src/nvim/testdir/test_mapping.vim9
2 files changed, 6 insertions, 5 deletions
diff --git a/src/nvim/mapping.c b/src/nvim/mapping.c
index ce4c0586e3..3840a00981 100644
--- a/src/nvim/mapping.c
+++ b/src/nvim/mapping.c
@@ -1342,7 +1342,7 @@ int ExpandMappings(char *pat, regmatch_T *regmatch, int *numMatches, char ***mat
mp = maphash[hash];
}
for (; mp; mp = mp->m_next) {
- if (!(mp->m_mode & expand_mapmodes)) {
+ if (mp->m_simplified || !(mp->m_mode & expand_mapmodes)) {
continue;
}
diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim
index 6cf19306ec..e25c3c333e 100644
--- a/src/nvim/testdir/test_mapping.vim
+++ b/src/nvim/testdir/test_mapping.vim
@@ -759,11 +759,12 @@ func Test_mapcomplete()
call feedkeys(":abbr! \<C-A>\<C-B>\"\<CR>", 'tx')
call assert_equal("\"abbr! \x01", @:)
- " Multiple matches for a map
- nmap ,f /H<CR>
- omap ,f /H<CR>
+ " When multiple matches have the same {lhs}, it should only appear once.
+ " The simplified form should also not be included.
+ nmap ,<C-F> /H<CR>
+ omap ,<C-F> /H<CR>
call feedkeys(":map ,\<C-A>\<C-B>\"\<CR>", 'tx')
- call assert_equal('"map ,f', @:)
+ call assert_equal('"map ,<C-F>', @:)
mapclear
endfunc