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'
407 AssertNotEqual SyntaxOf('x'), 'mkdMath'
408 AssertNotEqual SyntaxOf('y'), 'mkdMath'
409 let g:vim_markdown_math=1
411 AssertNotEqual SyntaxOf('a'), 'mkdMath'
412 AssertNotEqual SyntaxOf('b'), 'mkdMath'
413 AssertNotEqual SyntaxOf('c'), 'mkdMath'
414 AssertNotEqual SyntaxOf('d'), 'mkdMath'
415 AssertNotEqual SyntaxOf('e'), 'mkdMath'
416 AssertNotEqual SyntaxOf('f'), 'mkdMath'
417 AssertEqual SyntaxOf('x'), 'mkdMath'
418 AssertEqual SyntaxOf('y'), 'mkdMath'
419 let g:vim_markdown_math=0
421 AssertNotEqual SyntaxOf('x'), 'mkdMath'
422 AssertNotEqual SyntaxOf('y'), 'mkdMath'
433 Execute (multiline math):
434 let g:vim_markdown_math=1
436 AssertNotEqual SyntaxOf('a'), 'mkdMath'
437 AssertEqual SyntaxOf('b'), 'mkdMath'
438 AssertNotEqual SyntaxOf('c'), 'mkdMath'
444 Execute (math tex highlighting):
445 let g:vim_markdown_math=0
447 AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
448 AssertNotEqual SyntaxOf('frac'), 'texStatement'
449 let g:vim_markdown_math=1
451 AssertEqual SyntaxOf('sqrt'), 'texStatement'
452 AssertEqual SyntaxOf('frac'), 'texStatement'
461 Execute (YAML frontmatter is controlled by the option):
462 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
463 let g:vim_markdown_frontmatter=1
465 AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
466 let g:vim_markdown_frontmatter=0
468 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
476 Execute (YAML frontmatter only works if it's the first thing in the file):
477 let g:vim_markdown_frontmatter=1
479 AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
488 Execute (rules are not mistaken by YAML frontmatter delimiters):
489 let g:vim_markdown_frontmatter=1
491 AssertEqual SyntaxAt(5, 1), 'mkdRule'
502 Execute (header title starts with #):
503 AssertEqual SyntaxOf('a'), 'htmlH1'
504 AssertEqual SyntaxOf('b'), 'htmlH2'
519 ## h2 trailing hash ##
525 ### h3 trailing hash ###
533 Execute (atx headers):
534 AssertEqual SyntaxOf('# h1 space'), 'htmlH1'
535 AssertEqual SyntaxOf('#h1 nospace'), 'htmlH1'
536 AssertEqual SyntaxOf('# h1 2 spaces'), 'htmlH1'
537 AssertEqual SyntaxOf('# h1 trailing hash #'), 'htmlH1'
538 AssertEqual SyntaxOf('## h2 space'), 'htmlH2'
539 AssertEqual SyntaxOf('##h2 nospace'), 'htmlH2'
540 AssertEqual SyntaxOf('## h2 trailing hash ##'), 'htmlH2'
541 AssertEqual SyntaxOf('### h3 space'), 'htmlH3'
542 AssertEqual SyntaxOf('###h3 nospace'), 'htmlH3'
543 AssertEqual SyntaxOf('### h3 trailing hash ###'), 'htmlH3'
544 AssertEqual SyntaxOf('#### h4'), 'htmlH4'
545 AssertEqual SyntaxOf('##### h5'), 'htmlH5'
546 AssertEqual SyntaxOf('###### h6'), 'htmlH6'
555 Execute (atx headers relative positions):
556 AssertEqual SyntaxOf('# h1 before h2'), 'htmlH1'
557 AssertEqual SyntaxOf('## h2 between h1s'), 'htmlH2'
558 AssertEqual SyntaxOf('# h1 after h2'), 'htmlH1'
567 setex h1 single punctuation
570 setex h1 punctuation longer than header
571 ================================
573 Execute (setex headers):
574 AssertEqual SyntaxOf('setex h1'), 'htmlH1'
575 AssertEqual SyntaxOf('^========$'), 'htmlH1'
576 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
577 AssertEqual SyntaxOf('--------'), 'htmlH2'
578 AssertEqual SyntaxOf('setex h1 single punctuation'), 'htmlH1'
579 AssertEqual SyntaxOf('^=$'), 'htmlH1'
580 AssertEqual SyntaxOf('setex h1 punctuation longer than header'), 'htmlH1'
581 AssertEqual SyntaxOf('^================================$'), 'htmlH1'
587 Execute (prevent list vs Setex confusion):
588 AssertNotEqual SyntaxOf('- not Setex'), 'htmlH2'
589 AssertNotEqual SyntaxOf('- becuase list'), 'htmlH2'
606 Execute (mixed atx and setex headers):
607 AssertEqual SyntaxOf('setex h1 before atx'), 'htmlH1'
608 AssertEqual SyntaxOf('==================='), 'htmlH1'
609 AssertEqual SyntaxOf('## atx h2'), 'htmlH2'
610 AssertEqual SyntaxOf('### atx h3'), 'htmlH3'
611 AssertEqual SyntaxOf('# atx h1'), 'htmlH1'
612 AssertEqual SyntaxOf('setex h2'), 'htmlH2'
613 AssertEqual SyntaxOf('------------------'), 'htmlH2'
621 Execute (& and > are not marked as htmlError in lists):
622 AssertEqual SyntaxOf('-'), 'mkdListItem'
623 AssertEqual SyntaxOf('1.'), 'mkdListItem'
624 AssertNotEqual SyntaxOf('&'), 'htmlError'
625 AssertNotEqual SyntaxOf('>'), 'htmlError'
631 Execute (list after line break):
632 AssertEqual SyntaxOf('1'), 'mkdListItem'
633 AssertEqual SyntaxOf('2'), 'mkdListItem'
644 Execute (HTML tag in text):
645 AssertEqual SyntaxOf('p'), 'htmlTagName'
646 AssertEqual SyntaxOf('<p>'), 'htmlTag'
647 AssertEqual SyntaxOf('</p>'), 'htmlEndTag'
648 AssertEqual SyntaxOf('span'), 'htmlTagName'
649 AssertEqual SyntaxOf('<span>'), 'htmlTag'
650 AssertEqual SyntaxOf('</span>'), 'htmlEndTag'