Mercurial > vim
view src/testdir/test_scroll_opt.vim @ 30924:ae3970cc28cb v9.0.0796
patch 9.0.0796: mapping test fails in some situations
Commit: https://github.com/vim/vim/commit/060b8384888ce91b1bc194101091d0f9f85d0490
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Oct 19 14:48:14 2022 +0100
patch 9.0.0796: mapping test fails in some situations
Problem: Mapping test fails in some situations.
Solution: Find the line with the verbose information.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 19 Oct 2022 16:00:03 +0200 |
parents | 2c03ff81cbcb |
children | a5bf86083558 |
line wrap: on
line source
" Test for reset 'scroll' and 'smoothscroll' source check.vim source screendump.vim func Test_reset_scroll() let scr = &l:scroll setlocal scroll=1 setlocal scroll& call assert_equal(scr, &l:scroll) setlocal scroll=1 setlocal scroll=0 call assert_equal(scr, &l:scroll) try execute 'setlocal scroll=' . (winheight(0) + 1) " not reached call assert_false(1) catch call assert_exception('E49:') endtry split let scr = &l:scroll setlocal scroll=1 setlocal scroll& call assert_equal(scr, &l:scroll) setlocal scroll=1 setlocal scroll=0 call assert_equal(scr, &l:scroll) quit! endfunc func Test_CtrlE_CtrlY_stop_at_end() enew call setline(1, ['one', 'two']) set number exe "normal \<C-Y>" call assert_equal([" 1 one "], ScreenLines(1, 10)) exe "normal \<C-E>\<C-E>\<C-E>" call assert_equal([" 2 two "], ScreenLines(1, 10)) bwipe! set nonumber endfunc func Test_smoothscroll_CtrlE_CtrlY() CheckScreendump let lines =<< trim END vim9script setline(1, [ 'line one', 'word '->repeat(20), 'line three', 'long word '->repeat(7), 'line', 'line', 'line', ]) set smoothscroll :5 END call writefile(lines, 'XSmoothScroll', 'D') let buf = RunVimInTerminal('-S XSmoothScroll', #{rows: 12, cols: 40}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_2', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_3', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_4', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_5', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_6', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_7', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_8', {}) if has('folding') call term_sendkeys(buf, ":set foldmethod=indent\<CR>") " move the cursor so we can reuse the same dumps call term_sendkeys(buf, "5G") call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smoothscroll_2', {}) call term_sendkeys(buf, "7G") call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_7', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smoothscroll_8', {}) endif call StopVimInTerminal(buf) endfunc func Test_smoothscroll_number() CheckScreendump let lines =<< trim END vim9script setline(1, [ 'one ' .. 'word '->repeat(20), 'two ' .. 'long word '->repeat(7), 'line', 'line', 'line', ]) set smoothscroll set number cpo+=n :3 def g:DoRel() set number relativenumber scrolloff=0 :%del setline(1, [ 'one', 'very long text '->repeat(12), 'three', ]) exe "normal 2Gzt\<C-E>" enddef END call writefile(lines, 'XSmoothNumber', 'D') let buf = RunVimInTerminal('-S XSmoothNumber', #{rows: 12, cols: 40}) call VerifyScreenDump(buf, 'Test_smooth_number_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_number_2', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_number_3', {}) call term_sendkeys(buf, ":set cpo-=n\<CR>") call VerifyScreenDump(buf, 'Test_smooth_number_4', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_number_5', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_number_6', {}) call term_sendkeys(buf, ":call DoRel()\<CR>") call VerifyScreenDump(buf, 'Test_smooth_number_7', {}) call StopVimInTerminal(buf) endfunc func Test_smoothscroll_list() CheckScreendump let lines =<< trim END vim9script set smoothscroll scrolloff=0 set list setline(1, [ 'one', 'very long text '->repeat(12), 'three', ]) exe "normal 2Gzt\<C-E>" END call writefile(lines, 'XSmoothList', 'D') let buf = RunVimInTerminal('-S XSmoothList', #{rows: 8, cols: 40}) call VerifyScreenDump(buf, 'Test_smooth_list_1', {}) call term_sendkeys(buf, ":set listchars+=precedes:#\<CR>") call VerifyScreenDump(buf, 'Test_smooth_list_2', {}) call StopVimInTerminal(buf) endfunc func Test_smoothscroll_diff_mode() CheckScreendump let lines =<< trim END vim9script var text = 'just some text here' setline(1, text) set smoothscroll diffthis new setline(1, text) set smoothscroll diffthis END call writefile(lines, 'XSmoothDiff', 'D') let buf = RunVimInTerminal('-S XSmoothDiff', #{rows: 8}) call VerifyScreenDump(buf, 'Test_smooth_diff_1', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_diff_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_diff_1', {}) call StopVimInTerminal(buf) endfunc func Test_smoothscroll_wrap_scrolloff_zero() CheckScreendump let lines =<< trim END vim9script setline(1, ['Line' .. (' with some text'->repeat(7))]->repeat(7)) set smoothscroll scrolloff=0 :3 END call writefile(lines, 'XSmoothWrap', 'D') let buf = RunVimInTerminal('-S XSmoothWrap', #{rows: 8, cols: 40}) call VerifyScreenDump(buf, 'Test_smooth_wrap_1', {}) " moving cursor down - whole bottom line shows call term_sendkeys(buf, "j") call VerifyScreenDump(buf, 'Test_smooth_wrap_2', {}) call term_sendkeys(buf, "\<C-E>j") call VerifyScreenDump(buf, 'Test_smooth_wrap_3', {}) call term_sendkeys(buf, "G") call VerifyScreenDump(buf, 'Test_smooth_wrap_4', {}) " moving cursor up - whole top line shows call term_sendkeys(buf, "2k") call VerifyScreenDump(buf, 'Test_smooth_wrap_5', {}) call StopVimInTerminal(buf) endfunc func Test_smoothscroll_wrap_long_line() CheckScreendump let lines =<< trim END vim9script setline(1, ['one', 'two', 'Line' .. (' with lots of text'->repeat(30))]) set smoothscroll scrolloff=0 normal 3G10|zt END call writefile(lines, 'XSmoothWrap', 'D') let buf = RunVimInTerminal('-S XSmoothWrap', #{rows: 6, cols: 40}) call VerifyScreenDump(buf, 'Test_smooth_long_1', {}) " scrolling up, cursor moves screen line down call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_long_2', {}) call term_sendkeys(buf, "5\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_long_3', {}) " scrolling down, cursor moves screen line up call term_sendkeys(buf, "5\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_long_4', {}) call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_long_5', {}) " 'scrolloff' set to 1, scrolling up, cursor moves screen line down call term_sendkeys(buf, ":set scrolloff=1\<CR>") call term_sendkeys(buf, "10|\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_long_6', {}) " 'scrolloff' set to 1, scrolling down, cursor moves screen line up call term_sendkeys(buf, "\<C-E>") call term_sendkeys(buf, "gjgj") call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_long_7', {}) " 'scrolloff' set to 2, scrolling up, cursor moves screen line down call term_sendkeys(buf, ":set scrolloff=2\<CR>") call term_sendkeys(buf, "10|\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_long_8', {}) " 'scrolloff' set to 2, scrolling down, cursor moves screen line up call term_sendkeys(buf, "\<C-E>") call term_sendkeys(buf, "gj") call term_sendkeys(buf, "\<C-Y>") call VerifyScreenDump(buf, 'Test_smooth_long_9', {}) call StopVimInTerminal(buf) endfunc func Test_smoothscroll_one_long_line() CheckScreendump let lines =<< trim END vim9script setline(1, 'with lots of text '->repeat(7)) set smoothscroll scrolloff=0 END call writefile(lines, 'XSmoothOneLong', 'D') let buf = RunVimInTerminal('-S XSmoothOneLong', #{rows: 6, cols: 40}) call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {}) call term_sendkeys(buf, "\<C-E>") call VerifyScreenDump(buf, 'Test_smooth_one_long_2', {}) call term_sendkeys(buf, "0") call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {}) call StopVimInTerminal(buf) endfunc " vim: shiftwidth=2 sts=2 expandtab