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 |
Bram Moolenaar | 404406a | 2014-10-09 13:24:43 +0200 | [diff] [blame] | 5 | :if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 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 |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 26 | :" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 27 | :let g:test="Test 1: set linebreak" |
| 28 | :redraw! |
| 29 | :let line=ScreenChar(winwidth(0)) |
| 30 | :call DoRecordScreen() |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 31 | :" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 32 | :let g:test="Test 2: set linebreak + set list" |
| 33 | :set linebreak list listchars= |
| 34 | :redraw! |
| 35 | :let line=ScreenChar(winwidth(0)) |
| 36 | :call DoRecordScreen() |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 37 | :" |
Bram Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 38 | :let g:test ="Test 3: set linebreak nolist" |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 39 | :set nolist linebreak |
| 40 | :redraw! |
| 41 | :let line=ScreenChar(winwidth(0)) |
| 42 | :call DoRecordScreen() |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 43 | :" |
Bram Moolenaar | b5647f7 | 2014-07-16 17:01:53 +0200 | [diff] [blame] | 44 | :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] | 45 | :set nolist linebreak ts=8 |
| 46 | :let line="1\t".repeat('a', winwidth(0)-2) |
| 47 | :$put =line |
| 48 | :$ |
| 49 | :norm! zt |
| 50 | :redraw! |
| 51 | :let line=ScreenChar(winwidth(0)) |
| 52 | :call DoRecordScreen() |
Bram Moolenaar | 49f9dd7 | 2014-08-29 12:08:43 +0200 | [diff] [blame] | 53 | :let line="_S_\t bla" |
| 54 | :$put =line |
| 55 | :$ |
| 56 | :norm! zt |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 57 | :" |
Bram Moolenaar | 49f9dd7 | 2014-08-29 12:08:43 +0200 | [diff] [blame] | 58 | :let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)" |
| 59 | :set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab |
| 60 | :syn match ConcealVar contained /_/ conceal |
| 61 | :syn match All /.*/ contains=ConcealVar |
| 62 | :let line=ScreenChar(winwidth(0)) |
| 63 | :call DoRecordScreen() |
Bram Moolenaar | 404406a | 2014-10-09 13:24:43 +0200 | [diff] [blame] | 64 | :set cpo&vim linebreak |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 65 | :" |
Bram Moolenaar | 404406a | 2014-10-09 13:24:43 +0200 | [diff] [blame] | 66 | :let g:test ="Test 6: set linebreak with visual block mode" |
| 67 | :let line="REMOVE: this not" |
Bram Moolenaar | 74db34c | 2015-06-25 13:30:46 +0200 | [diff] [blame] | 68 | :$put =g:test |
Bram Moolenaar | 404406a | 2014-10-09 13:24:43 +0200 | [diff] [blame] | 69 | :$put =line |
| 70 | :let line="REMOVE: aaaaaaaaaaaaa" |
| 71 | :$put =line |
| 72 | :1/^REMOVE: |
| 73 | 0jf x:$put |
Bram Moolenaar | 74db34c | 2015-06-25 13:30:46 +0200 | [diff] [blame] | 74 | :set cpo&vim linebreak |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 75 | :" |
Bram Moolenaar | 74db34c | 2015-06-25 13:30:46 +0200 | [diff] [blame] | 76 | :let g:test ="Test 7: set linebreak with visual block mode and v_b_A" |
| 77 | :$put =g:test |
| 78 | Golong line: 40afoobar aTARGET at end |
| 79 | :exe "norm! $3B\<C-v>eAx\<Esc>" |
| 80 | :set cpo&vim linebreak sbr= |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 81 | :" |
Bram Moolenaar | 74db34c | 2015-06-25 13:30:46 +0200 | [diff] [blame] | 82 | :let g:test ="Test 8: set linebreak with visual char mode and changing block" |
| 83 | :$put =g:test |
| 84 | Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj. |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 85 | :" |
Bram Moolenaar | 31b259b | 2015-07-28 11:21:32 +0200 | [diff] [blame] | 86 | :let g:test ="Test 9: using redo after block visual mode" |
| 87 | :$put =g:test |
| 88 | Go |
| 89 | aaa |
| 90 | aaa |
| 91 | a2k2j~e. |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 92 | :" |
Bram Moolenaar | 89c17c0 | 2015-08-11 17:46:36 +0200 | [diff] [blame] | 93 | :let g:test ="Test 10: using normal commands after block-visual" |
| 94 | :$put =g:test |
| 95 | :set linebreak |
| 96 | Go |
| 97 | abcd{ef |
| 98 | ghijklm |
| 99 | no}pqrs2k0f{c% |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 100 | :" |
Bram Moolenaar | 10ad1d9 | 2015-09-25 19:35:02 +0200 | [diff] [blame] | 101 | :let g:test ="Test 11: using block replace mode after wrapping" |
| 102 | :$put =g:test |
| 103 | :set linebreak wrap |
| 104 | Go150aayypk147|jr0 |
Bram Moolenaar | 9bc01eb | 2015-12-17 21:14:58 +0100 | [diff] [blame] | 105 | :" |
| 106 | :let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$" |
| 107 | :set list listchars=space:_,trail:-,tab:>-,eol:$ |
| 108 | :$put =g:test |
| 109 | :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta " |
| 110 | :$put =line |
| 111 | :$ |
| 112 | :norm! zt |
| 113 | :redraw! |
| 114 | :let line=ScreenChar(winwidth(0)) |
| 115 | :call DoRecordScreen() |
Bram Moolenaar | 86b17e9 | 2014-07-02 20:00:47 +0200 | [diff] [blame] | 116 | :%w! test.out |
| 117 | :qa! |
| 118 | ENDTEST |
| 119 | dummy text |