From d800125a72fe20c066a5530dcbabc4968033d3c5 Mon Sep 17 00:00:00 2001 From: Drew Neil Date: Wed, 24 Oct 2012 15:36:03 +0100 Subject: [PATCH] Setup a placeholder for 'FoldText()' function. --- after/ftplugin/markdown/folding.vim | 12 ++++++++++- test/folding.vim | 32 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/after/ftplugin/markdown/folding.vim b/after/ftplugin/markdown/folding.vim index 835e3c4..1a952ed 100644 --- a/after/ftplugin/markdown/folding.vim +++ b/after/ftplugin/markdown/folding.vim @@ -1,4 +1,8 @@ " Helpers {{{1 +function! s:SID() + return matchstr(expand(''), '\d\+_') +endfunction + function! HeadingDepth(lnum) let level=0 let thisline = getline(a:lnum) @@ -17,12 +21,18 @@ function! HeadingDepth(lnum) endif return level endfunction + +function! FoldText() + return 'placeholder' +endfunction + " Setup {{{1 setlocal foldmethod=expr +let &l:foldtext = s:SID() . 'FoldText()' command! -buffer FoldToggle " Teardown {{{1 let b:undo_ftplugin .= ' - \ | setlocal foldmethod< + \ | setlocal foldmethod< foldtext< \ | delcommand FoldToggle \ ' " vim:set fdm=marker: diff --git a/test/folding.vim b/test/folding.vim index 82070cc..a5cd5bc 100644 --- a/test/folding.vim +++ b/test/folding.vim @@ -22,6 +22,10 @@ describe 'setting filetype=markdown' Expect &l:foldmethod ==# 'expr' end + it 'applies foldtext=FoldText()' + Expect &l:foldtext =~# '\d_FoldText()' + end + it 'creates :FoldToggle command' Expect exists(':FoldToggle') == 2 end @@ -44,6 +48,11 @@ describe 'setting filetype!=markdown' Expect &l:foldmethod ==# 'manual' end + it 'resets foldtext to default' + setlocal filetype= + Expect &l:foldtext =~# 'foldtext()' + end + it 'destroys :FoldToggle command' setlocal filetype= Expect exists(':FoldToggle') == 0 @@ -130,3 +139,26 @@ describe 'HeadingDepth' end end + +describe 'FoldText' + + before + silent tabnew + setlocal filetype=markdown + end + + after + silent tabclose! + end + + " TODO: return to this after implementing foldexpr + " it 'uses "# level one" headings as is' + " call PopulateBuffer([ + " \ '# Level one heading', + " \ '', + " \ 'Lorem ipsum dolor sit amet...', + " \ ]) + " Expect foldtextresult('1') ==# '# Level one heading [2 lines]' + " end + +end