From 37316fbac641ecafde29fd750a08ece490d209c1 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 12 Jan 2025 08:04:25 +0800 Subject: [PATCH] vim-patch:9.1.1005: completion text is highlighted even with no pattern found (#31973) Problem: completion text is highlighted even with no pattern found Solution: use ins_compl_leader_len() instead of checking compl_leader.length (glepnir) closes: vim/vim#16422 https://github.com/vim/vim/commit/9fddb8ae770be3e16545dd4c2f4cfaad8f62cb40 Co-authored-by: glepnir --- src/nvim/insexpand.c | 2 +- test/functional/ui/popupmenu_spec.lua | 11 ++++++++++- test/old/testdir/test_popup.vim | 7 +++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index d1559b00f1..22643457d6 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -970,7 +970,7 @@ int ins_compl_col_range_attr(int col) return -1; } - if (col >= (compl_col + (int)compl_leader.size) && col < compl_ins_end_col) { + if (col >= (compl_col + (int)ins_compl_leader_len()) && col < compl_ins_end_col) { return syn_name2attr("ComplMatchIns"); } diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index 66b62341a9..b763f4ba6c 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -5885,7 +5885,16 @@ describe('builtin popupmenu', function() {1:~ }|*17 {2:-- }{5:match 1 of 3} | ]]) - feed('') + feed('') + + command('set cot-=fuzzy') + feed('Sf') + screen:expect([[ + {10:f^ }| + {1:~ }|*18 + {2:-- }{6:Pattern not found} | + ]]) + feed('') end) end end diff --git a/test/old/testdir/test_popup.vim b/test/old/testdir/test_popup.vim index 7f570182e4..31cfc2d096 100644 --- a/test/old/testdir/test_popup.vim +++ b/test/old/testdir/test_popup.vim @@ -1830,6 +1830,13 @@ func Test_pum_matchins_highlight_combine() call term_sendkeys(buf, "S\\f\") call VerifyScreenDump(buf, 'Test_pum_matchins_combine_08', {}) call term_sendkeys(buf, "\\") + call TermWait(buf) + + call term_sendkeys(buf, ":set cot-=fuzzy\") + call TermWait(buf) + call term_sendkeys(buf, "Sf\") + call VerifyScreenDump(buf, 'Test_pum_matchins_combine_09', {}) + call term_sendkeys(buf, "\\") call StopVimInTerminal(buf) endfunc