Bram Moolenaar | 209d387 | 2017-11-16 21:52:51 +0100 | [diff] [blame^] | 1 | " Tests for the various 'formatoptions' settings |
| 2 | func Test_text_format() |
| 3 | enew! |
| 4 | |
| 5 | setl noai tw=2 fo=t |
| 6 | call append('$', [ |
| 7 | \ '{', |
| 8 | \ ' ', |
| 9 | \ '', |
| 10 | \ '}']) |
| 11 | exe "normal /^{/+1\n0" |
| 12 | normal gRa b |
| 13 | let lnum = line('.') |
| 14 | call assert_equal([ |
| 15 | \ 'a', |
| 16 | \ 'b'], getline(lnum - 1, lnum)) |
| 17 | |
| 18 | normal ggdG |
| 19 | setl ai tw=2 fo=tw |
| 20 | call append('$', [ |
| 21 | \ '{', |
| 22 | \ 'a b ', |
| 23 | \ '', |
| 24 | \ 'a ', |
| 25 | \ '}']) |
| 26 | exe "normal /^{/+1\n0" |
| 27 | normal gqgqjjllab |
| 28 | let lnum = line('.') |
| 29 | call assert_equal([ |
| 30 | \ 'a ', |
| 31 | \ 'b ', |
| 32 | \ '', |
| 33 | \ 'a ', |
| 34 | \ 'b'], getline(lnum - 4, lnum)) |
| 35 | |
| 36 | normal ggdG |
| 37 | setl tw=3 fo=t |
| 38 | call append('$', [ |
| 39 | \ '{', |
| 40 | \ "a \<C-A>", |
| 41 | \ '}']) |
| 42 | exe "normal /^{/+1\n0" |
| 43 | exe "normal gqgqo\na \<C-V>\<C-A>" |
| 44 | let lnum = line('.') |
| 45 | call assert_equal([ |
| 46 | \ 'a', |
| 47 | \ "\<C-A>", |
| 48 | \ '', |
| 49 | \ 'a', |
| 50 | \ "\<C-A>"], getline(lnum - 4, lnum)) |
| 51 | |
| 52 | normal ggdG |
| 53 | setl tw=2 fo=tcq1 comments=:# |
| 54 | call append('$', [ |
| 55 | \ '{', |
| 56 | \ 'a b', |
| 57 | \ '#a b', |
| 58 | \ '}']) |
| 59 | exe "normal /^{/+1\n0" |
| 60 | exe "normal gqgqjgqgqo\na b\n#a b" |
| 61 | let lnum = line('.') |
| 62 | call assert_equal([ |
| 63 | \ 'a b', |
| 64 | \ '#a b', |
| 65 | \ '', |
| 66 | \ 'a b', |
| 67 | \ '#a b'], getline(lnum - 4, lnum)) |
| 68 | |
| 69 | normal ggdG |
| 70 | setl tw=5 fo=tcn comments=:# |
| 71 | call append('$', [ |
| 72 | \ '{', |
| 73 | \ ' 1 a', |
| 74 | \ '# 1 a', |
| 75 | \ '}']) |
| 76 | exe "normal /^{/+1\n0" |
| 77 | exe "normal A b\<Esc>jA b" |
| 78 | let lnum = line('.') |
| 79 | call assert_equal([ |
| 80 | \ ' 1 a', |
| 81 | \ ' b', |
| 82 | \ '# 1 a', |
| 83 | \ '# b'], getline(lnum - 3, lnum)) |
| 84 | |
| 85 | normal ggdG |
| 86 | setl tw=5 fo=t2a si |
| 87 | call append('$', [ |
| 88 | \ '{', |
| 89 | \ '', |
| 90 | \ ' x a', |
| 91 | \ ' b', |
| 92 | \ ' c', |
| 93 | \ '', |
| 94 | \ '}']) |
| 95 | exe "normal /^{/+3\n0" |
| 96 | exe "normal i \<Esc>A_" |
| 97 | let lnum = line('.') |
| 98 | call assert_equal([ |
| 99 | \ '', |
| 100 | \ ' x a', |
| 101 | \ ' b_', |
| 102 | \ ' c', |
| 103 | \ ''], getline(lnum - 2, lnum + 2)) |
| 104 | |
| 105 | normal ggdG |
| 106 | setl tw=5 fo=qn comments=:# |
| 107 | call append('$', [ |
| 108 | \ '{', |
| 109 | \ '# 1 a b', |
| 110 | \ '}']) |
| 111 | exe "normal /^{/+1\n5|" |
| 112 | normal gwap |
| 113 | call assert_equal(5, col('.')) |
| 114 | let lnum = line('.') |
| 115 | call assert_equal([ |
| 116 | \ '# 1 a', |
| 117 | \ '# b'], getline(lnum, lnum + 1)) |
| 118 | |
| 119 | normal ggdG |
| 120 | setl tw=5 fo=q2 comments=:# |
| 121 | call append('$', [ |
| 122 | \ '{', |
| 123 | \ '# x', |
| 124 | \ '# a b', |
| 125 | \ '}']) |
| 126 | exe "normal /^{/+1\n0" |
| 127 | normal gwap |
| 128 | let lnum = line('.') |
| 129 | call assert_equal([ |
| 130 | \ '# x a', |
| 131 | \ '# b'], getline(lnum, lnum + 1)) |
| 132 | |
| 133 | normal ggdG |
| 134 | setl tw& fo=a |
| 135 | call append('$', [ |
| 136 | \ '{', |
| 137 | \ ' 1aa', |
| 138 | \ ' 2bb', |
| 139 | \ '}']) |
| 140 | exe "normal /^{/+2\n0" |
| 141 | normal I^^ |
| 142 | call assert_equal('{ 1aa ^^2bb }', getline('.')) |
| 143 | |
| 144 | normal ggdG |
| 145 | setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/ |
| 146 | call append('$', [ |
| 147 | \ '/* abc def ghi jkl ', |
| 148 | \ ' * mno pqr stu', |
| 149 | \ ' */']) |
| 150 | exe "normal /mno pqr/\n" |
| 151 | normal A vwx yz |
| 152 | let lnum = line('.') |
| 153 | call assert_equal([ |
| 154 | \ ' * mno pqr stu ', |
| 155 | \ ' * vwx yz', |
| 156 | \ ' */'], getline(lnum - 1, lnum + 1)) |
| 157 | |
| 158 | normal ggdG |
| 159 | setl tw=12 fo=tqnc comments=:# |
| 160 | call setline('.', '# 1 xxxxx') |
| 161 | normal A foobar |
| 162 | call assert_equal([ |
| 163 | \ '# 1 xxxxx', |
| 164 | \ '# foobar'], getline(1, 2)) |
| 165 | |
| 166 | setl ai& tw& fo& si& comments& |
| 167 | enew! |
| 168 | endfunc |