From b03e790cddd19b57fa91f4fbfcc30c28f3c173bf Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 17 Dec 2024 11:34:30 +0800 Subject: vim-patch:9.1.0934: hard to view an existing buffer in the preview window (#31605) Problem: hard to view an existing buffer in the preview window Solution: add the :pbuffer command (Yinzuo Jiang) Similar as `:pedit` and `:buffer` command. `:pbuffer` edits buffer [N] from the buffer list in the preview window. `:pbuffer` can also open special buffer, for example terminal buffer. closes: vim/vim#16222 https://github.com/vim/vim/commit/a2a2fe841ed2efdbb1f8055f752a3a4d0988ae9d Cherry-pick Test_popup_and_previewwindow_dump() changes from patch 9.0.0625. Cherry-pick Run_noroom_for_newwindow_test() changes from patches 8.2.0432 and 9.0.0363. Co-authored-by: Yinzuo Jiang --- test/functional/ui/popupmenu_spec.lua | 75 +++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'test/functional') diff --git a/test/functional/ui/popupmenu_spec.lua b/test/functional/ui/popupmenu_spec.lua index a4bf602e57..beb3ae385c 100644 --- a/test/functional/ui/popupmenu_spec.lua +++ b/test/functional/ui/popupmenu_spec.lua @@ -1542,6 +1542,81 @@ describe('builtin popupmenu', function() end) if not multigrid then + describe('popup and preview window do not overlap', function() + before_each(function() + screen:try_resize(53, 20) + end) + + -- oldtest: Test_popup_and_previewwindow_dump_pedit() + it('with :pedit', function() + exec([[ + set previewheight=9 + silent! pedit + call setline(1, map(repeat(["ab"], 10), "v:val .. v:key")) + exec "norm! G\\" + ]]) + feed('o') + n.poke_eventloop() + feed('') + screen:expect([[ + ab0 | + ab1 | + ab2 | + ab3 | + ab4 | + ab5 | + ab6 | + ab7 | + ab8 | + {s:ab0 }{c: }{3:ew][+] }| + {n:ab1 }{c: } | + {n:ab2 }{c: } | + {n:ab3 }{c: } | + {n:ab4 }{s: } | + {n:ab5 }{s: } | + {n:ab6 }{s: } | + ab0^ | + {1:~ }| + {4:[No Name] [+] }| + {2:-- Keyword Local completion (^N^P) }{5:match 1 of 10} | + ]]) + end) + + -- oldtest: Test_popup_and_previewwindow_dump_pbuffer() + it('with :pbuffer', function() + exec([[ + set previewheight=9 + silent! pbuffer + call setline(1, map(repeat(["ab"], 10), "v:val .. v:key")) + exec "norm! G\\\" + ]]) + feed('o') + n.poke_eventloop() + feed('') + screen:expect([[ + ab0 | + ab1 | + ab2 | + ab3 | + ab4 | + ab5 | + ab6 | + ab7 | + ab8 | + {s:ab0 }{c: }{3:ew][+] }| + {n:ab1 }{c: } | + {n:ab2 }{c: } | + {n:ab3 }{s: } | + {n:ab4 }{s: } | + {n:ab5 }{s: } | + ab0^ | + {1:~ }|*2 + {4:[No Name] [+] }| + {2:-- Keyword Local completion (^N^P) }{5:match 1 of 10} | + ]]) + end) + end) + -- oldtest: Test_pum_with_preview_win() it('preview window opened during completion', function() exec([[ -- cgit