vim-patch:9.0.1525: 'smoothscroll' does not always work properly (#23544)

Problem:    'smoothscroll' does not always work properly.
Solution:   Do not reset w_skipcol after it was intentionally set.  (Luuk van
            Baal, closes vim/vim#12360, closes vim/vim#12199, closes vim/vim#12323)

3ce8c38915
This commit is contained in:
luukvbaal
2023-05-09 01:44:31 +02:00
committed by GitHub
parent 7ed4274f69
commit 44fc2a6d7e
3 changed files with 133 additions and 25 deletions

View File

@@ -638,4 +638,47 @@ func Test_smoothscroll_ins_lines()
call StopVimInTerminal(buf)
endfunc
" this placed the cursor in the command line
func Test_smoothscroll_cursormoved_line()
CheckScreendump
let lines =<< trim END
set smoothscroll
call setline(1, [
\'',
\'_'->repeat(&lines * &columns),
\(('_')->repeat(&columns - 2) .. 'xxx')->repeat(2)
\])
autocmd CursorMoved * eval [line('w0'), line('w$')]
call search('xxx')
END
call writefile(lines, 'XSmoothCursorMovedLine', 'D')
let buf = RunVimInTerminal('-S XSmoothCursorMovedLine', #{rows: 6})
call VerifyScreenDump(buf, 'Test_smooth_cursormoved_line', {})
call StopVimInTerminal(buf)
endfunc
func Test_smoothscroll_eob()
CheckScreendump
let lines =<< trim END
set smoothscroll
call setline(1, ['']->repeat(100))
norm G
END
call writefile(lines, 'XSmoothEob', 'D')
let buf = RunVimInTerminal('-S XSmoothEob', #{rows: 10})
" does not scroll halfway when scrolling to end of buffer
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 VerifyScreenDump(buf, 'Test_smooth_eob_2', {})
call StopVimInTerminal(buf)
endfunc
" vim: shiftwidth=2 sts=2 expandtab