API: nvim_get_context: "opts" param

Since the parameter is already non-primitive, make it an `opts` map
instead of just a list, in case we want to extend it later.
This commit is contained in:
Justin M. Keyes
2019-09-14 18:13:02 -07:00
parent 2e0e592ea2
commit f2c75ef9b4
3 changed files with 56 additions and 25 deletions

View File

@@ -894,9 +894,17 @@ describe('API', function()
end)
describe('nvim_get_context', function()
it('returns context dictionary of current editor state', function()
local ctx_items = {'regs', 'jumps', 'buflist', 'gvars'}
eq({}, parse_context(nvim('get_context', ctx_items)))
it('validates args', function()
eq('unexpected key: blah',
pcall_err(nvim, 'get_context', {blah={}}))
eq('invalid value for key: types',
pcall_err(nvim, 'get_context', {types=42}))
eq('unexpected type: zub',
pcall_err(nvim, 'get_context', {types={'jumps', 'zub', 'zam',}}))
end)
it('returns map of current editor state', function()
local opts = {types={'regs', 'jumps', 'buflist', 'gvars'}}
eq({}, parse_context(nvim('get_context', {})))
feed('i1<cr>2<cr>3<c-[>ddddddqahjklquuu')
feed('gg')
@@ -928,19 +936,21 @@ describe('API', function()
['gvars'] = {{'one', 1}, {'Two', 2}, {'THREE', 3}},
}
eq(expected_ctx, parse_context(nvim('get_context', ctx_items)))
eq(expected_ctx, parse_context(nvim('get_context', opts)))
eq(expected_ctx, parse_context(nvim('get_context', {})))
eq(expected_ctx, parse_context(nvim('get_context', {types={}})))
end)
end)
describe('nvim_load_context', function()
it('sets current editor state to given context dictionary', function()
local ctx_items = {'regs', 'jumps', 'buflist', 'gvars'}
eq({}, parse_context(nvim('get_context', ctx_items)))
local opts = {types={'regs', 'jumps', 'buflist', 'gvars'}}
eq({}, parse_context(nvim('get_context', opts)))
nvim('set_var', 'one', 1)
nvim('set_var', 'Two', 2)
nvim('set_var', 'THREE', 3)
local ctx = nvim('get_context', ctx_items)
local ctx = nvim('get_context', opts)
nvim('set_var', 'one', 'a')
nvim('set_var', 'Two', 'b')
nvim('set_var', 'THREE', 'c')