2017-07-28 17:26:21 -07:00
|
|
|
|
" Test for displaying stuff
|
2017-08-09 19:11:35 -07:00
|
|
|
|
|
|
|
|
|
" Nvim: `:set term` is not supported.
|
|
|
|
|
" if !has('gui_running') && has('unix')
|
|
|
|
|
" set term=ansi
|
|
|
|
|
" endif
|
2017-07-28 17:26:21 -07:00
|
|
|
|
|
2017-07-28 16:44:58 -07:00
|
|
|
|
source view_util.vim
|
2020-08-28 20:49:04 -07:00
|
|
|
|
source check.vim
|
|
|
|
|
source screendump.vim
|
|
|
|
|
|
|
|
|
|
func Test_display_foldcolumn()
|
|
|
|
|
CheckFeature folding
|
2017-07-28 17:26:21 -07:00
|
|
|
|
|
|
|
|
|
new
|
|
|
|
|
vnew
|
|
|
|
|
vert resize 25
|
2017-07-28 17:30:54 -07:00
|
|
|
|
call assert_equal(25, winwidth(winnr()))
|
|
|
|
|
set isprint=@
|
2017-07-28 17:26:21 -07:00
|
|
|
|
|
|
|
|
|
1put='e more noise blah blah more stuff here'
|
|
|
|
|
|
2017-07-28 16:44:58 -07:00
|
|
|
|
let expect = [
|
|
|
|
|
\ "e more noise blah blah<82",
|
|
|
|
|
\ "> more stuff here "
|
|
|
|
|
\ ]
|
2017-07-28 17:26:21 -07:00
|
|
|
|
|
|
|
|
|
call cursor(2, 1)
|
|
|
|
|
norm! zt
|
2020-08-28 20:49:04 -07:00
|
|
|
|
let lines = ScreenLines([1,2], winwidth(0))
|
2017-07-28 16:44:58 -07:00
|
|
|
|
call assert_equal(expect, lines)
|
2017-07-28 17:26:21 -07:00
|
|
|
|
set fdc=2
|
2020-08-28 20:49:04 -07:00
|
|
|
|
let lines = ScreenLines([1,2], winwidth(0))
|
2017-07-28 16:44:58 -07:00
|
|
|
|
let expect = [
|
|
|
|
|
\ " e more noise blah blah<",
|
|
|
|
|
\ " 82> more stuff here "
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
2017-07-28 17:26:21 -07:00
|
|
|
|
|
|
|
|
|
quit!
|
|
|
|
|
quit!
|
2017-07-28 16:44:58 -07:00
|
|
|
|
endfunc
|
|
|
|
|
|
2022-02-06 14:34:20 -07:00
|
|
|
|
func Test_display_foldtext_mbyte()
|
2020-08-28 20:49:04 -07:00
|
|
|
|
CheckFeature folding
|
|
|
|
|
|
2017-07-28 16:44:58 -07:00
|
|
|
|
call NewWindow(10, 40)
|
|
|
|
|
call append(0, range(1,20))
|
|
|
|
|
exe "set foldmethod=manual foldtext=foldtext() fillchars=fold:\u2500,vert:\u2502 fdc=2"
|
|
|
|
|
call cursor(2, 1)
|
|
|
|
|
norm! zf13G
|
|
|
|
|
let lines=ScreenLines([1,3], winwidth(0)+1)
|
|
|
|
|
let expect=[
|
|
|
|
|
\ " 1 \u2502",
|
|
|
|
|
\ "+ +-- 12 lines: 2". repeat("\u2500", 23). "\u2502",
|
|
|
|
|
\ " 14 \u2502",
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
2017-07-28 17:40:25 -07:00
|
|
|
|
|
|
|
|
|
set fillchars=fold:-,vert:\|
|
|
|
|
|
let lines=ScreenLines([1,3], winwidth(0)+1)
|
|
|
|
|
let expect=[
|
|
|
|
|
\ " 1 |",
|
|
|
|
|
\ "+ +-- 12 lines: 2". repeat("-", 23). "|",
|
|
|
|
|
\ " 14 |",
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
|
|
|
|
|
2017-07-28 16:44:58 -07:00
|
|
|
|
set foldtext& fillchars& foldmethod& fdc&
|
|
|
|
|
bw!
|
|
|
|
|
endfunc
|
2019-09-21 20:29:15 -07:00
|
|
|
|
|
2020-08-28 20:49:04 -07:00
|
|
|
|
" check that win_ins_lines() and win_del_lines() work when t_cs is empty.
|
|
|
|
|
func Test_scroll_without_region()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
call setline(1, range(1, 20))
|
|
|
|
|
set t_cs=
|
|
|
|
|
set laststatus=2
|
|
|
|
|
END
|
|
|
|
|
call writefile(lines, 'Xtestscroll')
|
|
|
|
|
let buf = RunVimInTerminal('-S Xtestscroll', #{rows: 10})
|
|
|
|
|
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_1', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":3delete\<cr>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_2', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":4put\<cr>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_3', {})
|
|
|
|
|
|
2020-08-28 21:19:01 -07:00
|
|
|
|
call term_sendkeys(buf, ":undo\<cr>")
|
|
|
|
|
call term_sendkeys(buf, ":undo\<cr>")
|
|
|
|
|
call term_sendkeys(buf, ":set laststatus=0\<cr>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_4', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":3delete\<cr>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_5', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":4put\<cr>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_scroll_no_region_6', {})
|
|
|
|
|
|
2020-08-28 20:49:04 -07:00
|
|
|
|
" clean up
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete('Xtestscroll')
|
|
|
|
|
endfunc
|
|
|
|
|
|
2019-09-21 20:29:15 -07:00
|
|
|
|
func Test_display_listchars_precedes()
|
2019-11-24 02:59:15 -07:00
|
|
|
|
set fillchars+=vert:\|
|
2019-09-21 20:29:15 -07:00
|
|
|
|
call NewWindow(10, 10)
|
|
|
|
|
" Need a physical line that wraps over the complete
|
|
|
|
|
" window size
|
|
|
|
|
call append(0, repeat('aaa aaa aa ', 10))
|
|
|
|
|
call append(1, repeat(['bbb bbb bbb bbb'], 2))
|
|
|
|
|
" remove blank trailing line
|
|
|
|
|
$d
|
|
|
|
|
set list nowrap
|
|
|
|
|
call cursor(1, 1)
|
|
|
|
|
" move to end of line and scroll 2 characters back
|
|
|
|
|
norm! $2zh
|
|
|
|
|
let lines=ScreenLines([1,4], winwidth(0)+1)
|
|
|
|
|
let expect = [
|
|
|
|
|
\ " aaa aa $ |",
|
|
|
|
|
\ "$ |",
|
|
|
|
|
\ "$ |",
|
|
|
|
|
\ "~ |",
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
|
|
|
|
set list listchars+=precedes:< nowrap
|
|
|
|
|
call cursor(1, 1)
|
|
|
|
|
" move to end of line and scroll 2 characters back
|
|
|
|
|
norm! $2zh
|
|
|
|
|
let lines = ScreenLines([1,4], winwidth(0)+1)
|
|
|
|
|
let expect = [
|
|
|
|
|
\ "<aaa aa $ |",
|
|
|
|
|
\ "< |",
|
|
|
|
|
\ "< |",
|
|
|
|
|
\ "~ |",
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
|
|
|
|
set wrap
|
|
|
|
|
call cursor(1, 1)
|
|
|
|
|
" the complete line should be displayed in the window
|
|
|
|
|
norm! $
|
|
|
|
|
|
|
|
|
|
let lines = ScreenLines([1,10], winwidth(0)+1)
|
|
|
|
|
let expect = [
|
|
|
|
|
\ "<aaa aaa a|",
|
|
|
|
|
\ "a aaa aaa |",
|
|
|
|
|
\ "aa aaa aaa|",
|
|
|
|
|
\ " aa aaa aa|",
|
|
|
|
|
\ "a aa aaa a|",
|
|
|
|
|
\ "aa aa aaa |",
|
|
|
|
|
\ "aaa aa aaa|",
|
|
|
|
|
\ " aaa aa aa|",
|
|
|
|
|
\ "a aaa aa a|",
|
|
|
|
|
\ "aa aaa aa |",
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expect, lines)
|
|
|
|
|
set list& listchars& wrap&
|
|
|
|
|
bw!
|
|
|
|
|
endfunc
|
2020-08-28 21:20:01 -07:00
|
|
|
|
|
|
|
|
|
" Check that win_lines() works correctly with the number_only parameter=TRUE
|
|
|
|
|
" should break early to optimize cost of drawing, but needs to make sure
|
|
|
|
|
" that the number column is correctly highlighted.
|
|
|
|
|
func Test_scroll_CursorLineNr_update()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
hi CursorLineNr ctermfg=73 ctermbg=236
|
|
|
|
|
set nu rnu cursorline cursorlineopt=number
|
|
|
|
|
exe ":norm! o\<esc>110ia\<esc>"
|
|
|
|
|
END
|
|
|
|
|
let filename = 'Xdrawscreen'
|
|
|
|
|
call writefile(lines, filename)
|
|
|
|
|
let buf = RunVimInTerminal('-S '.filename, #{rows: 5, cols: 50})
|
|
|
|
|
call term_sendkeys(buf, "k")
|
|
|
|
|
call term_wait(buf)
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_winline_rnu', {})
|
|
|
|
|
|
|
|
|
|
" clean up
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete(filename)
|
|
|
|
|
endfunc
|
2020-10-01 12:20:58 -07:00
|
|
|
|
|
2020-10-01 20:56:46 -07:00
|
|
|
|
" check a long file name does not result in the hit-enter prompt
|
|
|
|
|
func Test_edit_long_file_name()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
2020-10-20 15:21:50 -07:00
|
|
|
|
let longName = 'x'->repeat(min([&columns, 255]))
|
2020-10-01 20:56:46 -07:00
|
|
|
|
call writefile([], longName)
|
|
|
|
|
let buf = RunVimInTerminal('-N -u NONE ' .. longName, #{rows: 8})
|
|
|
|
|
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_long_file_name_1', {})
|
|
|
|
|
|
|
|
|
|
" clean up
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete(longName)
|
|
|
|
|
endfunc
|
|
|
|
|
|
2020-10-17 21:01:05 -07:00
|
|
|
|
func Test_unprintable_fileformats()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
call writefile(["unix\r", "two"], 'Xunix.txt')
|
|
|
|
|
call writefile(["mac\r", "two"], 'Xmac.txt')
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
edit Xunix.txt
|
|
|
|
|
split Xmac.txt
|
|
|
|
|
edit ++ff=mac
|
|
|
|
|
END
|
|
|
|
|
let filename = 'Xunprintable'
|
|
|
|
|
call writefile(lines, filename)
|
|
|
|
|
let buf = RunVimInTerminal('-S '.filename, #{rows: 9, cols: 50})
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_unprintable_01', {})
|
|
|
|
|
call term_sendkeys(buf, "\<C-W>\<C-W>\<C-L>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_unprintable_02', {})
|
|
|
|
|
|
|
|
|
|
" clean up
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete('Xunix.txt')
|
|
|
|
|
call delete('Xmac.txt')
|
|
|
|
|
call delete(filename)
|
|
|
|
|
endfunc
|
|
|
|
|
|
2020-10-01 12:20:58 -07:00
|
|
|
|
" Test for scrolling that modifies buffer during visual block
|
|
|
|
|
func Test_visual_block_scroll()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
source $VIMRUNTIME/plugin/matchparen.vim
|
|
|
|
|
set scrolloff=1
|
|
|
|
|
call setline(1, ['a', 'b', 'c', 'd', 'e', '', '{', '}', '{', 'f', 'g', '}'])
|
|
|
|
|
call cursor(5, 1)
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
let filename = 'Xvisualblockmodifiedscroll'
|
2022-11-28 19:17:57 -07:00
|
|
|
|
call writefile(lines, filename, 'D')
|
2020-10-01 12:20:58 -07:00
|
|
|
|
|
|
|
|
|
let buf = RunVimInTerminal('-S '.filename, #{rows: 7})
|
|
|
|
|
call term_sendkeys(buf, "V\<C-D>\<C-D>")
|
|
|
|
|
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_visual_block_scroll', {})
|
|
|
|
|
|
|
|
|
|
call StopVimInTerminal(buf)
|
2022-11-28 19:17:57 -07:00
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
" Test for clearing paren highlight when switching buffers
|
|
|
|
|
func Test_matchparen_clear_highlight()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
source $VIMRUNTIME/plugin/matchparen.vim
|
|
|
|
|
set hidden
|
|
|
|
|
call setline(1, ['()'])
|
|
|
|
|
normal 0
|
|
|
|
|
|
|
|
|
|
func OtherBuffer()
|
|
|
|
|
enew
|
|
|
|
|
exe "normal iaa\<Esc>0"
|
|
|
|
|
endfunc
|
|
|
|
|
END
|
|
|
|
|
call writefile(lines, 'XMatchparenClear', 'D')
|
|
|
|
|
let buf = RunVimInTerminal('-S XMatchparenClear', #{rows: 5})
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_1', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":call OtherBuffer()\<CR>:\<Esc>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_2', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, "\<C-^>:\<Esc>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_1', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, "\<C-^>:\<Esc>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_matchparen_clear_highlight_2', {})
|
|
|
|
|
|
|
|
|
|
call StopVimInTerminal(buf)
|
2020-10-01 12:20:58 -07:00
|
|
|
|
endfunc
|
2020-10-01 23:10:18 -07:00
|
|
|
|
|
|
|
|
|
func Test_display_scroll_at_topline()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let buf = RunVimInTerminal('', #{cols: 20})
|
|
|
|
|
call term_sendkeys(buf, ":call setline(1, repeat('a', 21))\<CR>")
|
|
|
|
|
call term_wait(buf)
|
|
|
|
|
call term_sendkeys(buf, "O\<Esc>")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_scroll_at_topline', #{rows: 4})
|
|
|
|
|
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
endfunc
|
2021-09-10 05:14:50 -07:00
|
|
|
|
|
2022-03-25 17:52:54 -07:00
|
|
|
|
func Test_display_scroll_update_visual()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
set scrolloff=0
|
|
|
|
|
call setline(1, repeat(['foo'], 10))
|
|
|
|
|
call sign_define('foo', { 'text': '>' })
|
|
|
|
|
call sign_place(1, 'bar', 'foo', bufnr(), { 'lnum': 2 })
|
|
|
|
|
call sign_place(2, 'bar', 'foo', bufnr(), { 'lnum': 1 })
|
|
|
|
|
autocmd CursorMoved * if getcurpos()[1] == 2 | call sign_unplace('bar', { 'id': 1 }) | endif
|
|
|
|
|
END
|
|
|
|
|
call writefile(lines, 'XupdateVisual.vim')
|
|
|
|
|
|
|
|
|
|
let buf = RunVimInTerminal('-S XupdateVisual.vim', #{rows: 8, cols: 60})
|
|
|
|
|
call term_sendkeys(buf, "VG7kk")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_scroll_update_visual', {})
|
|
|
|
|
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete('XupdateVisual.vim')
|
|
|
|
|
endfunc
|
|
|
|
|
|
2021-12-18 18:55:17 -07:00
|
|
|
|
" Test for 'eob' (EndOfBuffer) item in 'fillchars'
|
|
|
|
|
func Test_eob_fillchars()
|
|
|
|
|
" default value (skipped)
|
|
|
|
|
" call assert_match('eob:\~', &fillchars)
|
|
|
|
|
" invalid values
|
|
|
|
|
call assert_fails(':set fillchars=eob:', 'E474:')
|
|
|
|
|
call assert_fails(':set fillchars=eob:xy', 'E474:')
|
|
|
|
|
call assert_fails(':set fillchars=eob:\255', 'E474:')
|
|
|
|
|
call assert_fails(':set fillchars=eob:<ff>', 'E474:')
|
2021-12-18 18:55:17 -07:00
|
|
|
|
call assert_fails(":set fillchars=eob:\x01", 'E474:')
|
|
|
|
|
call assert_fails(':set fillchars=eob:\\x01', 'E474:')
|
2021-12-18 18:55:17 -07:00
|
|
|
|
" default is ~
|
|
|
|
|
new
|
2021-12-18 18:55:17 -07:00
|
|
|
|
redraw
|
2021-12-18 18:55:17 -07:00
|
|
|
|
call assert_equal('~', Screenline(2))
|
|
|
|
|
set fillchars=eob:+
|
2021-12-18 18:55:17 -07:00
|
|
|
|
redraw
|
2021-12-18 18:55:17 -07:00
|
|
|
|
call assert_equal('+', Screenline(2))
|
|
|
|
|
set fillchars=eob:\
|
2021-12-18 18:55:17 -07:00
|
|
|
|
redraw
|
2021-12-18 18:55:17 -07:00
|
|
|
|
call assert_equal(' ', nr2char(screenchar(2, 1)))
|
|
|
|
|
set fillchars&
|
|
|
|
|
close
|
|
|
|
|
endfunc
|
|
|
|
|
|
2022-08-25 17:52:13 -07:00
|
|
|
|
" Test for 'foldopen', 'foldclose' and 'foldsep' in 'fillchars'
|
|
|
|
|
func Test_fold_fillchars()
|
|
|
|
|
new
|
|
|
|
|
set fdc=2 foldenable foldmethod=manual
|
|
|
|
|
call setline(1, ['one', 'two', 'three', 'four', 'five'])
|
|
|
|
|
2,4fold
|
|
|
|
|
" First check for the default setting for a closed fold
|
|
|
|
|
let lines = ScreenLines([1, 3], 8)
|
|
|
|
|
let expected = [
|
|
|
|
|
\ ' one ',
|
|
|
|
|
\ '+ +-- 3',
|
|
|
|
|
\ ' five '
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expected, lines)
|
|
|
|
|
normal 2Gzo
|
|
|
|
|
" check the characters for an open fold
|
|
|
|
|
let lines = ScreenLines([1, 5], 8)
|
|
|
|
|
let expected = [
|
|
|
|
|
\ ' one ',
|
|
|
|
|
\ '- two ',
|
|
|
|
|
\ '| three ',
|
|
|
|
|
\ '| four ',
|
|
|
|
|
\ ' five '
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expected, lines)
|
|
|
|
|
|
|
|
|
|
" change the setting
|
|
|
|
|
set fillchars=vert:\|,fold:-,eob:~,foldopen:[,foldclose:],foldsep:-
|
|
|
|
|
|
|
|
|
|
" check the characters for an open fold
|
|
|
|
|
let lines = ScreenLines([1, 5], 8)
|
|
|
|
|
let expected = [
|
|
|
|
|
\ ' one ',
|
|
|
|
|
\ '[ two ',
|
|
|
|
|
\ '- three ',
|
|
|
|
|
\ '- four ',
|
|
|
|
|
\ ' five '
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expected, lines)
|
|
|
|
|
|
|
|
|
|
" check the characters for a closed fold
|
|
|
|
|
normal 2Gzc
|
|
|
|
|
let lines = ScreenLines([1, 3], 8)
|
|
|
|
|
let expected = [
|
|
|
|
|
\ ' one ',
|
|
|
|
|
\ '] +-- 3',
|
|
|
|
|
\ ' five '
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expected, lines)
|
|
|
|
|
|
|
|
|
|
%bw!
|
|
|
|
|
set fillchars& fdc& foldmethod& foldenable&
|
|
|
|
|
endfunc
|
|
|
|
|
|
2022-08-25 17:25:36 -07:00
|
|
|
|
func Test_local_fillchars()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
let lines =<< trim END
|
|
|
|
|
call setline(1, ['window 1']->repeat(3))
|
|
|
|
|
setlocal fillchars=stl:1,stlnc:a,vert:=,eob:x
|
|
|
|
|
vnew
|
|
|
|
|
call setline(1, ['window 2']->repeat(3))
|
|
|
|
|
setlocal fillchars=stl:2,stlnc:b,vert:+,eob:y
|
|
|
|
|
new
|
|
|
|
|
wincmd J
|
|
|
|
|
call setline(1, ['window 3']->repeat(3))
|
|
|
|
|
setlocal fillchars=stl:3,stlnc:c,vert:<,eob:z
|
|
|
|
|
vnew
|
|
|
|
|
call setline(1, ['window 4']->repeat(3))
|
|
|
|
|
setlocal fillchars=stl:4,stlnc:d,vert:>,eob:o
|
|
|
|
|
END
|
|
|
|
|
call writefile(lines, 'Xdisplayfillchars')
|
|
|
|
|
let buf = RunVimInTerminal('-S Xdisplayfillchars', #{rows: 12})
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_fillchars_1', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":wincmd k\r")
|
|
|
|
|
call VerifyScreenDump(buf, 'Test_display_fillchars_2', {})
|
|
|
|
|
|
|
|
|
|
call StopVimInTerminal(buf)
|
|
|
|
|
call delete('Xdisplayfillchars')
|
|
|
|
|
endfunc
|
|
|
|
|
|
2021-09-10 05:14:50 -07:00
|
|
|
|
func Test_display_linebreak_breakat()
|
|
|
|
|
new
|
|
|
|
|
vert resize 25
|
|
|
|
|
let _breakat = &breakat
|
|
|
|
|
setl signcolumn=yes linebreak breakat=) showbreak=+\
|
|
|
|
|
call setline(1, repeat('x', winwidth(0) - 2) .. ')abc')
|
|
|
|
|
let lines = ScreenLines([1, 2], 25)
|
|
|
|
|
let expected = [
|
|
|
|
|
\ ' xxxxxxxxxxxxxxxxxxxxxxx',
|
|
|
|
|
\ ' + )abc '
|
|
|
|
|
\ ]
|
|
|
|
|
call assert_equal(expected, lines)
|
|
|
|
|
%bw!
|
|
|
|
|
let &breakat=_breakat
|
|
|
|
|
endfunc
|
|
|
|
|
|
2022-10-04 06:52:01 -07:00
|
|
|
|
func Run_Test_display_lastline(euro)
|
2022-04-09 13:50:49 -07:00
|
|
|
|
let lines =<< trim END
|
2022-10-04 06:52:01 -07:00
|
|
|
|
call setline(1, ['aaa', 'b'->repeat(200)])
|
2022-04-09 13:50:49 -07:00
|
|
|
|
set display=truncate
|
2022-10-04 06:52:01 -07:00
|
|
|
|
|
2022-04-09 13:50:49 -07:00
|
|
|
|
vsplit
|
|
|
|
|
100wincmd <
|
|
|
|
|
END
|
2022-10-04 06:52:01 -07:00
|
|
|
|
if a:euro != ''
|
|
|
|
|
let lines[2] = 'set fillchars=vert:\|,lastline:€'
|
|
|
|
|
endif
|
|
|
|
|
call writefile(lines, 'XdispLastline', 'D')
|
2022-04-09 13:50:49 -07:00
|
|
|
|
let buf = RunVimInTerminal('-S XdispLastline', #{rows: 10})
|
2022-10-04 06:52:01 -07:00
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}1', {})
|
2022-04-09 13:50:49 -07:00
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":set display=lastline\<CR>")
|
2022-10-04 06:52:01 -07:00
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}2', {})
|
2022-04-09 13:50:49 -07:00
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":100wincmd >\<CR>")
|
2022-10-04 06:52:01 -07:00
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}3', {})
|
2022-04-09 13:50:49 -07:00
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":set display=truncate\<CR>")
|
2022-10-04 06:52:01 -07:00
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}4', {})
|
|
|
|
|
|
|
|
|
|
call term_sendkeys(buf, ":close\<CR>")
|
|
|
|
|
call term_sendkeys(buf, ":3split\<CR>")
|
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}5', {})
|
2022-04-09 13:50:49 -07:00
|
|
|
|
|
2022-10-04 15:48:40 -07:00
|
|
|
|
call term_sendkeys(buf, ":close\<CR>")
|
|
|
|
|
call term_sendkeys(buf, ":2vsplit\<CR>")
|
|
|
|
|
call VerifyScreenDump(buf, $'Test_display_lastline_{a:euro}6', {})
|
|
|
|
|
|
2022-04-09 13:50:49 -07:00
|
|
|
|
call StopVimInTerminal(buf)
|
2022-10-04 06:52:01 -07:00
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
func Test_display_lastline()
|
|
|
|
|
CheckScreendump
|
|
|
|
|
|
|
|
|
|
call Run_Test_display_lastline('')
|
|
|
|
|
call Run_Test_display_lastline('euro_')
|
|
|
|
|
|
|
|
|
|
call assert_fails(':set fillchars=lastline:', 'E474:')
|
|
|
|
|
call assert_fails(':set fillchars=lastline:〇', 'E474:')
|
2022-04-09 13:50:49 -07:00
|
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
|
2021-09-10 05:14:50 -07:00
|
|
|
|
" vim: shiftwidth=2 sts=2 expandtab
|