]> git.madduck.net Git - etc/vim.git/blob - test/folding-toc.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:

Support YAML frontmatter that ends with "..."
[etc/vim.git] / test / folding-toc.vader
1 " Tests atx and setext folding, and :Toc.
2
3 Before:
4   source ../after/ftplugin/markdown.vim
5
6 After:
7   setlocal foldexpr=0
8   setlocal foldmethod=manual
9
10 Given markdown;
11 # chap 1
12
13 hello
14 world
15
16 ```bash
17 # some bash scripting
18 pwd
19
20 # this is another comment
21 # other
22 echo "foo"
23 ```
24
25 ## chap 1.1
26
27 - dog
28 - cat
29
30 ~~~~bash
31 mkdir foo
32 # comment in ~
33 ~~~~
34
35 ### chap 1.1.1
36
37 - dragons
38 - fenixs
39
40 # chap 2
41
42 another
43
44 ## chap 2.1
45
46 - uk
47 - japan
48 - china
49
50
51 # chap 3
52
53 nothing here
54
55 chap 4
56 ======
57
58 setext are evil
59
60 chap 4.1
61 --------
62
63 evil indeed
64
65 ````bash
66 # get system info
67 uname -a
68 ````
69
70 Execute (fold level):
71   AssertEqual foldlevel(1), 0, '# chap 1'
72   AssertEqual foldlevel(3), 1, 'hello'
73   AssertEqual foldlevel(6), 1, '```bash'
74   AssertEqual foldlevel(7), 1, '# some bash scripting'
75   AssertEqual foldlevel(15), 1, '## chap 1.1'
76   AssertEqual foldlevel(21), 2, 'mkdir foo'
77   AssertEqual foldlevel(22), 2, 'comment in ~'
78   AssertEqual foldlevel(25), 2, '### chap 1.1.1'
79   AssertEqual foldlevel(27), 3, '- dragons'
80   AssertEqual foldlevel(30), 1, '# chap 2'
81   AssertEqual foldlevel(32), 1, 'another'
82   AssertEqual foldlevel(34), 1, '# chap 2.1'
83   AssertEqual foldlevel(37), 2, '- japan'
84   AssertEqual foldlevel(41), 1, '# chap 3'
85   AssertEqual foldlevel(45), 1, 'chap 4\n======'
86   AssertEqual foldlevel(48), 1, 'setext are evil'
87   AssertEqual foldlevel(50), 2, 'chap 4.1\n------'
88
89 Execute (fold text result):
90   AssertEqual foldtextresult(2), '+-- 28 lines: hello'
91   AssertEqual foldtextresult(31), '+-- 10 lines: another'
92   AssertEqual foldtextresult(42), '+--  3 lines: nothing here'
93   AssertEqual foldtextresult(45), '+-- 14 lines: chap 4'
94
95 Execute (fold level with setting):
96   let g:vim_markdown_folding_level = 2
97   source ../after/ftplugin/markdown.vim
98   AssertEqual foldlevel(1), 0, '# chap 1'
99   AssertEqual foldlevel(3), 1, 'hello'
100   AssertEqual foldlevel(6), 1, '```bash'
101   AssertEqual foldlevel(7), 1, '# some bash scripting'
102   AssertEqual foldlevel(15), 0, '## chap 1.1'
103   AssertEqual foldlevel(21), 2, 'mkdir foo'
104   AssertEqual foldlevel(22), 2, 'comment in ~'
105   AssertEqual foldlevel(25), 2, '### chap 1.1.1'
106   AssertEqual foldlevel(27), 3, '- dragons'
107   AssertEqual foldlevel(30), 0, '# chap 2'
108   AssertEqual foldlevel(32), 1, 'another'
109   AssertEqual foldlevel(34), 0, '# chap 2.1'
110   AssertEqual foldlevel(37), 2, '- japan'
111   AssertEqual foldlevel(41), 0, '# chap 3'
112   AssertEqual foldlevel(45), 1, 'chap 4\n======'
113   AssertEqual foldlevel(48), 1, 'setext are evil'
114   AssertEqual foldlevel(50), 1, 'chap 4.1\n------'
115   let g:vim_markdown_folding_level = 0
116
117 Execute (check TOC):
118   :Toc
119   :lclose
120   let res = getloclist(0)
121   let elem = res[0]
122   AssertEqual elem.lnum, 1
123   AssertEqual elem.text, '# chap 1'
124   let elem = res[1]
125   AssertEqual elem.lnum, 15
126   AssertEqual elem.text, '## chap 1.1'
127   let elem = res[2]
128   AssertEqual elem.lnum, 25
129   AssertEqual elem.text, '### chap 1.1.1'
130   let elem = res[3]
131   AssertEqual elem.lnum, 30
132   AssertEqual elem.text, '# chap 2'
133   let elem = res[4]
134   AssertEqual elem.lnum, 34
135   AssertEqual elem.text, '## chap 2.1'
136   let elem = res[5]
137   AssertEqual elem.lnum, 41
138   AssertEqual elem.text, '# chap 3'
139   let elem = res[6]
140   AssertEqual elem.lnum, 45
141   AssertEqual elem.text, 'chap 4'
142   let elem = res[7]
143   AssertEqual elem.lnum, 50
144   AssertEqual elem.text, 'chap 4.1'
145
146 Given markdown;
147 ---
148 layout: article
149 title: A test of the heading folding when there is YAML frontmatter
150 tags: markdown yaml vim-markdown
151 ---
152 body
153
154 heading
155 -------
156
157 Execute (fold level of yaml front matter):
158   let g:vim_markdown_frontmatter = 1
159   source ../after/ftplugin/markdown.vim
160   AssertEqual foldlevel(1), 0, '---'
161   AssertEqual foldlevel(2), 0, 'layout: article'
162   AssertEqual foldlevel(4), 0, 'tags: markdown yaml vim-markdown'
163   AssertEqual foldlevel(5), 0, '---'
164   AssertEqual foldlevel(6), 0, 'body'
165   AssertEqual foldlevel(8), 2, 'heading'
166   AssertEqual foldlevel(9), 2, '-------'
167   unlet g:vim_markdown_frontmatter
168
169 Execute (check Toc of yaml front matter):
170   let g:vim_markdown_frontmatter = 1
171   :Toc
172   :lclose
173   let res = getloclist(0)
174   AssertEqual len(res), 1
175   let elem = res[0]
176   AssertEqual elem.lnum, 8
177   AssertEqual elem.text, 'heading'
178   unlet g:vim_markdown_frontmatter