X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/25878961d0b526615df6ea7beb0d28cf75528205..2f1103bcc483bc52c733d40fa55f6b03f79d3847:/test/syntax.vader?ds=inline

diff --git a/test/syntax.vader b/test/syntax.vader
index 044a7d1..2f5f78c 100644
--- a/test/syntax.vader
+++ b/test/syntax.vader
@@ -1,3 +1,8 @@
+Before:
+  unlet! b:mkd_known_filetypes
+  unlet! b:mkd_included_filetypes
+  unlet! g:vim_markdown_math
+
 Given markdown;
 a **b** c
 
@@ -315,6 +320,72 @@ Execute (autolink in link text):
   AssertEqual SyntaxOf('b'), 'mkdURL'
   AssertEqual SyntaxOf('c'), 'mkdURL'
 
+Given markdown;
+# [h1link](url)
+
+## [h2link](url)
+
+### [h3link](url)
+
+#### [h4link](url)
+
+##### [h5link](url)
+
+###### [h6link](url)
+
+[h1link_b](url)
+===============
+
+[h2link_b](url)
+---------------
+
+Execute (link in headers):
+  AssertEqual SyntaxOf('h1link'), 'mkdLink'
+  AssertEqual SyntaxOf('h2link'), 'mkdLink'
+  AssertEqual SyntaxOf('h3link'), 'mkdLink'
+  AssertEqual SyntaxOf('h4link'), 'mkdLink'
+  AssertEqual SyntaxOf('h5link'), 'mkdLink'
+  AssertEqual SyntaxOf('h6link'), 'mkdLink'
+  AssertEqual SyntaxOf('h1link_b'), 'mkdLink'
+  AssertEqual SyntaxOf('h2link_b'), 'mkdLink'
+
+Given markdown;
+# http://h1link.foo
+
+## http://h2link.foo
+
+### http://h3link.foo
+
+#### http://h4link.foo
+
+##### http://h5link.foo
+
+###### http://h6link.foo
+
+http://h1link_b.foo
+===================
+
+http://h2link_b.foo
+-------------------
+
+Execute (inline url in headers):
+  AssertEqual SyntaxOf('h1link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h2link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h3link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h4link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h5link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h6link'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h1link_b'), 'mkdInlineURL'
+  AssertEqual SyntaxOf('h2link_b'), 'mkdInlineURL'
+
+Given markdown;
+> [a](b)
+> http://foo.bar
+
+Execute (link in blockquote):
+  AssertEqual SyntaxOf('a'), 'mkdLink'
+  AssertEqual SyntaxOf('foo'), 'mkdInlineURL'
+
 # Code Blocks
 
 Given markdown;
@@ -569,22 +640,22 @@ c $$y$$ d
 \$\$f\$\$
 
 Execute (math):
-  AssertNotEqual SyntaxOf('x'), 'mkdMath'
-  AssertNotEqual SyntaxOf('y'), 'mkdMath'
+  AssertNotEqual SyntaxOf('x')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('y')[0:2], 'tex'
   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'
+  AssertNotEqual SyntaxOf('a')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('b')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('c')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('d')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('e')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('f')[0:2], 'tex'
+  AssertEqual SyntaxOf('x')[0:2], 'tex'
+  AssertEqual SyntaxOf('y')[0:2], 'tex'
   let g:vim_markdown_math=0
   syn off | syn on
-  AssertNotEqual SyntaxOf('x'), 'mkdMath'
-  AssertNotEqual SyntaxOf('y'), 'mkdMath'
+  AssertNotEqual SyntaxOf('x')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('y')[0:2], 'tex'
 
 Given markdown;
 a
@@ -598,9 +669,9 @@ 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'
+  AssertNotEqual SyntaxOf('a')[0:2], 'tex'
+  AssertEqual SyntaxOf('b')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('c')[0:2], 'tex'
 
 Given markdown;
 $ \sqrt{a}{b} $
@@ -616,6 +687,68 @@ Execute (math tex highlighting):
   AssertEqual SyntaxOf('sqrt'), 'texStatement'
   AssertEqual SyntaxOf('frac'), 'texStatement'
 
+Given markdown;
+$a b[$ c
+
+Execute (math ends with $):
+  let g:vim_markdown_math=1
+  syn off | syn on
+  AssertEqual SyntaxOf('a')[0:2], 'tex'
+  AssertEqual SyntaxOf('b')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('c')[0:2], 'tex'
+
+Given markdown;
+$$a b[$$ c
+
+Execute (math ends with $$):
+  let g:vim_markdown_math=1
+  syn off | syn on
+  AssertEqual SyntaxOf('a')[0:2], 'tex'
+  AssertEqual SyntaxOf('b')[0:2], 'tex'
+  AssertNotEqual SyntaxOf('c')[0:2], 'tex'
+
+Given markdown;
+$(0 \le 1)$
+
+Execute (math conceal in $):
+  if has('conceal')
+    setlocal conceallevel=2
+    let g:vim_markdown_math=1
+    syn off | syn on
+    AssertEqual synconcealed(1, 1)[0], 1, '$'
+    AssertEqual synconcealed(1, 2)[0], 0
+    AssertEqual synconcealed(1, 3)[0], 0
+    AssertEqual synconcealed(1, 4)[0], 0
+    AssertEqual synconcealed(1, 5)[0], 1, '\le'
+    AssertEqual synconcealed(1, 6)[0], 1
+    AssertEqual synconcealed(1, 7)[0], 1
+    AssertEqual synconcealed(1, 8)[0], 0
+    AssertEqual synconcealed(1, 9)[0], 0
+    AssertEqual synconcealed(1, 10)[0], 0
+    AssertEqual synconcealed(1, 11)[0], 1, '$'
+    setlocal conceallevel=0
+  endif
+
+Given markdown;
+$$
+\omega
+0 \le 1
+$$
+
+Execute (math conceal in $$):
+  if has('conceal')
+    setlocal conceallevel=2
+    let g:vim_markdown_math=1
+    syn off | syn on
+    AssertEqual synconcealed(1, 1)[0], 1, '$$'
+    AssertEqual synconcealed(2, 1)[0], 1, '\omega'
+    AssertEqual synconcealed(3, 1)[0], 0, '0'
+    AssertEqual synconcealed(3, 3)[0], 1, '\le'
+    AssertEqual synconcealed(3, 7)[0], 0, '1'
+    AssertEqual synconcealed(4, 1)[0], 1, '$$'
+    setlocal conceallevel=0
+  endif
+
 # YAML frontmatter
 
 Given markdown;