annotate src/testdir/test_fold.vim @ 19783:546bdeef35f1 v8.2.0448

patch 8.2.0448: various functions not properly tested Commit: https://github.com/vim/vim/commit/0e05de46226eb4e5ea580beefa71831f92d613d3 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 25 22:23:46 2020 +0100 patch 8.2.0448: various functions not properly tested Problem: Various functions not properly tested. Solution: Add more tests, especially for failures. (Yegappan Lakshmanan, closes #5843)
author Bram Moolenaar <Bram@vim.org>
date Wed, 25 Mar 2020 22:30:04 +0100
parents f9e41ffd3539
children 49694eceaa55
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10484
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Test for folding
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
3 source check.vim
14317
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
4 source view_util.vim
14875
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
5 source screendump.vim
14317
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
6
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
7 func PrepIndent(arg)
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
8 return [a:arg] + repeat(["\t".a:arg], 5)
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
9 endfu
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
10
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
11 func Test_address_fold()
10484
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 new
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 call setline(1, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 \ 'after fold 1', 'after fold 2', 'after fold 3'])
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 setl fen fdm=marker
11219
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
16 " The next commands should all copy the same part of the buffer,
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
17 " regardless of the addressing type, since the part to be copied
10484
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 " is folded away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 :1y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 :.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 :.+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 :.,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 :sil .1,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 :sil .+,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 :,y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 :,+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/','after fold 1'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 " using .+3 as second address should copy the whole folded line + the next 3
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 " lines
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 :.,+3y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/',
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 \ 'after fold 1', 'after fold 2', 'after fold 3'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 :sil .,-2y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3', '4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 " now test again with folding disabled
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 set nofoldenable
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 :1y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 call assert_equal(['int FuncName() {/*{{{*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 :.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 call assert_equal(['int FuncName() {/*{{{*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 :.+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 call assert_equal(['1'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 :.,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 call assert_equal(['int FuncName() {/*{{{*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 :sil .1,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 call assert_equal(['int FuncName() {/*{{{*/', '1'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 :sil .+,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 call assert_equal(['int FuncName() {/*{{{*/', '1'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 :,y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 call assert_equal(['int FuncName() {/*{{{*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 :,+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 call assert_equal(['int FuncName() {/*{{{*/', '1'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 " using .+3 as second address should copy the whole folded line + the next 3
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 " lines
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 :.,+3y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67 call assert_equal(['int FuncName() {/*{{{*/', '1', '2', '3'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 :7
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 :sil .,-2y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 call assert_equal(['4', '5', '}/*}}}*/'], getreg(0,1,1))
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 quit!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
73 endfunc
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
74
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
75 func Test_indent_fold()
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
76 new
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
77 call setline(1, ['', 'a', ' b', ' c'])
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
78 setl fen fdm=indent
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
79 2
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
80 norm! >>
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
81 let a=map(range(1,4), 'foldclosed(v:val)')
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
82 call assert_equal([-1,-1,-1,-1], a)
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
83 bw!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
84 endfunc
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
85
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
86 func Test_indent_fold2()
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
87 new
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
88 call setline(1, ['', '{{{', '}}}', '{{{', '}}}'])
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
89 setl fen fdm=marker
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
90 2
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
91 norm! >>
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17787
diff changeset
92 let a=map(range(1,5), 'v:val->foldclosed()')
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
93 call assert_equal([-1,-1,-1,4,4], a)
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
94 bw!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
95 endfunc
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
96
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
97 func Test_manual_fold_with_filter()
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
98 if !executable('cat')
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
99 return
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
100 endif
11036
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
101 for type in ['manual', 'marker']
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
102 exe 'set foldmethod=' . type
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
103 new
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
104 call setline(1, range(1, 20))
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
105 4,$fold
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
106 %foldopen
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
107 10,$fold
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
108 %foldopen
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
109 " This filter command should not have an effect
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
110 1,8! cat
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
111 call feedkeys('5ggzdzMGdd', 'xt')
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
112 call assert_equal(['1', '2', '3', '4', '5', '6', '7', '8', '9'], getline(1, '$'))
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
113
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
114 bwipe!
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
115 set foldmethod&
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
116 endfor
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
117 endfunc
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
118
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
119 func Test_indent_fold_with_read()
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
120 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
121 set foldmethod=indent
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
122 call setline(1, repeat(["\<Tab>a"], 4))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
123 for n in range(1, 4)
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
124 call assert_equal(1, foldlevel(n))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
125 endfor
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
126
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
127 call writefile(["a", "", "\<Tab>a"], 'Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
128 foldopen
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
129 2read Xfile
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
130 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
131 call assert_equal(1, foldlevel(1))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
132 call assert_equal(2, foldclosedend(1))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
133 call assert_equal(0, foldlevel(3))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
134 call assert_equal(0, foldlevel(4))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
135 call assert_equal(1, foldlevel(5))
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17787
diff changeset
136 call assert_equal(7, 5->foldclosedend())
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
137
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
138 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
139 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
140 call delete('Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
141 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
142
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
143 func Test_combining_folds_indent()
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
144 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
145 let one = "\<Tab>a"
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
146 let zero = 'a'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
147 call setline(1, [one, one, zero, zero, zero, one, one, one])
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
148 set foldmethod=indent
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
149 3,5d
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
150 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
151 call assert_equal(5, foldclosedend(1))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
152
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
153 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
154 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
155 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
156
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
157 func Test_combining_folds_marker()
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
158 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
159 call setline(1, ['{{{', '}}}', '', '', '', '{{{', '', '}}}'])
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
160 set foldmethod=marker
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
161 3,5d
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
162 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
163 call assert_equal(2, foldclosedend(1))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
164
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
165 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
166 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
167 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
168
11131
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
169 func Test_folds_marker_in_comment()
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
170 new
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
171 call setline(1, ['" foo', 'bar', 'baz'])
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
172 setl fen fdm=marker
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
173 setl com=sO:\"\ -,mO:\"\ \ ,eO:\"\",:\" cms=\"%s
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
174 norm! zf2j
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
175 setl nofen
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
176 :1y
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
177 call assert_equal(['" foo{{{'], getreg(0,1,1))
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
178 :+2y
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
179 call assert_equal(['baz"}}}'], getreg(0,1,1))
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
180
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
181 set foldmethod&
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
182 bwipe!
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
183 endfunc
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
184
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
185 func s:TestFoldExpr(lnum)
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
186 let thisline = getline(a:lnum)
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
187 if thisline == 'a'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
188 return 1
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
189 elseif thisline == 'b'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
190 return 0
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
191 elseif thisline == 'c'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
192 return '<1'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
193 elseif thisline == 'd'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
194 return '>1'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
195 endif
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
196 return 0
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
197 endfunction
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
198
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
199 func Test_update_folds_expr_read()
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
200 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
201 call setline(1, ['a', 'a', 'a', 'a', 'a', 'a'])
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
202 set foldmethod=expr
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
203 set foldexpr=s:TestFoldExpr(v:lnum)
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
204 2
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
205 foldopen
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
206 call writefile(['b', 'b', 'a', 'a', 'd', 'a', 'a', 'c'], 'Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
207 read Xfile
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
208 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
209 call assert_equal(2, foldclosedend(1))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
210 call assert_equal(0, foldlevel(3))
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17787
diff changeset
211 call assert_equal(0, 4->foldlevel())
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
212 call assert_equal(6, foldclosedend(5))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
213 call assert_equal(10, foldclosedend(7))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
214 call assert_equal(14, foldclosedend(11))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
215
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
216 call delete('Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
217 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
218 set foldmethod& foldexpr&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
219 endfunc
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
220
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
221 func Check_foldlevels(expected)
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
222 call assert_equal(a:expected, map(range(1, line('$')), 'foldlevel(v:val)'))
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
223 endfunc
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
224
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
225 func Test_move_folds_around_manual()
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
226 new
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
227 let input = PrepIndent("a") + PrepIndent("b") + PrepIndent("c")
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
228 call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
229 let folds=[-1, 2, 2, 2, 2, 2, -1, 8, 8, 8, 8, 8, -1, 14, 14, 14, 14, 14]
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
230 " all folds closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
231 set foldenable foldlevel=0 fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
232 " needs a forced redraw
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
233 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
234 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
235 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
236 call assert_equal(input, getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
237 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
238 call assert_equal(PrepIndent("b") + PrepIndent("a") + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
239 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
240 10,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
241 call assert_equal(PrepIndent("a")[1:] + PrepIndent("b") + ["a"] + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
242 call assert_equal([1, 1, 1, 1, 1, -1, 7, 7, 7, 7, 7, -1, -1, 14, 14, 14, 14, 14], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
243 " moving should not close the folds
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
244 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
245 call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
246 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
247 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
248 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
249 call cursor(2, 1)
11156
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
250 %foldopen
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
251 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
252 let folds=repeat([-1], 18)
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
253 call assert_equal(PrepIndent("b") + PrepIndent("a") + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
254 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
255 norm! zM
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
256 " folds are not corrupted and all have been closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
257 call assert_equal([-1, 2, 2, 2, 2, 2, -1, 8, 8, 8, 8, 8, -1, 14, 14, 14, 14, 14], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
258 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
259 call setline(1, ["a", "\tb", "\tc", "\td", "\te"])
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
260 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
261 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
262 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
263 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
264 3m4
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
265 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
266 call assert_equal(["a", "\tb", "\td", "\tc", "\te"], getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
267 call assert_equal([-1, 5, 5, 5, 5], map(range(1, line('$')), 'foldclosedend(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
268 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
269 call setline(1, ["a", "\tb", "\tc", "\td", "\te", "z", "\ty", "\tx", "\tw", "\tv"])
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
270 set fdm=indent foldlevel=0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
271 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
272 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
273 3m1
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
274 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
275 call assert_equal(["a", "\tc", "\tb", "\td", "\te", "z", "\ty", "\tx", "\tw", "\tv"], getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
276 call assert_equal(0, foldlevel(2))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
277 call assert_equal(5, foldclosedend(3))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
278 call assert_equal([-1, -1, 3, 3, 3, -1, 7, 7, 7, 7], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
279 2,6m$
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
280 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
281 call assert_equal(5, foldclosedend(2))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
282 call assert_equal(0, foldlevel(6))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
283 call assert_equal(9, foldclosedend(7))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
284 call assert_equal([-1, 2, 2, 2, 2, -1, 7, 7, 7, -1], map(range(1, line('$')), 'foldclosed(v:val)'))
12471
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
285
11156
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
286 %d
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
287 " Ensure moving around the edges still works.
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
288 call setline(1, PrepIndent("a") + repeat(["a"], 3) + ["\ta"])
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
289 set fdm=indent foldlevel=0
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
290 set fdm=manual
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
291 %foldopen
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
292 6m$
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
293 " The first fold has been truncated to the 5'th line.
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
294 " Second fold has been moved up because the moved line is now below it.
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
295 call Check_foldlevels([0, 1, 1, 1, 1, 0, 0, 0, 1, 0])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
296
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
297 %delete
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
298 set fdm=indent foldlevel=0
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
299 call setline(1, [
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
300 \ "a",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
301 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
302 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
303 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
304 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
305 \ "a",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
306 \ "a"])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
307 set fdm=manual
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
308 %foldopen!
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
309 4,5m6
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
310 call Check_foldlevels([0, 1, 2, 0, 0, 0, 0])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
311
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
312 %delete
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
313 set fdm=indent
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
314 call setline(1, [
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
315 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
316 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
317 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
318 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
319 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
320 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
321 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
322 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
323 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
324 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
325 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
326 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
327 \ "\t\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
328 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
329 \ "a"])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
330 set fdm=manual
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
331 %foldopen!
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
332 13m7
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
333 call Check_foldlevels([1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 0])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
334
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
335 bw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
336 endfunc
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
337
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
338 func Test_move_folds_around_indent()
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
339 new
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
340 let input = PrepIndent("a") + PrepIndent("b") + PrepIndent("c")
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
341 call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
342 let folds=[-1, 2, 2, 2, 2, 2, -1, 8, 8, 8, 8, 8, -1, 14, 14, 14, 14, 14]
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
343 " all folds closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
344 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
345 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
346 call assert_equal(input, getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
347 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
348 call assert_equal(PrepIndent("b") + PrepIndent("a") + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
349 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
350 10,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
351 call assert_equal(PrepIndent("a")[1:] + PrepIndent("b") + ["a"] + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
352 call assert_equal([1, 1, 1, 1, 1, -1, 7, 7, 7, 7, 7, -1, -1, 14, 14, 14, 14, 14], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
353 " moving should not close the folds
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
354 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
355 call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
356 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
357 call cursor(2, 1)
11156
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
358 %foldopen
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
359 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
360 let folds=repeat([-1], 18)
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
361 call assert_equal(PrepIndent("b") + PrepIndent("a") + PrepIndent("c"), getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
362 call assert_equal(folds, map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
363 norm! zM
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
364 " folds are not corrupted and all have been closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
365 call assert_equal([-1, 2, 2, 2, 2, 2, -1, 8, 8, 8, 8, 8, -1, 14, 14, 14, 14, 14], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
366 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
367 call setline(1, ["a", "\tb", "\tc", "\td", "\te"])
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
368 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
369 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
370 3m4
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
371 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
372 call assert_equal(["a", "\tb", "\td", "\tc", "\te"], getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
373 call assert_equal([-1, 5, 5, 5, 5], map(range(1, line('$')), 'foldclosedend(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
374 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
375 call setline(1, ["a", "\tb", "\tc", "\td", "\te", "z", "\ty", "\tx", "\tw", "\tv"])
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
376 set fdm=indent foldlevel=0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
377 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
378 3m1
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
379 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
380 call assert_equal(["a", "\tc", "\tb", "\td", "\te", "z", "\ty", "\tx", "\tw", "\tv"], getline(1, '$'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
381 call assert_equal(1, foldlevel(2))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
382 call assert_equal(5, foldclosedend(3))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
383 call assert_equal([-1, 2, 2, 2, 2, -1, 7, 7, 7, 7], map(range(1, line('$')), 'foldclosed(v:val)'))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
384 2,6m$
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
385 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
386 call assert_equal(9, foldclosedend(2))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
387 call assert_equal(1, foldlevel(6))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
388 call assert_equal(9, foldclosedend(7))
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
389 call assert_equal([-1, 2, 2, 2, 2, 2, 2, 2, 2, -1], map(range(1, line('$')), 'foldclosed(v:val)'))
11156
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
390 " Ensure moving around the edges still works.
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
391 %d
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
392 call setline(1, PrepIndent("a") + repeat(["a"], 3) + ["\ta"])
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
393 set fdm=indent foldlevel=0
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
394 %foldopen
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
395 6m$
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
396 " The first fold has been truncated to the 5'th line.
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
397 " Second fold has been moved up because the moved line is now below it.
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
398 call Check_foldlevels([0, 1, 1, 1, 1, 0, 0, 0, 1, 1])
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
399 bw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
400 endfunc
11219
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
401
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
402 func Test_folddoopen_folddoclosed()
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
403 new
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
404 call setline(1, range(1, 9))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
405 set foldmethod=manual
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
406 1,3 fold
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
407 6,8 fold
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
408
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
409 " Test without range.
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
410 folddoopen s/$/o/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
411 folddoclosed s/$/c/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
412 call assert_equal(['1c', '2c', '3c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
413 \ '4o', '5o',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
414 \ '6c', '7c', '8c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
415 \ '9o'], getline(1, '$'))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
416
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
417 " Test with range.
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
418 call setline(1, range(1, 9))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
419 1,8 folddoopen s/$/o/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
420 4,$ folddoclosed s/$/c/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
421 call assert_equal(['1', '2', '3',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
422 \ '4o', '5o',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
423 \ '6c', '7c', '8c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
424 \ '9'], getline(1, '$'))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
425
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
426 set foldmethod&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
427 bw!
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
428 endfunc
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
429
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
430 func Test_fold_error()
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
431 new
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
432 call setline(1, [1, 2])
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
433
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
434 for fm in ['indent', 'expr', 'syntax', 'diff']
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
435 exe 'set foldmethod=' . fm
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
436 call assert_fails('norm zf', 'E350:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
437 call assert_fails('norm zd', 'E351:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
438 call assert_fails('norm zE', 'E352:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
439 endfor
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
440
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
441 set foldmethod=manual
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
442 call assert_fails('norm zd', 'E490:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
443 call assert_fails('norm zo', 'E490:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
444 call assert_fails('3fold', 'E16:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
445
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
446 set foldmethod=marker
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
447 set nomodifiable
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
448 call assert_fails('1,2fold', 'E21:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
449
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
450 set modifiable&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
451 set foldmethod&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
452 bw!
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
453 endfunc
12471
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
454
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
455 func Test_foldtext_recursive()
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
456 new
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
457 call setline(1, ['{{{', 'some text', '}}}'])
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
458 setlocal foldenable foldmethod=marker foldtext=foldtextresult(v\:foldstart)
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
459 " This was crashing because of endless recursion.
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
460 2foldclose
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
461 redraw
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
462 call assert_equal(1, foldlevel(2))
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
463 call assert_equal(1, foldclosed(2))
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
464 call assert_equal(3, foldclosedend(2))
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
465 bwipe!
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
466 endfunc
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
467
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
468 " Various fold related tests
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
469
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
470 " Basic test if a fold can be created, opened, moving to the end and closed
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
471 func Test_fold_manual()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
472 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
473 set fdm=manual
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
474
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
475 let content = ['1 aa', '2 bb', '3 cc']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
476 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
477 call cursor(1, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
478 normal zf2j
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
479 call assert_equal('1 aa', getline(foldclosed('.')))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
480 normal zo
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
481 call assert_equal(-1, foldclosed('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
482 normal ]z
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
483 call assert_equal('3 cc', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
484 normal zc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
485 call assert_equal('1 aa', getline(foldclosed('.')))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
486
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
487 set fdm&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
488 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
489 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
490
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
491 " test folding with markers.
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
492 func Test_fold_marker()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
493 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
494 set fdm=marker fdl=1 fdc=3
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
495
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
496 let content = ['4 dd {{{', '5 ee {{{ }}}', '6 ff }}}']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
497 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
498 call cursor(2, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
499 call assert_equal(2, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
500 normal [z
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
501 call assert_equal(1, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
502 exe "normal jo{{ \<Esc>r{jj"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
503 call assert_equal(1, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
504 normal kYpj
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
505 call assert_equal(0, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
506
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
507 set fdm& fdl& fdc&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
508 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
509 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
510
15127
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
511 " test create fold markers with C filetype
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
512 func Test_fold_create_marker_in_C()
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
513 enew!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
514 set fdm=marker fdl=9
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
515 set filetype=c
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
516
16720
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
517 let content =<< trim [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
518 /*
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
519 * comment
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
520 *
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
521 *
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
522 */
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
523 int f(int* p) {
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
524 *p = 3;
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
525 return 0;
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
526 }
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
527 [CODE]
9c90cf08cfa8 patch 8.1.1362: code and data in tests can be hard to read
Bram Moolenaar <Bram@vim.org>
parents: 15127
diff changeset
528
15127
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
529 for c in range(len(content) - 1)
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
530 bw!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
531 call append(0, content)
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
532 call cursor(c + 1, 1)
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
533 norm! zfG
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
534 call assert_equal(content[c] . (c < 4 ? '{{{' : '/*{{{*/'), getline(c + 1))
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
535 endfor
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
536
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
537 set fdm& fdl&
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
538 enew!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
539 endfunc
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
540
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
541 " test folding with indent
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
542 func Test_fold_indent()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
543 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
544 set fdm=indent sw=2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
545
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
546 let content = ['1 aa', '2 bb', '3 cc']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
547 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
548 call cursor(2, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
549 exe "normal i \<Esc>jI "
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
550 call assert_equal(2, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
551 normal k
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
552 call assert_equal(1, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
553
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
554 set fdm& sw&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
555 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
556 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
557
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
558 " test syntax folding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
559 func Test_fold_syntax()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
560 if !has('syntax')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
561 return
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
562 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
563
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
564 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
565 set fdm=syntax fdl=0
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
566
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
567 syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
568 syn region Fd1 start="ee" end="ff" fold contained
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
569 syn region Fd2 start="gg" end="hh" fold contained
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
570 syn region Fd3 start="commentstart" end="commentend" fold contained
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
571 let content = ['3 cc', '4 dd {{{', '5 ee {{{ }}}', '{{{{', '6 ff }}}',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
572 \ '6 ff }}}', '7 gg', '8 hh', '9 ii']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
573 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
574 normal Gzk
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
575 call assert_equal('9 ii', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
576 normal k
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
577 call assert_equal('3 cc', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
578 exe "normal jAcommentstart \<Esc>Acommentend"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
579 set fdl=1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
580 normal 3j
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
581 call assert_equal('7 gg', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
582 set fdl=0
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
583 exe "normal zO\<C-L>j"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
584 call assert_equal('8 hh', getline('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
585 syn clear Fd1 Fd2 Fd3 Hup
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
586
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
587 set fdm& fdl&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
588 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
589 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
590
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
591 func Flvl()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
592 let l = getline(v:lnum)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
593 if l =~ "bb$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
594 return 2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
595 elseif l =~ "gg$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
596 return "s1"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
597 elseif l =~ "ii$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
598 return ">2"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
599 elseif l =~ "kk$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
600 return "0"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
601 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
602 return "="
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
603 endfun
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
604
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
605 " test expression folding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
606 func Test_fold_expr()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
607 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
608 set fdm=expr fde=Flvl()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
609
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
610 let content = ['1 aa',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
611 \ '2 bb',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
612 \ '3 cc',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
613 \ '4 dd {{{commentstart commentend',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
614 \ '5 ee {{{ }}}',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
615 \ '{{{',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
616 \ '6 ff }}}',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
617 \ '6 ff }}}',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
618 \ ' 7 gg',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
619 \ ' 8 hh',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
620 \ '9 ii',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
621 \ 'a jj',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
622 \ 'b kk']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
623 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
624 call cursor(1, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
625 exe "normal /bb$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
626 call assert_equal(2, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
627 exe "normal /hh$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
628 call assert_equal(1, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
629 exe "normal /ii$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
630 call assert_equal(2, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
631 exe "normal /kk$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
632 call assert_equal(0, foldlevel('.'))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
633
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
634 set fdm& fde&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
635 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
636 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
637
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
638 " Bug with fdm=indent and moving folds
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
639 " Moving a fold a few times, messes up the folds below the moved fold.
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
640 " Fixed by 7.4.700
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
641 func Test_fold_move()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
642 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
643 set fdm=indent sw=2 fdl=0
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
644
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
645 let content = ['', '', 'Line1', ' Line2', ' Line3',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
646 \ 'Line4', ' Line5', ' Line6',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
647 \ 'Line7', ' Line8', ' Line9']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
648 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
649 normal zM
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
650 call cursor(4, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
651 move 2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
652 move 1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
653 call assert_equal(7, foldclosed(7))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
654 call assert_equal(8, foldclosedend(7))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
655 call assert_equal(0, foldlevel(9))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
656 call assert_equal(10, foldclosed(10))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
657 call assert_equal(11, foldclosedend(10))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
658 call assert_equal('+-- 2 lines: Line2', foldtextresult(2))
17849
73ddc462979d patch 8.1.1921: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17787
diff changeset
659 call assert_equal('+-- 2 lines: Line8', 10->foldtextresult())
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
660
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
661 set fdm& sw& fdl&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
662 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
663 endfunc
12788
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
664
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
665 " test for patch 7.3.637
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
666 " Cannot catch the error caused by a foldopen when there is no fold.
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
667 func Test_foldopen_exception()
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
668 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
669 let a = 'No error caught'
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
670 try
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
671 foldopen
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
672 catch
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
673 let a = matchstr(v:exception,'^[^ ]*')
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
674 endtry
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
675 call assert_equal('Vim(foldopen):E490:', a)
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
676
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
677 let a = 'No error caught'
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
678 try
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
679 foobar
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
680 catch
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
681 let a = matchstr(v:exception,'^[^ ]*')
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
682 endtry
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
683 call assert_match('E492:', a)
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
684 endfunc
14317
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
685
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
686 func Test_fold_last_line_with_pagedown()
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
687 enew!
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
688 set fdm=manual
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
689
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
690 let expect = '+-- 11 lines: 9---'
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
691 let content = range(1,19)
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
692 call append(0, content)
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
693 normal dd9G
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
694 normal zfG
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
695 normal zt
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
696 call assert_equal('9', getline(foldclosed('.')))
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
697 call assert_equal('19', getline(foldclosedend('.')))
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
698 call assert_equal(expect, ScreenLines(1, len(expect))[0])
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
699 call feedkeys("\<C-F>", 'xt')
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
700 call assert_equal(expect, ScreenLines(1, len(expect))[0])
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
701 call feedkeys("\<C-F>", 'xt')
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
702 call assert_equal(expect, ScreenLines(1, len(expect))[0])
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
703 call feedkeys("\<C-B>\<C-F>\<C-F>", 'xt')
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
704 call assert_equal(expect, ScreenLines(1, len(expect))[0])
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
705
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
706 set fdm&
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
707 enew!
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
708 endfunc
14875
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
709
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
710 func Test_folds_with_rnu()
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 16965
diff changeset
711 CheckScreendump
14875
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
712
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
713 call writefile([
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
714 \ 'set fdm=marker rnu foldcolumn=2',
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
715 \ 'call setline(1, ["{{{1", "nline 1", "{{{1", "line 2"])',
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
716 \ ], 'Xtest_folds_with_rnu')
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
717 let buf = RunVimInTerminal('-S Xtest_folds_with_rnu', {})
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
718
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
719 call VerifyScreenDump(buf, 'Test_folds_with_rnu_01', {})
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
720 call term_sendkeys(buf, "j")
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
721 call VerifyScreenDump(buf, 'Test_folds_with_rnu_02', {})
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
722
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
723 " clean up
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
724 call StopVimInTerminal(buf)
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
725 call delete('Xtest_folds_with_rnu')
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
726 endfunc
15119
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
727
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
728 func Test_folds_marker_in_comment2()
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
729 new
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
730 call setline(1, ['Lorem ipsum dolor sit', 'Lorem ipsum dolor sit', 'Lorem ipsum dolor sit'])
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
731 setl fen fdm=marker
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
732 setl commentstring=<!--%s-->
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
733 setl comments=s:<!--,m:\ \ \ \ ,e:-->
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
734 norm! zf2j
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
735 setl nofen
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
736 :1y
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
737 call assert_equal(['Lorem ipsum dolor sit<!--{{{-->'], getreg(0,1,1))
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
738 :+2y
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
739 call assert_equal(['Lorem ipsum dolor sit<!--}}}-->'], getreg(0,1,1))
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
740
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
741 set foldmethod&
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
742 bwipe!
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
743 endfunc
17787
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
744
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
745 func Test_fold_delete_with_marker()
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
746 new
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
747 call setline(1, ['func Func() {{{1', 'endfunc'])
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
748 1,2yank
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
749 new
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
750 set fdm=marker
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
751 call setline(1, 'x')
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
752 normal! Vp
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
753 normal! zd
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
754 call assert_equal(['func Func() ', 'endfunc'], getline(1, '$'))
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
755
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
756 set fdm&
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
757 bwipe!
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
758 bwipe!
92e0996e1cb8 patch 8.1.1890: ml_get error when deleting fold marker
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
759 endfunc
18114
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
760
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
761 func Test_fold_delete_with_marker_and_whichwrap()
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
762 new
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
763 let content1 = ['']
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
764 let content2 = ['folded line 1 "{{{1', ' test', ' test2', ' test3', '', 'folded line 2 "{{{1', ' test', ' test2', ' test3']
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
765 call setline(1, content1 + content2)
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
766 set fdm=marker ww+=l
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
767 normal! x
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
768 call assert_equal(content2, getline(1, '$'))
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
769 set fdm& ww&
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
770 bwipe!
90b0af9ba4ff patch 8.1.2052: using "x" before a closed fold may delete that fold
Bram Moolenaar <Bram@vim.org>
parents: 17849
diff changeset
771 endfunc
18882
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
772
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
773 func Test_fold_delete_first_line()
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
774 new
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
775 call setline(1, [
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
776 \ '" x {{{1',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
777 \ '" a',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
778 \ '" aa',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
779 \ '" x {{{1',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
780 \ '" b',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
781 \ '" bb',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
782 \ '" x {{{1',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
783 \ '" c',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
784 \ '" cc',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
785 \ ])
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
786 set foldmethod=marker
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
787 1
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
788 normal dj
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
789 call assert_equal([
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
790 \ '" x {{{1',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
791 \ '" c',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
792 \ '" cc',
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
793 \ ], getline(1,'$'))
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
794 bwipe!
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
795 set foldmethod&
f9e41ffd3539 patch 8.2.0002: "dj" only deletes first line of closed fold
Bram Moolenaar <Bram@vim.org>
parents: 18114
diff changeset
796 endfunc