From eb133bd8aea1800ea6ad75bd1642a4c4271bf1c9 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Mon, 30 Dec 2019 19:53:38 +1300 Subject: Move Markdown folding into function --- vim/autoload/markdown.vim | 23 +++++++++++++++++++++++ vim/ftplugin/markdown.vim | 24 +----------------------- 2 files changed, 24 insertions(+), 23 deletions(-) diff --git a/vim/autoload/markdown.vim b/vim/autoload/markdown.vim index 6c8187a0..cdd14c12 100644 --- a/vim/autoload/markdown.vim +++ b/vim/autoload/markdown.vim @@ -1,3 +1,26 @@ +" Let's try this heading-based fold method out (Tim Pope) +function! markdown#Fold() + let line = getline(v:lnum) + + " Regular headers + let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=') + if depth > 0 + return '>' . depth + endif + + " Setext style headings + if line =~# '^.\+$' + let nextline = getline(v:lnum + 1) + if nextline =~# '^=\+$' + return '>1' + elseif nextline =~# '^-\+$' + return '>2' + endif + endif + + return '=' +endfunction + " Add an underline under a heading function! markdown#Heading(char) abort diff --git a/vim/ftplugin/markdown.vim b/vim/ftplugin/markdown.vim index 2b4087a5..8c5cb029 100644 --- a/vim/ftplugin/markdown.vim +++ b/vim/ftplugin/markdown.vim @@ -18,29 +18,7 @@ let &l:formatlistpat = '^\s*\d\+\.\s\+\|^[-*+]\s\+\|^\[^\ze[^\]]\+\]:' let b:undo_ftplugin .= '|setlocal formatoptions< formatlistpat<' " Let's try this heading-based fold method out (Tim Pope) -function! MarkdownFold() - let line = getline(v:lnum) - - " Regular headers - let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=') - if depth > 0 - return '>' . depth - endif - - " Setext style headings - if line =~# '^.\+$' - let nextline = getline(v:lnum + 1) - if nextline =~# '^=\+$' - return '>1' - elseif nextline =~# '^-\+$' - return '>2' - endif - endif - - return '=' -endfunction -let b:undo_ftplugin .= '|delfunction MarkdownFold' -setlocal foldexpr=MarkdownFold() +setlocal foldexpr=markdown#Fold() setlocal foldmethod=expr let b:undo_ftplugin .= '|setlocal foldexpr< foldmethod<' -- cgit v1.2.3