mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 07:16:09 +00:00
vim-patch:9.1.0990: Inconsistent behavior when changing cmdheight (#31830)
Problem: Inconsistent behavior when changing cmdheight by resizing the topframe through wincmds and dragging laststatus. Changing cmdheight by resizing the topframe does not trigger OptionSet. Solution: Consolidate logic for changing the cmdheight, set the option value to handle side-effects (Luuk van Baal)e15cbc1af4
vim-patch:9.0.0187: command line height changes when maximizing window height Problem: Command line height changes when maximizing window height. Solution: Do not change the command line height. (closes vim/vim#10885)96bde99bf8
This commit is contained in:
@@ -159,6 +159,52 @@ describe('cmdline', function()
|
||||
endfunc
|
||||
]])
|
||||
|
||||
feed(':resize -3<CR>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|*2
|
||||
{3:[No Name] }|
|
||||
|*4
|
||||
]])
|
||||
|
||||
-- :resize now also changes 'cmdheight' accordingly
|
||||
feed(':set cmdheight+=1<CR>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|
|
||||
{3:[No Name] }|
|
||||
|*5
|
||||
]])
|
||||
feed(':set cmdheight-=1<CR>')
|
||||
|
||||
-- using more space moves the status line up
|
||||
feed(':set cmdheight+=1<CR>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|
|
||||
{3:[No Name] }|
|
||||
|*5
|
||||
]])
|
||||
|
||||
-- reducing cmdheight moves status line down
|
||||
feed(':set cmdheight-=2<CR>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|*3
|
||||
{3:[No Name] }|
|
||||
|*3
|
||||
]])
|
||||
|
||||
-- reducing window size and then setting cmdheight
|
||||
feed(':resize -1<CR>')
|
||||
feed(':set cmdheight=1<CR>')
|
||||
screen:expect([[
|
||||
^ |
|
||||
{1:~ }|*5
|
||||
{3:[No Name] }|
|
||||
|
|
||||
]])
|
||||
|
||||
-- setting 'cmdheight' works after outputting two messages
|
||||
feed(':call EchoTwo()')
|
||||
screen:expect([[
|
||||
|
@@ -82,7 +82,7 @@ describe('messages', function()
|
||||
NoSuchFil^e |
|
||||
three |
|
||||
{1:~ }|*5
|
||||
from DebugSilent visual |
|
||||
|
|
||||
{9:E447: Can't find file "NoSuchFile" in path} |
|
||||
]])
|
||||
end)
|
||||
|
@@ -299,7 +299,7 @@ describe('splitkeep', function()
|
||||
c |
|
||||
{1:~ }|
|
||||
{3:[No Name] }|
|
||||
|
|
||||
:call win_move_statusline(win, 1) |
|
||||
]])
|
||||
end)
|
||||
|
||||
|
@@ -4181,4 +4181,28 @@ func Test_autocmd_BufWinLeave_with_vsp()
|
||||
exe "bw! " .. dummy
|
||||
endfunc
|
||||
|
||||
func Test_OptionSet_cmdheight()
|
||||
set mouse=a laststatus=2
|
||||
au OptionSet cmdheight :let &l:ch = v:option_new
|
||||
|
||||
resize -1
|
||||
call assert_equal(2, &l:ch)
|
||||
resize +1
|
||||
call assert_equal(1, &l:ch)
|
||||
|
||||
call Ntest_setmouse(&lines - 1, 1)
|
||||
call feedkeys("\<LeftMouse>", 'xt')
|
||||
call Ntest_setmouse(&lines - 2, 1)
|
||||
call feedkeys("\<LeftDrag>", 'xt')
|
||||
call assert_equal(2, &l:ch)
|
||||
|
||||
tabnew | resize +1
|
||||
call assert_equal(1, &l:ch)
|
||||
tabfirst
|
||||
call assert_equal(2, &l:ch)
|
||||
|
||||
tabonly
|
||||
set cmdheight& mouse& laststatus&
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -291,9 +291,10 @@ func Test_changing_cmdheight()
|
||||
call term_sendkeys(buf, ":resize -3\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_changing_cmdheight_1', {})
|
||||
|
||||
" using the space available doesn't change the status line
|
||||
call term_sendkeys(buf, ":set cmdheight+=3\<CR>")
|
||||
" :resize now also changes 'cmdheight' accordingly
|
||||
call term_sendkeys(buf, ":set cmdheight+=1\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_changing_cmdheight_2', {})
|
||||
call term_sendkeys(buf, ":set cmdheight-=1\<CR>")
|
||||
|
||||
" using more space moves the status line up
|
||||
call term_sendkeys(buf, ":set cmdheight+=1\<CR>")
|
||||
@@ -312,7 +313,7 @@ func Test_changing_cmdheight()
|
||||
call term_sendkeys(buf, ":call EchoTwo()\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_changing_cmdheight_6', {})
|
||||
|
||||
" increasing 'cmdheight' doesn't clear the messages that need hit-enter
|
||||
" decreasing 'cmdheight' doesn't clear the messages that need hit-enter
|
||||
call term_sendkeys(buf, ":call EchoOne()\<CR>")
|
||||
call VerifyScreenDump(buf, 'Test_changing_cmdheight_7', {})
|
||||
|
||||
|
@@ -56,7 +56,6 @@ func Test_window_cmd_cmdwin_with_vsp()
|
||||
endfunc
|
||||
|
||||
func Test_cmdheight_not_changed()
|
||||
throw 'Skipped: N/A'
|
||||
set cmdheight=2
|
||||
set winminheight=0
|
||||
augroup Maximize
|
||||
|
Reference in New Issue
Block a user