diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-08-24 08:38:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-24 08:38:05 +0800 |
commit | bb4b6b427c1952b4a9b72f406b913ec59f0d4d22 (patch) | |
tree | 84a311aaa5ccc422a6963724cbc7684278f3123c /test/functional/ui/popupmenu_spec.lua | |
parent | 2c6222c56b099603b20b54a51e9acaa7974b1ad4 (diff) | |
download | rneovim-bb4b6b427c1952b4a9b72f406b913ec59f0d4d22.tar.gz rneovim-bb4b6b427c1952b4a9b72f406b913ec59f0d4d22.tar.bz2 rneovim-bb4b6b427c1952b4a9b72f406b913ec59f0d4d22.zip |
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
https://github.com/vim/vim/commit/38f99a1f0d61e9bde3f4a3d0cbe2d06185c4a57f
Co-authored-by: glepnir <glephunter@gmail.com>
Diffstat (limited to 'test/functional/ui/popupmenu_spec.lua')
-rw-r--r-- | test/functional/ui/popupmenu_spec.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index c73d5bf97a..370a18b908 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -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 |