diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-11-29 10:12:30 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-29 10:12:30 +0800 |
commit | b1c907f21916dd3b16baeae9f68b1c3bcb3dcfd3 (patch) | |
tree | e48b53717c0658f60c9b66da1d60fdd8a88bd61c /test | |
parent | 1536f79d86b9edac1100e58ad5fbc421d14bfaa1 (diff) | |
download | rneovim-b1c907f21916dd3b16baeae9f68b1c3bcb3dcfd3.tar.gz rneovim-b1c907f21916dd3b16baeae9f68b1c3bcb3dcfd3.tar.bz2 rneovim-b1c907f21916dd3b16baeae9f68b1c3bcb3dcfd3.zip |
vim-patch:9.1.0892: the max value of 'cmdheight' is limited by other tabpages (#31378)
Problem: the max value of 'cmdheight' is limited by other tabpages
Solution: Limit the maximum value of 'cmdheight' to the current tabpage only.
(Milly)
The Help says that cmdheight is local to the tab page, but says nothing
about the maximum value depending on the state of all tab pages. Users
may wonder why they can't increase cmdheight when there are still rows
available on the current tab page. This PR changes the behavior of
cmdheight so that its maximum value depends only on the state of the
current tab page.
Also, since magic numbers were embedded in various places with the
minimum value of cmdheight being 1, we defined a constant to make it
easier to understand.
closes: vim/vim#16131
https://github.com/vim/vim/commit/2cddf0e85a7f8304476397e1c51dcd0e41835ac3
Cherry-pick Test_cmdheight_not_changed() from patch 9.0.0187.
Co-authored-by: Milly <milly.ca@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/old/testdir/test_options.vim | 35 | ||||
-rw-r--r-- | test/old/testdir/test_window_cmd.vim | 21 |
2 files changed, 55 insertions, 1 deletions
diff --git a/test/old/testdir/test_options.vim b/test/old/testdir/test_options.vim index caafd9d820..c948846819 100644 --- a/test/old/testdir/test_options.vim +++ b/test/old/testdir/test_options.vim @@ -2263,13 +2263,46 @@ func Test_opt_default() endfunc " Test for the 'cmdheight' option -func Test_cmdheight() +func Test_opt_cmdheight() %bw! let ht = &lines set cmdheight=9999 call assert_equal(1, winheight(0)) call assert_equal(ht - 1, &cmdheight) set cmdheight& + + " The status line should be taken into account. + set laststatus=2 + set cmdheight=9999 + call assert_equal(ht - 2, &cmdheight) + set cmdheight& laststatus=1 " Accommodate Nvim default + + " The tabline should be taken into account only non-GUI. + set showtabline=2 + set cmdheight=9999 + if has('gui_running') + call assert_equal(ht - 1, &cmdheight) + else + call assert_equal(ht - 2, &cmdheight) + endif + set cmdheight& showtabline& + + " The 'winminheight' should be taken into account. + set winheight=3 winminheight=3 + split + set cmdheight=9999 + call assert_equal(ht - 8, &cmdheight) + %bw! + set cmdheight& winminheight& winheight& + + " Only the windows in the current tabpage are taken into account. + set winheight=3 winminheight=3 showtabline=0 + split + tabnew + set cmdheight=9999 + call assert_equal(ht - 3, &cmdheight) + %bw! + set cmdheight& winminheight& winheight& showtabline& endfunc " To specify a control character as an option value, '^' can be used diff --git a/test/old/testdir/test_window_cmd.vim b/test/old/testdir/test_window_cmd.vim index 8048fa6ff8..e173aa1e73 100644 --- a/test/old/testdir/test_window_cmd.vim +++ b/test/old/testdir/test_window_cmd.vim @@ -55,6 +55,27 @@ func Test_window_cmd_cmdwin_with_vsp() set ls&vim endfunc +func Test_cmdheight_not_changed() + throw 'Skipped: N/A' + set cmdheight=2 + set winminheight=0 + augroup Maximize + autocmd WinEnter * wincmd _ + augroup END + split + tabnew + tabfirst + call assert_equal(2, &cmdheight) + + tabonly! + only + set winminheight& cmdheight& + augroup Maximize + au! + augroup END + augroup! Maximize +endfunc + " Test for jumping to windows func Test_window_jump() new |