Mercurial > vim
annotate src/testdir/test_vartabs.vim @ 16335:759cb1a49570
Added tag v8.1.1172 for changeset 52ebcf7723106a0023e444350f1927d11888a1ad
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 14 Apr 2019 14:30:05 +0200 |
parents | 63b02fcf1361 |
children | 3b5d401a58ce |
rev | line source |
---|---|
14175
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Test for variable tabstops |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 if !has("vartabs") |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 finish |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 endif |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
7 source view_util.vim |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
8 func s:compare_lines(expect, actual) |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
9 call assert_equal(join(a:expect, "\n"), join(a:actual, "\n")) |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
10 endfunc |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
11 |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
12 func Test_vartabs() |
14175
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 %d |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 " Test normal operation of tabstops ... |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 set ts=4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 call setline(1, join(split('aaaaa', '\zs'), "\t")) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 let expect = "a a\<tab>a a\<tab>a" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 " ... and softtabstops |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 set ts=8 sts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 exe "norm! Sb\<tab>b\<tab>b\<tab>b\<tab>b" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 let expect = "b b\<tab> b\<tab> b\<tab>b" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 " Test variable tabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 set sts=0 vts=4,8,4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 exe "norm! Sc\<tab>c\<tab>c\<tab>c\<tab>c\<tab>c" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 let expect = "c c\<tab> c\<tab>c\<tab>c\<tab>c" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
35 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 set et vts=4,8,4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 exe "norm! Sd\<tab>d\<tab>d\<tab>d\<tab>d\<tab>d" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 let expect = "d d d d d d" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 " Changing ts should have no effect if vts is in use. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 call cursor(1, 1) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 set ts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 exe "norm! Se\<tab>e\<tab>e\<tab>e\<tab>e\<tab>e" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 let expect = "e e e e e e" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 " Clearing vts should revert to using ts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 set vts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 exe "norm! Sf\<tab>f\<tab>f\<tab>f\<tab>f\<tab>f" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 let expect = "f f f f f f" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 " Test variable softtabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 set noet ts=8 vsts=12,2,6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 exe "norm! Sg\<tab>g\<tab>g\<tab>g\<tab>g\<tab>g" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 let expect = "g\<tab> g g\<tab> g\<tab> g\<tab>g" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 " Variable tabstops and softtabstops combined. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 set vsts=6,12,8 vts=4,6,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 exe "norm! Sh\<tab>h\<tab>h\<tab>h\<tab>h" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
63 let expect = "h\<tab> h\<tab>\<tab>h\<tab>h\<tab>h" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
65 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
66 " Retab with a single value, not using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
67 set ts=8 sts=0 vts= vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
68 exe "norm! Si\<tab>i\<tab>i\<tab>i\<tab>i" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
69 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
70 let expect = "i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
71 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
73 " Retab with a single value, using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
74 set ts=8 sts=0 vts=6 vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 exe "norm! Sj\<tab>j\<tab>j\<tab>j\<tab>j" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
76 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
77 let expect = "j\<tab> j\<tab>\<tab>j\<tab> j\<tab>\<tab>j" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
78 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
79 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
80 " Retab with multiple values, not using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
81 set ts=6 sts=0 vts= vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
82 exe "norm! Sk\<tab>k\<tab>k\<tab>k\<tab>k\<tab>k" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
83 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
84 let expect = "k\<tab> k\<tab>k k\<tab> k\<tab> k" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
85 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
87 " Retab with multiple values, using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
88 set ts=8 sts=0 vts=6 vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
89 exe "norm! Sl\<tab>l\<tab>l\<tab>l\<tab>l\<tab>l" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
90 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
91 let expect = "l\<tab> l\<tab>l l\<tab> l\<tab> l" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
92 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
93 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
94 " Check that global and local values are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
95 set ts=4 vts=6 sts=8 vsts=10 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
96 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
97 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
98 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
99 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
100 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
101 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
102 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
103 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
104 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
105 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
106 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
107 " Check that local values only are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
108 setlocal ts=5 vts=7 sts=9 vsts=11 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
109 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
110 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
111 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
112 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
113 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
114 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
115 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
116 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
117 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
118 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
119 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
120 " Check that global values only are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
121 setglobal ts=6 vts=8 sts=10 vsts=12 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
122 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
123 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
124 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
125 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
126 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
127 call assert_equal(&ts, 6) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
128 call assert_equal(&vts, '8') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
129 call assert_equal(&sts, 10) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
130 call assert_equal(&vsts, '12') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
131 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
132 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
133 set ts& vts& sts& vsts& et& |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
134 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
135 endfunc |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
136 |
15406
63b02fcf1361
patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents:
15062
diff
changeset
|
137 func Test_vartabs_breakindent() |
14175
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
138 if !exists("+breakindent") |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
139 return |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
140 endif |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
141 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
142 %d |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
143 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
144 " Test normal operation of tabstops ... |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
145 set ts=4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
146 call setline(1, join(split('aaaaa', '\zs'), "\t")) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
147 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
148 let expect = "a a\<tab>a a\<tab>a" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
149 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
150 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
151 " ... and softtabstops |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
152 set ts=8 sts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
153 exe "norm! Sb\<tab>b\<tab>b\<tab>b\<tab>b" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
154 let expect = "b b\<tab> b\<tab> b\<tab>b" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
155 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
156 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
157 " Test variable tabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
158 set sts=0 vts=4,8,4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
159 exe "norm! Sc\<tab>c\<tab>c\<tab>c\<tab>c\<tab>c" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
160 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
161 let expect = "c c\<tab> c\<tab>c\<tab>c\<tab>c" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
162 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
163 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
164 set et vts=4,8,4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
165 exe "norm! Sd\<tab>d\<tab>d\<tab>d\<tab>d\<tab>d" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
166 let expect = "d d d d d d" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
167 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
168 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
169 " Changing ts should have no effect if vts is in use. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
170 call cursor(1, 1) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
171 set ts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
172 exe "norm! Se\<tab>e\<tab>e\<tab>e\<tab>e\<tab>e" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
173 let expect = "e e e e e e" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
174 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
175 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
176 " Clearing vts should revert to using ts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
177 set vts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
178 exe "norm! Sf\<tab>f\<tab>f\<tab>f\<tab>f\<tab>f" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
179 let expect = "f f f f f f" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
180 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
181 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
182 " Test variable softtabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
183 set noet ts=8 vsts=12,2,6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
184 exe "norm! Sg\<tab>g\<tab>g\<tab>g\<tab>g\<tab>g" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
185 let expect = "g\<tab> g g\<tab> g\<tab> g\<tab>g" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
186 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
187 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
188 " Variable tabstops and softtabstops combined. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
189 set vsts=6,12,8 vts=4,6,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
190 exe "norm! Sh\<tab>h\<tab>h\<tab>h\<tab>h" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
191 let expect = "h\<tab> h\<tab>\<tab>h\<tab>h\<tab>h" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
192 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
193 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
194 " Retab with a single value, not using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
195 set ts=8 sts=0 vts= vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
196 exe "norm! Si\<tab>i\<tab>i\<tab>i\<tab>i" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
197 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
198 let expect = "i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
199 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
200 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
201 " Retab with a single value, using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
202 set ts=8 sts=0 vts=6 vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
203 exe "norm! Sj\<tab>j\<tab>j\<tab>j\<tab>j" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
204 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
205 let expect = "j\<tab> j\<tab>\<tab>j\<tab> j\<tab>\<tab>j" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
206 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
207 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
208 " Retab with multiple values, not using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
209 set ts=6 sts=0 vts= vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
210 exe "norm! Sk\<tab>k\<tab>k\<tab>k\<tab>k\<tab>k" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
211 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
212 let expect = "k\<tab> k\<tab>k k\<tab> k\<tab> k" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
213 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
214 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
215 " Retab with multiple values, using vts. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
216 set ts=8 sts=0 vts=6 vsts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
217 exe "norm! Sl\<tab>l\<tab>l\<tab>l\<tab>l\<tab>l" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
218 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
219 let expect = "l\<tab> l\<tab>l l\<tab> l\<tab> l" |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
220 call assert_equal(expect, getline(1)) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
221 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
222 " Check that global and local values are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
223 set ts=4 vts=6 sts=8 vsts=10 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
224 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
225 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
226 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
227 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
228 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
229 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
230 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
231 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
232 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
233 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
234 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
235 " Check that local values only are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
236 setlocal ts=5 vts=7 sts=9 vsts=11 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
237 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
238 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
239 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
240 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
241 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
242 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
243 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
244 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
245 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
246 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
247 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
248 " Check that global values only are set. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
249 setglobal ts=6 vts=8 sts=10 vsts=12 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
250 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
251 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
252 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
253 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
254 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
255 call assert_equal(&ts, 6) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
256 call assert_equal(&vts, '8') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
257 call assert_equal(&sts, 10) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
258 call assert_equal(&vsts, '12') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
259 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
260 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
261 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
262 endfunc |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
263 |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
264 func Test_vartabs_linebreak() |
14218
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
265 if winwidth(0) < 40 |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
266 return |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
267 endif |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
268 new |
14218
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
269 40vnew |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
270 %d |
14218
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
271 setl linebreak vartabstop=10,20,30,40 |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
272 call setline(1, "\tx\tx\tx\tx") |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
273 |
14218
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
274 let expect = [' x ', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
275 \ 'x x ', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
276 \ 'x '] |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
277 let lines = ScreenLines([1, 3], winwidth(0)) |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
278 call s:compare_lines(expect, lines) |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
279 setl list listchars=tab:>- |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
280 let expect = ['>---------x>------------------ ', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
281 \ 'x>------------------x>------------------', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
282 \ 'x '] |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
283 let lines = ScreenLines([1, 3], winwidth(0)) |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
284 call s:compare_lines(expect, lines) |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
285 setl linebreak vartabstop=40 |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
286 let expect = ['>---------------------------------------', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
287 \ 'x>--------------------------------------', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
288 \ 'x>--------------------------------------', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
289 \ 'x>--------------------------------------', |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
290 \ 'x '] |
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
291 let lines = ScreenLines([1, 5], winwidth(0)) |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
292 call s:compare_lines(expect, lines) |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
293 |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
294 " cleanup |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
295 bw! |
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
296 bw! |
14218
539b070778b0
patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents:
14198
diff
changeset
|
297 set nolist listchars&vim |
14198
9ca8c36869ce
patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents:
14175
diff
changeset
|
298 endfunc |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
299 |
15062
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
300 func Test_vartabs_shiftwidth() |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
301 "return |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
302 if winwidth(0) < 40 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
303 return |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
304 endif |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
305 new |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
306 40vnew |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
307 %d |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
308 " setl varsofttabstop=10,20,30,40 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
309 setl shiftwidth=0 vartabstop=10,20,30,40 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
310 call setline(1, "x") |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
311 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
312 " Check without any change. |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
313 let expect = ['x '] |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
314 let lines = ScreenLines(1, winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
315 call s:compare_lines(expect, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
316 " Test 1: |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
317 " shiftwidth depends on the indent, first check with cursor at the end of the |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
318 " line (which is the same as the start of the line, since there is only one |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
319 " character). |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
320 norm! $>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
321 let expect1 = [' x '] |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
322 let lines = ScreenLines(1, winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
323 call s:compare_lines(expect1, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
324 call assert_equal(10, shiftwidth()) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
325 call assert_equal(10, shiftwidth(1)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
326 call assert_equal(20, shiftwidth(virtcol('.'))) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
327 norm! $>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
328 let expect2 = [' x ', '~ '] |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
329 let lines = ScreenLines([1, 2], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
330 call s:compare_lines(expect2, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
331 call assert_equal(20, shiftwidth(virtcol('.')-2)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
332 call assert_equal(30, shiftwidth(virtcol('.'))) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
333 norm! $>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
334 let expect3 = [' ', ' x ', '~ '] |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
335 let lines = ScreenLines([1, 3], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
336 call s:compare_lines(expect3, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
337 call assert_equal(30, shiftwidth(virtcol('.')-2)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
338 call assert_equal(40, shiftwidth(virtcol('.'))) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
339 norm! $>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
340 let expect4 = [' ', ' ', ' x '] |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
341 let lines = ScreenLines([1, 3], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
342 call assert_equal(40, shiftwidth(virtcol('.'))) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
343 call s:compare_lines(expect4, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
344 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
345 " Test 2: Put the cursor at the first column, result should be the same |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
346 call setline(1, "x") |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
347 norm! 0>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
348 let lines = ScreenLines(1, winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
349 call s:compare_lines(expect1, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
350 norm! 0>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
351 let lines = ScreenLines([1, 2], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
352 call s:compare_lines(expect2, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
353 norm! 0>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
354 let lines = ScreenLines([1, 3], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
355 call s:compare_lines(expect3, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
356 norm! 0>> |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
357 let lines = ScreenLines([1, 3], winwidth(0)) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
358 call s:compare_lines(expect4, lines) |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
359 |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
360 " cleanup |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
361 bw! |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
362 bw! |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
363 endfunc |
3a94f7918980
patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents:
14935
diff
changeset
|
364 |
14935
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
365 func Test_vartabs_failures() |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
366 call assert_fails('set vts=8,') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
367 call assert_fails('set vsts=8,') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
368 call assert_fails('set vts=8,,8') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
369 call assert_fails('set vsts=8,,8') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
370 call assert_fails('set vts=8,,8,') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
371 call assert_fails('set vsts=8,,8,') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
372 call assert_fails('set vts=,8') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
373 call assert_fails('set vsts=,8') |
dc54785f9a1d
patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents:
14218
diff
changeset
|
374 endfunc |