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.
5 AssertNotEqual SyntaxOf('a'), 'htmlBold'
6 AssertEqual SyntaxOf('b'), 'htmlBold'
7 AssertNotEqual SyntaxOf('c'), 'htmlBold'
13 AssertNotEqual SyntaxOf('a'), 'htmlBold'
14 AssertEqual SyntaxOf('b'), 'htmlBold'
15 AssertNotEqual SyntaxOf('c'), 'htmlBold'
21 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
22 AssertEqual SyntaxOf('b'), 'htmlItalic'
23 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
29 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
30 AssertEqual SyntaxOf('b'), 'htmlItalic'
31 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
36 Execute (italic text has underscores):
37 AssertEqual SyntaxOf('a'), 'htmlItalic'
38 AssertEqual SyntaxOf('b'), 'htmlItalic'
43 Execute (not italic with escaped asterisks):
44 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
45 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
46 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
51 Execute (not italic with escaped underscores):
52 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
53 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
54 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
59 Execute (italic with escaped underscores):
60 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
61 AssertEqual SyntaxOf('b'), 'htmlItalic'
62 AssertEqual SyntaxOf('c'), 'htmlItalic'
63 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
68 Execute (not italic underscores within text):
69 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
70 AssertNotEqual SyntaxOf('b'), 'htmlItalic'
71 AssertNotEqual SyntaxOf('c'), 'htmlItalic'
76 Execute (italic with escaped asterisks):
77 AssertNotEqual SyntaxOf('a'), 'htmlItalic'
78 AssertEqual SyntaxOf('b'), 'htmlItalic'
79 AssertEqual SyntaxOf('c'), 'htmlItalic'
80 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
85 Execute (bold with escaped underscores):
86 AssertNotEqual SyntaxOf('a'), 'htmlBold'
87 AssertEqual SyntaxOf('b'), 'htmlBold'
88 AssertEqual SyntaxOf('c'), 'htmlBold'
89 AssertNotEqual SyntaxOf('d'), 'htmlBold'
95 Execute (italic with underscores in multiple lines):
96 AssertEqual SyntaxOf('a'), 'htmlItalic'
97 AssertEqual SyntaxOf('b'), 'htmlItalic'
98 AssertEqual SyntaxOf('c'), 'htmlItalic'
99 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
105 Execute (bold with underscores in multiple lines):
106 AssertEqual SyntaxOf('a'), 'htmlBold'
107 AssertEqual SyntaxOf('b'), 'htmlBold'
108 AssertEqual SyntaxOf('c'), 'htmlBold'
109 AssertNotEqual SyntaxOf('d'), 'htmlBold'
115 Execute (bold italic with underscores in multiple lines):
116 AssertEqual SyntaxOf('a'), 'htmlBoldItalic'
117 AssertEqual SyntaxOf('b'), 'htmlBoldItalic'
118 AssertEqual SyntaxOf('c'), 'htmlBoldItalic'
119 AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic'
125 Execute (italic with asterisks in multiple lines):
126 AssertEqual SyntaxOf('a'), 'htmlItalic'
127 AssertEqual SyntaxOf('b'), 'htmlItalic'
128 AssertEqual SyntaxOf('c'), 'htmlItalic'
129 AssertNotEqual SyntaxOf('d'), 'htmlItalic'
135 Execute (bold with asterisks in multiple lines):
136 AssertEqual SyntaxOf('a'), 'htmlBold'
137 AssertEqual SyntaxOf('b'), 'htmlBold'
138 AssertEqual SyntaxOf('c'), 'htmlBold'
139 AssertNotEqual SyntaxOf('d'), 'htmlBold'
145 Execute (bold italic with asterisks in multiple lines):
146 AssertEqual SyntaxOf('a'), 'htmlBoldItalic'
147 AssertEqual SyntaxOf('b'), 'htmlBoldItalic'
148 AssertEqual SyntaxOf('c'), 'htmlBoldItalic'
149 AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic'
156 Execute (link with title):
157 AssertEqual SyntaxOf('a'), 'mkdLink'
158 AssertEqual SyntaxOf('b'), 'mkdURL'
164 Execute (link text with newline):
165 AssertEqual SyntaxOf('a'), 'mkdLink'
166 AssertEqual SyntaxOf('b'), 'mkdLink'
167 AssertEqual SyntaxOf('c'), 'mkdURL'
174 Execute (parenthesis not in link):
175 AssertNotEqual SyntaxOf('a'), 'mkdURL'
176 AssertNotEqual SyntaxOf('b'), 'mkdURL'
181 Execute (multiple links on a line):
182 AssertNotEqual SyntaxOf('c'), 'mkdLink'
183 AssertNotEqual SyntaxOf('c'), 'mkdURL'
188 Execute (space is not allowed between link text and parenthesis):
189 AssertNotEqual SyntaxOf('a'), 'mkdLink'
190 AssertNotEqual SyntaxOf('b'), 'mkdURL'
195 Execute (conceal link):
197 setlocal conceallevel=2
198 AssertEqual synconcealed(1, 1)[0], 1
199 AssertEqual synconcealed(1, 2)[0], 0
200 AssertEqual synconcealed(1, 3)[0], 1
201 AssertEqual synconcealed(1, 4)[0], 1
202 AssertEqual synconcealed(1, 4)[0], 1
203 AssertEqual synconcealed(1, 5)[0], 1
204 AssertEqual synconcealed(1, 6)[0], 1
205 setlocal conceallevel=0
208 Execute (disable conceal):
210 let g:vim_markdown_conceal=0
212 setlocal conceallevel=2
213 AssertEqual synconcealed(1, 1)[0], 0
214 AssertEqual synconcealed(1, 2)[0], 0
215 AssertEqual synconcealed(1, 3)[0], 0
216 AssertEqual synconcealed(1, 4)[0], 0
217 AssertEqual synconcealed(1, 4)[0], 0
218 AssertEqual synconcealed(1, 5)[0], 0
219 AssertEqual synconcealed(1, 6)[0], 0
221 let g:vim_markdown_conceal=1
223 AssertEqual synconcealed(1, 1)[0], 1
224 AssertEqual synconcealed(1, 2)[0], 0
225 AssertEqual synconcealed(1, 3)[0], 1
226 AssertEqual synconcealed(1, 4)[0], 1
227 AssertEqual synconcealed(1, 4)[0], 1
228 AssertEqual synconcealed(1, 5)[0], 1
229 AssertEqual synconcealed(1, 6)[0], 1
231 setlocal conceallevel=0
232 unlet g:vim_markdown_conceal
242 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
243 AssertEqual SyntaxOf('<'), 'mkdDelimiter'
244 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
245 AssertEqual SyntaxOf('>'), 'mkdDelimiter'
246 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
251 Execute (autolink with domain starting with a number):
252 AssertEqual SyntaxOf('12monkeys'), 'mkdInlineURL'
257 Execute (autolink with scheme case is insensitive):
258 AssertEqual SyntaxOf('a'), 'mkdInlineURL'
263 Execute (autolink without scheme is not a link):
264 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
272 Execute (autolink with space is not a link):
273 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
274 AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
275 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
276 AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
277 AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
282 Execute (autolinks can be backslash escaped):
283 AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
288 Execute (autolink in parenthesis):
289 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
290 AssertEqual SyntaxOf('('), 'mkdDelimiter'
291 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
292 AssertEqual SyntaxOf(')'), 'mkdDelimiter'
293 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
296 [![a](http://b)](http://c)
298 Execute (autolink in link text):
299 AssertEqual SyntaxOf('!'), 'mkdDelimiter'
300 AssertEqual SyntaxOf('a'), 'mkdLink'
301 AssertEqual SyntaxOf('b'), 'mkdURL'
302 AssertEqual SyntaxOf('c'), 'mkdURL'
311 Execute (code blocks can be fenced with tildes):
312 AssertEqual SyntaxOf('c'), 'mkdCode'
319 Execute (code blocks can be fenced with tildes longer than 3):
320 AssertEqual SyntaxOf('c'), 'mkdCode'
327 Execute (code blocks can be fenced with backticks longer than 3):
328 AssertEqual SyntaxOf('c'), 'mkdCode'
335 Execute (code blocks can have a language specifier):
336 AssertEqual SyntaxOf('c'), 'mkdCode'
345 Execute (code blocks can be fenced with backticks and a language specifier):
346 AssertEqual SyntaxOf('code'), 'mkdCode'
347 AssertNotEqual SyntaxOf('text'), 'mkdCode'
357 Execute (indent code blocks):
358 AssertNotEqual SyntaxOf('a'), 'mkdCode'
359 AssertEqual SyntaxOf('b'), 'mkdCode'
360 AssertEqual SyntaxOf('c'), 'mkdCode'
369 Execute (indent code blocks after header):
370 AssertNotEqual SyntaxOf('a'), 'mkdCode'
371 AssertNotEqual SyntaxOf('b'), 'mkdCode'
372 AssertEqual SyntaxOf('c'), 'mkdCode'
381 Execute (indent code blocks after list):
382 AssertNotEqual SyntaxOf('a'), 'mkdCode'
383 AssertNotEqual SyntaxOf('b'), 'mkdCode'
384 AssertEqual SyntaxOf('c'), 'mkdCode'
390 Execute (indent code block at beginning of file):
391 AssertEqual SyntaxOf('a'), 'mkdCode'
392 AssertEqual SyntaxOf('b'), 'mkdCode'
405 Execute (fenced code block syntax with a language specifier):
406 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
408 AssertEqual SyntaxOf('include'), 'cInclude'
409 AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
410 AssertEqual SyntaxOf('def'), 'rubyDefine'
421 Execute (fenced code block syntax with alias language specifier):
422 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
424 AssertEqual SyntaxOf('g:a'), 'vimVar'
425 AssertEqual SyntaxOf('g:b'), 'vimVar'
432 Execute (fenced code block syntax with an unknown language specifier):
433 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
435 AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_'
444 Execute (first = or - in fenced code block is not setex headers):
445 AssertEqual SyntaxOf('='), 'mkdCode'
446 AssertEqual SyntaxOf('-'), 'mkdCode'
453 Execute (fenced code block with extended info strings):
454 AssertEqual SyntaxOf('a'), 'mkdCode'
456 # Code Blocks in pre and code tag
463 Execute (code block in pre tag):
464 AssertEqual SyntaxOf('a'), 'mkdCode'
471 Execute (code block in code tag):
472 AssertEqual SyntaxOf('a'), 'mkdCode'
479 Execute (not code block in escaped pre tag):
480 AssertNotEqual SyntaxOf('a'), 'mkdCode'
487 Execute (not code block in escaped code tag):
488 AssertNotEqual SyntaxOf('a'), 'mkdCode'
499 AssertNotEqual SyntaxOf('x'), 'mkdMath'
500 AssertNotEqual SyntaxOf('y'), 'mkdMath'
501 let g:vim_markdown_math=1
503 AssertNotEqual SyntaxOf('a'), 'mkdMath'
504 AssertNotEqual SyntaxOf('b'), 'mkdMath'
505 AssertNotEqual SyntaxOf('c'), 'mkdMath'
506 AssertNotEqual SyntaxOf('d'), 'mkdMath'
507 AssertNotEqual SyntaxOf('e'), 'mkdMath'
508 AssertNotEqual SyntaxOf('f'), 'mkdMath'
509 AssertEqual SyntaxOf('x'), 'mkdMath'
510 AssertEqual SyntaxOf('y'), 'mkdMath'
511 let g:vim_markdown_math=0
513 AssertNotEqual SyntaxOf('x'), 'mkdMath'
514 AssertNotEqual SyntaxOf('y'), 'mkdMath'
525 Execute (multiline math):
526 let g:vim_markdown_math=1
528 AssertNotEqual SyntaxOf('a'), 'mkdMath'
529 AssertEqual SyntaxOf('b'), 'mkdMath'
530 AssertNotEqual SyntaxOf('c'), 'mkdMath'
536 Execute (math tex highlighting):
537 let g:vim_markdown_math=0
539 AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
540 AssertNotEqual SyntaxOf('frac'), 'texStatement'
541 let g:vim_markdown_math=1
543 AssertEqual SyntaxOf('sqrt'), 'texStatement'
544 AssertEqual SyntaxOf('frac'), 'texStatement'
553 Execute (YAML frontmatter is controlled by the option):
554 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
555 let g:vim_markdown_frontmatter=1
557 AssertEqual SyntaxOf('a')[0:3], 'yaml'
558 let g:vim_markdown_frontmatter=0
560 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
568 Execute (YAML frontmatter only works if it's the first thing in the file):
569 let g:vim_markdown_frontmatter=1
571 AssertNotEqual SyntaxOf('a')[0:3], 'yaml'
580 Execute (rules are not mistaken by YAML frontmatter delimiters):
581 let g:vim_markdown_frontmatter=1
583 AssertEqual SyntaxAt(5, 1), 'mkdRule'
584 unlet g:vim_markdown_frontmatter
593 Execute (TOML frontmatter is controlled by the option):
595 AssertNotEqual SyntaxOf('b'), 'tomlString'
596 let g:vim_markdown_toml_frontmatter=1
598 AssertEqual SyntaxOf('b'), 'tomlString'
599 let g:vim_markdown_toml_frontmatter=0
601 AssertNotEqual SyntaxOf('b'), 'tomlString'
609 Execute (TOML frontmatter only works if it's the first thing in the file):
610 let g:vim_markdown_toml_frontmatter=1
612 AssertNotEqual SyntaxOf('b'), 'tomlString'
613 unlet g:vim_markdown_toml_frontmatter
622 Execute (JSON frontmatter is controlled by the option):
624 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
625 let g:vim_markdown_json_frontmatter=1
627 AssertEqual SyntaxOf('a'), 'jsonKeyword'
628 let g:vim_markdown_json_frontmatter=0
630 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
638 Execute (JSON frontmatter only works if it's the first thing in the file):
639 let g:vim_markdown_json_frontmatter=1
641 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
642 unlet g:vim_markdown_json_frontmatter
653 Execute (header title starts with #):
654 AssertEqual SyntaxOf('a'), 'htmlH1'
655 AssertEqual SyntaxOf('b'), 'htmlH2'
670 ## h2 trailing hash ##
676 ### h3 trailing hash ###
684 Execute (atx headers):
685 AssertEqual SyntaxOf('# h1 space'), 'htmlH1'
686 AssertEqual SyntaxOf('#h1 nospace'), 'htmlH1'
687 AssertEqual SyntaxOf('# h1 2 spaces'), 'htmlH1'
688 AssertEqual SyntaxOf('# h1 trailing hash #'), 'htmlH1'
689 AssertEqual SyntaxOf('## h2 space'), 'htmlH2'
690 AssertEqual SyntaxOf('##h2 nospace'), 'htmlH2'
691 AssertEqual SyntaxOf('## h2 trailing hash ##'), 'htmlH2'
692 AssertEqual SyntaxOf('### h3 space'), 'htmlH3'
693 AssertEqual SyntaxOf('###h3 nospace'), 'htmlH3'
694 AssertEqual SyntaxOf('### h3 trailing hash ###'), 'htmlH3'
695 AssertEqual SyntaxOf('#### h4'), 'htmlH4'
696 AssertEqual SyntaxOf('##### h5'), 'htmlH5'
697 AssertEqual SyntaxOf('###### h6'), 'htmlH6'
706 Execute (atx headers relative positions):
707 AssertEqual SyntaxOf('# h1 before h2'), 'htmlH1'
708 AssertEqual SyntaxOf('## h2 between h1s'), 'htmlH2'
709 AssertEqual SyntaxOf('# h1 after h2'), 'htmlH1'
718 setex h1 single punctuation
721 setex h1 punctuation longer than header
722 ================================
724 Execute (setex headers):
725 AssertEqual SyntaxOf('setex h1'), 'htmlH1'
726 AssertEqual SyntaxOf('^========$'), 'htmlH1'
727 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
728 AssertEqual SyntaxOf('--------'), 'htmlH2'
729 AssertEqual SyntaxOf('setex h1 single punctuation'), 'htmlH1'
730 AssertEqual SyntaxOf('^=$'), 'htmlH1'
731 AssertEqual SyntaxOf('setex h1 punctuation longer than header'), 'htmlH1'
732 AssertEqual SyntaxOf('^================================$'), 'htmlH1'
738 Execute (prevent list vs Setex confusion):
739 AssertNotEqual SyntaxOf('- not Setex'), 'htmlH2'
740 AssertNotEqual SyntaxOf('- becuase list'), 'htmlH2'
757 Execute (mixed atx and setex headers):
758 AssertEqual SyntaxOf('setex h1 before atx'), 'htmlH1'
759 AssertEqual SyntaxOf('==================='), 'htmlH1'
760 AssertEqual SyntaxOf('## atx h2'), 'htmlH2'
761 AssertEqual SyntaxOf('### atx h3'), 'htmlH3'
762 AssertEqual SyntaxOf('# atx h1'), 'htmlH1'
763 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
764 AssertEqual SyntaxOf('------------------'), 'htmlH2'
772 Execute (& and > are not marked as htmlError in lists):
773 AssertEqual SyntaxOf('-'), 'mkdListItem'
774 AssertEqual SyntaxOf('1.'), 'mkdListItem'
775 AssertNotEqual SyntaxOf('&'), 'htmlError'
776 AssertNotEqual SyntaxOf('>'), 'htmlError'
782 Execute (list after line break):
783 AssertEqual SyntaxOf('1'), 'mkdListItem'
784 AssertEqual SyntaxOf('2'), 'mkdListItem'
795 Execute (HTML tag in text):
796 AssertEqual SyntaxOf('p'), 'htmlTagName'
797 AssertEqual SyntaxOf('<p>'), 'htmlTag'
798 AssertEqual SyntaxOf('</p>'), 'htmlEndTag'
799 AssertEqual SyntaxOf('span'), 'htmlTagName'
800 AssertEqual SyntaxOf('<span>'), 'htmlTag'
801 AssertEqual SyntaxOf('</span>'), 'htmlEndTag'