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
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
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;
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)
AssertNotEqual SyntaxOf('c'), 'mkdLink'
AssertNotEqual SyntaxOf('c'), 'mkdURL'
+Given markdown;
+[a] (b)
+
+Execute (space is not allowed between link text and parenthesis):
+ AssertNotEqual SyntaxOf('a'), 'mkdLink'
+ AssertNotEqual SyntaxOf('b'), 'mkdURL'
+
+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
+
# Autolinks
Given markdown;
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 <iostream>
```
Execute (fenced code block syntax with a language specifier):
- let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_refresh_syntax')
+ let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
call b:func(0)
AssertEqual SyntaxOf('include'), 'cInclude'
AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
```
Execute (fenced code block syntax with an unknown language specifier):
- let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_refresh_syntax')
+ let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
call b:func(0)
AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_'