1Tests for folding. vim: set ft=vim : 2 3STARTTEST 4:so small.vim 5:" We also need the +syntax feature here. 6:if !has("syntax") 7 e! test.ok 8 w! test.out 9 qa! 10:endif 11:" basic test if a fold can be created, opened, moving to the end and closed 12/^1 13zf2j:call append("$", "manual " . getline(foldclosed("."))) 14zo:call append("$", foldclosed(".")) 15]z:call append("$", getline(".")) 16zc:call append("$", getline(foldclosed("."))) 17:" test folding with markers. 18:set fdm=marker fdl=1 fdc=3 19/^5 20:call append("$", "marker " . foldlevel(".")) 21[z:call append("$", foldlevel(".")) 22jo{{ r{jj:call append("$", foldlevel(".")) 23kYpj:call append("$", foldlevel(".")) 24:" test folding with indent 25:set fdm=indent sw=2 26/^2 b 27i jI :call append("$", "indent " . foldlevel(".")) 28k:call append("$", foldlevel(".")) 29:" test syntax folding 30:set fdm=syntax fdl=0 31:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3 32:syn region Fd1 start="ee" end="ff" fold contained 33:syn region Fd2 start="gg" end="hh" fold contained 34:syn region Fd3 start="commentstart" end="commentend" fold contained 35Gzk:call append("$", "folding " . getline(".")) 36k:call append("$", getline(".")) 37jAcommentstart Acommentend:set fdl=1 383j:call append("$", getline(".")) 39:set fdl=0 40zOj:call append("$", getline(".")) 41:" test expression folding 42:fun Flvl() 43 let l = getline(v:lnum) 44 if l =~ "bb$" 45 return 2 46 elseif l =~ "gg$" 47 return "s1" 48 elseif l =~ "ii$" 49 return ">2" 50 elseif l =~ "kk$" 51 return "0" 52 endif 53 return "=" 54endfun 55:set fdm=expr fde=Flvl() 56/bb$ 57:call append("$", "expr " . foldlevel(".")) 58/hh$ 59:call append("$", foldlevel(".")) 60/ii$ 61:call append("$", foldlevel(".")) 62/kk$ 63:call append("$", foldlevel(".")) 64:/^last/+1,$w! test.out 65:delfun Flvl 66:qa! 67ENDTEST 68 691 aa 702 bb 713 cc 724 dd {{{ 735 ee {{{ }}} 746 ff }}} 757 gg 768 hh 779 ii 78a jj 79b kk 80last 81