foobar
Execute (fold level # in code block):
- AssertEqual foldlevel(1), 0, '# Title'
- AssertEqual foldlevel(3), 1, '## Chapter 1'
- AssertEqual foldlevel(7), 1, '# This is just a comment'
- AssertEqual foldlevel(8), 1, '```'
- AssertEqual foldlevel(10), 1, '## Chapter 2'
- AssertEqual foldlevel(12), 1, 'foobar'
+ AssertEqual foldlevel(1), 1, '# Title'
+ AssertEqual foldlevel(3), 2, '## Chapter 1'
+ AssertEqual foldlevel(7), 2, '# This is just a comment'
+ AssertEqual foldlevel(8), 2, '```'
+ AssertEqual foldlevel(10), 2, '## Chapter 2'
+ AssertEqual foldlevel(12), 2, 'foobar'
Execute (fold text of chapters):
- AssertEqual foldtextresult(3), '## Chapter 1 ' . repeat('-', winwidth(0) - 18) . ' 6'
- AssertEqual foldtextresult(10), '## Chapter 2 ' . repeat('-', winwidth(0) - 18) . ' 2'
+ let b:width = winwidth(0)
+ let b:hyphen = repeat('-', b:width - 18 > 2 ? b:width - 18 : b:width - 9 > 0 ? 3 : 2)
+ AssertEqual foldtextresult(10), strpart('## Chapter 2', 0, b:width - 9) . ' ' . b:hyphen . ' 2'
Given markdown;
Fold text 1
-==+ Fold Level 1
+===========
Fold text 2
---+ Fold Level 2
+-----------
-Execute (fold level ==+, --+):
- AssertEqual foldlevel(2), 0, '==+'
- AssertEqual foldlevel(4), 1, '--+'
+Execute (fold level ==, --):
+ AssertEqual foldlevel(2), 0, '=='
+ AssertEqual foldlevel(4), 1, '--'
-Execute (fold text of ==+, --+):
- AssertEqual foldtextresult(3), 'Fold text 2 ' . repeat('-', winwidth(0) - 17) . ' 1'
+Execute (fold text of ==, --):
+ let b:width = winwidth(0)
+ let b:hyphen = repeat('-', b:width - 17 > 2 ? b:width - 17 : b:width - 9 > 0 ? 3 : 2)
+ AssertEqual foldtextresult(3), strpart('Fold text 2', 0, b:width - 9) . ' ' . b:hyphen . ' 1'
+
+Given markdown;
+Headline
+
+foobar
+
+# Title
+
+Execute (fold any preamble):
+ AssertEqual foldlevel(1), 1, 'Headline'
+ AssertEqual foldlevel(3), 1, 'foobar'
+ AssertEqual foldlevel(5), 1, '# Title'
+
+Given markdown;
+---
+layout: article
+title: A test of the heading folding when there is YAML frontmatter
+tags: markdown yaml vim-markdown
+---
+body
+
+heading
+-------
+
+Execute (fold level of yaml front matter):
+ let g:vim_markdown_frontmatter = 1
+ source ../after/ftplugin/markdown.vim
+ AssertEqual foldlevel(1), 1, '---'
+ AssertEqual foldlevel(2), 1, 'layout: article'
+ AssertEqual foldlevel(4), 1, 'tags: markdown yaml vim-markdown'
+ AssertEqual foldlevel(5), 1, '---'
+ AssertEqual foldlevel(6), 1, 'body'
+ AssertEqual foldlevel(8), 1, 'heading'
+ AssertEqual foldlevel(9), 1, '-------'
+ unlet g:vim_markdown_frontmatter