From 05eca4c04d4d2cc6ad3a2af69d76085135e9b16c Mon Sep 17 00:00:00 2001 From: glepnir Date: Tue, 24 Dec 2024 18:12:50 +0800 Subject: vim-patch:9.1.0956: completion may crash, completion highlight wrong with preview window Problem: completion may crash, completion highlight wrong with preview window (after v9.1.0954) Solution: correctly calculate scroll offset, check for preview window when adding extra highlighting (glepnir) when there have a preview window prepare_tagpreview will change curwin to preview window and this may cause ComplMatchIns check condition not correct. check wp is curwin and also the type of wp is not a preview or poup info fixes: https://github.com/vim/vim/issues/16284 closes: https://github.com/vim/vim/pull/16283 https://github.com/vim/vim/commit/8d0bb6dc9f2e5d94ebb59671d592c1b7fa325ca6 --- test/functional/ui/popupmenu_spec.lua | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'test/functional/ui/popupmenu_spec.lua') diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index 75421c6998..d1228d3607 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -5567,11 +5567,15 @@ describe('builtin popupmenu', function() -- oldtest: Test_pum_matchins_highlight() it('with ComplMatchIns highlight', function() exec([[ + let g:change = 0 func Omni_test(findstart, base) if a:findstart return col(".") endif - return [#{word: "foo"}, #{word: "bar"}, #{word: "你好"}] + if g:change == 0 + return [#{word: "foo"}, #{word: "bar"}, #{word: "你好"}] + endif + return [#{word: "foo", info: "info"}, #{word: "bar"}, #{word: "你好"}] endfunc set omnifunc=Omni_test hi ComplMatchIns guifg=red @@ -5663,6 +5667,21 @@ describe('builtin popupmenu', function() {2:-- INSERT --} | ]]) feed('') + + feed(':let g:change=1S') + screen:expect([[ + info | + {1:~ }|*2 + {3:[Scratch] [Preview] }| + {8:foo}^ | + {s:foo }{1: }| + {n:bar }{1: }| + {n:你好 }{1: }| + {1:~ }|*10 + {4:[No Name] [+] }| + {2:-- }{5:match 1 of 3} | + ]]) + feed('') end) -- oldtest: Test_pum_matchins_highlight_combine() -- cgit