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):
196 setlocal conceallevel=2
197 AssertEqual synconcealed(1, 1)[0], 1
198 AssertEqual synconcealed(1, 2)[0], 0
199 AssertEqual synconcealed(1, 3)[0], 1
200 AssertEqual synconcealed(1, 4)[0], 1
201 AssertEqual synconcealed(1, 4)[0], 1
202 AssertEqual synconcealed(1, 5)[0], 1
203 AssertEqual synconcealed(1, 6)[0], 1
204 setlocal conceallevel=0
212 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
213 AssertEqual SyntaxOf('<'), 'mkdDelimiter'
214 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
215 AssertEqual SyntaxOf('>'), 'mkdDelimiter'
216 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
221 Execute (autolink with scheme case is insensitive):
222 AssertEqual SyntaxOf('a'), 'mkdInlineURL'
227 Execute (autolink without scheme is not a link):
228 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
236 Execute (autolink with space is not a link):
237 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
238 AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
239 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
240 AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
241 AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
246 Execute (autolinks can be backslash escaped):
247 AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
252 Execute (autolink in parenthesis):
253 AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
254 AssertEqual SyntaxOf('('), 'mkdDelimiter'
255 AssertEqual SyntaxOf('b'), 'mkdInlineURL'
256 AssertEqual SyntaxOf(')'), 'mkdDelimiter'
257 AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
260 [![a](http://b)](http://c)
262 Execute (autolink in link text):
263 AssertEqual SyntaxOf('!'), 'mkdDelimiter'
264 AssertEqual SyntaxOf('a'), 'mkdLink'
265 AssertEqual SyntaxOf('b'), 'mkdURL'
266 AssertEqual SyntaxOf('c'), 'mkdURL'
275 Execute (code blocks can be fenced with tildes):
276 AssertEqual SyntaxOf('c'), 'mkdCode'
283 Execute (code blocks can be fenced with tildes longer than 3):
284 AssertEqual SyntaxOf('c'), 'mkdCode'
291 Execute (code blocks can be fenced with backticks longer than 3):
292 AssertEqual SyntaxOf('c'), 'mkdCode'
299 Execute (code blocks can have a language specifier):
300 AssertEqual SyntaxOf('c'), 'mkdCode'
309 Execute (code blocks can be fenced with backticks and a language specifier):
310 AssertEqual SyntaxOf('code'), 'mkdCode'
311 AssertNotEqual SyntaxOf('text'), 'mkdCode'
321 Execute (indent code blocks):
322 AssertNotEqual SyntaxOf('a'), 'mkdCode'
323 AssertEqual SyntaxOf('b'), 'mkdCode'
324 AssertEqual SyntaxOf('c'), 'mkdCode'
333 Execute (indent code blocks after header):
334 AssertNotEqual SyntaxOf('a'), 'mkdCode'
335 AssertNotEqual SyntaxOf('b'), 'mkdCode'
336 AssertEqual SyntaxOf('c'), 'mkdCode'
345 Execute (indent code blocks after list):
346 AssertNotEqual SyntaxOf('a'), 'mkdCode'
347 AssertNotEqual SyntaxOf('b'), 'mkdCode'
348 AssertEqual SyntaxOf('c'), 'mkdCode'
354 Execute (indent code block at beginning of file):
355 AssertEqual SyntaxOf('a'), 'mkdCode'
356 AssertEqual SyntaxOf('b'), 'mkdCode'
369 Execute (fenced code block syntax with a language specifier):
370 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
372 AssertEqual SyntaxOf('include'), 'cInclude'
373 AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
374 AssertEqual SyntaxOf('def'), 'rubyDefine'
381 Execute (fenced code block syntax with an unknown language specifier):
382 let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
384 AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_'
394 Execute (first = or - in fenced code block is not setex headers):
395 AssertEqual SyntaxOf('='), 'mkdCode'
396 AssertEqual SyntaxOf('-'), 'mkdCode'
398 # Code Blocks in pre and code tag
405 Execute (code block in pre tag):
406 AssertEqual SyntaxOf('a'), 'mkdCode'
413 Execute (code block in code tag):
414 AssertEqual SyntaxOf('a'), 'mkdCode'
421 Execute (not code block in escaped pre tag):
422 AssertNotEqual SyntaxOf('a'), 'mkdCode'
429 Execute (not code block in escaped code tag):
430 AssertNotEqual SyntaxOf('a'), 'mkdCode'
441 AssertNotEqual SyntaxOf('x'), 'mkdMath'
442 AssertNotEqual SyntaxOf('y'), 'mkdMath'
443 let g:vim_markdown_math=1
445 AssertNotEqual SyntaxOf('a'), 'mkdMath'
446 AssertNotEqual SyntaxOf('b'), 'mkdMath'
447 AssertNotEqual SyntaxOf('c'), 'mkdMath'
448 AssertNotEqual SyntaxOf('d'), 'mkdMath'
449 AssertNotEqual SyntaxOf('e'), 'mkdMath'
450 AssertNotEqual SyntaxOf('f'), 'mkdMath'
451 AssertEqual SyntaxOf('x'), 'mkdMath'
452 AssertEqual SyntaxOf('y'), 'mkdMath'
453 let g:vim_markdown_math=0
455 AssertNotEqual SyntaxOf('x'), 'mkdMath'
456 AssertNotEqual SyntaxOf('y'), 'mkdMath'
467 Execute (multiline math):
468 let g:vim_markdown_math=1
470 AssertNotEqual SyntaxOf('a'), 'mkdMath'
471 AssertEqual SyntaxOf('b'), 'mkdMath'
472 AssertNotEqual SyntaxOf('c'), 'mkdMath'
478 Execute (math tex highlighting):
479 let g:vim_markdown_math=0
481 AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
482 AssertNotEqual SyntaxOf('frac'), 'texStatement'
483 let g:vim_markdown_math=1
485 AssertEqual SyntaxOf('sqrt'), 'texStatement'
486 AssertEqual SyntaxOf('frac'), 'texStatement'
495 Execute (YAML frontmatter is controlled by the option):
496 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
497 let g:vim_markdown_frontmatter=1
499 AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
500 let g:vim_markdown_frontmatter=0
502 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
510 Execute (YAML frontmatter only works if it's the first thing in the file):
511 let g:vim_markdown_frontmatter=1
513 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
522 Execute (rules are not mistaken by YAML frontmatter delimiters):
523 let g:vim_markdown_frontmatter=1
525 AssertEqual SyntaxAt(5, 1), 'mkdRule'
526 unlet g:vim_markdown_frontmatter
535 Execute (TOML frontmatter is controlled by the option):
537 AssertNotEqual SyntaxOf('b'), 'tomlString'
538 let g:vim_markdown_toml_frontmatter=1
540 AssertEqual SyntaxOf('b'), 'tomlString'
541 let g:vim_markdown_toml_frontmatter=0
543 AssertNotEqual SyntaxOf('b'), 'tomlString'
551 Execute (TOML frontmatter only works if it's the first thing in the file):
552 let g:vim_markdown_toml_frontmatter=1
554 AssertNotEqual SyntaxOf('b'), 'tomlString'
555 unlet g:vim_markdown_toml_frontmatter
564 Execute (JSON frontmatter is controlled by the option):
566 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
567 let g:vim_markdown_json_frontmatter=1
569 AssertEqual SyntaxOf('a'), 'jsonKeyword'
570 let g:vim_markdown_json_frontmatter=0
572 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
580 Execute (JSON frontmatter only works if it's the first thing in the file):
581 let g:vim_markdown_json_frontmatter=1
583 AssertNotEqual SyntaxOf('a'), 'jsonKeyword'
584 unlet g:vim_markdown_json_frontmatter
595 Execute (header title starts with #):
596 AssertEqual SyntaxOf('a'), 'htmlH1'
597 AssertEqual SyntaxOf('b'), 'htmlH2'
612 ## h2 trailing hash ##
618 ### h3 trailing hash ###
626 Execute (atx headers):
627 AssertEqual SyntaxOf('# h1 space'), 'htmlH1'
628 AssertEqual SyntaxOf('#h1 nospace'), 'htmlH1'
629 AssertEqual SyntaxOf('# h1 2 spaces'), 'htmlH1'
630 AssertEqual SyntaxOf('# h1 trailing hash #'), 'htmlH1'
631 AssertEqual SyntaxOf('## h2 space'), 'htmlH2'
632 AssertEqual SyntaxOf('##h2 nospace'), 'htmlH2'
633 AssertEqual SyntaxOf('## h2 trailing hash ##'), 'htmlH2'
634 AssertEqual SyntaxOf('### h3 space'), 'htmlH3'
635 AssertEqual SyntaxOf('###h3 nospace'), 'htmlH3'
636 AssertEqual SyntaxOf('### h3 trailing hash ###'), 'htmlH3'
637 AssertEqual SyntaxOf('#### h4'), 'htmlH4'
638 AssertEqual SyntaxOf('##### h5'), 'htmlH5'
639 AssertEqual SyntaxOf('###### h6'), 'htmlH6'
648 Execute (atx headers relative positions):
649 AssertEqual SyntaxOf('# h1 before h2'), 'htmlH1'
650 AssertEqual SyntaxOf('## h2 between h1s'), 'htmlH2'
651 AssertEqual SyntaxOf('# h1 after h2'), 'htmlH1'
660 setex h1 single punctuation
663 setex h1 punctuation longer than header
664 ================================
666 Execute (setex headers):
667 AssertEqual SyntaxOf('setex h1'), 'htmlH1'
668 AssertEqual SyntaxOf('^========$'), 'htmlH1'
669 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
670 AssertEqual SyntaxOf('--------'), 'htmlH2'
671 AssertEqual SyntaxOf('setex h1 single punctuation'), 'htmlH1'
672 AssertEqual SyntaxOf('^=$'), 'htmlH1'
673 AssertEqual SyntaxOf('setex h1 punctuation longer than header'), 'htmlH1'
674 AssertEqual SyntaxOf('^================================$'), 'htmlH1'
680 Execute (prevent list vs Setex confusion):
681 AssertNotEqual SyntaxOf('- not Setex'), 'htmlH2'
682 AssertNotEqual SyntaxOf('- becuase list'), 'htmlH2'
699 Execute (mixed atx and setex headers):
700 AssertEqual SyntaxOf('setex h1 before atx'), 'htmlH1'
701 AssertEqual SyntaxOf('==================='), 'htmlH1'
702 AssertEqual SyntaxOf('## atx h2'), 'htmlH2'
703 AssertEqual SyntaxOf('### atx h3'), 'htmlH3'
704 AssertEqual SyntaxOf('# atx h1'), 'htmlH1'
705 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
706 AssertEqual SyntaxOf('------------------'), 'htmlH2'
714 Execute (& and > are not marked as htmlError in lists):
715 AssertEqual SyntaxOf('-'), 'mkdListItem'
716 AssertEqual SyntaxOf('1.'), 'mkdListItem'
717 AssertNotEqual SyntaxOf('&'), 'htmlError'
718 AssertNotEqual SyntaxOf('>'), 'htmlError'
724 Execute (list after line break):
725 AssertEqual SyntaxOf('1'), 'mkdListItem'
726 AssertEqual SyntaxOf('2'), 'mkdListItem'
737 Execute (HTML tag in text):
738 AssertEqual SyntaxOf('p'), 'htmlTagName'
739 AssertEqual SyntaxOf('<p>'), 'htmlTag'
740 AssertEqual SyntaxOf('</p>'), 'htmlEndTag'
741 AssertEqual SyntaxOf('span'), 'htmlTagName'
742 AssertEqual SyntaxOf('<span>'), 'htmlTag'
743 AssertEqual SyntaxOf('</span>'), 'htmlEndTag'