Bram Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 1 | Test for linebreak and list option (non-utf8) |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 2 | |
| 3 | STARTTEST |
| 4 | :so small.vim |
| 5 | :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif |
| 6 | :10new|:vsp|:vert resize 20 |
Bram Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 7 | :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 8 | :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 Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 35 | :let g:test ="Test 3: set linebreak nolist" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 36 | :set nolist linebreak |
| 37 | :redraw! |
| 38 | :let line=ScreenChar(winwidth(0)) |
| 39 | :call DoRecordScreen() |
Bram Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 40 | :let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 41 | :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 Moolenaar | 49f9dd7 | 2014-08-29 12:08:43 +0200 | [diff] [blame^] | 49 | :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 Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 59 | :%w! test.out |
| 60 | :qa! |
| 61 | ENDTEST |
| 62 | dummy text |