blob: 999566c6acd297208b5fce32ceb0162c7d574dec [file] [log] [blame]
Bram Moolenaar209d3872017-11-16 21:52:51 +01001" 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