Mercurial > vim
annotate src/testdir/test_vartabs.vim @ 14175:2ad722003b36 v8.1.0105
patch 8.1.0105: all tab stops are the same
commit https://github.com/vim/vim/commit/04958cbaf25eea27eceedaa987adfb354ad5f7fd
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jun 23 19:23:02 2018 +0200
patch 8.1.0105: all tab stops are the same
Problem: All tab stops are the same.
Solution: Add the variable tabstop feature. (Christian Brabandt,
closes #2711)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 23 Jun 2018 19:30:07 +0200 |
parents | |
children | 9ca8c36869ce |
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 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 func! Test_vartabs() |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 %d |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 " Test normal operation of tabstops ... |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 set ts=4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 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
|
14 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 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
|
16 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
|
17 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 " ... and softtabstops |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 set ts=8 sts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 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
|
21 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
|
22 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
|
23 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 " Test variable tabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 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
|
26 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
|
27 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 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
|
29 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
|
30 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 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
|
32 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
|
33 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
|
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 " 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
|
37 call cursor(1, 1) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 set ts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 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
|
40 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
|
41 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
|
42 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 " 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
|
44 set vts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 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
|
46 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
|
47 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
|
48 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 " Test variable softtabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 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
|
54 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 " Variable tabstops and softtabstops combined. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 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
|
57 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
|
58 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
|
59 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
|
60 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 " 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
|
62 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
|
63 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
|
64 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
65 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
|
66 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
|
67 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
68 " 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
|
69 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
|
70 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
|
71 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 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
|
73 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
|
74 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
75 " 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
|
76 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
|
77 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
|
78 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
79 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
|
80 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
|
81 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
82 " 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
|
83 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
|
84 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
|
85 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
86 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
|
87 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
|
88 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
89 " 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
|
90 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
|
91 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
92 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
93 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
94 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
95 new |
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 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
101 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
102 " 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
|
103 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
|
104 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
105 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
106 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
107 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
108 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
109 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
110 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
111 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
112 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
113 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
114 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
115 " 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
|
116 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
|
117 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
118 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
119 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
120 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
121 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
122 call assert_equal(&ts, 6) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
123 call assert_equal(&vts, '8') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
124 call assert_equal(&sts, 10) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
125 call assert_equal(&vsts, '12') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
126 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
127 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
128 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
|
129 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
130 endfunc |
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 func! Test_vartabs_breakindent() |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
133 if !exists("+breakindent") |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
134 return |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
135 endif |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
136 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
137 %d |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
138 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
139 " Test normal operation of tabstops ... |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
140 set ts=4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
141 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
|
142 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
143 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
|
144 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
|
145 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
146 " ... and softtabstops |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
147 set ts=8 sts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
148 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
|
149 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
|
150 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
|
151 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
152 " Test variable tabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
153 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
|
154 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
|
155 retab 8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
156 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
|
157 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
|
158 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
159 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
|
160 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
|
161 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
|
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 " 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
|
165 call cursor(1, 1) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
166 set ts=6 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
167 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
|
168 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
|
169 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
|
170 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
171 " 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
|
172 set vts= |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
173 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
|
174 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
|
175 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
|
176 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
177 " Test variable softtabstops. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
178 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
|
179 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
|
180 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
|
181 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
|
182 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
183 " Variable tabstops and softtabstops combined. |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
184 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
|
185 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
|
186 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
|
187 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
|
188 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
189 " 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
|
190 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
|
191 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
|
192 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
193 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
|
194 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
|
195 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
196 " 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
|
197 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
|
198 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
|
199 retab 4 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
200 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
|
201 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
|
202 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
203 " 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
|
204 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
|
205 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
|
206 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
207 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
|
208 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
|
209 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
210 " 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
|
211 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
|
212 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
|
213 retab 4,8 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
214 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
|
215 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
|
216 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
217 " 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
|
218 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
|
219 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
220 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
221 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
222 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
223 new |
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 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
229 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
230 " 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
|
231 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
|
232 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
233 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
234 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
235 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
236 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
237 call assert_equal(&ts, 4) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
238 call assert_equal(&vts, '6') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
239 call assert_equal(&sts, 8) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
240 call assert_equal(&vsts, '10') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
241 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
242 |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
243 " 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
|
244 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
|
245 call assert_equal(&ts, 5) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
246 call assert_equal(&vts, '7') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
247 call assert_equal(&sts, 9) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
248 call assert_equal(&vsts, '11') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
249 new |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
250 call assert_equal(&ts, 6) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
251 call assert_equal(&vts, '8') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
252 call assert_equal(&sts, 10) |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
253 call assert_equal(&vsts, '12') |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
254 bwipeout! |
2ad722003b36
patch 8.1.0105: all tab stops are the same
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
255 |
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 endfunc |