vim/ftplugin/clojure/clojurefolding.vim @ 501b64da8d72
vim: easymotion bindings and colors
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Thu, 31 Mar 2011 09:07:59 -0400 |
| parents | 43e9e87b0120 |
| children | 5245ac05d1e8 |
if exists('loaded_clojurefolding') || &cp finish endif let loaded_clojurefolding=1 " --------------------------------------------------------------------------- " Automagic Clojure folding on defn's and defmacro's " function GetClojureFold() if getline(v:lnum) =~ '^\s*(defn.*\s' return ">1" elseif getline(v:lnum) =~ '^\s*(defmacro.*\s' return ">1" elseif getline(v:lnum) =~ '^\s*(defmethod.*\s' return ">1" elseif getline(v:lnum) =~ '^\s*$' let my_cljnum = v:lnum let my_cljmax = line("$") while (1) let my_cljnum = my_cljnum + 1 if my_cljnum > my_cljmax return "<1" endif let my_cljdata = getline(my_cljnum) " If we match an empty line, stop folding if my_cljdata =~ '^$' return "<1" else return "=" endif endwhile else return "=" endif endfunction function TurnOnClojureFolding() setlocal foldexpr=GetClojureFold() setlocal foldmethod=expr endfunction