Merged from the latest developing branch.
[MacVim.git] / src / testdir / test45.in
blobe5af5073d909998feb70164aa0f080821f65076c
1 Tests for folding. vim: set ft=vim :
3 STARTTEST
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
13 zf2j:call append("$", "manual " . getline(foldclosed(".")))
14 zo:call append("$", foldclosed("."))
15 ]z:call append("$", getline("."))
16 zc: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("."))
22 jo{{ \er{jj:call append("$", foldlevel("."))
23 kYpj:call append("$", foldlevel("."))
24 :" test folding with indent
25 :set fdm=indent sw=2
26 /^2 b
27 i  \ejI    \e:call append("$", "indent " . foldlevel("."))
28 k: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
35 Gzk:call append("$", "folding " . getline("."))
36 k:call append("$", getline("."))
37 jAcommentstart  \eAcommentend\e:set fdl=1
38 3j:call append("$", getline("."))
39 :set fdl=0
40 zO\fj: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 "="
54 endfun
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!
67 ENDTEST
69 1 aa
70 2 bb
71 3 cc
72 4 dd {{{
73 5 ee {{{ }}}
74 6 ff }}}
75 7 gg
76 8 hh
77 9 ii
78 a jj
79 b kk
80 last