summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/move.c2
-rw-r--r--src/popupmenu.c1
-rw-r--r--src/proto/move.pro1
-rw-r--r--src/testdir/dumps/Test_pum_with_folds_two_tabs.dump10
-rw-r--r--src/testdir/test_ins_complete.vim24
-rw-r--r--src/version.c2
6 files changed, 39 insertions, 1 deletions
diff --git a/src/move.c b/src/move.c
index 8e53d8bcb..6121e3e2d 100644
--- a/src/move.c
+++ b/src/move.c
@@ -816,7 +816,7 @@ validate_virtcol_win(win_T *wp)
/*
* Validate curwin->w_cline_height only.
*/
- static void
+ void
validate_cheight(void)
{
check_cursor_moved(curwin);
diff --git a/src/popupmenu.c b/src/popupmenu.c
index f908bfca4..ab2ce555b 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -180,6 +180,7 @@ pum_display(
// pum below "pum_win_row"
// Leave two lines of context if possible
+ validate_cheight();
if (curwin->w_cline_row
+ curwin->w_cline_height - curwin->w_wrow >= 3)
context_lines = 3;
diff --git a/src/proto/move.pro b/src/proto/move.pro
index d05eb1753..8efecb9f2 100644
--- a/src/proto/move.pro
+++ b/src/proto/move.pro
@@ -21,6 +21,7 @@ void validate_cursor(void);
void validate_cline_row(void);
void validate_virtcol(void);
void validate_virtcol_win(win_T *wp);
+void validate_cheight(void);
void validate_cursor_col(void);
int win_col_off(win_T *wp);
int curwin_col_off(void);
diff --git a/src/testdir/dumps/Test_pum_with_folds_two_tabs.dump b/src/testdir/dumps/Test_pum_with_folds_two_tabs.dump
new file mode 100644
index 000000000..2414cdc8e
--- /dev/null
+++ b/src/testdir/dumps/Test_pum_with_folds_two_tabs.dump
@@ -0,0 +1,10 @@
+| +8#0000001#e0e0e08|+| |[|N|o| |N|a|m|e|]| | +2#0000000#ffffff0|+| |[|N|o| |N|a|m|e|]| | +1&&@47|X+8#0000001#e0e0e08
+|"+0#0000000#ffffff0| |x| |{@2|1| @66
+|"| |a|0> |s|o|m|e| |t|e|x|t| @60
+|"| +0#0000001#e0e0e08|a|0| @12| +0#0000000#0000001| +0&#ffffff0@56
+|"| +0#0000001#ffd7ff255|a|1| @12| +0#0000000#0000001| +0&#ffffff0@56
+|"| +0#0000001#ffd7ff255|a|2| @12| +0#0000000#0000001| +0&#ffffff0@56
+|"| +0#0000001#ffd7ff255|a|3| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
+|"| +0#0000001#ffd7ff255|a|4| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
+|"| +0#0000001#ffd7ff255|a|5| @12| +0#0000000#a8a8a8255| +0&#ffffff0@56
+|-+2&&@1| |K|e|y|w|o|r|d| |c|o|m|p|l|e|t|i|o|n| |(|^|N|^|P|)| |m+0#00e0003&|a|t|c|h| |1| |o|f| |1|0| +0#0000000&@32
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index e48a72c5d..ad6294480 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -1,3 +1,4 @@
+source screendump.vim
source check.vim
" Test for insert expansion
@@ -380,3 +381,26 @@ func Test_ins_completeslash()
set completeslash=
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
diff --git a/src/version.c b/src/version.c
index 2ab2e074f..6c31de8c9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 7,
+/**/
6,
/**/
5,