annotate src/testdir/test_fold.vim @ 16720:9c90cf08cfa8 v8.1.1362

patch 8.1.1362: code and data in tests can be hard to read commit https://github.com/vim/vim/commit/c79745a82faeb5a6058e915ca49a4c69fa60ea01 Author: Bram Moolenaar <Bram@vim.org> Date: Mon May 20 22:12:34 2019 +0200 patch 8.1.1362: code and data in tests can be hard to read Problem: Code and data in tests can be hard to read. Solution: Use the new heredoc style. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/4400)
author Bram Moolenaar <Bram@vim.org>
date Mon, 20 May 2019 22:15:06 +0200
parents 31a0127813cb
children ba7727889385
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
14317
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
3 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
4 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
5
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
6 func PrepIndent(arg)
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
7 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
8 endfu
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
9
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
10 func Test_address_fold()
10484
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 new
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 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
13 \ '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
14 setl fen fdm=marker
11219
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
15 " 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
16 " 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
17 " is folded away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 :1y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 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
20 :.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 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
22 :.+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 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
24 :.,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 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
26 :sil .1,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 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
28 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 :sil .+,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 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
31 :,y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 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
33 :,+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 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
35 " 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
36 " lines
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37 :.,+3y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 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
39 \ '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
40 :sil .,-2y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
41 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
42
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 " now test again with folding disabled
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 set nofoldenable
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 :1y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 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
47 :.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 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
49 :.+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 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
51 :.,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 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
53 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 :sil .1,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 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
56 " use silent to make E493 go away
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57 :sil .+,.y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 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
59 :,y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 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
61 :,+y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 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
63 " 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
64 " lines
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 :.,+3y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 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
67 :7
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 :sil .,-2y
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 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
70
c7de1536780a commit https://github.com/vim/vim/commit/ded2782783f352201ac0b05c6dbe4831adb4a58b
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 quit!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
72 endfunc
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
73
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
74 func Test_indent_fold()
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
75 new
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
76 call setline(1, ['', 'a', ' b', ' c'])
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
77 setl fen fdm=indent
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
78 2
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
79 norm! >>
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
80 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
81 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
82 bw!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
83 endfunc
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
84
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
85 func Test_indent_fold2()
10486
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
86 new
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
87 call setline(1, ['', '{{{', '}}}', '{{{', '}}}'])
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
88 setl fen fdm=marker
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
89 2
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
90 norm! >>
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
91 let a=map(range(1,5), 'foldclosed(v:val)')
99896ee0cac5 commit https://github.com/vim/vim/commit/54b2bfa399017ebae76ed62f21578261d1b55c1f
Christian Brabandt <cb@256bit.org>
parents: 10484
diff changeset
92 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
93 bw!
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
94 endfunc
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
95
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
96 func Test_manual_fold_with_filter()
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
97 if !executable('cat')
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
98 return
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
99 endif
11036
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
100 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
101 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
102 new
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
103 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
104 4,$fold
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
105 %foldopen
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
106 10,$fold
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
107 %foldopen
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
108 " 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
109 1,8! cat
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
110 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
111 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
112
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
113 bwipe!
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
114 set foldmethod&
9861e4196c43 patch 8.0.0407: filtering folds with marker method not tested
Christian Brabandt <cb@256bit.org>
parents: 10998
diff changeset
115 endfor
10998
2645a98217fa patch 8.0.0388: filtering lines changes folds
Christian Brabandt <cb@256bit.org>
parents: 10486
diff changeset
116 endfunc
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
117
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
118 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
119 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
120 set foldmethod=indent
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
121 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
122 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
123 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
124 endfor
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
125
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
126 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
127 foldopen
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
128 2read Xfile
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
129 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
130 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
131 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
132 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
133 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
134 call assert_equal(1, foldlevel(5))
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(7, foldclosedend(5))
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
136
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
137 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
138 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
139 call delete('Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
140 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
141
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
142 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
143 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
144 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
145 let zero = 'a'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
146 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
147 set foldmethod=indent
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
148 3,5d
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
149 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
150 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
151
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
152 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
153 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
154 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
155
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
156 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
157 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
158 call setline(1, ['{{{', '}}}', '', '', '', '{{{', '', '}}}'])
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
159 set foldmethod=marker
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
160 3,5d
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
161 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
162 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
163
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
164 set foldmethod&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
165 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
166 endfunc
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
167
11131
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
168 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
169 new
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
170 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
171 setl fen fdm=marker
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
172 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
173 norm! zf2j
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
174 setl nofen
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
175 :1y
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
176 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
177 :+2y
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
178 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
179
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
180 set foldmethod&
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
181 bwipe!
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
182 endfunc
8d9ecf09183a patch 8.0.0453: adding fold marker creates new comment
Christian Brabandt <cb@256bit.org>
parents: 11038
diff changeset
183
11038
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
184 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
185 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
186 if thisline == 'a'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
187 return 1
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
188 elseif thisline == 'b'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
189 return 0
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
190 elseif thisline == 'c'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
191 return '<1'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
192 elseif thisline == 'd'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
193 return '>1'
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
194 endif
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
195 return 0
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
196 endfunction
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
197
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
198 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
199 new
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
200 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
201 set foldmethod=expr
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
202 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
203 2
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
204 foldopen
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
205 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
206 read Xfile
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
207 %foldclose
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
208 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
209 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
210 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
211 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
212 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
213 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
214
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
215 call delete('Xfile')
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
216 bwipe!
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
217 set foldmethod& foldexpr&
c8b49300c6b7 patch 8.0.0408: updating folds does not always work properly
Christian Brabandt <cb@256bit.org>
parents: 11036
diff changeset
218 endfunc
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
219
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
220 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
221 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
222 endfunc
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
223
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
224 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
225 new
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
226 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
227 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
228 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
229 " all folds closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
230 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
231 " needs a forced redraw
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
232 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
233 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
234 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
235 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
236 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
237 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
238 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
239 10,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
240 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
241 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
242 " 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
243 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
244 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
245 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
246 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
247 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
248 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
249 %foldopen
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
250 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
251 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
252 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
253 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
254 norm! zM
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
255 " 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
256 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
257 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
258 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
259 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
260 redraw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
261 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
262 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
263 3m4
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
264 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
265 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
266 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
267 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
268 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
269 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
270 set fdm=manual
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
271 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
272 3m1
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
273 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
274 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
275 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
276 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
277 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
278 2,6m$
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
279 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
280 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
281 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
282 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
283 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
284
11156
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
285 %d
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
286 " 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
287 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
288 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
289 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
290 %foldopen
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
291 6m$
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
292 " 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
293 " 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
294 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
295
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
296 %delete
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
297 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
298 call setline(1, [
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
299 \ "a",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
300 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
301 \ "\t\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 \ "a",
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 set fdm=manual
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
307 %foldopen!
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
308 4,5m6
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
309 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
310
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
311 %delete
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
312 set fdm=indent
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
313 call setline(1, [
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
314 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
315 \ "\t\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 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
319 \ "\t\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 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
323 \ "\t\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 \ "\ta",
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
328 \ "a"])
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
329 set fdm=manual
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
330 %foldopen!
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
331 13m7
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
332 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
333
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
334 bw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
335 endfunc
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
336
11392
dc2800c3572b patch 8.0.0581: moving folded text is sometimes not correct
Christian Brabandt <cb@256bit.org>
parents: 11219
diff changeset
337 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
338 new
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
339 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
340 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
341 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
342 " all folds closed
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
343 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
344 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
345 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
346 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
347 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
348 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
349 10,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
350 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
351 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
352 " 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
353 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
354 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
355 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
356 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
357 %foldopen
11140
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
358 7,12m0
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
359 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
360 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
361 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
362 norm! zM
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
363 " 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
364 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
365 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
366 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
367 set fdm=indent
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
368 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
369 3m4
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
370 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
371 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
372 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
373 %d
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
374 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
375 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
376 %foldopen
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
377 3m1
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
378 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
379 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
380 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
381 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
382 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
383 2,6m$
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
384 %foldclose
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
385 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
386 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
387 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
388 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
389 " 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
390 %d
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
391 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
392 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
393 %foldopen
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
394 6m$
80241603dd50 patch 8.0.0465: off-by-one error in using :move with folding
Christian Brabandt <cb@256bit.org>
parents: 11140
diff changeset
395 " 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
396 " 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
397 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
398 bw!
6b26e044b6f5 patch 8.0.0457: using :move messes up manual folds
Christian Brabandt <cb@256bit.org>
parents: 11131
diff changeset
399 endfunc
11219
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
400
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
401 func Test_folddoopen_folddoclosed()
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
402 new
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
403 call setline(1, range(1, 9))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
404 set foldmethod=manual
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
405 1,3 fold
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
406 6,8 fold
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
407
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
408 " Test without range.
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
409 folddoopen s/$/o/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
410 folddoclosed s/$/c/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
411 call assert_equal(['1c', '2c', '3c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
412 \ '4o', '5o',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
413 \ '6c', '7c', '8c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
414 \ '9o'], getline(1, '$'))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
415
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
416 " Test with range.
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
417 call setline(1, range(1, 9))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
418 1,8 folddoopen s/$/o/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
419 4,$ folddoclosed s/$/c/
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
420 call assert_equal(['1', '2', '3',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
421 \ '4o', '5o',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
422 \ '6c', '7c', '8c',
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
423 \ '9'], getline(1, '$'))
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
424
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
425 set foldmethod&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
426 bw!
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
427 endfunc
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
428
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
429 func Test_fold_error()
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
430 new
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
431 call setline(1, [1, 2])
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
432
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
433 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
434 exe 'set foldmethod=' . fm
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
435 call assert_fails('norm zf', 'E350:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
436 call assert_fails('norm zd', 'E351:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
437 call assert_fails('norm zE', 'E352:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
438 endfor
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
439
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
440 set foldmethod=manual
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
441 call assert_fails('norm zd', 'E490:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
442 call assert_fails('norm zo', 'E490:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
443 call assert_fails('3fold', 'E16:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
444
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
445 set foldmethod=marker
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
446 set nomodifiable
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
447 call assert_fails('1,2fold', 'E21:')
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
448
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
449 set modifiable&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
450 set foldmethod&
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
451 bw!
e53609585b76 patch 8.0.0496: insufficient testing for folding
Christian Brabandt <cb@256bit.org>
parents: 11156
diff changeset
452 endfunc
12471
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
453
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
454 func Test_foldtext_recursive()
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
455 new
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
456 call setline(1, ['{{{', 'some text', '}}}'])
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
457 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
458 " 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
459 2foldclose
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
460 redraw
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
461 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
462 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
463 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
464 bwipe!
f6534b99b76f patch 8.0.1115: crash when using foldtextresult() recursively
Christian Brabandt <cb@256bit.org>
parents: 11392
diff changeset
465 endfunc
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
466
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
467 " Various fold related tests
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
468
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
469 " 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
470 func Test_fold_manual()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
471 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
472 set fdm=manual
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
473
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
474 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
475 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
476 call cursor(1, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
477 normal zf2j
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
478 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
479 normal zo
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
480 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
481 normal ]z
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
482 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
483 normal zc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
484 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
485
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
486 set fdm&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
487 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
488 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
489
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
490 " test folding with markers.
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
491 func Test_fold_marker()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
492 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
493 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
494
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
495 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
496 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
497 call cursor(2, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
498 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
499 normal [z
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
500 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
501 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
502 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
503 normal kYpj
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
504 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
505
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
506 set fdm& fdl& fdc&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
507 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
508 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
509
15127
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
510 " 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
511 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
512 enew!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
513 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
514 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
515
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
516 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
517 /*
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 * 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
519 *
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 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
523 *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
524 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
525 }
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 [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
527
15127
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
528 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
529 bw!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
530 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
531 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
532 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
533 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
534 endfor
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
535
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
536 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
537 enew!
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
538 endfunc
31a0127813cb patch 8.1.0574: 'commentstring' not used when adding fold marker in C
Bram Moolenaar <Bram@vim.org>
parents: 15119
diff changeset
539
12750
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
540 " test folding with indent
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
541 func Test_fold_indent()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
542 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
543 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
544
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
545 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
546 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
547 call cursor(2, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
548 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
549 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
550 normal k
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
551 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
552
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
553 set fdm& sw&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
554 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
555 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
556
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
557 " test syntax folding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
558 func Test_fold_syntax()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
559 if !has('syntax')
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
560 return
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
561 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
562
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
563 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
564 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
565
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
566 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
567 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
568 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
569 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
570 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
571 \ '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
572 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
573 normal Gzk
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
574 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
575 normal k
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
576 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
577 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
578 set fdl=1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
579 normal 3j
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
580 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
581 set fdl=0
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
582 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
583 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
584 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
585
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
586 set fdm& fdl&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
587 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
588 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
589
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
590 func Flvl()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
591 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
592 if l =~ "bb$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
593 return 2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
594 elseif l =~ "gg$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
595 return "s1"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
596 elseif l =~ "ii$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
597 return ">2"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
598 elseif l =~ "kk$"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
599 return "0"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
600 endif
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
601 return "="
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
602 endfun
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
603
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
604 " test expression folding
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
605 func Test_fold_expr()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
606 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
607 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
608
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
609 let content = ['1 aa',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
610 \ '2 bb',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
611 \ '3 cc',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
612 \ '4 dd {{{commentstart commentend',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
613 \ '5 ee {{{ }}}',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
614 \ '{{{',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
615 \ '6 ff }}}',
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 \ ' 7 gg',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
618 \ ' 8 hh',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
619 \ '9 ii',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
620 \ 'a jj',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
621 \ 'b kk']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
622 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
623 call cursor(1, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
624 exe "normal /bb$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
625 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
626 exe "normal /hh$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
627 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
628 exe "normal /ii$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
629 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
630 exe "normal /kk$\<CR>"
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
631 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
632
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
633 set fdm& fde&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
634 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
635 endfunc
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
636
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
637 " 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
638 " 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
639 " 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
640 func Test_fold_move()
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
641 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
642 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
643
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
644 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
645 \ 'Line4', ' Line5', ' Line6',
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
646 \ 'Line7', ' Line8', ' Line9']
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
647 call append(0, content)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
648 normal zM
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
649 call cursor(4, 1)
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
650 move 2
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
651 move 1
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
652 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
653 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
654 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
655 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
656 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
657 call assert_equal('+-- 2 lines: Line2', foldtextresult(2))
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: Line8', foldtextresult(10))
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
659
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
660 set fdm& sw& fdl&
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
661 enew!
0b6c09957b43 patch 8.0.1253: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12471
diff changeset
662 endfunc
12788
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
663
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
664 " 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
665 " 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
666 func Test_foldopen_exception()
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
667 enew!
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
668 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
669 try
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
670 foldopen
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
671 catch
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
672 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
673 endtry
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
674 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
675
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
676 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
677 try
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
678 foobar
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
679 catch
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
680 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
681 endtry
cb9b2774f21f patch 8.0.1271: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12750
diff changeset
682 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
683 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
684
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
685 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
686 enew!
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
687 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
688
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
689 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
690 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
691 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
692 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
693 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
694 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
695 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
696 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
697 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
698 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
699 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
700 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
701 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
702 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
703 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
704
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
705 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
706 enew!
1bc96dbb5498 patch 8.1.0174: after paging up and down fold line is wrong
Christian Brabandt <cb@256bit.org>
parents: 12788
diff changeset
707 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
708
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 func Test_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
710 if !CanRunVimInTerminal()
081f30c50300 patch 8.1.0449: when 'rnu' is set folded lines are not displayed correctly
Christian Brabandt <cb@256bit.org>
parents: 14317
diff changeset
711 return
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 endif
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
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 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
715 \ '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
716 \ '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
717 \ ], '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 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
719
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 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
721 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
722 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
723
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 " 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
725 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
726 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
727 endfunc
15119
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
728
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
729 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
730 new
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
731 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
732 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
733 setl commentstring=<!--%s-->
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
734 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
735 norm! zf2j
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
736 setl nofen
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
737 :1y
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
738 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
739 :+2y
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
740 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
741
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
742 set foldmethod&
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
743 bwipe!
6e9f37bf987b patch 8.1.0570: 'commentstring' not used when adding fold marker
Bram Moolenaar <Bram@vim.org>
parents: 14875
diff changeset
744 endfunc