From b02182ebbd9c18f3a4e1761c67cf0be10d9062ec Mon Sep 17 00:00:00 2001 From: Emil Loer Date: Tue, 29 Nov 2011 11:22:07 +0100 Subject: [PATCH] Add folding support Closes #10. --- ftplugin/markdown.vim | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim index 5d6ebec..ae3bd26 100644 --- a/ftplugin/markdown.vim +++ b/ftplugin/markdown.vim @@ -19,4 +19,32 @@ else let b:undo_ftplugin = "setl cms< com< fo< flp<" endif +function! MarkdownFold() + let line = getline(v:lnum) + + " Regular headers + let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=') + if depth > 0 + return ">" . depth + endif + + " Setext style headings + let nextline = getline(v:lnum + 1) + if (line =~ '^.\+$') && (nextline =~ '^=\+$') + return ">1" + endif + + if (line =~ '^.\+$') && (nextline =~ '^-\+$') + return ">2" + endif + + return "=" +endfunction + +if has("folding") && exists("g:markdown_folding") + setlocal foldexpr=MarkdownFold() + setlocal foldmethod=expr + let b:undo_ftplugin .= " foldexpr< foldmethod<" +endif + " vim:set sw=2: