mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 03:18:16 +00:00
vim-patch:9.1.0996: ComplMatchIns may highlight wrong text (#31931)
Problem: ComplMatchIns may highlight wrong text
Solution: don't highlight in case of fuzzy match,
skip-highlight when not inserting anything
(glepnir)
closes: vim/vim#16404
e890887b80
This commit is contained in:
@@ -966,7 +966,11 @@ static void ins_compl_insert_bytes(char *p, int len)
|
|||||||
/// -1 mean normal item.
|
/// -1 mean normal item.
|
||||||
int ins_compl_col_range_attr(int col)
|
int ins_compl_col_range_attr(int col)
|
||||||
{
|
{
|
||||||
if (col >= compl_col && col < compl_ins_end_col) {
|
if (get_cot_flags() & kOptCotFlagFuzzy) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (col >= (compl_col + (int)compl_leader.size) && col < compl_ins_end_col) {
|
||||||
return syn_name2attr("ComplMatchIns");
|
return syn_name2attr("ComplMatchIns");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -5853,6 +5853,39 @@ describe('builtin popupmenu', function()
|
|||||||
{2:-- INSERT --} |
|
{2:-- INSERT --} |
|
||||||
]])
|
]])
|
||||||
feed('<Esc>')
|
feed('<Esc>')
|
||||||
|
|
||||||
|
-- Does not highlight the compl leader
|
||||||
|
command('set cot+=menuone,noselect')
|
||||||
|
feed('S<C-X><C-O>')
|
||||||
|
local pum_start = [[
|
||||||
|
{10:^ }|
|
||||||
|
{n:foo }{1: }|
|
||||||
|
{n:bar }{1: }|
|
||||||
|
{n:你好 }{1: }|
|
||||||
|
{1:~ }|*15
|
||||||
|
{2:-- }{8:Back at original} |
|
||||||
|
]]
|
||||||
|
screen:expect(pum_start)
|
||||||
|
feed('f<C-N>')
|
||||||
|
screen:expect([[
|
||||||
|
{10:f}{9:oo}{10:^ }|
|
||||||
|
{s:foo }{1: }|
|
||||||
|
{1:~ }|*17
|
||||||
|
{2:-- }{5:match 1 of 3} |
|
||||||
|
]])
|
||||||
|
feed('<C-E><ESC>')
|
||||||
|
|
||||||
|
command('set cot+=fuzzy')
|
||||||
|
feed('S<C-X><C-O>')
|
||||||
|
screen:expect(pum_start)
|
||||||
|
feed('f<C-N>')
|
||||||
|
screen:expect([[
|
||||||
|
{10:foo^ }|
|
||||||
|
{s:foo }{1: }|
|
||||||
|
{1:~ }|*17
|
||||||
|
{2:-- }{5:match 1 of 3} |
|
||||||
|
]])
|
||||||
|
feed('<Esc>')
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -1817,6 +1817,20 @@ func Test_pum_matchins_highlight_combine()
|
|||||||
call VerifyScreenDump(buf, 'Test_pum_matchins_combine_06', {})
|
call VerifyScreenDump(buf, 'Test_pum_matchins_combine_06', {})
|
||||||
call term_sendkeys(buf, "\<Esc>")
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
|
|
||||||
|
" Does not highlight the compl leader
|
||||||
|
call TermWait(buf)
|
||||||
|
call term_sendkeys(buf, ":set cot+=menuone,noselect\<CR>")
|
||||||
|
call TermWait(buf)
|
||||||
|
call term_sendkeys(buf, "S\<C-X>\<C-O>f\<C-N>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_pum_matchins_combine_07', {})
|
||||||
|
call term_sendkeys(buf, "\<C-E>\<Esc>")
|
||||||
|
|
||||||
|
call term_sendkeys(buf, ":set cot+=fuzzy\<CR>")
|
||||||
|
call TermWait(buf)
|
||||||
|
call term_sendkeys(buf, "S\<C-X>\<C-O>f\<C-N>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_pum_matchins_combine_08', {})
|
||||||
|
call term_sendkeys(buf, "\<C-E>\<Esc>")
|
||||||
|
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user