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