aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/popupmenu_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-08-24 08:38:05 +0800
committerGitHub <noreply@github.com>2024-08-24 08:38:05 +0800
commitbb4b6b427c1952b4a9b72f406b913ec59f0d4d22 (patch)
tree84a311aaa5ccc422a6963724cbc7684278f3123c /test/functional/ui/popupmenu_spec.lua
parent2c6222c56b099603b20b54a51e9acaa7974b1ad4 (diff)
downloadrneovim-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.lua41
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