]> git.madduck.net Git - etc/vim.git/commitdiff

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:

Fix last line header folding
authorHiroshi Shirosaki <h.shirosaki@gmail.com>
Mon, 6 Mar 2017 07:55:17 +0000 (16:55 +0900)
committerHiroshi Shirosaki <h.shirosaki@gmail.com>
Mon, 6 Mar 2017 07:55:17 +0000 (16:55 +0900)
Fold level should be specified to the last line.
Based on the patch by @memeplex
Fix #315, #317

after/ftplugin/markdown.vim
test/folding.vader

index cdf0a2654a40c037287d0cf3f57ff6d34d7902fb..9ee01006960b118c1a82ddec0958b047496e54db 100644 (file)
@@ -125,7 +125,11 @@ else
         if l1 =~ '^#' && !s:is_mkdCode(a:lnum)
             " fold level according to option
             if s:vim_markdown_folding_level == 1 || matchend(l1, '^#\+') > s:vim_markdown_folding_level
-                return -1
+                if a:lnum == line('$')
+                    return matchend(l1, '^#\+') - 1
+                else
+                    return -1
+                endif
             else
                 " headers are not folded
                 return 0
@@ -133,7 +137,7 @@ else
         endif
 
         if l0 =~ '^#' && !s:is_mkdCode(a:lnum-1)
-            " current line starts with hashes
+            " previous line starts with hashes
             return '>'.matchend(l0, '^#\+')
         else
             " keep previous foldlevel
index adcae5f9b26b165f5f1ace12962785686706cea7..ecf5f9bf2865b7596afa960d8e527bafe9f54ad2 100644 (file)
@@ -36,3 +36,18 @@ Fold Level 2
 Execute (fold level ==, --):
   AssertEqual foldlevel(2), 1, '=='
   AssertEqual foldlevel(4), 2, '--'
+
+Given markdown;
+# H1
+
+## H1.1
+
+## H1.2
+
+# H2
+
+Execute (fold level # in last line):
+  AssertEqual foldlevel(1), 0, '# H1'
+  AssertEqual foldlevel(3), 1, '## H1.1'
+  AssertEqual foldlevel(5), 1, '## H1.2'
+  AssertEqual foldlevel(7), 0, '# H2'