1" Tests for the various 'formatoptions' settings 2func 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! 168endfunc 169