vim-patch:9.1.0690: cannot set special highlight kind in popupmenu (#30128)

Problem:  cannot set special highlight kind in popupmenu
Solution: add kind_hlgroup item to complete function
          (glepnir)

closes: vim/vim#15561

38f99a1f0d

Co-authored-by: glepnir <glephunter@gmail.com>
This commit is contained in:
zeertzjq
2024-08-24 08:38:05 +08:00
committed by GitHub
parent 2c6222c56b
commit bb4b6b427c
6 changed files with 109 additions and 10 deletions

View File

@@ -5011,6 +5011,47 @@ describe('builtin popupmenu', function()
]])
feed('<C-E><Esc>')
end)
-- oldtest: Test_pum_user_kind_hlgroup()
it('custom kind_hlgroup override', function()
exec([[
func CompleteFunc( findstart, base )
if a:findstart
return 0
endif
return {
\ 'words': [
\ { 'word': 'aword1', 'menu': 'extra text 1', 'kind': 'variable', 'kind_hlgroup': 'KindVar', 'hl_group': 'StrikeFake' },
\ { 'word': 'aword2', 'menu': 'extra text 2', 'kind': 'function', 'kind_hlgroup': 'KindFunc' },
\ { 'word': '你好', 'menu': 'extra text 3', 'kind': 'class', 'kind_hlgroup': 'KindClass' },
\]}
endfunc
set completeopt=menu
set completefunc=CompleteFunc
hi StrikeFake guifg=DarkRed
hi KindVar guifg=DarkYellow
hi KindFunc guifg=DarkBlue
hi KindClass guifg=DarkGreen
]])
local attr_ids = screen:get_default_attr_ids()
attr_ids.kvs = { foreground = Screen.colors.DarkYellow, background = Screen.colors.Grey }
attr_ids.kfn = { foreground = Screen.colors.DarkBlue, background = Screen.colors.Plum1 }
attr_ids.kcn = { foreground = Screen.colors.DarkGreen, background = Screen.colors.Plum1 }
screen:set_default_attr_ids(attr_ids)
feed('S<C-X><C-U>')
screen:expect([[
aword1^ |
{ds:aword1 }{kvs:variable }{ds:extra text 1 }{1: }|
{n:aword2 }{kfn:function }{n:extra text 2 }{1: }|
{n:你好 }{kcn:class }{n:extra text 3 }{1: }|
{1:~ }|*15
{2:-- }{5:match 1 of 3} |
]])
feed('<C-E><Esc>')
end)
end
end