annotate src/testdir/test_vartabs.vim @ 26710:8fd8af3764e2

Added tag v8.2.3883 for changeset 0c5daf5e5514e480a99049d77e31249fbfbd6c55
author Bram Moolenaar <Bram@vim.org>
date Fri, 24 Dec 2021 18:00:04 +0100
parents 4c1b6f3eb96b
children 8e8fb566dfa5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
17089
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
3 source check.vim
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
4 CheckFeature vartabs
14175
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
14198
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
6 source view_util.vim
16376
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
7
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
19603
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
94 " Test for 'retab' with vts
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
95 set ts=8 sts=0 vts=5,3,6,2 vsts=
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
96 exe "norm! S l"
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
97 .retab!
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
98 call assert_equal("\t\t\t\tl", getline(1))
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
99
23229
b545334ae654 patch 8.2.2160: various typos
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
100 " Test for 'retab' with same values as vts
19603
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
101 set ts=8 sts=0 vts=5,3,6,2 vsts=
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
102 exe "norm! S l"
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
103 .retab! 5,3,6,2
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
104 call assert_equal("\t\t\t\tl", getline(1))
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
105
14175
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 " 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
107 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
108 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 " 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
120 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
121 call assert_equal(&ts, 5)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
122 call assert_equal(&vts, '7')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
123 call assert_equal(&sts, 9)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 call assert_equal(&vsts, '11')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
129 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
130 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
131
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
132 " 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
133 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
134 call assert_equal(&ts, 5)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135 call assert_equal(&vts, '7')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136 call assert_equal(&sts, 9)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 call assert_equal(&vsts, '11')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 call assert_equal(&ts, 6)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 call assert_equal(&vts, '8')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 call assert_equal(&sts, 10)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 call assert_equal(&vsts, '12')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 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
146 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 endfunc
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 15062
diff changeset
149 func Test_vartabs_breakindent()
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 19783
diff changeset
150 CheckOption breakindent
14175
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152 %d
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
153
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
154 " Test normal operation of tabstops ...
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
155 set ts=4
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156 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
157 retab 8
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 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
159 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
160
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161 " ... and softtabstops
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162 set ts=8 sts=6
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163 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
164 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
165 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
166
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 " Test variable tabstops.
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 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
169 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
170 retab 8
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 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
172 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
173
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 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
175 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
176 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
177 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
178
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 " 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
180 call cursor(1, 1)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181 set ts=6
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 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
183 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
184 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
185
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 " 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
187 set vts=
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188 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
189 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
190 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
191
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
192 " Test variable softtabstops.
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193 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
194 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
195 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
196 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
197
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 " Variable tabstops and softtabstops combined.
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199 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
200 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
201 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
202 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
203
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
204 " 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
205 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
206 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
207 retab 4
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
208 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
209 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
210
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
211 " 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
212 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
213 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
214 retab 4
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
215 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
216 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
217
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
218 " 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
219 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
220 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
221 retab 4,8
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
222 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
223 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
224
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 " 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
226 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
227 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
228 retab 4,8
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229 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
230 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
231
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
232 " 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
233 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
234 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
235 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
236 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
237 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
238 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
239 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
240 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
241 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
242 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
243 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
244
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
245 " 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
246 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
247 call assert_equal(&ts, 5)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
248 call assert_equal(&vts, '7')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
249 call assert_equal(&sts, 9)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
250 call assert_equal(&vsts, '11')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
251 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
252 call assert_equal(&ts, 4)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
253 call assert_equal(&vts, '6')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
254 call assert_equal(&sts, 8)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
255 call assert_equal(&vsts, '10')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
256 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
257
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
258 " 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
259 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
260 call assert_equal(&ts, 5)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
261 call assert_equal(&vts, '7')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
262 call assert_equal(&sts, 9)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
263 call assert_equal(&vsts, '11')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
264 new
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
265 call assert_equal(&ts, 6)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
266 call assert_equal(&vts, '8')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
267 call assert_equal(&sts, 10)
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
268 call assert_equal(&vsts, '12')
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
269 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
270
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
271 bwipeout!
2ad722003b36 patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
272 endfunc
14198
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
273
14935
dc54785f9a1d patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents: 14218
diff changeset
274 func Test_vartabs_linebreak()
14218
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
275 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
276 return
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
277 endif
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
278 new
14218
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
279 40vnew
14198
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
280 %d
14218
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
281 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
282 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
283
14218
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
284 let expect = [' x ',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
285 \ 'x x ',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
286 \ 'x ']
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
287 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
288 call s:compare_lines(expect, lines)
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
289 setl list listchars=tab:>-
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
290 let expect = ['>---------x>------------------ ',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
291 \ 'x>------------------x>------------------',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
292 \ 'x ']
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
293 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
294 call s:compare_lines(expect, lines)
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
295 setl linebreak vartabstop=40
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
296 let expect = ['>---------------------------------------',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
297 \ 'x>--------------------------------------',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
298 \ 'x>--------------------------------------',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
299 \ 'x>--------------------------------------',
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
300 \ 'x ']
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
301 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
302 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
303
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
304 " cleanup
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
305 bw!
9ca8c36869ce patch 8.1.0116: display problem with 'vartabstop' and 'linebreak'
Christian Brabandt <cb@256bit.org>
parents: 14175
diff changeset
306 bw!
14218
539b070778b0 patch 8.1.0126: various problems with 'vartabstop'
Christian Brabandt <cb@256bit.org>
parents: 14198
diff changeset
307 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
308 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
309
15062
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
310 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
311 "return
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
312 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
313 return
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
314 endif
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
315 new
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
316 40vnew
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
317 %d
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
318 " 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
319 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
320 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
321
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
322 " 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
323 let expect = ['x ']
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
324 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
325 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
326 " Test 1:
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
327 " 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
328 " 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
329 " character).
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
330 norm! $>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
331 let expect1 = [' x ']
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
332 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
333 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
334 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
335 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
336 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
337 norm! $>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
338 let expect2 = [' x ', '~ ']
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
339 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
340 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
341 call assert_equal(20, shiftwidth(virtcol('.')-2))
18000
7a19c8d6bb9e patch 8.1.1996: more functions can be used as methods
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
342 call assert_equal(30, virtcol('.')->shiftwidth())
15062
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
343 norm! $>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
344 let expect3 = [' ', ' x ', '~ ']
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
345 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
346 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
347 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
348 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
349 norm! $>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
350 let expect4 = [' ', ' ', ' x ']
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, 3], 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 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
353 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
354
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
355 " 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
356 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
357 norm! 0>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
358 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
359 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
360 norm! 0>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
361 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
362 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
363 norm! 0>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
364 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
365 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
366 norm! 0>>
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
367 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
368 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
369
19783
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19603
diff changeset
370 call assert_fails('call shiftwidth([])', 'E745:')
546bdeef35f1 patch 8.2.0448: various functions not properly tested
Bram Moolenaar <Bram@vim.org>
parents: 19603
diff changeset
371
15062
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
372 " cleanup
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
373 bw!
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
374 bw!
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
375 endfunc
3a94f7918980 patch 8.1.0542: shiftwidth() does not take 'vartabstop' into account
Bram Moolenaar <Bram@vim.org>
parents: 14935
diff changeset
376
14935
dc54785f9a1d patch 8.1.0479: failure when setting 'varsofttabstop' to end in a comma
Bram Moolenaar <Bram@vim.org>
parents: 14218
diff changeset
377 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
378 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
379 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
380 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
381 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
382 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
383 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
384 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
385 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
386 endfunc
16376
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
387
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
388 func Test_vartabs_reset()
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
389 set vts=8
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
390 set all&
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
391 call assert_equal('', &vts)
3b5d401a58ce patch 8.1.1193: typos and small problems in test files
Bram Moolenaar <Bram@vim.org>
parents: 15406
diff changeset
392 endfunc
19603
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
393
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
394 func s:SaveCol(l)
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
395 call add(a:l, [col('.'), virtcol('.')])
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
396 return ''
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
397 endfunc
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
398
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
399 " Test for 'varsofttabstop'
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
400 func Test_varsofttabstop()
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
401 new
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
402 inoremap <expr> <F2> s:SaveCol(g:cols)
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
403
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
404 set backspace=indent,eol,start
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
405 set varsofttabstop=6,2,5,3
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
406 let g:cols = []
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
407 call feedkeys("a\t\<F2>\t\<F2>\t\<F2>\t\<F2> ", 'xt')
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
408 call assert_equal("\t\t ", getline(1))
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
409 call assert_equal([[7, 7], [2, 9], [7, 14], [3, 17]], g:cols)
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
410
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
411 let g:cols = []
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
412 call feedkeys("a\<bs>\<F2>\<bs>\<F2>\<bs>\<F2>\<bs>\<F2>\<bs>\<F2>", 'xt')
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
413 call assert_equal('', getline(1))
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
414 call assert_equal([[3, 17], [7, 14], [2, 9], [7, 7], [1, 1]], g:cols)
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
415
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
416 set varsofttabstop&
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
417 set backspace&
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
418 iunmap <F2>
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
419 close!
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
420 endfunc
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
421
24882
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
422 " Setting 'shiftwidth' to a negative value, should set it to either the value
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
423 " of 'tabstop' (if 'vartabstop' is not set) or to the first value in
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
424 " 'vartabstop'
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
425 func Test_shiftwidth_vartabstop()
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
426 setlocal tabstop=7 vartabstop=
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
427 call assert_fails('set shiftwidth=-1', 'E487:')
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
428 call assert_equal(7, &shiftwidth)
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
429 setlocal tabstop=7 vartabstop=5,7,10
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
430 call assert_fails('set shiftwidth=-1', 'E487:')
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
431 call assert_equal(5, &shiftwidth)
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
432 setlocal shiftwidth& vartabstop& tabstop&
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
433 endfunc
4c1b6f3eb96b patch 8.2.2979: not all options code is covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 23229
diff changeset
434
19603
6d3c683466f4 patch 8.2.0358: insufficient testing for indent.c
Bram Moolenaar <Bram@vim.org>
parents: 18000
diff changeset
435 " vim: shiftwidth=2 sts=2 expandtab