]> git.madduck.net Git - etc/vim.git/blob - test/syntax.vader

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

e56edcd4e1df8f1064db7171d0ea2ab1f0adb771
[etc/vim.git] / test / syntax.vader
1 Given markdown;
2 a **b** c
3
4 Execute (bold):
5   AssertNotEqual SyntaxOf('a'), 'htmlBold'
6   AssertEqual SyntaxOf('b'), 'htmlBold'
7   AssertNotEqual SyntaxOf('c'), 'htmlBold'
8
9 Given markdown;
10 a __b__ c
11
12 Execute (bold):
13   AssertNotEqual SyntaxOf('a'), 'htmlBold'
14   AssertEqual SyntaxOf('b'), 'htmlBold'
15   AssertNotEqual SyntaxOf('c'), 'htmlBold'
16
17 Given markdown;
18 a *b* c
19
20 Execute (italic):
21   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
22   AssertEqual SyntaxOf('b'), 'htmlItalic'
23   AssertNotEqual SyntaxOf('c'), 'htmlItalic'
24
25 Given markdown;
26 a _b_ c
27
28 Execute (italic):
29   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
30   AssertEqual SyntaxOf('b'), 'htmlItalic'
31   AssertNotEqual SyntaxOf('c'), 'htmlItalic'
32
33 Given markdown;
34 a \*b\* c
35
36 Execute (not italic with escaped asterisks):
37   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
38   AssertNotEqual SyntaxOf('b'), 'htmlItalic'
39   AssertNotEqual SyntaxOf('c'), 'htmlItalic'
40
41 Given markdown;
42 a \_b\_ c
43
44 Execute (not italic with escaped underscores):
45   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
46   AssertNotEqual SyntaxOf('b'), 'htmlItalic'
47   AssertNotEqual SyntaxOf('c'), 'htmlItalic'
48
49 Given markdown;
50 a _b\_c_ d
51
52 Execute (italic with escaped underscores):
53   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
54   AssertEqual SyntaxOf('b'), 'htmlItalic'
55   AssertEqual SyntaxOf('c'), 'htmlItalic'
56   AssertNotEqual SyntaxOf('d'), 'htmlItalic'
57
58 Given markdown;
59 a __b\_\_c__ d
60
61 Execute (bold with escaped underscores):
62   AssertNotEqual SyntaxOf('a'), 'htmlBold'
63   AssertEqual SyntaxOf('b'), 'htmlBold'
64   AssertEqual SyntaxOf('c'), 'htmlBold'
65   AssertNotEqual SyntaxOf('d'), 'htmlBold'
66
67 # Links
68
69 Given markdown;
70 [a](b)
71
72 Execute (link with title):
73   AssertEqual SyntaxOf('a'), 'mkdLink'
74   AssertEqual SyntaxOf('b'), 'mkdURL'
75
76 Given markdown;
77 (a)
78
79 (b)
80
81 Execute (parenthesis not in link):
82   AssertNotEqual SyntaxOf('a'), 'mkdURL'
83   AssertNotEqual SyntaxOf('b'), 'mkdURL'
84
85 Given markdown;
86 [a](b) c [d](e)
87
88 Execute (multiple links on a line):
89   AssertEqual SyntaxOf('c'), ''
90
91 # Autolinks
92
93 Given markdown;
94 a <http://b> c
95
96 Execute (autolink):
97   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
98   AssertEqual SyntaxOf('<'), 'mkdDelimiter'
99   AssertEqual SyntaxOf('b'), 'mkdInlineURL'
100   AssertEqual SyntaxOf('>'), 'mkdDelimiter'
101   AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
102
103 Given markdown;
104 <HtTp://a>
105
106 Execute (autolink with scheme case is insensitive):
107   AssertEqual SyntaxOf('a'), 'mkdInlineURL'
108
109 Given markdown;
110 <notascheme://a>
111
112 Execute (autolink without known scheme is not a link):
113   AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
114
115 Given markdown;
116 <a>
117
118 Execute (autolink without scheme is not a link):
119   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
120
121 Given markdown;
122 < http://a >
123 <http://b c>
124 <http://d
125 e>
126
127 Execute (autolink with space is not a link):
128   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
129   AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
130   AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
131   AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
132   AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
133
134 Given markdown;
135 \<http://a>
136
137 Execute (autolinks can be backslash escaped):
138   AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
139
140 Given markdown;
141 a (http://b) c
142
143 Execute (autolink in parenthesis):
144   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
145   AssertEqual SyntaxOf('('), 'mkdDelimiter'
146   AssertEqual SyntaxOf('b'), 'mkdInlineURL'
147   AssertEqual SyntaxOf(')'), 'mkdDelimiter'
148   AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
149
150 # Code Blocks
151
152 Given markdown;
153 ~~~
154 code
155 ~~~
156
157 Execute (code blocks can be fenced with tildes):
158   AssertEqual SyntaxOf('c'), 'mkdCode'
159
160 Given markdown;
161 ~~~ruby
162 code
163 ~~~
164
165 Execute (code blocks can have a language specifier):
166   AssertEqual SyntaxOf('c'), 'mkdCode'
167
168 Given markdown;
169 ```c++
170 code
171 ```
172
173 text
174
175 Execute (code blocks can be fenced with backticks and a language specifier):
176   AssertEqual SyntaxOf('code'), 'mkdCode'
177   AssertNotEqual SyntaxOf('text'), 'mkdCode'
178
179 # Math
180
181 Given markdown;
182 a $x$ b
183 c $$y$$ d
184 \$e\$
185 \$\$f\$\$
186
187 Execute (math):
188   AssertNotEqual SyntaxOf('x'), 'mkdMath'
189   AssertNotEqual SyntaxOf('y'), 'mkdMath'
190   let g:vim_markdown_math=1
191   syn off | syn on
192   AssertNotEqual SyntaxOf('a'), 'mkdMath'
193   AssertNotEqual SyntaxOf('b'), 'mkdMath'
194   AssertNotEqual SyntaxOf('c'), 'mkdMath'
195   AssertNotEqual SyntaxOf('d'), 'mkdMath'
196   AssertNotEqual SyntaxOf('e'), 'mkdMath'
197   AssertNotEqual SyntaxOf('f'), 'mkdMath'
198   AssertEqual SyntaxOf('x'), 'mkdMath'
199   AssertEqual SyntaxOf('y'), 'mkdMath'
200   let g:vim_markdown_math=0
201   syn off | syn on
202   AssertNotEqual SyntaxOf('x'), 'mkdMath'
203   AssertNotEqual SyntaxOf('y'), 'mkdMath'
204
205 Given markdown;
206 a
207
208 $
209 b
210 $
211
212 c
213
214 Execute (multiline math):
215   let g:vim_markdown_math=1
216   syn off | syn on
217   AssertNotEqual SyntaxOf('a'), 'mkdMath'
218   AssertEqual SyntaxOf('b'), 'mkdMath'
219   AssertNotEqual SyntaxOf('c'), 'mkdMath'
220
221 Given markdown;
222 $ \sqrt{a}{b} $
223 $$ \frac{a}{b} $$
224
225 Execute (math tex highlighting):
226   let g:vim_markdown_math=0
227   syn off | syn on
228   AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
229   AssertNotEqual SyntaxOf('frac'), 'texStatement'
230   let g:vim_markdown_math=1
231   syn off | syn on
232   AssertEqual SyntaxOf('sqrt'), 'texStatement'
233   AssertEqual SyntaxOf('frac'), 'texStatement'
234
235 # YAML frontmatter
236
237 Given markdown;
238 ---
239 a: b
240 ---
241
242 Execute (YAML frontmatter is controlled by the option):
243   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
244   let g:vim_markdown_frontmatter=1
245   syn off | syn on
246   AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
247   let g:vim_markdown_frontmatter=0
248   syn off | syn on
249   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
250
251 Given markdown;
252
253 ---
254 a: b
255 ---
256
257 Execute (YAML frontmatter only works if it's the first thing in the file):
258   let g:vim_markdown_frontmatter=1
259   syn off | syn on
260   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
261
262 Given markdown;
263 ---
264 a: b
265 ---
266
267 ---
268
269 Execute (rules are not mistaken by YAML frontmatter delimiters):
270   let g:vim_markdown_frontmatter=1
271   syn off | syn on
272   AssertEqual SyntaxAt(5, 1), 'mkdRule'
273
274 # Header
275
276 Given markdown;
277 # #a
278 ccc
279
280 ## #b
281 ddd
282
283 Execute (header title starts with #):
284   AssertEqual SyntaxOf('a'), 'htmlH1'
285   AssertEqual SyntaxOf('b'), 'htmlH2'