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

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