X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5d98d6b22bd9848748ec9fd7780d056ff63c2ddd..23b0548626d0f24bba78a16fa57a0190fe6480e2:/test/syntax.vader diff --git a/test/syntax.vader b/test/syntax.vader index ecf36b7..8ac0a28 100644 --- a/test/syntax.vader +++ b/test/syntax.vader @@ -193,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 @@ -373,6 +375,21 @@ Execute (fenced code block syntax with a language specifier): AssertEqual SyntaxOf('code'), 'mkdSnippetCPP' AssertEqual SyntaxOf('def'), 'rubyDefine' +Given markdown; +```vim +let g:a = 1 +``` + +```viml +let g:b = 1 +``` + +Execute (fenced code block syntax with alias language specifier): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('g:a'), 'vimVar' + AssertEqual SyntaxOf('g:b'), 'vimVar' + Given markdown; ```a+b- code @@ -383,7 +400,6 @@ Execute (fenced code block syntax with an unknown language specifier): call b:func(0) AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_' - Given markdown; ``` = @@ -395,6 +411,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;
@@ -459,13 +517,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;
@@ -476,7 +534,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;
---
@@ -489,6 +547,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