mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.0007: popup menu positioned wrong with folding in two tabs
Problem: Popup menu positioned wrong with folding in two tabs.
Solution: Update the cursor line height. (closes vim/vim#5353)
09dd2bb336
This commit is contained in:
parent
56bb5993d9
commit
2bfe2018d6
@ -641,7 +641,7 @@ void validate_virtcol_win(win_T *wp)
|
|||||||
/*
|
/*
|
||||||
* Validate curwin->w_cline_height only.
|
* Validate curwin->w_cline_height only.
|
||||||
*/
|
*/
|
||||||
static void validate_cheight(void)
|
void validate_cheight(void)
|
||||||
{
|
{
|
||||||
check_cursor_moved(curwin);
|
check_cursor_moved(curwin);
|
||||||
if (!(curwin->w_valid & VALID_CHEIGHT)) {
|
if (!(curwin->w_valid & VALID_CHEIGHT)) {
|
||||||
|
@ -226,6 +226,7 @@ void pum_display(pumitem_T *array, int size, int selected, bool array_changed,
|
|||||||
pum_above = false;
|
pum_above = false;
|
||||||
|
|
||||||
// Leave two lines of context if possible
|
// Leave two lines of context if possible
|
||||||
|
validate_cheight();
|
||||||
if (curwin->w_cline_row + curwin->w_cline_height - curwin->w_wrow >= 3) {
|
if (curwin->w_cline_row + curwin->w_cline_height - curwin->w_wrow >= 3) {
|
||||||
context_lines = 3;
|
context_lines = 3;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
source screendump.vim
|
||||||
|
source check.vim
|
||||||
|
|
||||||
" Test for insert expansion
|
" Test for insert expansion
|
||||||
func Test_ins_complete()
|
func Test_ins_complete()
|
||||||
@ -338,3 +340,27 @@ func Test_compl_in_cmdwin()
|
|||||||
delcom GetInput
|
delcom GetInput
|
||||||
set wildmenu& wildchar&
|
set wildmenu& wildchar&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_pum_with_folds_two_tabs()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
set fdm=marker
|
||||||
|
call setline(1, ['" x {{{1', '" a some text'])
|
||||||
|
call setline(3, range(&lines)->map({_, val -> '" a' .. val}))
|
||||||
|
norm! zm
|
||||||
|
tab sp
|
||||||
|
call feedkeys('2Gzv', 'xt')
|
||||||
|
call feedkeys("0fa", 'xt')
|
||||||
|
END
|
||||||
|
|
||||||
|
call writefile(lines, 'Xpumscript')
|
||||||
|
let buf = RunVimInTerminal('-S Xpumscript', #{rows: 10})
|
||||||
|
call term_wait(buf, 100)
|
||||||
|
call term_sendkeys(buf, "a\<C-N>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_pum_with_folds_two_tabs', {})
|
||||||
|
|
||||||
|
call term_sendkeys(buf, "\<Esc>")
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
call delete('Xpumscript')
|
||||||
|
endfunc
|
||||||
|
Loading…
Reference in New Issue
Block a user