Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | Tests for folding. vim: set ft=vim : |
| 2 | |
| 3 | STARTTEST |
| 4 | :so small.vim |
Bram Moolenaar | c3c766e | 2017-03-08 22:55:19 +0100 | [diff] [blame^] | 5 | :set belloff=all |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 6 | :" We also need the +syntax feature here. |
| 7 | :if !has("syntax") |
| 8 | e! test.ok |
| 9 | w! test.out |
| 10 | qa! |
| 11 | :endif |
| 12 | :" basic test if a fold can be created, opened, moving to the end and closed |
| 13 | /^1 |
| 14 | zf2j:call append("$", "manual " . getline(foldclosed("."))) |
| 15 | zo:call append("$", foldclosed(".")) |
| 16 | ]z:call append("$", getline(".")) |
| 17 | zc:call append("$", getline(foldclosed("."))) |
| 18 | :" test folding with markers. |
| 19 | :set fdm=marker fdl=1 fdc=3 |
| 20 | /^5 |
| 21 | :call append("$", "marker " . foldlevel(".")) |
| 22 | [z:call append("$", foldlevel(".")) |
| 23 | jo{{ r{jj:call append("$", foldlevel(".")) |
| 24 | kYpj:call append("$", foldlevel(".")) |
| 25 | :" test folding with indent |
| 26 | :set fdm=indent sw=2 |
| 27 | /^2 b |
| 28 | i jI :call append("$", "indent " . foldlevel(".")) |
| 29 | k:call append("$", foldlevel(".")) |
| 30 | :" test syntax folding |
| 31 | :set fdm=syntax fdl=0 |
Bram Moolenaar | ec98647 | 2009-11-03 13:46:54 +0000 | [diff] [blame] | 32 | :syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3 |
| 33 | :syn region Fd1 start="ee" end="ff" fold contained |
| 34 | :syn region Fd2 start="gg" end="hh" fold contained |
| 35 | :syn region Fd3 start="commentstart" end="commentend" fold contained |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 36 | Gzk:call append("$", "folding " . getline(".")) |
| 37 | k:call append("$", getline(".")) |
Bram Moolenaar | ec98647 | 2009-11-03 13:46:54 +0000 | [diff] [blame] | 38 | jAcommentstart Acommentend:set fdl=1 |
| 39 | 3j:call append("$", getline(".")) |
Bram Moolenaar | f4d7f94 | 2010-02-24 14:34:19 +0100 | [diff] [blame] | 40 | :set fdl=0 |
| 41 | zOj:call append("$", getline(".")) |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 42 | :" test expression folding |
| 43 | :fun Flvl() |
| 44 | let l = getline(v:lnum) |
| 45 | if l =~ "bb$" |
| 46 | return 2 |
| 47 | elseif l =~ "gg$" |
| 48 | return "s1" |
| 49 | elseif l =~ "ii$" |
| 50 | return ">2" |
| 51 | elseif l =~ "kk$" |
| 52 | return "0" |
| 53 | endif |
| 54 | return "=" |
| 55 | endfun |
| 56 | :set fdm=expr fde=Flvl() |
| 57 | /bb$ |
| 58 | :call append("$", "expr " . foldlevel(".")) |
| 59 | /hh$ |
| 60 | :call append("$", foldlevel(".")) |
| 61 | /ii$ |
| 62 | :call append("$", foldlevel(".")) |
| 63 | /kk$ |
| 64 | :call append("$", foldlevel(".")) |
| 65 | :/^last/+1,$w! test.out |
Bram Moolenaar | 9d2c8c1 | 2007-09-25 16:00:00 +0000 | [diff] [blame] | 66 | :delfun Flvl |
Bram Moolenaar | d5f6933 | 2015-04-15 12:43:50 +0200 | [diff] [blame] | 67 | :new |
| 68 | iTest fdm=indent and :move bug END |
| 69 | line2 |
| 70 | Test fdm=indent START |
| 71 | line3 |
| 72 | line4 |
| 73 | :set fdm=indent |
| 74 | :1m1 |
| 75 | 2jzc:m0 |
| 76 | :%w >> test.out |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 77 | :qa! |
| 78 | ENDTEST |
| 79 | |
| 80 | 1 aa |
| 81 | 2 bb |
| 82 | 3 cc |
| 83 | 4 dd {{{ |
| 84 | 5 ee {{{ }}} |
| 85 | 6 ff }}} |
| 86 | 7 gg |
| 87 | 8 hh |
| 88 | 9 ii |
| 89 | a jj |
| 90 | b kk |
| 91 | last |