summaryrefslogtreecommitdiff
path: root/.vim/after/ftplugin/tex/folding.vim
diff options
context:
space:
mode:
authorUrbain Vaes <urbain@vaes.uk>2014-10-09 14:14:48 +0100
committerUrbain Vaes <urbain@vaes.uk>2014-10-09 14:14:48 +0100
commit54be9a471091bdc8e7770d85623895c83e3f3153 (patch)
tree539410b6883d0f777f3b32ec6fbc33245fec68e0 /.vim/after/ftplugin/tex/folding.vim
Initial commit
Diffstat (limited to '.vim/after/ftplugin/tex/folding.vim')
-rw-r--r--.vim/after/ftplugin/tex/folding.vim34
1 files changed, 34 insertions, 0 deletions
diff --git a/.vim/after/ftplugin/tex/folding.vim b/.vim/after/ftplugin/tex/folding.vim
new file mode 100644
index 0000000..2e8b612
--- /dev/null
+++ b/.vim/after/ftplugin/tex/folding.vim
@@ -0,0 +1,34 @@
+function! TexFolds()
+ let thisline = getline(v:lnum)
+ if match(thisline,'^\\chapter') >= 0
+ return ">1"
+ elseif match(thisline,'^\\section') >= 0
+ return ">1"
+ elseif match(thisline,'^\\subsection') >=0
+ return ">1"
+ elseif match(thisline,'^\\subsubsection') >=0
+ return ">1"
+ else
+ return "="
+ endif
+endfunction
+
+function! TexFoldText()
+ let startline = getline(v:foldstart)
+ let title = substitute(startline,'^.*{\(.*\)}.*$','\1',"")
+ if match(startline,'^\\chapter') >= 0
+ return '*' . title . ''
+ elseif match(startline,'^\\section') >= 0
+ return ' # ' . title
+ elseif match(startline,'^\\subsection') >=0
+ return ' ## ' . title
+ elseif match(startline,'^\\subsubsection') >=0
+ return ' ### ' . title
+ else
+ echom "Error, fold not recognized"
+ endif
+endfunction
+
+setlocal foldmethod=expr
+setlocal foldexpr=TexFolds()
+setlocal foldtext=TexFoldText()