]> git.madduck.net Git - etc/vim.git/blob - test/syntax.vader

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Don't interpret escaped _ chars in italics as the end of syntax match
[etc/vim.git] / test / syntax.vader
1 Given markdown;
2 a **b** c
3
4 Execute (bold):
5   AssertNotEqual SyntaxOf('a'), 'htmlBold'
6   AssertEqual SyntaxOf('b'), 'htmlBold'
7   AssertNotEqual SyntaxOf('c'), 'htmlBold'
8
9 Given markdown;
10 a *b* c
11
12 Execute (italic):
13   AssertNotEqual SyntaxOf('a'), 'htmlItalic'
14   AssertEqual SyntaxOf('b'), 'htmlItalic'
15   AssertNotEqual SyntaxOf('c'), 'htmlItalic'
16
17 # Links
18
19 Given markdown;
20 [a](b)
21
22 Execute (link with title):
23   AssertEqual SyntaxOf('a'), 'mkdLink'
24   AssertEqual SyntaxOf('b'), 'mkdURL'
25
26 Given markdown;
27 (a)
28
29 (b)
30
31 Execute (parenthesis not in link):
32   AssertNotEqual SyntaxOf('a'), 'mkdURL'
33   AssertNotEqual SyntaxOf('b'), 'mkdURL'
34
35 Given markdown;
36 [a](b) c [d](e)
37
38 Execute (multiple links on a line):
39   AssertEqual SyntaxOf('c'), ''
40
41 # Autolinks
42
43 Given markdown;
44 a <http://b> c
45
46 Execute (autolink):
47   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
48   AssertEqual SyntaxOf('<'), 'mkdDelimiter'
49   AssertEqual SyntaxOf('b'), 'mkdInlineURL'
50   AssertEqual SyntaxOf('>'), 'mkdDelimiter'
51   AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
52
53 Given markdown;
54 <HtTp://a>
55
56 Execute (autolink with scheme case is insensitive):
57   AssertEqual SyntaxOf('a'), 'mkdInlineURL'
58
59 Given markdown;
60 <notascheme://a>
61
62 Execute (autolink without known scheme is not a link):
63   AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
64
65 Given markdown;
66 <a>
67
68 Execute (autolink without scheme is not a link):
69   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
70
71 Given markdown;
72 < http://a >
73 <http://b c>
74 <http://d
75 e>
76
77 Execute (autolink with space is not a link):
78   AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
79   AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
80   AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
81   AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
82   AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
83
84 Given markdown;
85 \<http://a>
86
87 Execute (autolinks can be backslash escaped):
88   AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
89
90 # Code Blocks
91
92 Given markdown;
93 ~~~
94 code
95 ~~~
96
97 Execute (code blocks can be fenced with tildes):
98   AssertEqual SyntaxOf('c'), 'mkdCode'
99
100 Given markdown;
101 ~~~ruby
102 code
103 ~~~
104
105 Execute (code blocks can have a language specifier):
106   AssertEqual SyntaxOf('c'), 'mkdCode'
107
108 # Math
109
110 Given markdown;
111 a $x$ b
112 c $$y$$ d
113 \$e\$
114 \$\$f\$\$
115
116 Execute (math):
117   AssertNotEqual SyntaxOf('x'), 'mkdMath'
118   AssertNotEqual SyntaxOf('y'), 'mkdMath'
119   let g:vim_markdown_math=1
120   syn off | syn on
121   AssertNotEqual SyntaxOf('a'), 'mkdMath'
122   AssertNotEqual SyntaxOf('b'), 'mkdMath'
123   AssertNotEqual SyntaxOf('c'), 'mkdMath'
124   AssertNotEqual SyntaxOf('d'), 'mkdMath'
125   AssertNotEqual SyntaxOf('e'), 'mkdMath'
126   AssertNotEqual SyntaxOf('f'), 'mkdMath'
127   AssertEqual SyntaxOf('x'), 'mkdMath'
128   AssertEqual SyntaxOf('y'), 'mkdMath'
129   let g:vim_markdown_math=0
130   syn off | syn on
131   AssertNotEqual SyntaxOf('x'), 'mkdMath'
132   AssertNotEqual SyntaxOf('y'), 'mkdMath'
133
134 Given markdown;
135 a
136
137 $
138 b
139 $
140
141 c
142
143 Execute (multiline math):
144   let g:vim_markdown_math=1
145   syn off | syn on
146   AssertNotEqual SyntaxOf('a'), 'mkdMath'
147   AssertEqual SyntaxOf('b'), 'mkdMath'
148   AssertNotEqual SyntaxOf('c'), 'mkdMath'
149
150 # YAML frontmatter
151
152 Given markdown;
153 ---
154 a: b
155 ---
156
157 Execute (YAML frontmatter is controlled by the option):
158   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
159   let g:vim_markdown_frontmatter=1
160   syn off | syn on
161   AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
162   let g:vim_markdown_frontmatter=0
163   syn off | syn on
164   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
165
166 Given markdown;
167
168 ---
169 a: b
170 ---
171
172 Execute (YAML frontmatter only works if it's the first thing in the file):
173   let g:vim_markdown_frontmatter=1
174   syn off | syn on
175   AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
176
177 Given markdown;
178 ---
179 a: b
180 ---
181
182 ---
183
184 Execute (rules are not mistaken by YAML frontmatter delimiters):
185   let g:vim_markdown_frontmatter=1
186   syn off | syn on
187   AssertEqual SyntaxAt(5, 1), 'mkdRule'