Markdown Vim Mode
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

187 lines
3.7 KiB

Given markdown;
a **b** c
Execute (bold):
AssertNotEqual SyntaxOf('a'), 'htmlBold'
AssertEqual SyntaxOf('b'), 'htmlBold'
AssertNotEqual SyntaxOf('c'), 'htmlBold'
Given markdown;
a *b* c
Execute (italic):
AssertNotEqual SyntaxOf('a'), 'htmlItalic'
AssertEqual SyntaxOf('b'), 'htmlItalic'
AssertNotEqual SyntaxOf('c'), 'htmlItalic'
# Links
Given markdown;
[a](b)
Execute (link with title):
AssertEqual SyntaxOf('a'), 'mkdLink'
AssertEqual SyntaxOf('b'), 'mkdURL'
Given markdown;
(a)
(b)
Execute (parenthesis not in link):
AssertNotEqual SyntaxOf('a'), 'mkdURL'
AssertNotEqual SyntaxOf('b'), 'mkdURL'
Given markdown;
[a](b) c [d](e)
Execute (multiple links on a line):
AssertEqual SyntaxOf('c'), ''
# Autolinks
Given markdown;
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 markdown;
<HtTp://a>
Execute (autolink with scheme case is insensitive):
AssertEqual SyntaxOf('a'), 'mkdInlineURL'
Given markdown;
<notascheme://a>
Execute (autolink without known scheme is not a link):
AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
Given markdown;
<a>
Execute (autolink without scheme is not a link):
AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
Given markdown;
< 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 markdown;
\<http://a>
Execute (autolinks can be backslash escaped):
AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
# Code Blocks
Given markdown;
~~~
code
~~~
Execute (code blocks can be fenced with tildes):
AssertEqual SyntaxOf('c'), 'mkdCode'
Given markdown;
~~~ruby
code
~~~
Execute (code blocks can have a language specifier):
AssertEqual SyntaxOf('c'), 'mkdCode'
# Math
Given markdown;
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 markdown;
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 markdown;
---
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 markdown;
---
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 markdown;
---
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'