104958cbaSBram Moolenaar" Test for variable tabstops 204958cbaSBram Moolenaar 304958cbaSBram Moolenaarif !has("vartabs") 404958cbaSBram Moolenaar finish 504958cbaSBram Moolenaarendif 604958cbaSBram Moolenaar 7a87b72ccSBram Moolenaarsource view_util.vim 8*037c54f2SBram Moolenaar 964f41074SBram Moolenaarfunc s:compare_lines(expect, actual) 10a87b72ccSBram Moolenaar call assert_equal(join(a:expect, "\n"), join(a:actual, "\n")) 1164f41074SBram Moolenaarendfunc 12a87b72ccSBram Moolenaar 1364f41074SBram Moolenaarfunc Test_vartabs() 1404958cbaSBram Moolenaar new 1504958cbaSBram Moolenaar %d 1604958cbaSBram Moolenaar 1704958cbaSBram Moolenaar " Test normal operation of tabstops ... 1804958cbaSBram Moolenaar set ts=4 1904958cbaSBram Moolenaar call setline(1, join(split('aaaaa', '\zs'), "\t")) 2004958cbaSBram Moolenaar retab 8 2104958cbaSBram Moolenaar let expect = "a a\<tab>a a\<tab>a" 2204958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 2304958cbaSBram Moolenaar 2404958cbaSBram Moolenaar " ... and softtabstops 2504958cbaSBram Moolenaar set ts=8 sts=6 2604958cbaSBram Moolenaar exe "norm! Sb\<tab>b\<tab>b\<tab>b\<tab>b" 2704958cbaSBram Moolenaar let expect = "b b\<tab> b\<tab> b\<tab>b" 2804958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 2904958cbaSBram Moolenaar 3004958cbaSBram Moolenaar " Test variable tabstops. 3104958cbaSBram Moolenaar set sts=0 vts=4,8,4,8 3204958cbaSBram Moolenaar exe "norm! Sc\<tab>c\<tab>c\<tab>c\<tab>c\<tab>c" 3304958cbaSBram Moolenaar retab 8 3404958cbaSBram Moolenaar let expect = "c c\<tab> c\<tab>c\<tab>c\<tab>c" 3504958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 3604958cbaSBram Moolenaar 3704958cbaSBram Moolenaar set et vts=4,8,4,8 3804958cbaSBram Moolenaar exe "norm! Sd\<tab>d\<tab>d\<tab>d\<tab>d\<tab>d" 3904958cbaSBram Moolenaar let expect = "d d d d d d" 4004958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 4104958cbaSBram Moolenaar 4204958cbaSBram Moolenaar " Changing ts should have no effect if vts is in use. 4304958cbaSBram Moolenaar call cursor(1, 1) 4404958cbaSBram Moolenaar set ts=6 4504958cbaSBram Moolenaar exe "norm! Se\<tab>e\<tab>e\<tab>e\<tab>e\<tab>e" 4604958cbaSBram Moolenaar let expect = "e e e e e e" 4704958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 4804958cbaSBram Moolenaar 4904958cbaSBram Moolenaar " Clearing vts should revert to using ts. 5004958cbaSBram Moolenaar set vts= 5104958cbaSBram Moolenaar exe "norm! Sf\<tab>f\<tab>f\<tab>f\<tab>f\<tab>f" 5204958cbaSBram Moolenaar let expect = "f f f f f f" 5304958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 5404958cbaSBram Moolenaar 5504958cbaSBram Moolenaar " Test variable softtabstops. 5604958cbaSBram Moolenaar set noet ts=8 vsts=12,2,6 5704958cbaSBram Moolenaar exe "norm! Sg\<tab>g\<tab>g\<tab>g\<tab>g\<tab>g" 5804958cbaSBram Moolenaar let expect = "g\<tab> g g\<tab> g\<tab> g\<tab>g" 5904958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 6004958cbaSBram Moolenaar 6104958cbaSBram Moolenaar " Variable tabstops and softtabstops combined. 6204958cbaSBram Moolenaar set vsts=6,12,8 vts=4,6,8 6304958cbaSBram Moolenaar exe "norm! Sh\<tab>h\<tab>h\<tab>h\<tab>h" 6404958cbaSBram Moolenaar let expect = "h\<tab> h\<tab>\<tab>h\<tab>h\<tab>h" 6504958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 6604958cbaSBram Moolenaar 6704958cbaSBram Moolenaar " Retab with a single value, not using vts. 6804958cbaSBram Moolenaar set ts=8 sts=0 vts= vsts= 6904958cbaSBram Moolenaar exe "norm! Si\<tab>i\<tab>i\<tab>i\<tab>i" 7004958cbaSBram Moolenaar retab 4 7104958cbaSBram Moolenaar let expect = "i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i" 7204958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 7304958cbaSBram Moolenaar 7404958cbaSBram Moolenaar " Retab with a single value, using vts. 7504958cbaSBram Moolenaar set ts=8 sts=0 vts=6 vsts= 7604958cbaSBram Moolenaar exe "norm! Sj\<tab>j\<tab>j\<tab>j\<tab>j" 7704958cbaSBram Moolenaar retab 4 7804958cbaSBram Moolenaar let expect = "j\<tab> j\<tab>\<tab>j\<tab> j\<tab>\<tab>j" 7904958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 8004958cbaSBram Moolenaar 8104958cbaSBram Moolenaar " Retab with multiple values, not using vts. 8204958cbaSBram Moolenaar set ts=6 sts=0 vts= vsts= 8304958cbaSBram Moolenaar exe "norm! Sk\<tab>k\<tab>k\<tab>k\<tab>k\<tab>k" 8404958cbaSBram Moolenaar retab 4,8 8504958cbaSBram Moolenaar let expect = "k\<tab> k\<tab>k k\<tab> k\<tab> k" 8604958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 8704958cbaSBram Moolenaar 8804958cbaSBram Moolenaar " Retab with multiple values, using vts. 8904958cbaSBram Moolenaar set ts=8 sts=0 vts=6 vsts= 9004958cbaSBram Moolenaar exe "norm! Sl\<tab>l\<tab>l\<tab>l\<tab>l\<tab>l" 9104958cbaSBram Moolenaar retab 4,8 9204958cbaSBram Moolenaar let expect = "l\<tab> l\<tab>l l\<tab> l\<tab> l" 9304958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 9404958cbaSBram Moolenaar 9504958cbaSBram Moolenaar " Check that global and local values are set. 9604958cbaSBram Moolenaar set ts=4 vts=6 sts=8 vsts=10 9704958cbaSBram Moolenaar call assert_equal(&ts, 4) 9804958cbaSBram Moolenaar call assert_equal(&vts, '6') 9904958cbaSBram Moolenaar call assert_equal(&sts, 8) 10004958cbaSBram Moolenaar call assert_equal(&vsts, '10') 10104958cbaSBram Moolenaar new 10204958cbaSBram Moolenaar call assert_equal(&ts, 4) 10304958cbaSBram Moolenaar call assert_equal(&vts, '6') 10404958cbaSBram Moolenaar call assert_equal(&sts, 8) 10504958cbaSBram Moolenaar call assert_equal(&vsts, '10') 10604958cbaSBram Moolenaar bwipeout! 10704958cbaSBram Moolenaar 10804958cbaSBram Moolenaar " Check that local values only are set. 10904958cbaSBram Moolenaar setlocal ts=5 vts=7 sts=9 vsts=11 11004958cbaSBram Moolenaar call assert_equal(&ts, 5) 11104958cbaSBram Moolenaar call assert_equal(&vts, '7') 11204958cbaSBram Moolenaar call assert_equal(&sts, 9) 11304958cbaSBram Moolenaar call assert_equal(&vsts, '11') 11404958cbaSBram Moolenaar new 11504958cbaSBram Moolenaar call assert_equal(&ts, 4) 11604958cbaSBram Moolenaar call assert_equal(&vts, '6') 11704958cbaSBram Moolenaar call assert_equal(&sts, 8) 11804958cbaSBram Moolenaar call assert_equal(&vsts, '10') 11904958cbaSBram Moolenaar bwipeout! 12004958cbaSBram Moolenaar 12104958cbaSBram Moolenaar " Check that global values only are set. 12204958cbaSBram Moolenaar setglobal ts=6 vts=8 sts=10 vsts=12 12304958cbaSBram Moolenaar call assert_equal(&ts, 5) 12404958cbaSBram Moolenaar call assert_equal(&vts, '7') 12504958cbaSBram Moolenaar call assert_equal(&sts, 9) 12604958cbaSBram Moolenaar call assert_equal(&vsts, '11') 12704958cbaSBram Moolenaar new 12804958cbaSBram Moolenaar call assert_equal(&ts, 6) 12904958cbaSBram Moolenaar call assert_equal(&vts, '8') 13004958cbaSBram Moolenaar call assert_equal(&sts, 10) 13104958cbaSBram Moolenaar call assert_equal(&vsts, '12') 13204958cbaSBram Moolenaar bwipeout! 13304958cbaSBram Moolenaar 13404958cbaSBram Moolenaar set ts& vts& sts& vsts& et& 13504958cbaSBram Moolenaar bwipeout! 13604958cbaSBram Moolenaarendfunc 13704958cbaSBram Moolenaar 1381e115360SBram Moolenaarfunc Test_vartabs_breakindent() 13904958cbaSBram Moolenaar if !exists("+breakindent") 14004958cbaSBram Moolenaar return 14104958cbaSBram Moolenaar endif 14204958cbaSBram Moolenaar new 14304958cbaSBram Moolenaar %d 14404958cbaSBram Moolenaar 14504958cbaSBram Moolenaar " Test normal operation of tabstops ... 14604958cbaSBram Moolenaar set ts=4 14704958cbaSBram Moolenaar call setline(1, join(split('aaaaa', '\zs'), "\t")) 14804958cbaSBram Moolenaar retab 8 14904958cbaSBram Moolenaar let expect = "a a\<tab>a a\<tab>a" 15004958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 15104958cbaSBram Moolenaar 15204958cbaSBram Moolenaar " ... and softtabstops 15304958cbaSBram Moolenaar set ts=8 sts=6 15404958cbaSBram Moolenaar exe "norm! Sb\<tab>b\<tab>b\<tab>b\<tab>b" 15504958cbaSBram Moolenaar let expect = "b b\<tab> b\<tab> b\<tab>b" 15604958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 15704958cbaSBram Moolenaar 15804958cbaSBram Moolenaar " Test variable tabstops. 15904958cbaSBram Moolenaar set sts=0 vts=4,8,4,8 16004958cbaSBram Moolenaar exe "norm! Sc\<tab>c\<tab>c\<tab>c\<tab>c\<tab>c" 16104958cbaSBram Moolenaar retab 8 16204958cbaSBram Moolenaar let expect = "c c\<tab> c\<tab>c\<tab>c\<tab>c" 16304958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 16404958cbaSBram Moolenaar 16504958cbaSBram Moolenaar set et vts=4,8,4,8 16604958cbaSBram Moolenaar exe "norm! Sd\<tab>d\<tab>d\<tab>d\<tab>d\<tab>d" 16704958cbaSBram Moolenaar let expect = "d d d d d d" 16804958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 16904958cbaSBram Moolenaar 17004958cbaSBram Moolenaar " Changing ts should have no effect if vts is in use. 17104958cbaSBram Moolenaar call cursor(1, 1) 17204958cbaSBram Moolenaar set ts=6 17304958cbaSBram Moolenaar exe "norm! Se\<tab>e\<tab>e\<tab>e\<tab>e\<tab>e" 17404958cbaSBram Moolenaar let expect = "e e e e e e" 17504958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 17604958cbaSBram Moolenaar 17704958cbaSBram Moolenaar " Clearing vts should revert to using ts. 17804958cbaSBram Moolenaar set vts= 17904958cbaSBram Moolenaar exe "norm! Sf\<tab>f\<tab>f\<tab>f\<tab>f\<tab>f" 18004958cbaSBram Moolenaar let expect = "f f f f f f" 18104958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 18204958cbaSBram Moolenaar 18304958cbaSBram Moolenaar " Test variable softtabstops. 18404958cbaSBram Moolenaar set noet ts=8 vsts=12,2,6 18504958cbaSBram Moolenaar exe "norm! Sg\<tab>g\<tab>g\<tab>g\<tab>g\<tab>g" 18604958cbaSBram Moolenaar let expect = "g\<tab> g g\<tab> g\<tab> g\<tab>g" 18704958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 18804958cbaSBram Moolenaar 18904958cbaSBram Moolenaar " Variable tabstops and softtabstops combined. 19004958cbaSBram Moolenaar set vsts=6,12,8 vts=4,6,8 19104958cbaSBram Moolenaar exe "norm! Sh\<tab>h\<tab>h\<tab>h\<tab>h" 19204958cbaSBram Moolenaar let expect = "h\<tab> h\<tab>\<tab>h\<tab>h\<tab>h" 19304958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 19404958cbaSBram Moolenaar 19504958cbaSBram Moolenaar " Retab with a single value, not using vts. 19604958cbaSBram Moolenaar set ts=8 sts=0 vts= vsts= 19704958cbaSBram Moolenaar exe "norm! Si\<tab>i\<tab>i\<tab>i\<tab>i" 19804958cbaSBram Moolenaar retab 4 19904958cbaSBram Moolenaar let expect = "i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i\<tab>\<tab>i" 20004958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 20104958cbaSBram Moolenaar 20204958cbaSBram Moolenaar " Retab with a single value, using vts. 20304958cbaSBram Moolenaar set ts=8 sts=0 vts=6 vsts= 20404958cbaSBram Moolenaar exe "norm! Sj\<tab>j\<tab>j\<tab>j\<tab>j" 20504958cbaSBram Moolenaar retab 4 20604958cbaSBram Moolenaar let expect = "j\<tab> j\<tab>\<tab>j\<tab> j\<tab>\<tab>j" 20704958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 20804958cbaSBram Moolenaar 20904958cbaSBram Moolenaar " Retab with multiple values, not using vts. 21004958cbaSBram Moolenaar set ts=6 sts=0 vts= vsts= 21104958cbaSBram Moolenaar exe "norm! Sk\<tab>k\<tab>k\<tab>k\<tab>k\<tab>k" 21204958cbaSBram Moolenaar retab 4,8 21304958cbaSBram Moolenaar let expect = "k\<tab> k\<tab>k k\<tab> k\<tab> k" 21404958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 21504958cbaSBram Moolenaar 21604958cbaSBram Moolenaar " Retab with multiple values, using vts. 21704958cbaSBram Moolenaar set ts=8 sts=0 vts=6 vsts= 21804958cbaSBram Moolenaar exe "norm! Sl\<tab>l\<tab>l\<tab>l\<tab>l\<tab>l" 21904958cbaSBram Moolenaar retab 4,8 22004958cbaSBram Moolenaar let expect = "l\<tab> l\<tab>l l\<tab> l\<tab> l" 22104958cbaSBram Moolenaar call assert_equal(expect, getline(1)) 22204958cbaSBram Moolenaar 22304958cbaSBram Moolenaar " Check that global and local values are set. 22404958cbaSBram Moolenaar set ts=4 vts=6 sts=8 vsts=10 22504958cbaSBram Moolenaar call assert_equal(&ts, 4) 22604958cbaSBram Moolenaar call assert_equal(&vts, '6') 22704958cbaSBram Moolenaar call assert_equal(&sts, 8) 22804958cbaSBram Moolenaar call assert_equal(&vsts, '10') 22904958cbaSBram Moolenaar new 23004958cbaSBram Moolenaar call assert_equal(&ts, 4) 23104958cbaSBram Moolenaar call assert_equal(&vts, '6') 23204958cbaSBram Moolenaar call assert_equal(&sts, 8) 23304958cbaSBram Moolenaar call assert_equal(&vsts, '10') 23404958cbaSBram Moolenaar bwipeout! 23504958cbaSBram Moolenaar 23604958cbaSBram Moolenaar " Check that local values only are set. 23704958cbaSBram Moolenaar setlocal ts=5 vts=7 sts=9 vsts=11 23804958cbaSBram Moolenaar call assert_equal(&ts, 5) 23904958cbaSBram Moolenaar call assert_equal(&vts, '7') 24004958cbaSBram Moolenaar call assert_equal(&sts, 9) 24104958cbaSBram Moolenaar call assert_equal(&vsts, '11') 24204958cbaSBram Moolenaar new 24304958cbaSBram Moolenaar call assert_equal(&ts, 4) 24404958cbaSBram Moolenaar call assert_equal(&vts, '6') 24504958cbaSBram Moolenaar call assert_equal(&sts, 8) 24604958cbaSBram Moolenaar call assert_equal(&vsts, '10') 24704958cbaSBram Moolenaar bwipeout! 24804958cbaSBram Moolenaar 24904958cbaSBram Moolenaar " Check that global values only are set. 25004958cbaSBram Moolenaar setglobal ts=6 vts=8 sts=10 vsts=12 25104958cbaSBram Moolenaar call assert_equal(&ts, 5) 25204958cbaSBram Moolenaar call assert_equal(&vts, '7') 25304958cbaSBram Moolenaar call assert_equal(&sts, 9) 25404958cbaSBram Moolenaar call assert_equal(&vsts, '11') 25504958cbaSBram Moolenaar new 25604958cbaSBram Moolenaar call assert_equal(&ts, 6) 25704958cbaSBram Moolenaar call assert_equal(&vts, '8') 25804958cbaSBram Moolenaar call assert_equal(&sts, 10) 25904958cbaSBram Moolenaar call assert_equal(&vsts, '12') 26004958cbaSBram Moolenaar bwipeout! 26104958cbaSBram Moolenaar 26204958cbaSBram Moolenaar bwipeout! 26304958cbaSBram Moolenaarendfunc 264a87b72ccSBram Moolenaar 26564f41074SBram Moolenaarfunc Test_vartabs_linebreak() 266307ac5c6SBram Moolenaar if winwidth(0) < 40 267a87b72ccSBram Moolenaar return 268a87b72ccSBram Moolenaar endif 269a87b72ccSBram Moolenaar new 270307ac5c6SBram Moolenaar 40vnew 271a87b72ccSBram Moolenaar %d 272307ac5c6SBram Moolenaar setl linebreak vartabstop=10,20,30,40 273a87b72ccSBram Moolenaar call setline(1, "\tx\tx\tx\tx") 274a87b72ccSBram Moolenaar 275307ac5c6SBram Moolenaar let expect = [' x ', 276307ac5c6SBram Moolenaar \ 'x x ', 277a87b72ccSBram Moolenaar \ 'x '] 278307ac5c6SBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 279307ac5c6SBram Moolenaar call s:compare_lines(expect, lines) 280307ac5c6SBram Moolenaar setl list listchars=tab:>- 281307ac5c6SBram Moolenaar let expect = ['>---------x>------------------ ', 282307ac5c6SBram Moolenaar \ 'x>------------------x>------------------', 283307ac5c6SBram Moolenaar \ 'x '] 284307ac5c6SBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 285307ac5c6SBram Moolenaar call s:compare_lines(expect, lines) 286307ac5c6SBram Moolenaar setl linebreak vartabstop=40 287307ac5c6SBram Moolenaar let expect = ['>---------------------------------------', 288307ac5c6SBram Moolenaar \ 'x>--------------------------------------', 289307ac5c6SBram Moolenaar \ 'x>--------------------------------------', 290307ac5c6SBram Moolenaar \ 'x>--------------------------------------', 291307ac5c6SBram Moolenaar \ 'x '] 292307ac5c6SBram Moolenaar let lines = ScreenLines([1, 5], winwidth(0)) 293a87b72ccSBram Moolenaar call s:compare_lines(expect, lines) 294a87b72ccSBram Moolenaar 295a87b72ccSBram Moolenaar " cleanup 296a87b72ccSBram Moolenaar bw! 297a87b72ccSBram Moolenaar bw! 298307ac5c6SBram Moolenaar set nolist listchars&vim 299a87b72ccSBram Moolenaarendfunc 30064f41074SBram Moolenaar 301f951416aSBram Moolenaarfunc Test_vartabs_shiftwidth() 302f951416aSBram Moolenaar "return 303f951416aSBram Moolenaar if winwidth(0) < 40 304f951416aSBram Moolenaar return 305f951416aSBram Moolenaar endif 306f951416aSBram Moolenaar new 307f951416aSBram Moolenaar 40vnew 308f951416aSBram Moolenaar %d 309f951416aSBram Moolenaar" setl varsofttabstop=10,20,30,40 310f951416aSBram Moolenaar setl shiftwidth=0 vartabstop=10,20,30,40 311f951416aSBram Moolenaar call setline(1, "x") 312f951416aSBram Moolenaar 313f951416aSBram Moolenaar " Check without any change. 314f951416aSBram Moolenaar let expect = ['x '] 315f951416aSBram Moolenaar let lines = ScreenLines(1, winwidth(0)) 316f951416aSBram Moolenaar call s:compare_lines(expect, lines) 317f951416aSBram Moolenaar " Test 1: 318f951416aSBram Moolenaar " shiftwidth depends on the indent, first check with cursor at the end of the 319f951416aSBram Moolenaar " line (which is the same as the start of the line, since there is only one 320f951416aSBram Moolenaar " character). 321f951416aSBram Moolenaar norm! $>> 322f951416aSBram Moolenaar let expect1 = [' x '] 323f951416aSBram Moolenaar let lines = ScreenLines(1, winwidth(0)) 324f951416aSBram Moolenaar call s:compare_lines(expect1, lines) 325f951416aSBram Moolenaar call assert_equal(10, shiftwidth()) 326f951416aSBram Moolenaar call assert_equal(10, shiftwidth(1)) 327f951416aSBram Moolenaar call assert_equal(20, shiftwidth(virtcol('.'))) 328f951416aSBram Moolenaar norm! $>> 329f951416aSBram Moolenaar let expect2 = [' x ', '~ '] 330f951416aSBram Moolenaar let lines = ScreenLines([1, 2], winwidth(0)) 331f951416aSBram Moolenaar call s:compare_lines(expect2, lines) 332f951416aSBram Moolenaar call assert_equal(20, shiftwidth(virtcol('.')-2)) 333f951416aSBram Moolenaar call assert_equal(30, shiftwidth(virtcol('.'))) 334f951416aSBram Moolenaar norm! $>> 335f951416aSBram Moolenaar let expect3 = [' ', ' x ', '~ '] 336f951416aSBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 337f951416aSBram Moolenaar call s:compare_lines(expect3, lines) 338f951416aSBram Moolenaar call assert_equal(30, shiftwidth(virtcol('.')-2)) 339f951416aSBram Moolenaar call assert_equal(40, shiftwidth(virtcol('.'))) 340f951416aSBram Moolenaar norm! $>> 341f951416aSBram Moolenaar let expect4 = [' ', ' ', ' x '] 342f951416aSBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 343f951416aSBram Moolenaar call assert_equal(40, shiftwidth(virtcol('.'))) 344f951416aSBram Moolenaar call s:compare_lines(expect4, lines) 345f951416aSBram Moolenaar 346f951416aSBram Moolenaar " Test 2: Put the cursor at the first column, result should be the same 347f951416aSBram Moolenaar call setline(1, "x") 348f951416aSBram Moolenaar norm! 0>> 349f951416aSBram Moolenaar let lines = ScreenLines(1, winwidth(0)) 350f951416aSBram Moolenaar call s:compare_lines(expect1, lines) 351f951416aSBram Moolenaar norm! 0>> 352f951416aSBram Moolenaar let lines = ScreenLines([1, 2], winwidth(0)) 353f951416aSBram Moolenaar call s:compare_lines(expect2, lines) 354f951416aSBram Moolenaar norm! 0>> 355f951416aSBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 356f951416aSBram Moolenaar call s:compare_lines(expect3, lines) 357f951416aSBram Moolenaar norm! 0>> 358f951416aSBram Moolenaar let lines = ScreenLines([1, 3], winwidth(0)) 359f951416aSBram Moolenaar call s:compare_lines(expect4, lines) 360f951416aSBram Moolenaar 361f951416aSBram Moolenaar " cleanup 362f951416aSBram Moolenaar bw! 363f951416aSBram Moolenaar bw! 364f951416aSBram Moolenaarendfunc 365f951416aSBram Moolenaar 36664f41074SBram Moolenaarfunc Test_vartabs_failures() 36764f41074SBram Moolenaar call assert_fails('set vts=8,') 36864f41074SBram Moolenaar call assert_fails('set vsts=8,') 36964f41074SBram Moolenaar call assert_fails('set vts=8,,8') 37064f41074SBram Moolenaar call assert_fails('set vsts=8,,8') 37164f41074SBram Moolenaar call assert_fails('set vts=8,,8,') 37264f41074SBram Moolenaar call assert_fails('set vsts=8,,8,') 37364f41074SBram Moolenaar call assert_fails('set vts=,8') 37464f41074SBram Moolenaar call assert_fails('set vsts=,8') 37564f41074SBram Moolenaarendfunc 376*037c54f2SBram Moolenaar 377*037c54f2SBram Moolenaarfunc Test_vartabs_reset() 378*037c54f2SBram Moolenaar set vts=8 379*037c54f2SBram Moolenaar set all& 380*037c54f2SBram Moolenaar call assert_equal('', &vts) 381*037c54f2SBram Moolenaarendfunc 382