mirror of
https://github.com/neovim/neovim.git
synced 2026-02-20 01:09:56 +10:00
vim-patch:9.1.0495: Matched text isn't highlighted in cmdline pum
Problem: Matched text isn't highlighted in cmdline pum.
Solution: Use cmdline completion pattern in cmdline mode.
(zeertzjq)
closes: vim/vim#15029
d8c9340fc6
Cherry-pick syntax.txt change from runtime update.
This commit is contained in:
@@ -3550,6 +3550,66 @@ describe('builtin popupmenu', function()
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
-- oldtest: Test_wildmenu_pum_hl_match()
|
||||
it('highlighting matched text in cmdline pum', function()
|
||||
exec([[
|
||||
set wildoptions=pum,fuzzy
|
||||
hi PmenuMatchSel guifg=Blue guibg=Grey
|
||||
hi PmenuMatch guifg=Blue guibg=Magenta
|
||||
]])
|
||||
|
||||
feed(':sign plc<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{s: }{ms:pl}{s:a}{ms:c}{s:e }{1: }|
|
||||
{1:~ }{n: un}{mn:pl}{n:a}{mn:c}{n:e }{1: }|
|
||||
:sign place^ |
|
||||
]])
|
||||
feed('<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{n: }{mn:pl}{n:a}{mn:c}{n:e }{1: }|
|
||||
{1:~ }{s: un}{ms:pl}{s:a}{ms:c}{s:e }{1: }|
|
||||
:sign unplace^ |
|
||||
]])
|
||||
feed('<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{n: }{mn:pl}{n:a}{mn:c}{n:e }{1: }|
|
||||
{1:~ }{n: un}{mn:pl}{n:a}{mn:c}{n:e }{1: }|
|
||||
:sign plc^ |
|
||||
]])
|
||||
feed('<Esc>')
|
||||
command('set wildoptions-=fuzzy')
|
||||
feed(':sign un<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{s: }{ms:un}{s:define }{1: }|
|
||||
{1:~ }{n: }{mn:un}{n:place }{1: }|
|
||||
:sign undefine^ |
|
||||
]])
|
||||
feed('<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{n: }{mn:un}{n:define }{1: }|
|
||||
{1:~ }{s: }{ms:un}{s:place }{1: }|
|
||||
:sign unplace^ |
|
||||
]])
|
||||
feed('<Tab>')
|
||||
screen:expect([[
|
||||
|
|
||||
{1:~ }|*16
|
||||
{1:~ }{n: }{mn:un}{n:define }{1: }|
|
||||
{1:~ }{n: }{mn:un}{n:place }{1: }|
|
||||
:sign un^ |
|
||||
]])
|
||||
end)
|
||||
end
|
||||
|
||||
it("'pumheight'", function()
|
||||
|
||||
@@ -2923,6 +2923,37 @@ func Test_wildmenu_pum_rightleft()
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
" Test highlighting matched text in cmdline completion popup menu.
|
||||
func Test_wildmenu_pum_hl_match()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
set wildoptions=pum,fuzzy
|
||||
hi PmenuMatchSel ctermfg=6 ctermbg=7
|
||||
hi PmenuMatch ctermfg=4 ctermbg=225
|
||||
END
|
||||
call writefile(lines, 'Xwildmenu_pum_hl', 'D')
|
||||
let buf = RunVimInTerminal('-S Xwildmenu_pum_hl', #{rows: 10, cols: 50})
|
||||
|
||||
call term_sendkeys(buf, ":sign plc\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_1', {})
|
||||
call term_sendkeys(buf, "\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_2', {})
|
||||
call term_sendkeys(buf, "\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_3', {})
|
||||
call term_sendkeys(buf, "\<Esc>:set wildoptions-=fuzzy\<CR>")
|
||||
call TermWait(buf)
|
||||
call term_sendkeys(buf, ":sign un\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_4', {})
|
||||
call term_sendkeys(buf, "\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_5', {})
|
||||
call term_sendkeys(buf, "\<Tab>")
|
||||
call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_6', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
" Test for completion after a :substitute command followed by a pipe (|)
|
||||
" character
|
||||
func Test_cmdline_complete_substitute()
|
||||
|
||||
Reference in New Issue
Block a user