xref: /vim-8.2.3635/src/testdir/test_retab.vim (revision b7081e13)
18822744bSBram Moolenaar" Test :retab
26d91bcb4SBram Moolenaar
38822744bSBram Moolenaarfunc SetUp()
48822744bSBram Moolenaar  new
58822744bSBram Moolenaar  call setline(1, "\ta  \t    b        c    ")
68822744bSBram Moolenaarendfunc
78822744bSBram Moolenaar
88822744bSBram Moolenaarfunc TearDown()
98822744bSBram Moolenaar  bwipe!
108822744bSBram Moolenaarendfunc
118822744bSBram Moolenaar
128822744bSBram Moolenaarfunc Retab(bang, n)
138822744bSBram Moolenaar  let l:old_tabstop = &tabstop
148822744bSBram Moolenaar  let l:old_line = getline(1)
158822744bSBram Moolenaar  exe "retab" . a:bang . a:n
168822744bSBram Moolenaar  let l:line = getline(1)
178822744bSBram Moolenaar  call setline(1, l:old_line)
188822744bSBram Moolenaar  if a:n > 0
198822744bSBram Moolenaar    " :retab changes 'tabstop' to n with argument n > 0.
208822744bSBram Moolenaar    call assert_equal(a:n, &tabstop)
218822744bSBram Moolenaar    exe 'set tabstop=' . l:old_tabstop
228822744bSBram Moolenaar  else
238822744bSBram Moolenaar    " :retab does not change 'tabstop' with empty or n <= 0.
248822744bSBram Moolenaar    call assert_equal(l:old_tabstop, &tabstop)
258822744bSBram Moolenaar  endif
268822744bSBram Moolenaar  return l:line
278822744bSBram Moolenaarendfunc
288822744bSBram Moolenaar
298822744bSBram Moolenaarfunc Test_retab()
308822744bSBram Moolenaar  set tabstop=8 noexpandtab
318822744bSBram Moolenaar  call assert_equal("\ta\t    b        c    ",            Retab('',  ''))
328822744bSBram Moolenaar  call assert_equal("\ta\t    b        c    ",            Retab('',  0))
338822744bSBram Moolenaar  call assert_equal("\ta\t    b        c    ",            Retab('',  8))
348822744bSBram Moolenaar  call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', ''))
358822744bSBram Moolenaar  call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', 0))
368822744bSBram Moolenaar  call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', 8))
378822744bSBram Moolenaar
388822744bSBram Moolenaar  call assert_equal("\t\ta\t\t\tb        c    ",          Retab('',  4))
398822744bSBram Moolenaar  call assert_equal("\t\ta\t\t\tb\t\t c\t  ",             Retab('!', 4))
408822744bSBram Moolenaar
418822744bSBram Moolenaar  call assert_equal("        a\t\tb        c    ",        Retab('',  10))
428822744bSBram Moolenaar  call assert_equal("        a\t\tb        c    ",        Retab('!', 10))
438822744bSBram Moolenaar
448822744bSBram Moolenaar  set tabstop=8 expandtab
458822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('',  ''))
468822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('',  0))
478822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('',  8))
488822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('!', ''))
498822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('!', 0))
508822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('!', 8))
518822744bSBram Moolenaar
528822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab(' ', 4))
538822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('!', 4))
548822744bSBram Moolenaar
558822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab(' ', 10))
568822744bSBram Moolenaar  call assert_equal("        a           b        c    ", Retab('!', 10))
578822744bSBram Moolenaar
588822744bSBram Moolenaar  set tabstop=4 noexpandtab
598822744bSBram Moolenaar  call assert_equal("\ta\t\tb        c    ",              Retab('',  ''))
608822744bSBram Moolenaar  call assert_equal("\ta\t\tb\t\t c\t  ",                 Retab('!', ''))
618822744bSBram Moolenaar  call assert_equal("\t a\t\t\tb        c    ",           Retab('',  3))
628822744bSBram Moolenaar  call assert_equal("\t a\t\t\tb\t\t\tc\t  ",             Retab('!', 3))
638822744bSBram Moolenaar  call assert_equal("    a\t  b        c    ",            Retab('',  5))
648822744bSBram Moolenaar  call assert_equal("    a\t  b\t\t c\t ",                Retab('!', 5))
658822744bSBram Moolenaar
668822744bSBram Moolenaar  set tabstop=4 expandtab
678822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('',  ''))
688822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('!', ''))
698822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('',  3))
708822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('!', 3))
718822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('',  5))
728822744bSBram Moolenaar  call assert_equal("    a       b        c    ",         Retab('!', 5))
738822744bSBram Moolenaarendfunc
748822744bSBram Moolenaar
758822744bSBram Moolenaarfunc Test_retab_error()
768822744bSBram Moolenaar  call assert_fails('retab -1',  'E487:')
778822744bSBram Moolenaar  call assert_fails('retab! -1', 'E487:')
78*b7081e13SBram Moolenaar  call assert_fails('ret -1000', 'E487:')
79*b7081e13SBram Moolenaar  call assert_fails('ret 10000', 'E475:')
80*b7081e13SBram Moolenaar  call assert_fails('ret 80000000000000000000', 'E475:')
818822744bSBram Moolenaarendfunc
826d91bcb4SBram Moolenaar
836d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
84