xref: /vim-8.2.3635/src/testdir/test_tab.vim (revision 6d91bcb4)
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