133d5ab37SBram Moolenaar" Various tests for inserting a Tab. 215993ce9SBram Moolenaar 315993ce9SBram Moolenaar" Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set. 415993ce9SBram Moolenaar" Also test that dv_ works correctly 515993ce9SBram Moolenaarfunc Test_smarttab() 615993ce9SBram Moolenaar enew! 715993ce9SBram Moolenaar set smarttab expandtab ts=8 sw=4 815993ce9SBram Moolenaar " make sure that backspace works, no matter what termcap is used 915993ce9SBram Moolenaar exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08" 1015993ce9SBram Moolenaar call append(0, ['start text', 1115993ce9SBram Moolenaar \ "\t\tsome test text", 1215993ce9SBram Moolenaar \ 'test text', 1315993ce9SBram Moolenaar \ "\t\tother test text", 1415993ce9SBram Moolenaar \ ' a cde', 1515993ce9SBram Moolenaar \ ' f ghi', 1615993ce9SBram Moolenaar \ 'test text', 1715993ce9SBram Moolenaar \ ' Second line beginning with whitespace' 1815993ce9SBram Moolenaar \ ]) 1915993ce9SBram Moolenaar call cursor(1, 1) 2015993ce9SBram Moolenaar exe "normal /some\<CR>" 2115993ce9SBram Moolenaar exe "normal r\t" 2215993ce9SBram Moolenaar call assert_equal("\t\t ome test text", getline('.')) 2315993ce9SBram Moolenaar set noexpandtab 2415993ce9SBram Moolenaar exe "normal /other\<CR>" 2515993ce9SBram Moolenaar exe "normal r\t" 2615993ce9SBram Moolenaar call assert_equal("\t\t ther test text", getline('.')) 2715993ce9SBram Moolenaar 2815993ce9SBram Moolenaar " Test replacing with Tabs and then backspacing to undo it 2915993ce9SBram Moolenaar exe "normal j0wR\t\t\t\<BS>\<BS>\<BS>" 3015993ce9SBram Moolenaar call assert_equal(" a cde", getline('.')) 3115993ce9SBram Moolenaar " Test replacing with Tabs 3215993ce9SBram Moolenaar exe "normal j0wR\t\t\t" 3315993ce9SBram Moolenaar call assert_equal(" \t\thi", getline('.')) 3415993ce9SBram Moolenaar 3515993ce9SBram Moolenaar " Test that copyindent works with expandtab set 3615993ce9SBram Moolenaar set expandtab smartindent copyindent ts=8 sw=8 sts=8 3715993ce9SBram Moolenaar exe "normal jo{\<CR>x" 3815993ce9SBram Moolenaar call assert_equal('{', getline(line('.') - 1)) 3915993ce9SBram Moolenaar call assert_equal(' x', getline('.')) 4015993ce9SBram Moolenaar set nosol 4115993ce9SBram Moolenaar exe "normal /Second line/\<CR>" 4215993ce9SBram Moolenaar exe "normal fwdv_" 4315993ce9SBram Moolenaar call assert_equal(' with whitespace', getline('.')) 4415993ce9SBram Moolenaar enew! 4515993ce9SBram Moolenaar set expandtab& smartindent& copyindent& ts& sw& sts& 4615993ce9SBram Moolenaarendfunc 4733d5ab37SBram Moolenaar 4833d5ab37SBram Moolenaarfunc Test_softtabstop() 4933d5ab37SBram Moolenaar new 5033d5ab37SBram Moolenaar set sts=0 sw=0 5133d5ab37SBram Moolenaar exe "normal ix\<Tab>x\<Esc>" 5233d5ab37SBram Moolenaar call assert_equal("x\tx", getline(1)) 5333d5ab37SBram Moolenaar 5433d5ab37SBram Moolenaar call setline(1, '') 5533d5ab37SBram Moolenaar set sts=4 5633d5ab37SBram Moolenaar exe "normal ix\<Tab>x\<Esc>" 5733d5ab37SBram Moolenaar call assert_equal("x x", getline(1)) 5833d5ab37SBram Moolenaar 5933d5ab37SBram Moolenaar call setline(1, '') 6033d5ab37SBram Moolenaar set sts=-1 sw=4 6133d5ab37SBram Moolenaar exe "normal ix\<Tab>x\<Esc>" 6233d5ab37SBram Moolenaar call assert_equal("x x", getline(1)) 6333d5ab37SBram Moolenaar 6433d5ab37SBram Moolenaar call setline(1, 'x ') 6533d5ab37SBram Moolenaar set sts=0 sw=0 backspace=start 6633d5ab37SBram Moolenaar exe "normal A\<BS>x\<Esc>" 6733d5ab37SBram Moolenaar call assert_equal("x x", getline(1)) 6833d5ab37SBram Moolenaar 6933d5ab37SBram Moolenaar call setline(1, 'x ') 7033d5ab37SBram Moolenaar set sts=4 7133d5ab37SBram Moolenaar exe "normal A\<BS>x\<Esc>" 7233d5ab37SBram Moolenaar call assert_equal("x x", getline(1)) 7333d5ab37SBram Moolenaar 7433d5ab37SBram Moolenaar call setline(1, 'x ') 7533d5ab37SBram Moolenaar set sts=-1 sw=4 7633d5ab37SBram Moolenaar exe "normal A\<BS>x\<Esc>" 7733d5ab37SBram Moolenaar call assert_equal("x x", getline(1)) 7833d5ab37SBram Moolenaar 79c9fe5ab3SBram Moolenaar call setline(1, 'x') 80c9fe5ab3SBram Moolenaar set sts=-1 sw=0 smarttab 81c9fe5ab3SBram Moolenaar exe "normal I\<Tab>\<Esc>" 82c9fe5ab3SBram Moolenaar call assert_equal("\tx", getline(1)) 83c9fe5ab3SBram Moolenaar 84c9fe5ab3SBram Moolenaar call setline(1, 'x') 85c9fe5ab3SBram Moolenaar exe "normal I\<Tab>\<BS>\<Esc>" 86c9fe5ab3SBram Moolenaar call assert_equal("x", getline(1)) 87c9fe5ab3SBram Moolenaar 88c9fe5ab3SBram Moolenaar set sts=0 sw=0 backspace& nosmarttab 8933d5ab37SBram Moolenaar bwipe! 9033d5ab37SBram Moolenaarendfunc 91*6d91bcb4SBram Moolenaar 92*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 93