1
-- Test for user command counts
3
local helpers = require('test.functional.helpers')
4
local clear, source, expect = helpers.clear, helpers.source, helpers.expect
5
local execute, spawn = helpers.execute, helpers.spawn
6
local nvim_prog = helpers.nvim_prog
8
describe('command_count', function()
14
it('is working', function()
15
-- It is relevant for the test to load a file initially. If this is
16
-- emulated with :arg the buffer count is wrong as nvim creates an empty
17
-- buffer if it was started without a filename.
18
local nvim2 = spawn({nvim_prog, '-u', 'NONE', '-i', 'NONE', '--embed',
19
'test_command_count.in'})
20
helpers.set_session(nvim2)
25
com -range=% RangeLines
26
\ :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>)
27
com -range -addr=arguments RangeArguments
28
\ :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>)
29
com -range=% -addr=arguments RangeArgumentsAll
30
\ :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>)
31
com -range -addr=loaded_buffers RangeLoadedBuffers
32
\ :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>)
33
com -range=% -addr=loaded_buffers RangeLoadedBuffersAll
34
\ :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>)
35
com -range -addr=buffers RangeBuffers
36
\ :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>)
37
com -range=% -addr=buffers RangeBuffersAll
38
\ :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>)
39
com -range -addr=windows RangeWindows
40
\ :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>)
41
com -range=% -addr=windows RangeWindowsAll
42
\ :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>)
43
com -range -addr=tabs RangeTabs
44
\ :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>)
45
com -range=% -addr=tabs RangeTabsAll
46
\ :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>)
49
argdo echo "loading buffers"
86
com -range=% -buffer LocalRangeLines
87
\ :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>)
94
-- This can not be in the source() call as it will produce errors.
95
execute([[let v:errmsg = '']])
97
execute([[call add(g:lines, '5argu ' . v:errmsg)]])
99
execute([[call add(g:lines, '4argu ' . expand('%:t'))]])
100
execute([[let v:errmsg = '']])
102
execute([[call add(g:lines, '1argu ' . expand('%:t'))]])
103
execute([[let v:errmsg = '']])
105
execute([[call add(g:lines, '100b ' . v:errmsg)]])
110
execute([[let v:errmsg = '']])
112
execute([[call add(g:lines, '0close ' . v:errmsg)]])
115
execute([[call add(g:lines, '$close ' . winnr())]])
116
execute([[let v:errmsg = '']])
118
execute([[call add(g:lines, '$+close ' . v:errmsg)]])
120
execute([[call add(g:lines, '$tabe ' . tabpagenr())]])
121
execute([[let v:errmsg = '']])
123
execute([[call add(g:lines, '$+tabe ' . v:errmsg)]])
129
call add(g:lines, '0tabm ' . expand('%:t'))
133
call append(0, g:lines)
141
\ 'aaa: ' . buflisted(g:buf_aaa) .
142
\ ' bbb: ' . buflisted(g:buf_bbb) .
143
\ ' ccc: ' . buflisted(g:buf_ccc))
147
let buf_aaa = bufnr('%')
149
let buf_bbb = bufnr('%')
151
let buf_ccc = bufnr('%')
154
exe buf_bbb . "," . buf_ccc . "bdelete"
156
exe buf_aaa . "bdelete"
159
call append('$', g:lines)
172
.,$-argdo let args .= ' '.expand('%')
173
call add(g:lines, 'argdo:' . args)
180
.,$-windo let windows .= ' '.winnr()
181
call add(g:lines, 'windo:'. windows)
184
.,$-bufdo let buffers .= ' '.bufnr('%')
185
call add(g:lines, 'bufdo:' . buffers)
188
3,7bufdo let buffers .= ' '.bufnr('%')
189
call add(g:lines, 'bufdo:' . buffers)
196
.,$-tabdo let tabpages .= ' '.tabpagenr()
197
call add(g:lines, 'tabdo:' . tabpages)
199
call append('$', g:lines)
202
-- Assert buffer contents.
206
RangeArgumentsAll 1 5
211
RangeLoadedBuffers 2 4
212
RangeLoadedBuffers 1 4
213
RangeLoadedBuffersAll 1 4
223
5argu E16: Invalid range
226
100b E16: Invalid range
229
$+close E16: Invalid range
231
$+tabe E16: Invalid range
239
bufdo: 2 3 4 5 6 7 8 9 10 15