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.
2 unlet! b:mkd_known_filetypes
3 unlet! b:mkd_included_filetypes
4 unlet! g:vim_markdown_math
10 AssertNotEqual SyntaxOf('a'), 'htmlBold'
11 AssertEqual SyntaxOf('b'), 'htmlBold'
12 AssertNotEqual SyntaxOf('c'), 'htmlBold'
18 AssertNotEqual SyntaxOf('a'), 'htmlBold'
19 AssertEqual SyntaxOf('b'), 'htmlBold'
20 AssertNotEqual SyntaxOf('c'), 'htmlBold'
26 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
27 AssertEqual SyntaxOf('b'), 'htmlItalic'
28 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
34 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
35 AssertEqual SyntaxOf('b'), 'htmlItalic'
36 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
41 Execute (italic text has underscores):
42 AssertEqual SyntaxOf('a'), 'htmlItalic'
43 AssertEqual SyntaxOf('b'), 'htmlItalic'
48 Execute (not italic with escaped asterisks):
49 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
50 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
51 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
56 Execute (not italic with escaped underscores):
57 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
58 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
59 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
64 Execute (italic with escaped underscores):
65 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
66 AssertEqual SyntaxOf('b'), 'htmlItalic'
67 AssertEqual SyntaxOf('c'), 'htmlItalic'
68 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
73 Execute (not italic underscores within text):
74 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
75 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
76 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
81 Execute (italic with escaped asterisks):
82 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
83 AssertEqual SyntaxOf('b'), 'htmlItalic'
84 AssertEqual SyntaxOf('c'), 'htmlItalic'
85 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
90 Execute (bold with escaped underscores):
91 AssertNotEqual SyntaxOf('a'), 'htmlBold'
92 AssertEqual SyntaxOf('b'), 'htmlBold'
93 AssertEqual SyntaxOf('c'), 'htmlBold'
94 AssertNotEqual SyntaxOf('d'), 'htmlBold'
100 Execute (italic with underscores in multiple lines):
101 AssertEqual SyntaxOf('a'), 'htmlItalic'
102 AssertEqual SyntaxOf('b'), 'htmlItalic'
103 AssertEqual SyntaxOf('c'), 'htmlItalic'
104 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
110 Execute (bold with underscores in multiple lines):
111 AssertEqual SyntaxOf('a'), 'htmlBold'
112 AssertEqual SyntaxOf('b'), 'htmlBold'
113 AssertEqual SyntaxOf('c'), 'htmlBold'
114 AssertNotEqual SyntaxOf('d'), 'htmlBold'
120 Execute (bold italic with underscores in multiple lines):
121 AssertEqual SyntaxOf('a'), 'htmlBoldItalic'
122 AssertEqual SyntaxOf('b'), 'htmlBoldItalic'
123 AssertEqual SyntaxOf('c'), 'htmlBoldItalic'
124 AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic'
130 Execute (italic with asterisks in multiple lines):
131 AssertEqual SyntaxOf('a'), 'htmlItalic'
132 AssertEqual SyntaxOf('b'), 'htmlItalic'
133 AssertEqual SyntaxOf('c'), 'htmlItalic'
134 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
140 Execute (bold with asterisks in multiple lines):
141 AssertEqual SyntaxOf('a'), 'htmlBold'
142 AssertEqual SyntaxOf('b'), 'htmlBold'
143 AssertEqual SyntaxOf('c'), 'htmlBold'
144 AssertNotEqual SyntaxOf('d'), 'htmlBold'
150 Execute (bold italic with asterisks in multiple lines):
151 AssertEqual SyntaxOf('a'), 'htmlBoldItalic'
152 AssertEqual SyntaxOf('b'), 'htmlBoldItalic'
153 AssertEqual SyntaxOf('c'), 'htmlBoldItalic'
154 AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic'
159 Execute (not italic with an asterisk):
160 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
165 Execute (not bold with double underscores):
166 AssertNotEqual SyntaxOf('_'), 'htmlBold'
167 AssertNotEqual SyntaxOf('a'), 'htmlBold'
168 AssertNotEqual SyntaxOf('b'), 'htmlBold'
173 Execute (conceal italic):
175 setlocal conceallevel=2
176 AssertEqual synconcealed(1, 1)[0], 1
177 AssertEqual synconcealed(1, 2)[0], 0
178 AssertEqual synconcealed(1, 3)[0], 1
179 setlocal conceallevel=0
182 Execute (disable conceal):
184 let g:vim_markdown_conceal=0
186 setlocal conceallevel=2
187 AssertEqual synconcealed(1, 1)[0], 0
188 AssertEqual synconcealed(1, 2)[0], 0
189 AssertEqual synconcealed(1, 3)[0], 0
191 let g:vim_markdown_conceal=1
193 AssertEqual synconcealed(1, 1)[0], 1
194 AssertEqual synconcealed(1, 2)[0], 0
195 AssertEqual synconcealed(1, 3)[0], 1
197 setlocal conceallevel=0
198 unlet g:vim_markdown_conceal
205 Execute (conceal italic):
207 setlocal conceallevel=2
208 AssertEqual synconcealed(1, 1)[0], 1
209 AssertEqual synconcealed(1, 2)[0], 0
210 AssertEqual synconcealed(1, 3)[0], 1
211 setlocal conceallevel=0
214 Execute (disable conceal):
216 let g:vim_markdown_conceal=0
218 setlocal conceallevel=2
219 AssertEqual synconcealed(1, 1)[0], 0
220 AssertEqual synconcealed(1, 2)[0], 0
221 AssertEqual synconcealed(1, 3)[0], 0
223 let g:vim_markdown_conceal=1
225 AssertEqual synconcealed(1, 1)[0], 1
226 AssertEqual synconcealed(1, 2)[0], 0
227 AssertEqual synconcealed(1, 3)[0], 1
229 setlocal conceallevel=0
230 unlet g:vim_markdown_conceal
237 Execute (conceal bold):
239 setlocal conceallevel=2
240 AssertEqual synconcealed(1, 1)[0], 1
241 AssertEqual synconcealed(1, 2)[0], 1
242 AssertEqual synconcealed(1, 3)[0], 0
243 AssertEqual synconcealed(1, 4)[0], 1
244 AssertEqual synconcealed(1, 5)[0], 1
245 setlocal conceallevel=0
248 Execute (disable conceal):
250 let g:vim_markdown_conceal=0
252 setlocal conceallevel=2
253 AssertEqual synconcealed(1, 1)[0], 0
254 AssertEqual synconcealed(1, 2)[0], 0
255 AssertEqual synconcealed(1, 3)[0], 0
256 AssertEqual synconcealed(1, 4)[0], 0
257 AssertEqual synconcealed(1, 5)[0], 0
259 let g:vim_markdown_conceal=1
261 AssertEqual synconcealed(1, 1)[0], 1
262 AssertEqual synconcealed(1, 2)[0], 1
263 AssertEqual synconcealed(1, 3)[0], 0
264 AssertEqual synconcealed(1, 4)[0], 1
265 AssertEqual synconcealed(1, 5)[0], 1
267 setlocal conceallevel=0
268 unlet g:vim_markdown_conceal
275 Execute (conceal bold):
277 setlocal conceallevel=2
278 AssertEqual synconcealed(1, 1)[0], 1
279 AssertEqual synconcealed(1, 2)[0], 1
280 AssertEqual synconcealed(1, 3)[0], 0
281 AssertEqual synconcealed(1, 4)[0], 1
282 AssertEqual synconcealed(1, 5)[0], 1
283 setlocal conceallevel=0
286 Execute (disable conceal):
288 let g:vim_markdown_conceal=0
290 setlocal conceallevel=2
291 AssertEqual synconcealed(1, 1)[0], 0
292 AssertEqual synconcealed(1, 2)[0], 0
293 AssertEqual synconcealed(1, 3)[0], 0
294 AssertEqual synconcealed(1, 4)[0], 0
295 AssertEqual synconcealed(1, 5)[0], 0
297 let g:vim_markdown_conceal=1
299 AssertEqual synconcealed(1, 1)[0], 1
300 AssertEqual synconcealed(1, 2)[0], 1
301 AssertEqual synconcealed(1, 3)[0], 0
302 AssertEqual synconcealed(1, 4)[0], 1
303 AssertEqual synconcealed(1, 5)[0], 1
305 setlocal conceallevel=0
306 unlet g:vim_markdown_conceal
313 Execute (conceal italic bold):
315 setlocal conceallevel=2
316 AssertEqual synconcealed(1, 1)[0], 1
317 AssertEqual synconcealed(1, 2)[0], 1
318 AssertEqual synconcealed(1, 3)[0], 1
319 AssertEqual synconcealed(1, 4)[0], 0
320 AssertEqual synconcealed(1, 5)[0], 1
321 AssertEqual synconcealed(1, 6)[0], 1
322 AssertEqual synconcealed(1, 7)[0], 1
323 setlocal conceallevel=0
326 Execute (disable conceal):
328 let g:vim_markdown_conceal=0
330 setlocal conceallevel=2
331 AssertEqual synconcealed(1, 1)[0], 0
332 AssertEqual synconcealed(1, 2)[0], 0
333 AssertEqual synconcealed(1, 3)[0], 0
334 AssertEqual synconcealed(1, 4)[0], 0
335 AssertEqual synconcealed(1, 5)[0], 0
336 AssertEqual synconcealed(1, 6)[0], 0
337 AssertEqual synconcealed(1, 7)[0], 0
339 let g:vim_markdown_conceal=1
341 AssertEqual synconcealed(1, 1)[0], 1
342 AssertEqual synconcealed(1, 2)[0], 1
343 AssertEqual synconcealed(1, 3)[0], 1
344 AssertEqual synconcealed(1, 4)[0], 0
345 AssertEqual synconcealed(1, 5)[0], 1
346 AssertEqual synconcealed(1, 6)[0], 1
347 AssertEqual synconcealed(1, 7)[0], 1
349 setlocal conceallevel=0
350 unlet g:vim_markdown_conceal
357 Execute (conceal italic bold):
359 setlocal conceallevel=2
360 AssertEqual synconcealed(1, 1)[0], 1
361 AssertEqual synconcealed(1, 2)[0], 1
362 AssertEqual synconcealed(1, 3)[0], 1
363 AssertEqual synconcealed(1, 4)[0], 0
364 AssertEqual synconcealed(1, 5)[0], 1
365 AssertEqual synconcealed(1, 6)[0], 1
366 AssertEqual synconcealed(1, 7)[0], 1
367 setlocal conceallevel=0
370 Execute (disable conceal):
372 let g:vim_markdown_conceal=0
374 setlocal conceallevel=2
375 AssertEqual synconcealed(1, 1)[0], 0
376 AssertEqual synconcealed(1, 2)[0], 0
377 AssertEqual synconcealed(1, 3)[0], 0
378 AssertEqual synconcealed(1, 4)[0], 0
379 AssertEqual synconcealed(1, 5)[0], 0
380 AssertEqual synconcealed(1, 6)[0], 0
381 AssertEqual synconcealed(1, 7)[0], 0
383 let g:vim_markdown_conceal=1
385 AssertEqual synconcealed(1, 1)[0], 1
386 AssertEqual synconcealed(1, 2)[0], 1
387 AssertEqual synconcealed(1, 3)[0], 1
388 AssertEqual synconcealed(1, 4)[0], 0
389 AssertEqual synconcealed(1, 5)[0], 1
390 AssertEqual synconcealed(1, 6)[0], 1
391 AssertEqual synconcealed(1, 7)[0], 1
393 setlocal conceallevel=0
394 unlet g:vim_markdown_conceal
403 Execute (link with title):
404 AssertEqual SyntaxOf('a'), 'mkdLink'
405 AssertEqual SyntaxOf('b'), 'mkdURL'
411 Execute (link text with newline):
412 AssertEqual SyntaxOf('a'), 'mkdLink'
413 AssertEqual SyntaxOf('b'), 'mkdLink'
414 AssertEqual SyntaxOf('c'), 'mkdURL'
421 Execute (parenthesis not in link):
422 AssertNotEqual SyntaxOf('a'), 'mkdURL'
423 AssertNotEqual SyntaxOf('b'), 'mkdURL'
428 Execute (multiple links on a line):
429 AssertNotEqual SyntaxOf('c'), 'mkdLink'
430 AssertNotEqual SyntaxOf('c'), 'mkdURL'
435 Execute (space is not allowed between link text and parenthesis):
436 AssertNotEqual SyntaxOf('a'), 'mkdLink'
437 AssertNotEqual SyntaxOf('b'), 'mkdURL'
442 Execute (conceal link):
444 setlocal conceallevel=2
445 AssertEqual synconcealed(1, 1)[0], 1
446 AssertEqual synconcealed(1, 2)[0], 0
447 AssertEqual synconcealed(1, 3)[0], 1
448 AssertEqual synconcealed(1, 4)[0], 1
449 AssertEqual synconcealed(1, 4)[0], 1
450 AssertEqual synconcealed(1, 5)[0], 1
451 AssertEqual synconcealed(1, 6)[0], 1
452 setlocal conceallevel=0
455 Execute (disable conceal):
457 let g:vim_markdown_conceal=0
459 setlocal conceallevel=2
460 AssertEqual synconcealed(1, 1)[0], 0
461 AssertEqual synconcealed(1, 2)[0], 0
462 AssertEqual synconcealed(1, 3)[0], 0
463 AssertEqual synconcealed(1, 4)[0], 0
464 AssertEqual synconcealed(1, 4)[0], 0
465 AssertEqual synconcealed(1, 5)[0], 0
466 AssertEqual synconcealed(1, 6)[0], 0
468 let g:vim_markdown_conceal=1
470 AssertEqual synconcealed(1, 1)[0], 1
471 AssertEqual synconcealed(1, 2)[0], 0
472 AssertEqual synconcealed(1, 3)[0], 1
473 AssertEqual synconcealed(1, 4)[0], 1
474 AssertEqual synconcealed(1, 4)[0], 1
475 AssertEqual synconcealed(1, 5)[0], 1
476 AssertEqual synconcealed(1, 6)[0], 1
478 setlocal conceallevel=0
479 unlet g:vim_markdown_conceal
489 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
490 AssertEqual SyntaxOf('<'), 'mkdDelimiter'
491 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
492 AssertEqual SyntaxOf('>'), 'mkdDelimiter'
493 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
498 Execute (autolink with domain starting with a number):
499 AssertEqual SyntaxOf('12monkeys'), 'mkdInlineURL'
504 Execute (autolink with scheme case is insensitive):
505 AssertEqual SyntaxOf('a'), 'mkdInlineURL'
510 Execute (autolink without scheme is not a link):
511 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
519 Execute (autolink with space is not a link):
520 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
521 AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
522 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
523 AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
524 AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
529 Execute (autolinks can be backslash escaped):
530 AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
535 Execute (autolink in parenthesis):
536 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
537 AssertEqual SyntaxOf('('), 'mkdDelimiter'
538 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
539 AssertEqual SyntaxOf(')'), 'mkdDelimiter'
540 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
543 [![a](http://b)](http://c)
545 Execute (autolink in link text):
546 AssertEqual SyntaxOf('!'), 'mkdDelimiter'
547 AssertEqual SyntaxOf('a'), 'mkdLink'
548 AssertEqual SyntaxOf('b'), 'mkdURL'
549 AssertEqual SyntaxOf('c'), 'mkdURL'
570 Execute (link in headers):
571 AssertEqual SyntaxOf('h1link'), 'mkdLink'
572 AssertEqual SyntaxOf('h2link'), 'mkdLink'
573 AssertEqual SyntaxOf('h3link'), 'mkdLink'
574 AssertEqual SyntaxOf('h4link'), 'mkdLink'
575 AssertEqual SyntaxOf('h5link'), 'mkdLink'
576 AssertEqual SyntaxOf('h6link'), 'mkdLink'
577 AssertEqual SyntaxOf('h1link_b'), 'mkdLink'
578 AssertEqual SyntaxOf('h2link_b'), 'mkdLink'
585 ### http://h3link.foo
587 #### http://h4link.foo
589 ##### http://h5link.foo
591 ###### http://h6link.foo
599 Execute (inline url in headers):
600 AssertEqual SyntaxOf('h1link'), 'mkdInlineURL'
601 AssertEqual SyntaxOf('h2link'), 'mkdInlineURL'
602 AssertEqual SyntaxOf('h3link'), 'mkdInlineURL'
603 AssertEqual SyntaxOf('h4link'), 'mkdInlineURL'
604 AssertEqual SyntaxOf('h5link'), 'mkdInlineURL'
605 AssertEqual SyntaxOf('h6link'), 'mkdInlineURL'
606 AssertEqual SyntaxOf('h1link_b'), 'mkdInlineURL'
607 AssertEqual SyntaxOf('h2link_b'), 'mkdInlineURL'
613 Execute (link in blockquote):
614 AssertEqual SyntaxOf('a'), 'mkdLink'
615 AssertEqual SyntaxOf('foo'), 'mkdInlineURL'
624 Execute (code blocks can be fenced with tildes):
625 AssertEqual SyntaxOf('c'), 'mkdCode'
632 Execute (code blocks can be fenced with tildes longer than 3):
633 AssertEqual SyntaxOf('c'), 'mkdCode'
640 Execute (code blocks can be fenced with backticks longer than 3):
641 AssertEqual SyntaxOf('c'), 'mkdCode'
648 Execute (code blocks can have a language specifier):
649 AssertEqual SyntaxOf('c'), 'mkdCode'
658 Execute (code blocks can be fenced with backticks and a language specifier):
659 AssertEqual SyntaxOf('code'), 'mkdCode'
660 AssertNotEqual SyntaxOf('text'), 'mkdCode'
670 Execute (indent code blocks):
671 AssertNotEqual SyntaxOf('a'), 'mkdCode'
672 AssertEqual SyntaxOf('b'), 'mkdCode'
673 AssertEqual SyntaxOf('c'), 'mkdCode'
682 Execute (indent code blocks after header):
683 AssertNotEqual SyntaxOf('a'), 'mkdCode'
684 AssertNotEqual SyntaxOf('b'), 'mkdCode'
685 AssertEqual SyntaxOf('c'), 'mkdCode'
694 Execute (indent code blocks after list):
695 AssertNotEqual SyntaxOf('a'), 'mkdCode'
696 AssertNotEqual SyntaxOf('b'), 'mkdCode'
697 AssertEqual SyntaxOf('c'), 'mkdCode'
703 Execute (indent code block at beginning of file):
704 AssertEqual SyntaxOf('a'), 'mkdCode'
705 AssertEqual SyntaxOf('b'), 'mkdCode'
718 Execute (fenced code block syntax with a language specifier):
719 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
721 AssertEqual SyntaxOf('include'), 'cInclude'
722 AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
723 AssertEqual SyntaxOf('def'), 'rubyDefine'
746 Execute (fenced code block syntax with a language specifier after whitespace):
747 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
749 AssertEqual SyntaxOf('include'), 'cInclude'
750 AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
751 AssertEqual SyntaxOf('g:a'), 'vimVar'
752 AssertEqual SyntaxOf('def'), 'rubyDefine'
753 AssertNotEqual SyntaxOf('class'), 'rubyClass'
764 Execute (fenced code block syntax with alias language specifier):
765 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
767 AssertEqual SyntaxOf('g:a'), 'vimVar'
768 AssertEqual SyntaxOf('g:b'), 'vimVar'
775 Execute (fenced code block languages setting):
776 let g:vim_markdown_fenced_languages = ['csharp=cs']
777 source ../ftplugin/markdown.vim
778 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
780 AssertEqual SyntaxOf('foo'), 'csString'
781 unlet g:vim_markdown_fenced_languages
788 Execute (fenced code block includes language syntax with reopening same buffer):
789 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
794 set filetype=markdown
795 execute "normal! i```vim\<cr>let g:a = 1\<cr>```"
797 AssertEqual SyntaxOf('g:a'), 'vimVar'
804 Execute (fenced code block syntax with an unknown language specifier):
805 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
807 AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_'
816 Execute (first = or - in fenced code block is not setex headers):
817 AssertEqual SyntaxOf('='), 'mkdCode'
818 AssertEqual SyntaxOf('-'), 'mkdCode'
825 Execute (fenced code block with extended info strings):
826 AssertEqual SyntaxOf('a'), 'mkdCode'
828 # Code Blocks in pre and code tag
835 Execute (code block in pre tag):
836 AssertEqual SyntaxOf('a'), 'mkdCode'
843 Execute (code block in code tag):
844 AssertEqual SyntaxOf('a'), 'mkdCode'
851 Execute (not code block in escaped pre tag):
852 AssertNotEqual SyntaxOf('a'), 'mkdCode'
859 Execute (not code block in escaped code tag):
860 AssertNotEqual SyntaxOf('a'), 'mkdCode'
871 AssertNotEqual SyntaxOf('x')[0:2], 'tex'
872 AssertNotEqual SyntaxOf('y')[0:2], 'tex'
873 let g:vim_markdown_math=1
875 AssertNotEqual SyntaxOf('a')[0:2], 'tex'
876 AssertNotEqual SyntaxOf('b')[0:2], 'tex'
877 AssertNotEqual SyntaxOf('c')[0:2], 'tex'
878 AssertNotEqual SyntaxOf('d')[0:2], 'tex'
879 AssertNotEqual SyntaxOf('e')[0:2], 'tex'
880 AssertNotEqual SyntaxOf('f')[0:2], 'tex'
881 AssertEqual SyntaxOf('x')[0:2], 'tex'
882 AssertEqual SyntaxOf('y')[0:2], 'tex'
883 let g:vim_markdown_math=0
885 AssertNotEqual SyntaxOf('x')[0:2], 'tex'
886 AssertNotEqual SyntaxOf('y')[0:2], 'tex'
897 Execute (multiline math):
898 let g:vim_markdown_math=1
900 AssertNotEqual SyntaxOf('a')[0:2], 'tex'
901 AssertEqual SyntaxOf('b')[0:2], 'tex'
902 AssertNotEqual SyntaxOf('c')[0:2], 'tex'
908 Execute (math tex highlighting):
909 let g:vim_markdown_math=0
911 AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
912 AssertNotEqual SyntaxOf('frac'), 'texStatement'
913 let g:vim_markdown_math=1
915 AssertEqual SyntaxOf('sqrt'), 'texStatement'
916 AssertEqual SyntaxOf('frac'), 'texStatement'
921 Execute (math ends with $):
922 let g:vim_markdown_math=1
924 AssertEqual SyntaxOf('a')[0:2], 'tex'
925 AssertEqual SyntaxOf('b')[0:2], 'tex'
926 AssertNotEqual SyntaxOf('c')[0:2], 'tex'
931 Execute (math ends with $$):
932 let g:vim_markdown_math=1
934 AssertEqual SyntaxOf('a')[0:2], 'tex'
935 AssertEqual SyntaxOf('b')[0:2], 'tex'
936 AssertNotEqual SyntaxOf('c')[0:2], 'tex'
941 Execute (math conceal in $):
943 setlocal conceallevel=2
944 let g:vim_markdown_math=1
946 AssertEqual synconcealed(1, 1)[0], 1, '$'
947 AssertEqual synconcealed(1, 2)[0], 0
948 AssertEqual synconcealed(1, 3)[0], 0
949 AssertEqual synconcealed(1, 4)[0], 0
950 AssertEqual synconcealed(1, 5)[0], 1, '\le'
951 AssertEqual synconcealed(1, 6)[0], 1
952 AssertEqual synconcealed(1, 7)[0], 1
953 AssertEqual synconcealed(1, 8)[0], 0
954 AssertEqual synconcealed(1, 9)[0], 0
955 AssertEqual synconcealed(1, 10)[0], 0
956 AssertEqual synconcealed(1, 11)[0], 1, '$'
957 setlocal conceallevel=0
966 Execute (math conceal in $$):
968 setlocal conceallevel=2
969 let g:vim_markdown_math=1
971 AssertEqual synconcealed(1, 1)[0], 1, '$$'
972 AssertEqual synconcealed(2, 1)[0], 1, '\omega'
973 AssertEqual synconcealed(3, 1)[0], 0, '0'
974 AssertEqual synconcealed(3, 3)[0], 1, '\le'
975 AssertEqual synconcealed(3, 7)[0], 0, '1'
976 AssertEqual synconcealed(4, 1)[0], 1, '$$'
977 setlocal conceallevel=0
987 Execute (YAML frontmatter is controlled by the option):
988 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
989 let g:vim_markdown_frontmatter=1
991 AssertEqual SyntaxOf('a')[0:3], 'yaml'
992 let g:vim_markdown_frontmatter=0
994 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
1002 Execute (YAML frontmatter only works if it's the first thing in the file):
1003 let g:vim_markdown_frontmatter=1
1005 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
1014 Execute (rules are not mistaken by YAML frontmatter delimiters):
1015 let g:vim_markdown_frontmatter=1
1017 AssertEqual SyntaxAt(5, 1), 'mkdRule'
1018 unlet g:vim_markdown_frontmatter
1027 Execute (TOML frontmatter is controlled by the option):
1029 AssertNotEqual SyntaxOf('b'), 'tomlString'
1030 let g:vim_markdown_toml_frontmatter=1
1032 AssertEqual SyntaxOf('b'), 'tomlString'
1033 let g:vim_markdown_toml_frontmatter=0
1035 AssertNotEqual SyntaxOf('b'), 'tomlString'
1043 Execute (TOML frontmatter only works if it's the first thing in the file):
1044 let g:vim_markdown_toml_frontmatter=1
1046 AssertNotEqual SyntaxOf('b'), 'tomlString'
1047 unlet g:vim_markdown_toml_frontmatter
1056 Execute (JSON frontmatter is controlled by the option):
1058 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
1059 let g:vim_markdown_json_frontmatter=1
1061 AssertEqual SyntaxOf('a'), 'jsonKeyword'
1062 let g:vim_markdown_json_frontmatter=0
1064 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
1072 Execute (JSON frontmatter only works if it's the first thing in the file):
1073 let g:vim_markdown_json_frontmatter=1
1075 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
1076 unlet g:vim_markdown_json_frontmatter
1087 Execute (header title starts with #):
1088 AssertEqual SyntaxOf('a'), 'htmlH1'
1089 AssertEqual SyntaxOf('b'), 'htmlH2'
1098 # h1 trailing hash #
1104 ## h2 trailing hash ##
1110 ### h3 trailing hash ###
1118 Execute (atx headers):
1119 AssertEqual SyntaxOf('# h1 space'), 'htmlH1'
1120 AssertEqual SyntaxOf('#h1 nospace'), 'htmlH1'
1121 AssertEqual SyntaxOf('# h1 2 spaces'), 'htmlH1'
1122 AssertEqual SyntaxOf('# h1 trailing hash #'), 'htmlH1'
1123 AssertEqual SyntaxOf('## h2 space'), 'htmlH2'
1124 AssertEqual SyntaxOf('##h2 nospace'), 'htmlH2'
1125 AssertEqual SyntaxOf('## h2 trailing hash ##'), 'htmlH2'
1126 AssertEqual SyntaxOf('### h3 space'), 'htmlH3'
1127 AssertEqual SyntaxOf('###h3 nospace'), 'htmlH3'
1128 AssertEqual SyntaxOf('### h3 trailing hash ###'), 'htmlH3'
1129 AssertEqual SyntaxOf('#### h4'), 'htmlH4'
1130 AssertEqual SyntaxOf('##### h5'), 'htmlH5'
1131 AssertEqual SyntaxOf('###### h6'), 'htmlH6'
1140 Execute (atx headers relative positions):
1141 AssertEqual SyntaxOf('# h1 before h2'), 'htmlH1'
1142 AssertEqual SyntaxOf('## h2 between h1s'), 'htmlH2'
1143 AssertEqual SyntaxOf('# h1 after h2'), 'htmlH1'
1152 setex h1 single punctuation
1155 setex h1 punctuation longer than header
1156 ================================
1158 Execute (setex headers):
1159 AssertEqual SyntaxOf('setex h1'), 'htmlH1'
1160 AssertEqual SyntaxOf('^========$'), 'htmlH1'
1161 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
1162 AssertEqual SyntaxOf('--------'), 'htmlH2'
1163 AssertEqual SyntaxOf('setex h1 single punctuation'), 'htmlH1'
1164 AssertEqual SyntaxOf('^=$'), 'htmlH1'
1165 AssertEqual SyntaxOf('setex h1 punctuation longer than header'), 'htmlH1'
1166 AssertEqual SyntaxOf('^================================$'), 'htmlH1'
1172 Execute (prevent list vs Setex confusion):
1173 AssertNotEqual SyntaxOf('- not Setex'), 'htmlH2'
1174 AssertNotEqual SyntaxOf('- becuase list'), 'htmlH2'
1191 Execute (mixed atx and setex headers):
1192 AssertEqual SyntaxOf('setex h1 before atx'), 'htmlH1'
1193 AssertEqual SyntaxOf('==================='), 'htmlH1'
1194 AssertEqual SyntaxOf('## atx h2'), 'htmlH2'
1195 AssertEqual SyntaxOf('### atx h3'), 'htmlH3'
1196 AssertEqual SyntaxOf('# atx h1'), 'htmlH1'
1197 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
1198 AssertEqual SyntaxOf('------------------'), 'htmlH2'
1206 Execute (& and > are not marked as htmlError in lists):
1207 AssertEqual SyntaxOf('-'), 'mkdListItem'
1208 AssertEqual SyntaxOf('1.'), 'mkdListItem'
1209 AssertNotEqual SyntaxOf('&'), 'htmlError'
1210 AssertNotEqual SyntaxOf('>'), 'htmlError'
1216 Execute (list after line break):
1217 AssertEqual SyntaxOf('1'), 'mkdListItem'
1218 AssertEqual SyntaxOf('2'), 'mkdListItem'
1229 Execute (HTML tag in text):
1230 AssertEqual SyntaxOf('p'), 'htmlTagName'
1231 AssertEqual SyntaxOf('<p>'), 'htmlTag'
1232 AssertEqual SyntaxOf('</p>'), 'htmlEndTag'
1233 AssertEqual SyntaxOf('span'), 'htmlTagName'
1234 AssertEqual SyntaxOf('<span>'), 'htmlTag'
1235 AssertEqual SyntaxOf('</span>'), 'htmlEndTag'