blob: 2f28126554357a8a56c98f75466e734fe2945b48 [file] [log] [blame]
Bram Moolenaarb5647f72014-07-16 17:01:53 +02001Test for linebreak and list option (non-utf8)
Bram Moolenaar86b17e92014-07-02 20:00:47 +02002
3STARTTEST
4:so small.vim
5:if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif
6:10new|:vsp|:vert resize 20
Bram Moolenaarb5647f72014-07-16 17:01:53 +02007:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
Bram Moolenaar86b17e92014-07-02 20:00:47 +02008:norm! zt
9:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
10:fu! ScreenChar(width)
11: let c=''
12: for j in range(1,4)
13: for i in range(1,a:width)
14: let c.=nr2char(screenchar(j, i))
15: endfor
16: let c.="\n"
17: endfor
18: return c
19:endfu
20:fu! DoRecordScreen()
21: wincmd l
22: $put =printf(\"\n%s\", g:test)
23: $put =g:line
24: wincmd p
25:endfu
26:let g:test="Test 1: set linebreak"
27:redraw!
28:let line=ScreenChar(winwidth(0))
29:call DoRecordScreen()
30:let g:test="Test 2: set linebreak + set list"
31:set linebreak list listchars=
32:redraw!
33:let line=ScreenChar(winwidth(0))
34:call DoRecordScreen()
Bram Moolenaarb5647f72014-07-16 17:01:53 +020035:let g:test ="Test 3: set linebreak nolist"
Bram Moolenaar86b17e92014-07-02 20:00:47 +020036:set nolist linebreak
37:redraw!
38:let line=ScreenChar(winwidth(0))
39:call DoRecordScreen()
Bram Moolenaarb5647f72014-07-16 17:01:53 +020040:let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!"
Bram Moolenaar86b17e92014-07-02 20:00:47 +020041:set nolist linebreak ts=8
42:let line="1\t".repeat('a', winwidth(0)-2)
43:$put =line
44:$
45:norm! zt
46:redraw!
47:let line=ScreenChar(winwidth(0))
48:call DoRecordScreen()
Bram Moolenaar49f9dd72014-08-29 12:08:43 +020049:let line="_S_\t bla"
50:$put =line
51:$
52:norm! zt
53:let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)"
54:set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
55:syn match ConcealVar contained /_/ conceal
56:syn match All /.*/ contains=ConcealVar
57:let line=ScreenChar(winwidth(0))
58:call DoRecordScreen()
Bram Moolenaar86b17e92014-07-02 20:00:47 +020059:%w! test.out
60:qa!
61ENDTEST
62dummy text