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