neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

test_command_count.vim (4901B)


      1 " Test for user command counts.
      2 
      3 func Test_command_count_0()
      4  let bufnr = bufnr('%')
      5  set hidden
      6  set noswapfile
      7 
      8  split DoesNotExistEver
      9  let lastbuf = bufnr('$')
     10  call setline(1, 'asdf')
     11  quit!
     12 
     13  command! -range -addr=loaded_buffers RangeLoadedBuffers :let lines = [<line1>, <line2>]
     14  command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [<line1>, <line2>]
     15  command! -range -addr=buffers RangeBuffers :let lines = [<line1>, <line2>]
     16  command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>]
     17 
     18  .,$RangeLoadedBuffers
     19  call assert_equal([bufnr, bufnr], lines)
     20  %RangeLoadedBuffers
     21  call assert_equal([bufnr, bufnr], lines)
     22  RangeLoadedBuffersAll
     23  call assert_equal([bufnr, bufnr], lines)
     24  .,$RangeBuffers
     25  call assert_equal([bufnr, lastbuf], lines)
     26  %RangeBuffers
     27  call assert_equal([bufnr, lastbuf], lines)
     28  RangeBuffersAll
     29  call assert_equal([bufnr, lastbuf], lines)
     30 
     31  delcommand RangeLoadedBuffers
     32  delcommand RangeLoadedBuffersAll
     33  delcommand RangeBuffers
     34  delcommand RangeBuffersAll
     35 
     36  set hidden&
     37  set swapfile&
     38 endfunc
     39 
     40 func Test_command_count_1()
     41  silent! %argd
     42  arga a b c d e
     43  argdo echo "loading buffers"
     44  argu 3
     45  command! -range -addr=arguments RangeArguments :let lines = [<line1>, <line2>]
     46  command! -range=% -addr=arguments RangeArgumentsAll :let lines = [<line1>, <line2>]
     47  .-,$-RangeArguments
     48  call assert_equal([2, 4], lines)
     49  %RangeArguments
     50  call assert_equal([1, 5], lines)
     51  RangeArgumentsAll
     52  call assert_equal([1, 5], lines)
     53  N
     54  .RangeArguments
     55  call assert_equal([2, 2], lines)
     56  delcommand RangeArguments
     57  delcommand RangeArgumentsAll
     58 
     59  split|split|split|split
     60  3wincmd w
     61  command! -range -addr=windows RangeWindows :let lines = [<line1>, <line2>]
     62  .,$RangeWindows
     63  call assert_equal([3, 5], lines)
     64  %RangeWindows
     65  call assert_equal([1, 5], lines)
     66  delcommand RangeWindows
     67 
     68  command! -range=% -addr=windows RangeWindowsAll :let lines = [<line1>, <line2>]
     69  RangeWindowsAll
     70  call assert_equal([1, 5], lines)
     71  delcommand RangeWindowsAll
     72  only
     73  blast|bd
     74 
     75  tabe|tabe|tabe|tabe
     76  normal 2gt
     77  command! -range -addr=tabs RangeTabs :let lines = [<line1>, <line2>]
     78  .,$RangeTabs
     79  call assert_equal([2, 5], lines)
     80  %RangeTabs
     81  call assert_equal([1, 5], lines)
     82  delcommand RangeTabs
     83 
     84  command! -range=% -addr=tabs RangeTabsAll :let lines = [<line1>, <line2>]
     85  RangeTabsAll
     86  call assert_equal([1, 5], lines)
     87  delcommand RangeTabsAll
     88  1tabonly
     89 
     90  s/\n/\r\r\r\r\r/
     91  2ma<
     92  $-ma>
     93  command! -range=% RangeLines :let lines = [<line1>, <line2>]
     94  '<,'>RangeLines
     95  call assert_equal([2, 5], lines)
     96  delcommand RangeLines
     97 
     98  command! -range=% -buffer LocalRangeLines :let lines = [<line1>, <line2>]
     99  '<,'>LocalRangeLines
    100  call assert_equal([2, 5], lines)
    101  delcommand LocalRangeLines
    102 endfunc
    103 
    104 func Test_command_count_2()
    105  silent! %argd
    106  arga a b c d
    107  call assert_fails('5argu', 'E16:')
    108 
    109  $argu
    110  call assert_equal('d', expand('%:t'))
    111 
    112  1argu
    113  call assert_equal('a', expand('%:t'))
    114 
    115  call assert_fails('300b', 'E16:')
    116 
    117  split|split|split|split
    118  0close
    119 
    120  $wincmd w
    121  $close
    122  call assert_equal(3, winnr())
    123 
    124  call assert_fails('$+close', 'E16:')
    125 
    126  $tabe
    127  call assert_equal(2, tabpagenr())
    128 
    129  call assert_fails('$+tabe', 'E16:')
    130 
    131  only!
    132  e x
    133  0tabm
    134  normal 1gt
    135  call assert_equal('x', expand('%:t'))
    136 
    137  tabonly!
    138  only!
    139 endfunc
    140 
    141 func Test_command_count_3()
    142  let bufnr = bufnr('%')
    143  se nohidden
    144  e aaa
    145  let buf_aaa = bufnr('%')
    146  e bbb
    147  let buf_bbb = bufnr('%')
    148  e ccc
    149  let buf_ccc = bufnr('%')
    150  exe bufnr . 'buf'
    151  call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
    152  exe buf_bbb . "," . buf_ccc . "bdelete"
    153  call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
    154  exe buf_aaa . "bdelete"
    155  call assert_equal([0, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)])
    156 endfunc
    157 
    158 func Test_command_count_4()
    159  %argd
    160  let bufnr = bufnr('$')
    161  next aa bb cc dd ee ff
    162  call assert_equal(bufnr, bufnr('%'))
    163 
    164  3argu
    165  let args = []
    166  .,$-argdo call add(args, expand('%'))
    167  call assert_equal(['cc', 'dd', 'ee'], args)
    168 
    169  " create windows to get 5
    170  split|split|split|split
    171  2wincmd w
    172  let windows = []
    173  .,$-windo call add(windows, winnr())
    174  call assert_equal([2, 3, 4], windows)
    175  only!
    176 
    177  exe bufnr . 'buf'
    178  let bufnr = bufnr('%')
    179  let buffers = []
    180  .,$-bufdo call add(buffers, bufnr('%'))
    181  call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers)
    182 
    183  exe (bufnr + 3) . 'bdel'
    184  let buffers = []
    185  exe (bufnr + 2) . ',' . (bufnr + 5) . "bufdo call add(buffers, bufnr('%'))"
    186  call assert_equal([bufnr + 2, bufnr + 4, bufnr +  5], buffers)
    187 
    188  " create tabpages to get 5
    189  tabe|tabe|tabe|tabe
    190  normal! 2gt
    191  let tabpages = []
    192  .,$-tabdo call add(tabpages, tabpagenr())
    193  call assert_equal([2, 3, 4], tabpages)
    194  tabonly!
    195  bwipe!
    196 endfunc