X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/07f5c794b9885bf53dd5c9c9c6b72a5bb135ec67..71e5a946fd616a7526a3192db98ddb4484b1926a:/test/syntax.vader diff --git a/test/syntax.vader b/test/syntax.vader index c438dad..e5618f3 100644 --- a/test/syntax.vader +++ b/test/syntax.vader @@ -30,6 +30,13 @@ Execute (italic): AssertEqual SyntaxOf('b'), 'htmlItalic' AssertNotEqual SyntaxOf('c'), 'htmlItalic' +Given markdown; +_a_b_ + +Execute (italic text has underscores): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + Given markdown; a \*b\* c @@ -55,6 +62,14 @@ Execute (italic with escaped underscores): AssertEqual SyntaxOf('c'), 'htmlItalic' AssertNotEqual SyntaxOf('d'), 'htmlItalic' +Given markdown; +a_b_c + +Execute (not italic underscores within text): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + Given markdown; a *b\*c* d @@ -73,6 +88,66 @@ Execute (bold with escaped underscores): AssertEqual SyntaxOf('c'), 'htmlBold' AssertNotEqual SyntaxOf('d'), 'htmlBold' +Given markdown; +_a b +c_ d + +Execute (italic with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +__a b +c__ d + +Execute (bold with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +___a b +c___ d + +Execute (bold italic with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + +Given markdown; +*a b +c* d + +Execute (italic with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +**a b +c** d + +Execute (bold with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +***a b +c*** d + +Execute (bold italic with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + # Links Given markdown; @@ -82,6 +157,15 @@ Execute (link with title): AssertEqual SyntaxOf('a'), 'mkdLink' AssertEqual SyntaxOf('b'), 'mkdURL' +Given markdown; +[a +b](c) + +Execute (link text with newline): + AssertEqual SyntaxOf('a'), 'mkdLink' + AssertEqual SyntaxOf('b'), 'mkdLink' + AssertEqual SyntaxOf('c'), 'mkdURL' + Given markdown; (a) @@ -109,15 +193,17 @@ Given markdown; [a](b) Execute (conceal link): - setlocal conceallevel=2 - AssertEqual synconcealed(1, 1)[0], 1 - AssertEqual synconcealed(1, 2)[0], 0 - AssertEqual synconcealed(1, 3)[0], 1 - AssertEqual synconcealed(1, 4)[0], 1 - AssertEqual synconcealed(1, 4)[0], 1 - AssertEqual synconcealed(1, 5)[0], 1 - AssertEqual synconcealed(1, 6)[0], 1 - setlocal conceallevel=0 + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + setlocal conceallevel=0 + endif # Autolinks @@ -263,6 +349,14 @@ Execute (indent code blocks after list): AssertNotEqual SyntaxOf('b'), 'mkdCode' AssertEqual SyntaxOf('c'), 'mkdCode' +Given markdown; + a + b + +Execute (indent code block at beginning of file): + AssertEqual SyntaxOf('a'), 'mkdCode' + AssertEqual SyntaxOf('b'), 'mkdCode' + Given markdown; ```c++ #include @@ -303,6 +397,48 @@ Execute (first = or - in fenced code block is not setex headers): AssertEqual SyntaxOf('='), 'mkdCode' AssertEqual SyntaxOf('-'), 'mkdCode' +Given markdown; +``` {style=""} +a +``` + +Execute (fenced code block with extended info strings): + AssertEqual SyntaxOf('a'), 'mkdCode' + +# Code Blocks in pre and code tag + +Given markdown; +
+a
+
+ +Execute (code block in pre tag): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; + +a + + +Execute (code block in code tag): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +\ +a +\ + +Execute (not code block in escaped pre tag): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +\ +a +\ + +Execute (not code block in escaped code tag): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + # Math Given markdown; @@ -367,13 +503,13 @@ a: b --- Execute (YAML frontmatter is controlled by the option): - AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey' + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' let g:vim_markdown_frontmatter=1 syn off | syn on - AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey' + AssertEqual SyntaxOf('a')[0:3], 'yaml' let g:vim_markdown_frontmatter=0 syn off | syn on - AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey' + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' Given markdown; @@ -384,7 +520,7 @@ 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' + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' Given markdown; --- @@ -397,6 +533,65 @@ Execute (rules are not mistaken by YAML frontmatter delimiters): let g:vim_markdown_frontmatter=1 syn off | syn on AssertEqual SyntaxAt(5, 1), 'mkdRule' + unlet g:vim_markdown_frontmatter + +# TOML frontmatter + +Given markdown; ++++ +a = "b" ++++ + +Execute (TOML frontmatter is controlled by the option): + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + let g:vim_markdown_toml_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('b'), 'tomlString' + let g:vim_markdown_toml_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + +Given markdown; + ++++ +a = "b" ++++ + +Execute (TOML frontmatter only works if it's the first thing in the file): + let g:vim_markdown_toml_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + unlet g:vim_markdown_toml_frontmatter + +# JSON frontmatter + +Given markdown; +{ + "a": "b" +} + +Execute (JSON frontmatter is controlled by the option): + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + let g:vim_markdown_json_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('a'), 'jsonKeyword' + let g:vim_markdown_json_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + +Given markdown; + +{ + "a": "b" +} + +Execute (JSON frontmatter only works if it's the first thing in the file): + let g:vim_markdown_json_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + unlet g:vim_markdown_json_frontmatter # Header @@ -532,6 +727,14 @@ Execute (& and > are not marked as htmlError in lists): AssertNotEqual SyntaxOf('&'), 'htmlError' AssertNotEqual SyntaxOf('>'), 'htmlError' +Given markdown; +1. a +2. b + +Execute (list after line break): + AssertEqual SyntaxOf('1'), 'mkdListItem' + AssertEqual SyntaxOf('2'), 'mkdListItem' + # HTML Given markdown;