'
return 's1'
endif
" fold markers?
if g:pandoc#folding#fold_vim_markers == 1
if vline =~# '[{}]\{3}'
if g:pandoc#folding#vim_markers_in_comments_only == 1
let mark_head = '\)\@=') . line_count_text
endif
if f_line =~# '\)\@=') . line_count_text
endif
if f_line =~? '
'. len(markdown#headers#CurrentHeaderAncestors(v:lnum))
elseif g:pandoc#folding#mode ==# 'stacked'
return '>1'
else
return '>'. len(matchstr(vline, '^#\{1,6}'))
endif
endif
elseif vline =~# '^[^-=].\+$' && vline1 =~# '^=\+$'
if synIDattr(synID(v:lnum, 1, 1), 'name') =~# '^pandoc\(DelimitedCodeBlock$\)\@!' &&
\ synIDattr(synID(v:lnum + 1, 1, 1), 'name') ==# 'pandocSetexHeader'
return '>1'
endif
elseif vline =~# '^[^-=].\+$' && vline1 =~# '^-\+$'
if synIDattr(synID(v:lnum, 1, 1), 'name') =~# '^pandoc\(DelimitedCodeBlock$\)\@!' &&
\ synIDattr(synID(v:lnum + 1, 1, 1), 'name') ==# 'pandocSetexHeader'
if g:pandoc#folding#mode ==# 'relative'
return '>'. len(markdown#headers#CurrentHeaderAncestors(v:lnum))
elseif g:pandoc#folding#mode ==# 'stacked'
return '>1'
else
return '>2'
endif
endif
elseif vline =~? '^'
return 'a1'
elseif vline =~? '^'
return 's1'
elseif vline =~# '^\s*[`~]\{3}'
if g:pandoc#folding#fold_fenced_codeblocks == 1
let synId = synIDattr(synID(v:lnum, match(vline, '[`~]') + 1, 1), 'name')
if synId ==# 'pandocDelimitedCodeBlockStart'
return 'a1'
elseif synId =~# '^pandoc\(DelimitedCodeBlock$\)\@!'
return 's1'
endif
endif
endif
return '='
endfunction
" Basic foldexpr {{{2
function! pandoc#folding#MarkdownLevelBasic() abort
if getline(v:lnum) =~# '^#\{1,6}' && getline(v:lnum-1) =~# '^\s*$'
if g:pandoc#folding#mode ==# 'stacked'
return '>1'
else
return '>'. len(matchstr(getline(v:lnum), '^#\{1,6}'))
endif
elseif getline(v:lnum) =~# '^[^-=].\+$' && getline(v:lnum+1) =~# '^=\+$'
return '>1'
elseif getline(v:lnum) =~# '^[^-=].\+$' && getline(v:lnum+1) =~# '^-\+$'
if g:pandoc#folding#mode ==# 'stacked'
return '>1'
else
return '>2'
endif
elseif getline(v:lnum) =~? '^'
return 'a1'
elseif getline(v:lnum) =~? '^'
return 's1'
endif
return '='
endfunction
" Markdown foldtext {{{2
function! pandoc#folding#MarkdownFoldText() abort
let c_line = getline(v:foldstart)
let atx_title = match(c_line, '#') > -1
if atx_title
return '- '. c_line
else
if match(getline(v:foldstart+1), '=') != -1
let level_mark = '#'
else
let level_mark = '##'
endif
return '- '. level_mark. ' '.c_line
endif
endfunction
" Textile: {{{1
"
function! pandoc#folding#TextileLevel() abort
let vline = getline(v:lnum)
if vline =~# '^h[1-6]\.'
if g:pandoc#folding#mode ==# 'stacked'
return '>'
else
return '>' . matchstr(getline(v:lnum), 'h\@1<=[1-6]\.\=')
endif
elseif vline =~? '^.. .*fold-begin'
return 'a1'
elseif vline =~? '^.. .*fold end'
return 's1'
endif
return '='
endfunction
function! pandoc#folding#TextileFoldText() abort
return '- '. substitute(v:folddashes, '-', '#', 'g'). ' ' . matchstr(getline(v:foldstart), '\(h[1-6]\. \)\@4<=.*')
endfunction