X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/baece901af045d6332731417cef3adc2a9c03d6c..b41a604a71bfa1d3e832b67c211f7c356d530ee6:/test/syntax.vader

diff --git a/test/syntax.vader b/test/syntax.vader
index 26f1990..b06ddf0 100644
--- a/test/syntax.vader
+++ b/test/syntax.vader
@@ -1,14 +1,20 @@
-Given mkd (bold);
-**bold** not bold
+Given mkd;
+a **b** c
 
-Execute (SyntaxOf(pattern)):
+Execute (bold):
+  AssertNotEqual SyntaxOf('a'), 'htmlBold'
   AssertEqual SyntaxOf('b'), 'htmlBold'
+  AssertNotEqual SyntaxOf('c'), 'htmlBold'
+
+Given mkd;
+a *b* c
 
-Given mkd (italic);
-*italic*
+Execute (italic):
+  AssertNotEqual SyntaxOf('a'), 'htmlItalic'
+  AssertEqual SyntaxOf('b'), 'htmlItalic'
+  AssertNotEqual SyntaxOf('c'), 'htmlItalic'
 
-Execute (SyntaxOf(pattern)):
-  AssertEqual SyntaxOf('i'), 'htmlItalic'
+# Links
 
 Given mkd;
 [a](b)
@@ -20,11 +26,144 @@ Execute (link with title):
 Given mkd;
 (a)
 
+(b)
+
 Execute (parenthesis not in link):
-  AssertNotEqual SyntaxOf('a'), 'mkdLink'
+  AssertNotEqual SyntaxOf('a'), 'mkdURL'
+  AssertNotEqual SyntaxOf('b'), 'mkdURL'
 
 Given mkd;
 [a](b) c [d](e)
 
 Execute (multiple links on a line):
   AssertEqual SyntaxOf('c'), ''
+
+# Autolinks
+
+Given mkd;
+a <http://b> c
+
+Execute (autolink):
+  AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('<'), 'mkdDelimiter'
+  AssertEqual SyntaxOf('b'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('>'), 'mkdDelimiter'
+  AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
+
+Given mkd;
+<HtTp://a>
+
+Execute (autolink with scheme case is insensitive):
+  AssertEqual SyntaxOf('a'), 'mkdInlineURL'
+
+Given mkd;
+<notascheme://a>
+
+Execute (autolink without known scheme is not a link):
+  AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
+
+Given mkd;
+<a>
+
+Execute (autolink without scheme is not a link):
+  AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
+
+Given mkd;
+< http://a >
+<http://b c>
+<http://d
+e>
+
+Execute (autolink with space is not a link):
+  AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
+  AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
+  AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
+  AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
+  AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
+
+Given mkd;
+\<http://a>
+
+Execute (autolinks can be backslash escaped):
+  AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
+
+# Math
+
+Given mkd;
+a $x$ b
+c $$y$$ d
+\$e\$
+\$\$f\$\$
+
+Execute (math):
+  AssertNotEqual SyntaxOf('x'), 'mkdMath'
+  AssertNotEqual SyntaxOf('y'), 'mkdMath'
+  let g:vim_markdown_math=1
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'mkdMath'
+  AssertNotEqual SyntaxOf('b'), 'mkdMath'
+  AssertNotEqual SyntaxOf('c'), 'mkdMath'
+  AssertNotEqual SyntaxOf('d'), 'mkdMath'
+  AssertNotEqual SyntaxOf('e'), 'mkdMath'
+  AssertNotEqual SyntaxOf('f'), 'mkdMath'
+  AssertEqual SyntaxOf('x'), 'mkdMath'
+  AssertEqual SyntaxOf('y'), 'mkdMath'
+  let g:vim_markdown_math=0
+  syn off | syn on
+  AssertNotEqual SyntaxOf('x'), 'mkdMath'
+  AssertNotEqual SyntaxOf('y'), 'mkdMath'
+
+Given mkd;
+a
+
+$
+b
+$
+
+c
+
+Execute (multiline math):
+  let g:vim_markdown_math=1
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'mkdMath'
+  AssertEqual SyntaxOf('b'), 'mkdMath'
+  AssertNotEqual SyntaxOf('c'), 'mkdMath'
+
+# YAML frontmatter
+
+Given mkd;
+---
+a: b
+---
+
+Execute (YAML frontmatter is controlled by the option):
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+  let g:vim_markdown_frontmatter=0
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+
+Given mkd;
+
+---
+a: b
+---
+
+Execute (YAML frontmatter only works if it's the first thing in the file):
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
+
+Given mkd;
+---
+a: b
+---
+
+---
+
+Execute (rules are not mistaken by YAML frontmatter delimiters):
+  let g:vim_markdown_frontmatter=1
+  syn off | syn on
+  AssertEqual SyntaxAt(5, 1), 'mkdRule'