X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/6c3e0bc575abd9618070fad8a27f50a41751136f..627fb41f4d2a172a41345520fcf9ed1f29aed4a6:/after/ftplugin/markdown.vim diff --git a/after/ftplugin/markdown.vim b/after/ftplugin/markdown.vim index 1d0572c..3603485 100644 --- a/after/ftplugin/markdown.vim +++ b/after/ftplugin/markdown.vim @@ -7,27 +7,23 @@ " original version from Steve Losh's gist: https://gist.github.com/1038710 function! s:is_mkdCode(lnum) - return synIDattr(synID(a:lnum, 1, 0), 'name') == 'mkdCode' -endfunction - -function! s:effective_line(lnum) - let line = getline(a:lnum) - return (line !~ '^[=-#]' || s:is_mkdCode(a:lnum)) ? '' : line + let name = synIDattr(synID(a:lnum, 1, 0), 'name') + return (name =~ '^mkd\%(Code$\|Snippet\)' || name != '' && name !~ '^\%(mkd\|html\)') endfunction if get(g:, "vim_markdown_folding_style_pythonic", 0) function! Foldexpr_markdown(lnum) - let l2 = s:effective_line(a:lnum+1) - if l2 =~ '^==\+\s*' + let l2 = getline(a:lnum+1) + if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1) " next line is underlined (level 1) return '>0' - elseif l2 =~ '^--\+\s*' + elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1) " next line is underlined (level 2) return '>1' endif - let l1 = s:effective_line(a:lnum) - if l1 =~ '^#' + let l1 = getline(a:lnum) + if l1 =~ '^#' && !s:is_mkdCode(a:lnum) " current line starts with hashes return '>'.(matchend(l1, '^#\+') - 1) elseif a:lnum == 1 @@ -52,17 +48,17 @@ if get(g:, "vim_markdown_folding_style_pythonic", 0) endfunction else function! Foldexpr_markdown(lnum) - let l2 = s:effective_line(a:lnum+1) - if l2 =~ '^==\+\s*' + let l2 = getline(a:lnum+1) + if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1) " next line is underlined (level 1) return '>1' - elseif l2 =~ '^--\+\s*' + elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1) " next line is underlined (level 2) return '>2' endif - let l1 = s:effective_line(a:lnum) - if l1 =~ '^#' + let l1 = getline(a:lnum) + if l1 =~ '^#' && !s:is_mkdCode(a:lnum) " don't include the section title in the fold return '-1' endif @@ -70,9 +66,9 @@ else if (a:lnum == 1) let l0 = '' else - let l0 = s:effective_line(a:lnum-1) + let l0 = getline(a:lnum-1) endif - if l0 =~ '^#' + if l0 =~ '^#' && !s:is_mkdCode(a:lnum-1) " current line starts with hashes return '>'.matchend(l0, '^#\+') else