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

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