]> 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:

Use function! as with the other code
[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 Given markdown;
151 [![a](http://b)](http://c)
152
153 Execute (autolink in link text):
154   AssertEqual SyntaxOf('!'), 'mkdDelimiter'
155   AssertEqual SyntaxOf('a'), 'mkdLink'
156   AssertEqual SyntaxOf('b'), 'mkdURL'
157   AssertEqual SyntaxOf('c'), 'mkdURL'
158
159 # Code Blocks
160
161 Given markdown;
162 ~~~
163 code
164 ~~~
165
166 Execute (code blocks can be fenced with tildes):
167   AssertEqual SyntaxOf('c'), 'mkdCode'
168
169 Given markdown;
170 ~~~ruby
171 code
172 ~~~
173
174 Execute (code blocks can have a language specifier):
175   AssertEqual SyntaxOf('c'), 'mkdCode'
176
177 Given markdown;
178 ```c++
179 code
180 ```
181
182 text
183
184 Execute (code blocks can be fenced with backticks and a language specifier):
185   AssertEqual SyntaxOf('code'), 'mkdCode'
186   AssertNotEqual SyntaxOf('text'), 'mkdCode'
187
188 # Math
189
190 Given markdown;
191 a $x$ b
192 c $$y$$ d
193 \$e\$
194 \$\$f\$\$
195
196 Execute (math):
197   AssertNotEqual SyntaxOf('x'), 'mkdMath'
198   AssertNotEqual SyntaxOf('y'), 'mkdMath'
199   let g:vim_markdown_math=1
200   syn off | syn on
201   AssertNotEqual SyntaxOf('a'), 'mkdMath'
202   AssertNotEqual SyntaxOf('b'), 'mkdMath'
203   AssertNotEqual SyntaxOf('c'), 'mkdMath'
204   AssertNotEqual SyntaxOf('d'), 'mkdMath'
205   AssertNotEqual SyntaxOf('e'), 'mkdMath'
206   AssertNotEqual SyntaxOf('f'), 'mkdMath'
207   AssertEqual SyntaxOf('x'), 'mkdMath'
208   AssertEqual SyntaxOf('y'), 'mkdMath'
209   let g:vim_markdown_math=0
210   syn off | syn on
211   AssertNotEqual SyntaxOf('x'), 'mkdMath'
212   AssertNotEqual SyntaxOf('y'), 'mkdMath'
213
214 Given markdown;
215 a
216
217 $
218 b
219 $
220
221 c
222
223 Execute (multiline math):
224   let g:vim_markdown_math=1
225   syn off | syn on
226   AssertNotEqual SyntaxOf('a'), 'mkdMath'
227   AssertEqual SyntaxOf('b'), 'mkdMath'
228   AssertNotEqual SyntaxOf('c'), 'mkdMath'
229
230 Given markdown;
231 $ \sqrt{a}{b} $
232 $$ \frac{a}{b} $$
233
234 Execute (math tex highlighting):
235   let g:vim_markdown_math=0
236   syn off | syn on
237   AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
238   AssertNotEqual SyntaxOf('frac'), 'texStatement'
239   let g:vim_markdown_math=1
240   syn off | syn on
241   AssertEqual SyntaxOf('sqrt'), 'texStatement'
242   AssertEqual SyntaxOf('frac'), 'texStatement'
243
244 # YAML frontmatter
245
246 Given markdown;
247 ---
248 a: b
249 ---
250
251 Execute (YAML frontmatter is controlled by the option):
252   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
253   let g:vim_markdown_frontmatter=1
254   syn off | syn on
255   AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
256   let g:vim_markdown_frontmatter=0
257   syn off | syn on
258   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
259
260 Given markdown;
261
262 ---
263 a: b
264 ---
265
266 Execute (YAML frontmatter only works if it's the first thing in the file):
267   let g:vim_markdown_frontmatter=1
268   syn off | syn on
269   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
270
271 Given markdown;
272 ---
273 a: b
274 ---
275
276 ---
277
278 Execute (rules are not mistaken by YAML frontmatter delimiters):
279   let g:vim_markdown_frontmatter=1
280   syn off | syn on
281   AssertEqual SyntaxAt(5, 1), 'mkdRule'
282
283 # Header
284
285 Given markdown;
286 # #a
287 ccc
288
289 ## #b
290 ddd
291
292 Execute (header title starts with #):
293   AssertEqual SyntaxOf('a'), 'htmlH1'
294   AssertEqual SyntaxOf('b'), 'htmlH2'