summaryrefslogtreecommitdiff
path: root/.vim/after/ftplugin/tex/folding.vim
diff options
context:
space:
mode:
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()