mirror of
https://github.com/neovim/neovim.git
synced 2026-07-12 20:30:35 +00:00
Merge pull request #28044 from luukvbaal/vim-9.1.0211
vim-patch:9.1.{0211,0215}
This commit is contained in:
@@ -19,7 +19,7 @@ describe('matchparen', function()
|
||||
call cursor(5, 1)
|
||||
]])
|
||||
|
||||
feed('V<c-d><c-d>')
|
||||
feed('V<c-d><c-d>3j')
|
||||
screen:expect([[
|
||||
{17:{} |
|
||||
{17:}} |
|
||||
|
||||
@@ -740,7 +740,7 @@ describe('smoothscroll', function()
|
||||
|
|
||||
]])
|
||||
exec("call setline(92, 'a'->repeat(100))")
|
||||
feed('<C-B>G')
|
||||
feed('<C-L><C-B>G')
|
||||
-- cursor is not placed below window
|
||||
screen:expect([[
|
||||
{1:<<<}aaaaaaaaaaaaaaaaa |
|
||||
|
||||
@@ -1632,34 +1632,38 @@ endfunc
|
||||
func Test_diff_scroll_many_filler()
|
||||
20new
|
||||
vnew
|
||||
call setline(1, ['^^^', '^^^', '$$$', '$$$'])
|
||||
call setline(1, range(1, 40))
|
||||
diffthis
|
||||
setlocal scrolloff=0
|
||||
wincmd p
|
||||
call setline(1, ['^^^', '^^^'] + repeat(['###'], 41) + ['$$$', '$$$'])
|
||||
call setline(1, range(1, 20)->reverse() + ['###']->repeat(41) + range(21, 40)->reverse())
|
||||
diffthis
|
||||
setlocal scrolloff=0
|
||||
wincmd p
|
||||
redraw
|
||||
|
||||
" Note: need a redraw after each scroll, otherwise the test always passes.
|
||||
normal! G
|
||||
redraw
|
||||
call assert_equal(3, winsaveview().topline)
|
||||
call assert_equal(18, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(3, winsaveview().topline)
|
||||
call assert_equal(19, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(2, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(1, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
for _ in range(2)
|
||||
normal! G
|
||||
redraw
|
||||
call assert_equal(40, winsaveview().topline)
|
||||
call assert_equal(19, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(22, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(4, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
exe "normal! \<C-B>"
|
||||
redraw
|
||||
call assert_equal(1, winsaveview().topline)
|
||||
call assert_equal(0, winsaveview().topfill)
|
||||
set smoothscroll
|
||||
endfor
|
||||
|
||||
set smoothscroll&
|
||||
bwipe!
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
@@ -1318,9 +1318,9 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 2, 11, 0], getpos('.'))
|
||||
" <S-Up> is the same as <PageUp>
|
||||
" <S-Down> is the same as <PageDown>
|
||||
call cursor(1, 1)
|
||||
@@ -1341,9 +1341,9 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 2, 11, 0], getpos('.'))
|
||||
set nostartofline
|
||||
call cursor(30, 11)
|
||||
norm! zt
|
||||
@@ -1354,9 +1354,9 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 2, 11, 0], getpos('.'))
|
||||
call cursor(1, 1)
|
||||
call feedkeys("A\<PageDown>\<esc>", 'tnix')
|
||||
call assert_equal([0, 9, 11, 0], getpos('.'))
|
||||
@@ -1379,9 +1379,9 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 2, 11, 0], getpos('.'))
|
||||
call cursor(1, 1)
|
||||
call feedkeys("A\<S-Down>\<esc>", 'tnix')
|
||||
call assert_equal([0, 9, 11, 0], getpos('.'))
|
||||
|
||||
@@ -131,7 +131,7 @@ func Test_normal01_keymodel()
|
||||
call assert_equal([0, 1, 1, 0], getpos("'<"))
|
||||
call assert_equal([0, 3, 1, 0], getpos("'>"))
|
||||
call feedkeys("Gz\<CR>8|\<S-PageUp>y", 'xt')
|
||||
call assert_equal([0, 2, 1, 0], getpos("'<"))
|
||||
call assert_equal([0, 3, 1, 0], getpos("'<"))
|
||||
call assert_equal([0, 3, 8, 0], getpos("'>"))
|
||||
" Test for <S-C-Home> and <S-C-End>
|
||||
call cursor(2, 12)
|
||||
@@ -915,12 +915,10 @@ func Test_normal14_page()
|
||||
set scrolloff=0
|
||||
100
|
||||
exe "norm! $\<c-b>"
|
||||
call assert_equal('92', getline('.'))
|
||||
call assert_equal([0, 92, 1, 0, 1], getcurpos())
|
||||
100
|
||||
set nostartofline
|
||||
exe "norm! $\<c-b>"
|
||||
call assert_equal('92', getline('.'))
|
||||
call assert_equal([0, 92, 2, 0, v:maxcol], getcurpos())
|
||||
" cleanup
|
||||
set startofline
|
||||
@@ -1285,9 +1283,13 @@ func Test_vert_scroll_cmds()
|
||||
exe "normal \<C-D>"
|
||||
call assert_equal(46, line('.'))
|
||||
exe "normal \<C-U>"
|
||||
call assert_equal(36, line('.'))
|
||||
call assert_equal(36, line('w0'))
|
||||
call assert_equal(46, line('.'))
|
||||
exe "normal \<C-U>"
|
||||
call assert_equal(10, line('.'))
|
||||
call assert_equal(1, line('w0'))
|
||||
call assert_equal(40, line('.'))
|
||||
exe "normal \<C-U>"
|
||||
call assert_equal(30, line('.'))
|
||||
exe "normal \<C-U>"
|
||||
call assert_equal(1, line('.'))
|
||||
set scroll&
|
||||
@@ -1308,9 +1310,8 @@ func Test_vert_scroll_cmds()
|
||||
call assert_equal(50, line('.'))
|
||||
call assert_equal(100, line('w$'))
|
||||
normal z.
|
||||
let lnum = winline()
|
||||
exe "normal \<C-D>"
|
||||
call assert_equal(lnum, winline())
|
||||
call assert_equal(1, winline())
|
||||
call assert_equal(50, line('.'))
|
||||
normal zt
|
||||
exe "normal \<C-D>"
|
||||
@@ -3079,7 +3080,8 @@ func Test_normal42_halfpage()
|
||||
call assert_equal(2, &scroll)
|
||||
set scroll=5
|
||||
exe "norm! \<c-u>"
|
||||
call assert_equal('3', getline('.'))
|
||||
call assert_equal('3', getline('w0'))
|
||||
call assert_equal('8', getline('.'))
|
||||
1
|
||||
set scrolloff=5
|
||||
exe "norm! \<c-d>"
|
||||
@@ -3826,7 +3828,7 @@ func Test_normal_vert_scroll_longline()
|
||||
call assert_equal(1, winline())
|
||||
exe "normal \<C-B>"
|
||||
call assert_equal(10, line('.'))
|
||||
call assert_equal(3, winline())
|
||||
call assert_equal(10, winline())
|
||||
exe "normal \<C-B>\<C-B>"
|
||||
call assert_equal(5, line('.'))
|
||||
call assert_equal(5, winline())
|
||||
@@ -4182,20 +4184,34 @@ func Test_normal34_zet_large()
|
||||
norm! z9765405999999999999
|
||||
endfunc
|
||||
|
||||
" Test for { and } paragraph movements in a single line
|
||||
func Test_brace_single_line()
|
||||
let text =<< trim [DATA]
|
||||
foobar one two three
|
||||
[DATA]
|
||||
" Test for { and } paragraph movements and Ctrl-B in buffer with a single line
|
||||
func Test_single_line_scroll()
|
||||
CheckFeature textprop
|
||||
|
||||
new
|
||||
call setline(1, text)
|
||||
call setline(1, ['foobar one two three'])
|
||||
let vt = 'virt_above'
|
||||
call prop_type_add(vt, {'highlight': 'IncSearch'})
|
||||
call prop_add(1, 0, {'type': vt, 'text': '---', 'text_align': 'above'})
|
||||
1
|
||||
norm! 0}
|
||||
|
||||
call assert_equal([0, 1, 20, 0], getpos('.'))
|
||||
norm! {
|
||||
call assert_equal([0, 1, 1, 0], getpos('.'))
|
||||
|
||||
" Ctrl-B/Ctrl-U scroll up with hidden "above" virtual text.
|
||||
set smoothscroll
|
||||
exe "normal \<C-E>"
|
||||
call assert_notequal(0, winsaveview().skipcol)
|
||||
exe "normal \<C-B>"
|
||||
call assert_equal(0, winsaveview().skipcol)
|
||||
exe "normal \<C-E>"
|
||||
call assert_notequal(0, winsaveview().skipcol)
|
||||
exe "normal \<C-U>"
|
||||
call assert_equal(0, winsaveview().skipcol)
|
||||
|
||||
set smoothscroll&
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
|
||||
@@ -832,7 +832,7 @@ func Test_smoothscroll_eob()
|
||||
call VerifyScreenDump(buf, 'Test_smooth_eob_1', {})
|
||||
|
||||
" cursor is not placed below window
|
||||
call term_sendkeys(buf, ":call setline(92, 'a'->repeat(100))\<CR>\<C-B>G")
|
||||
call term_sendkeys(buf, ":call setline(92, 'a'->repeat(100))\<CR>\<C-L>\<C-B>G")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_eob_2', {})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
@@ -1001,4 +1001,47 @@ func Test_smoothscroll_textoff_small_winwidth()
|
||||
set smoothscroll& number&
|
||||
endfunc
|
||||
|
||||
func Test_smoothscroll_page()
|
||||
set smoothscroll
|
||||
|
||||
10split | 40vsplit
|
||||
call setline(1, 'abcde '->repeat(150))
|
||||
|
||||
exe "norm! \<C-F>"
|
||||
call assert_equal(400, winsaveview().skipcol)
|
||||
exe "norm! \<C-F>"
|
||||
call assert_equal(800, winsaveview().skipcol)
|
||||
exe "norm! \<C-F>"
|
||||
call assert_equal(880, winsaveview().skipcol)
|
||||
exe "norm! \<C-B>"
|
||||
call assert_equal(480, winsaveview().skipcol)
|
||||
exe "norm! \<C-B>"
|
||||
call assert_equal(80, winsaveview().skipcol)
|
||||
exe "norm! \<C-B>"
|
||||
call assert_equal(0, winsaveview().skipcol)
|
||||
|
||||
exe "norm! \<C-D>"
|
||||
call assert_equal(200, winsaveview().skipcol)
|
||||
exe "norm! \<C-D>"
|
||||
call assert_equal(400, winsaveview().skipcol)
|
||||
exe "norm! \<C-D>"
|
||||
call assert_equal(600, winsaveview().skipcol)
|
||||
exe "norm! \<C-D>"
|
||||
call assert_equal(800, winsaveview().skipcol)
|
||||
exe "norm! \<C-D>"
|
||||
call assert_equal(880, winsaveview().skipcol)
|
||||
exe "norm! \<C-U>"
|
||||
call assert_equal(680, winsaveview().skipcol)
|
||||
exe "norm! \<C-U>"
|
||||
call assert_equal(480, winsaveview().skipcol)
|
||||
exe "norm! \<C-U>"
|
||||
call assert_equal(280, winsaveview().skipcol)
|
||||
exe "norm! \<C-U>"
|
||||
call assert_equal(80, winsaveview().skipcol)
|
||||
exe "norm! \<C-U>"
|
||||
call assert_equal(0, winsaveview().skipcol)
|
||||
|
||||
set smoothscroll&
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user