.vim/bundle/vim-asciidoc-folding/after/ftplugin/asciidoc/folding.vim
changeset 26 1bb2363eba47
parent 25 d22ae2e9efc2
child 27 c1d260ead8fa
--- a/.vim/bundle/vim-asciidoc-folding/after/ftplugin/asciidoc/folding.vim	Thu Oct 29 23:41:47 2015 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-" Fold expression for asciidoc files
-"
-" NOTE: only supports Atx-style, not Setext style sections. See
-" http://asciidoctor.org/docs/asciidoc-recommended-practices/ for more info.
-"
-" Script's originally based on https://github.com/nelstrom/vim-markdown-folding
-"
-" vim:set fdm=marker:
-
-" Fold expressions {{{1
-function! StackedMarkdownFolds()
-  if HeadingDepth(v:lnum) > 0
-    return ">1"
-  else
-    return "="
-  endif
-endfunction
-
-function! NestedMarkdownFolds()
-  let depth = HeadingDepth(v:lnum)
-  if depth > 0
-    return ">".depth
-  else
-    return "="
-  endif
-endfunction
-
-" Helpers {{{1
-function! s:SID()
-  return matchstr(expand('<sfile>'), '<SNR>\d\+_')
-endfunction
-
-function! HeadingDepth(lnum)
-  " 5 ='s is deepest section level, according to `asciidoc --help syntax`.
-  " Only 1 = is the document header, which isn't really worth folding, so we
-  " ignore it and subtract one off the count to get the fold level.
-  let level=0
-  let thisline = getline(a:lnum)
-  let hashCount = len(matchstr(thisline, '^=\{2,5}'))
-  " Ignore lines with too many ='s (usually block deliminators)
-  if hashCount > 1 && hashCount < 5
-    let level = hashCount - 1
-  endif
-
-  if level > 0 && LineIsFenced(a:lnum)
-    " Ignore ='s if they appear within fenced code blocks
-    let level = 0
-  endif
-
-  return level
-endfunction
-
-function! LineIsFenced(lnum)
-  if exists("b:current_syntax") && b:current_syntax ==# 'asciidoc'
-    " It's cheap to check if the current line has 'markdownCode' syntax group
-    return s:HasSyntaxGroup(a:lnum, 'markdownCode')
-  endif
-endfunction
-
-function! s:HasSyntaxGroup(lnum, targetGroup)
-  let syntaxGroup = map(synstack(a:lnum, 1), 'synIDattr(v:val, "name")')
-  for value in syntaxGroup
-    " Likely dependant on the asciidoc syntax file, so will need to be
-    " updated accordingly
-    if value =~ '\vasciidocListingBlock'
-      return 1
-    endif
-  endfor
-endfunction
-
-
-function! s:FoldText()
-  let level = HeadingDepth(v:foldstart)
-  let indent = repeat('=', level)
-  let title = substitute(getline(v:foldstart), '^=\+\s*', '', '')
-  let foldsize = (v:foldend - v:foldstart)
-  let linecount = '['.foldsize.' line'.(foldsize>1?'s':'').']'
-  return indent.' '.title.' '.linecount
-endfunction
-
-" API {{{1
-function! ToggleMarkdownFoldexpr()
-  if &l:foldexpr ==# 'StackedMarkdownFolds()'
-    setlocal foldexpr=NestedMarkdownFolds()
-  else
-    setlocal foldexpr=StackedMarkdownFolds()
-  endif
-endfunction
-command! -buffer FoldToggle call ToggleMarkdownFoldexpr()
-
-" Setup {{{1
-if !exists('g:markdown_fold_style')
-  let g:markdown_fold_style = 'stacked'
-endif
-
-if !exists('g:markdown_fold_override_foldtext')
-  let g:markdown_fold_override_foldtext = 1
-endif
-
-setlocal foldmethod=expr
-
-if g:markdown_fold_override_foldtext
-  let &l:foldtext = s:SID() . 'FoldText()'
-endif
-
-let &l:foldexpr =
-  \ g:markdown_fold_style ==# 'nested'
-  \ ? 'NestedMarkdownFolds()'
-  \ : 'StackedMarkdownFolds()'
-
-" Teardown {{{1
-" To avoid errors when undo_ftplugin not defined yet
-if !exists('b:undo_ftplugin')
-    let b:undo_ftplugin = ''
-endif
-
-let b:undo_ftplugin .= '
-  \ | setlocal foldmethod< foldtext< foldexpr<
-  \ | delcommand FoldToggle
-  \ '
-