aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/api')
-rw-r--r--test/functional/api/autocmd_spec.lua431
-rw-r--r--test/functional/api/buffer_spec.lua610
-rw-r--r--test/functional/api/buffer_updates_spec.lua70
-rw-r--r--test/functional/api/command_spec.lua86
-rw-r--r--test/functional/api/extmark_spec.lua74
-rw-r--r--test/functional/api/highlight_spec.lua295
-rw-r--r--test/functional/api/keymap_spec.lua334
-rw-r--r--test/functional/api/proc_spec.lua14
-rw-r--r--test/functional/api/server_notifications_spec.lua20
-rw-r--r--test/functional/api/server_requests_spec.lua92
-rw-r--r--test/functional/api/tabpage_spec.lua62
-rw-r--r--test/functional/api/ui_spec.lua26
-rw-r--r--test/functional/api/version_spec.lua47
-rw-r--r--test/functional/api/vim_spec.lua1616
-rw-r--r--test/functional/api/window_spec.lua604
15 files changed, 2155 insertions, 2226 deletions
diff --git a/test/functional/api/autocmd_spec.lua b/test/functional/api/autocmd_spec.lua
index 47cb8bfd54..e89abf6c64 100644
--- a/test/functional/api/autocmd_spec.lua
+++ b/test/functional/api/autocmd_spec.lua
@@ -6,7 +6,7 @@ local eq = helpers.eq
local neq = helpers.neq
local exec_lua = helpers.exec_lua
local matches = helpers.matches
-local meths = helpers.meths
+local api = helpers.api
local source = helpers.source
local pcall_err = helpers.pcall_err
@@ -17,7 +17,7 @@ describe('autocmd api', function()
it('validation', function()
eq(
"Cannot use both 'callback' and 'command'",
- pcall_err(meths.nvim_create_autocmd, 'BufReadPost', {
+ pcall_err(api.nvim_create_autocmd, 'BufReadPost', {
pattern = '*.py,*.pyi',
command = "echo 'Should Have Errored",
callback = 'NotAllowed',
@@ -25,7 +25,7 @@ describe('autocmd api', function()
)
eq(
"Cannot use both 'pattern' and 'buffer' for the same autocmd",
- pcall_err(meths.nvim_create_autocmd, 'FileType', {
+ pcall_err(api.nvim_create_autocmd, 'FileType', {
command = 'let g:called = g:called + 1',
buffer = 0,
pattern = '*.py',
@@ -33,48 +33,48 @@ describe('autocmd api', function()
)
eq(
"Required: 'event'",
- pcall_err(meths.nvim_create_autocmd, {}, {
+ pcall_err(api.nvim_create_autocmd, {}, {
command = 'ls',
})
)
- eq("Required: 'command' or 'callback'", pcall_err(meths.nvim_create_autocmd, 'FileType', {}))
+ eq("Required: 'command' or 'callback'", pcall_err(api.nvim_create_autocmd, 'FileType', {}))
eq(
"Invalid 'desc': expected String, got Integer",
- pcall_err(meths.nvim_create_autocmd, 'FileType', {
+ pcall_err(api.nvim_create_autocmd, 'FileType', {
command = 'ls',
desc = 42,
})
)
eq(
"Invalid 'callback': expected Lua function or Vim function name, got Integer",
- pcall_err(meths.nvim_create_autocmd, 'FileType', {
+ pcall_err(api.nvim_create_autocmd, 'FileType', {
callback = 0,
})
)
eq(
"Invalid 'event' item: expected String, got Array",
- pcall_err(meths.nvim_create_autocmd, { 'FileType', {} }, {})
+ pcall_err(api.nvim_create_autocmd, { 'FileType', {} }, {})
)
eq(
"Invalid 'group': 0",
- pcall_err(meths.nvim_create_autocmd, 'FileType', {
+ pcall_err(api.nvim_create_autocmd, 'FileType', {
group = 0,
command = 'ls',
})
)
- eq("Invalid 'event': 'foo'", pcall_err(meths.nvim_create_autocmd, 'foo', { command = '' }))
+ eq("Invalid 'event': 'foo'", pcall_err(api.nvim_create_autocmd, 'foo', { command = '' }))
eq(
"Invalid 'event': 'VimEnter '",
- pcall_err(meths.nvim_create_autocmd, 'VimEnter ', { command = '' })
+ pcall_err(api.nvim_create_autocmd, 'VimEnter ', { command = '' })
)
eq(
"Invalid 'event': 'VimEnter foo'",
- pcall_err(meths.nvim_create_autocmd, 'VimEnter foo', { command = '' })
+ pcall_err(api.nvim_create_autocmd, 'VimEnter foo', { command = '' })
)
eq(
"Invalid 'event': 'BufAdd,BufDelete'",
- pcall_err(meths.nvim_create_autocmd, 'BufAdd,BufDelete', { command = '' })
+ pcall_err(api.nvim_create_autocmd, 'BufAdd,BufDelete', { command = '' })
)
end)
@@ -102,25 +102,25 @@ describe('autocmd api', function()
end)
it('allows passing buffer by key', function()
- meths.nvim_set_var('called', 0)
+ api.nvim_set_var('called', 0)
- meths.nvim_create_autocmd('FileType', {
+ api.nvim_create_autocmd('FileType', {
command = 'let g:called = g:called + 1',
buffer = 0,
})
command 'set filetype=txt'
- eq(1, meths.nvim_get_var('called'))
+ eq(1, api.nvim_get_var('called'))
-- switch to a new buffer
command 'new'
command 'set filetype=python'
- eq(1, meths.nvim_get_var('called'))
+ eq(1, api.nvim_get_var('called'))
end)
it('does not allow passing invalid buffers', function()
- local ok, msg = pcall(meths.nvim_create_autocmd, 'FileType', {
+ local ok, msg = pcall(api.nvim_create_autocmd, 'FileType', {
command = 'let g:called = g:called + 1',
buffer = -1,
})
@@ -145,7 +145,7 @@ describe('autocmd api', function()
end)
it('allow passing pattern and <buffer> in same pattern', function()
- local ok = pcall(meths.nvim_create_autocmd, 'BufReadPost', {
+ local ok = pcall(api.nvim_create_autocmd, 'BufReadPost', {
pattern = '*.py,<buffer>',
command = "echo 'Should Not Error'",
})
@@ -154,42 +154,42 @@ describe('autocmd api', function()
end)
it('should handle multiple values as comma separated list', function()
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = '*.py,*.pyi',
command = "echo 'Should Not Have Errored'",
})
-- We should have one autocmd for *.py and one for *.pyi
- eq(2, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(2, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
it('should handle multiple values as array', function()
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = { '*.py', '*.pyi' },
command = "echo 'Should Not Have Errored'",
})
-- We should have one autocmd for *.py and one for *.pyi
- eq(2, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(2, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
describe('desc', function()
it('can add description to one autocmd', function()
local cmd = "echo 'Should Not Have Errored'"
local desc = 'Can show description'
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = '*.py',
command = cmd,
desc = desc,
})
- eq(desc, meths.nvim_get_autocmds { event = 'BufReadPost' }[1].desc)
- eq(cmd, meths.nvim_get_autocmds { event = 'BufReadPost' }[1].command)
+ eq(desc, api.nvim_get_autocmds { event = 'BufReadPost' }[1].desc)
+ eq(cmd, api.nvim_get_autocmds { event = 'BufReadPost' }[1].command)
end)
it('can add description to one autocmd that uses a callback', function()
local desc = 'Can show description'
- meths.nvim_set_var('desc', desc)
+ api.nvim_set_var('desc', desc)
local result = exec_lua([[
local callback = function() print 'Should Not Have Errored' end
@@ -218,17 +218,17 @@ describe('autocmd api', function()
})
]])
- eq(nil, meths.nvim_get_autocmds({ event = 'BufReadPost' })[1].desc)
+ eq(nil, api.nvim_get_autocmds({ event = 'BufReadPost' })[1].desc)
end)
it('can add description to multiple autocmd', function()
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = { '*.py', '*.pyi' },
command = "echo 'Should Not Have Errored'",
desc = 'Can show description',
})
- local aus = meths.nvim_get_autocmds { event = 'BufReadPost' }
+ local aus = api.nvim_get_autocmds { event = 'BufReadPost' }
eq(2, #aus)
eq('Can show description', aus[1].desc)
eq('Can show description', aus[2].desc)
@@ -237,19 +237,19 @@ describe('autocmd api', function()
pending('script and verbose settings', function()
it('marks API client', function()
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = '*.py',
command = "echo 'Should Not Have Errored'",
desc = 'Can show description',
})
- local aus = meths.nvim_get_autocmds { event = 'BufReadPost' }
+ local aus = api.nvim_get_autocmds { event = 'BufReadPost' }
eq(1, #aus, aus)
end)
end)
it('removes an autocommand if the callback returns true', function()
- meths.nvim_set_var('some_condition', false)
+ api.nvim_set_var('some_condition', false)
exec_lua [[
vim.api.nvim_create_autocmd("User", {
@@ -261,21 +261,21 @@ describe('autocmd api', function()
})
]]
- meths.nvim_exec_autocmds('User', { pattern = 'Test' })
+ api.nvim_exec_autocmds('User', { pattern = 'Test' })
- local aus = meths.nvim_get_autocmds({ event = 'User', pattern = 'Test' })
+ local aus = api.nvim_get_autocmds({ event = 'User', pattern = 'Test' })
local first = aus[1]
eq(true, first.id > 0)
- meths.nvim_set_var('some_condition', true)
- meths.nvim_exec_autocmds('User', { pattern = 'Test' })
- eq({}, meths.nvim_get_autocmds({ event = 'User', pattern = 'Test' }))
+ api.nvim_set_var('some_condition', true)
+ api.nvim_exec_autocmds('User', { pattern = 'Test' })
+ eq({}, api.nvim_get_autocmds({ event = 'User', pattern = 'Test' }))
end)
it('receives an args table', function()
- local group_id = meths.nvim_create_augroup('TestGroup', {})
+ local group_id = api.nvim_create_augroup('TestGroup', {})
-- Having an existing autocmd calling expand("<afile>") shouldn't change args #18964
- meths.nvim_create_autocmd('User', {
+ api.nvim_create_autocmd('User', {
group = 'TestGroup',
pattern = 'Te*',
command = 'call expand("<afile>")',
@@ -291,7 +291,7 @@ describe('autocmd api', function()
})
]]
- meths.nvim_exec_autocmds('User', { pattern = 'Test pattern' })
+ api.nvim_exec_autocmds('User', { pattern = 'Test pattern' })
eq({
id = autocmd_id,
group = group_id,
@@ -299,7 +299,7 @@ describe('autocmd api', function()
match = 'Test pattern',
file = 'Test pattern',
buf = 1,
- }, meths.nvim_get_var('autocmd_args'))
+ }, api.nvim_get_var('autocmd_args'))
-- Test without a group
autocmd_id = exec_lua [[
@@ -311,7 +311,7 @@ describe('autocmd api', function()
})
]]
- meths.nvim_exec_autocmds('User', { pattern = 'some_pat' })
+ api.nvim_exec_autocmds('User', { pattern = 'some_pat' })
eq({
id = autocmd_id,
group = nil,
@@ -319,7 +319,7 @@ describe('autocmd api', function()
match = 'some_pat',
file = 'some_pat',
buf = 1,
- }, meths.nvim_get_var('autocmd_args'))
+ }, api.nvim_get_var('autocmd_args'))
end)
it('can receive arbitrary data', function()
@@ -361,43 +361,43 @@ describe('autocmd api', function()
it('validation', function()
eq(
"Invalid 'group': 9997999",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
group = 9997999,
})
)
eq(
"Invalid 'group': 'bogus'",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
group = 'bogus',
})
)
eq(
"Invalid 'group': 0",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
group = 0,
})
)
eq(
"Invalid 'group': expected String or Integer, got Array",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
group = {},
})
)
eq(
"Invalid 'buffer': expected Integer or Array, got Boolean",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
buffer = true,
})
)
eq(
"Invalid 'event': expected String or Array",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
event = true,
})
)
eq(
"Invalid 'pattern': expected String or Array, got Boolean",
- pcall_err(meths.nvim_get_autocmds, {
+ pcall_err(api.nvim_get_autocmds, {
pattern = true,
})
)
@@ -408,7 +408,7 @@ describe('autocmd api', function()
command [[au! InsertEnter]]
command [[au InsertEnter * :echo "1"]]
- local aus = meths.nvim_get_autocmds { event = 'InsertEnter' }
+ local aus = api.nvim_get_autocmds { event = 'InsertEnter' }
eq(1, #aus)
end)
@@ -417,7 +417,7 @@ describe('autocmd api', function()
command [[au InsertEnter * :echo "1"]]
command [[au InsertEnter * :echo "2"]]
- local aus = meths.nvim_get_autocmds { event = 'InsertEnter' }
+ local aus = api.nvim_get_autocmds { event = 'InsertEnter' }
eq(2, #aus)
end)
@@ -426,8 +426,8 @@ describe('autocmd api', function()
command [[au InsertEnter * :echo "1"]]
command [[au InsertEnter * :echo "2"]]
- local string_aus = meths.nvim_get_autocmds { event = 'InsertEnter' }
- local array_aus = meths.nvim_get_autocmds { event = { 'InsertEnter' } }
+ local string_aus = api.nvim_get_autocmds { event = 'InsertEnter' }
+ local array_aus = api.nvim_get_autocmds { event = { 'InsertEnter' } }
eq(string_aus, array_aus)
end)
@@ -437,7 +437,7 @@ describe('autocmd api', function()
command [[au InsertEnter * :echo "1"]]
command [[au InsertEnter * :echo "2"]]
- local aus = meths.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
+ local aus = api.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
eq(2, #aus)
end)
@@ -451,7 +451,7 @@ describe('autocmd api', function()
\ })
]]
- local aus = meths.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
+ local aus = api.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
local first = aus[1]
eq(first.id, nil)
@@ -459,8 +459,8 @@ describe('autocmd api', function()
local second = aus[2]
neq(second.id, nil)
- meths.nvim_del_autocmd(second.id)
- local new_aus = meths.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
+ api.nvim_del_autocmd(second.id)
+ local new_aus = api.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
eq(1, #new_aus)
eq(first, new_aus[1])
end)
@@ -469,7 +469,7 @@ describe('autocmd api', function()
command [[au! InsertEnter]]
command [[au InsertEnter * :echo "1"]]
- local aus = meths.nvim_get_autocmds { event = 'InsertEnter' }
+ local aus = api.nvim_get_autocmds { event = 'InsertEnter' }
eq({
{
buflocal = false,
@@ -487,7 +487,7 @@ describe('autocmd api', function()
command [[au InsertEnter <buffer=1> :echo "1"]]
command [[au InsertEnter <buffer=2> :echo "2"]]
- local aus = meths.nvim_get_autocmds { event = 'InsertEnter', buffer = 0 }
+ local aus = api.nvim_get_autocmds { event = 'InsertEnter', buffer = 0 }
eq({
{
buffer = 2,
@@ -499,7 +499,7 @@ describe('autocmd api', function()
},
}, aus)
- aus = meths.nvim_get_autocmds { event = 'InsertEnter', buffer = 1 }
+ aus = api.nvim_get_autocmds { event = 'InsertEnter', buffer = 1 }
eq({
{
buffer = 1,
@@ -511,7 +511,7 @@ describe('autocmd api', function()
},
}, aus)
- aus = meths.nvim_get_autocmds { event = 'InsertEnter', buffer = { 1, 2 } }
+ aus = api.nvim_get_autocmds { event = 'InsertEnter', buffer = { 1, 2 } }
eq({
{
buffer = 1,
@@ -533,50 +533,50 @@ describe('autocmd api', function()
eq(
"Invalid 'buffer': expected Integer or Array, got String",
- pcall_err(meths.nvim_get_autocmds, { event = 'InsertEnter', buffer = 'foo' })
+ pcall_err(api.nvim_get_autocmds, { event = 'InsertEnter', buffer = 'foo' })
)
eq(
"Invalid 'buffer': expected Integer, got String",
- pcall_err(meths.nvim_get_autocmds, { event = 'InsertEnter', buffer = { 'foo', 42 } })
+ pcall_err(api.nvim_get_autocmds, { event = 'InsertEnter', buffer = { 'foo', 42 } })
)
eq(
'Invalid buffer id: 42',
- pcall_err(meths.nvim_get_autocmds, { event = 'InsertEnter', buffer = { 42 } })
+ pcall_err(api.nvim_get_autocmds, { event = 'InsertEnter', buffer = { 42 } })
)
local bufs = {}
for _ = 1, 257 do
- table.insert(bufs, meths.nvim_create_buf(true, false))
+ table.insert(bufs, api.nvim_create_buf(true, false))
end
eq(
'Too many buffers (maximum of 256)',
- pcall_err(meths.nvim_get_autocmds, { event = 'InsertEnter', buffer = bufs })
+ pcall_err(api.nvim_get_autocmds, { event = 'InsertEnter', buffer = bufs })
)
end)
it('returns autocmds when group is specified by id', function()
- local auid = meths.nvim_create_augroup('nvim_test_augroup', { clear = true })
- meths.nvim_create_autocmd('FileType', { group = auid, command = 'echo "1"' })
- meths.nvim_create_autocmd('FileType', { group = auid, command = 'echo "2"' })
+ local auid = api.nvim_create_augroup('nvim_test_augroup', { clear = true })
+ api.nvim_create_autocmd('FileType', { group = auid, command = 'echo "1"' })
+ api.nvim_create_autocmd('FileType', { group = auid, command = 'echo "2"' })
- local aus = meths.nvim_get_autocmds { group = auid }
+ local aus = api.nvim_get_autocmds { group = auid }
eq(2, #aus)
- local aus2 = meths.nvim_get_autocmds { group = auid, event = 'InsertEnter' }
+ local aus2 = api.nvim_get_autocmds { group = auid, event = 'InsertEnter' }
eq(0, #aus2)
end)
it('returns autocmds when group is specified by name', function()
local auname = 'nvim_test_augroup'
- meths.nvim_create_augroup(auname, { clear = true })
- meths.nvim_create_autocmd('FileType', { group = auname, command = 'echo "1"' })
- meths.nvim_create_autocmd('FileType', { group = auname, command = 'echo "2"' })
+ api.nvim_create_augroup(auname, { clear = true })
+ api.nvim_create_autocmd('FileType', { group = auname, command = 'echo "1"' })
+ api.nvim_create_autocmd('FileType', { group = auname, command = 'echo "2"' })
- local aus = meths.nvim_get_autocmds { group = auname }
+ local aus = api.nvim_get_autocmds { group = auname }
eq(2, #aus)
- local aus2 = meths.nvim_get_autocmds { group = auname, event = 'InsertEnter' }
+ local aus2 = api.nvim_get_autocmds { group = auname, event = 'InsertEnter' }
eq(0, #aus2)
end)
@@ -609,7 +609,7 @@ describe('autocmd api', function()
it('can retrieve a callback from an autocmd', function()
local content = 'I Am A Callback'
- meths.nvim_set_var('content', content)
+ api.nvim_set_var('content', content)
local result = exec_lua([[
local cb = function() return vim.g.content end
@@ -671,7 +671,7 @@ describe('autocmd api', function()
end)
it('returns all groups if no group is specified', function()
- local aus = meths.nvim_get_autocmds { event = 'InsertEnter' }
+ local aus = api.nvim_get_autocmds { event = 'InsertEnter' }
if #aus ~= 4 then
eq({}, aus)
end
@@ -680,7 +680,7 @@ describe('autocmd api', function()
end)
it('returns only the group specified', function()
- local aus = meths.nvim_get_autocmds {
+ local aus = api.nvim_get_autocmds {
event = 'InsertEnter',
group = 'GroupOne',
}
@@ -691,7 +691,7 @@ describe('autocmd api', function()
end)
it('returns only the group specified, multiple values', function()
- local aus = meths.nvim_get_autocmds {
+ local aus = api.nvim_get_autocmds {
event = 'InsertEnter',
group = 'GroupTwo',
}
@@ -706,7 +706,7 @@ describe('autocmd api', function()
describe('groups: 2', function()
it('raises error for undefined augroup name', function()
- local success, code = unpack(meths.nvim_exec_lua(
+ local success, code = unpack(api.nvim_exec_lua(
[[
return {pcall(function()
vim.api.nvim_create_autocmd("FileType", {
@@ -724,7 +724,7 @@ describe('autocmd api', function()
end)
it('raises error for undefined augroup id', function()
- local success, code = unpack(meths.nvim_exec_lua(
+ local success, code = unpack(api.nvim_exec_lua(
[[
return {pcall(function()
-- Make sure the augroup is deleted
@@ -745,7 +745,7 @@ describe('autocmd api', function()
end)
it('raises error for invalid group type', function()
- local success, code = unpack(meths.nvim_exec_lua(
+ local success, code = unpack(api.nvim_exec_lua(
[[
return {pcall(function()
vim.api.nvim_create_autocmd("FileType", {
@@ -763,7 +763,7 @@ describe('autocmd api', function()
end)
it('raises error for invalid pattern array', function()
- local success, code = unpack(meths.nvim_exec_lua(
+ local success, code = unpack(api.nvim_exec_lua(
[[
return {pcall(function()
vim.api.nvim_create_autocmd("FileType", {
@@ -792,7 +792,7 @@ describe('autocmd api', function()
end)
it('returns for literal match', function()
- local aus = meths.nvim_get_autocmds {
+ local aus = api.nvim_get_autocmds {
event = 'InsertEnter',
pattern = '*',
}
@@ -803,7 +803,7 @@ describe('autocmd api', function()
it('returns for multiple matches', function()
-- vim.api.nvim_get_autocmds
- local aus = meths.nvim_get_autocmds {
+ local aus = api.nvim_get_autocmds {
event = 'InsertEnter',
pattern = { '*.one', '*.two' },
}
@@ -815,17 +815,17 @@ describe('autocmd api', function()
end)
it('should work for buffer autocmds', function()
- local normalized_aus = meths.nvim_get_autocmds {
+ local normalized_aus = api.nvim_get_autocmds {
event = 'InsertEnter',
pattern = '<buffer=1>',
}
- local raw_aus = meths.nvim_get_autocmds {
+ local raw_aus = api.nvim_get_autocmds {
event = 'InsertEnter',
pattern = '<buffer>',
}
- local zero_aus = meths.nvim_get_autocmds {
+ local zero_aus = api.nvim_get_autocmds {
event = 'InsertEnter',
pattern = '<buffer=0>',
}
@@ -841,110 +841,110 @@ describe('autocmd api', function()
it('validation', function()
eq(
"Invalid 'group': 9997999",
- pcall_err(meths.nvim_exec_autocmds, 'FileType', {
+ pcall_err(api.nvim_exec_autocmds, 'FileType', {
group = 9997999,
})
)
eq(
"Invalid 'group': 'bogus'",
- pcall_err(meths.nvim_exec_autocmds, 'FileType', {
+ pcall_err(api.nvim_exec_autocmds, 'FileType', {
group = 'bogus',
})
)
eq(
"Invalid 'group': expected String or Integer, got Array",
- pcall_err(meths.nvim_exec_autocmds, 'FileType', {
+ pcall_err(api.nvim_exec_autocmds, 'FileType', {
group = {},
})
)
eq(
"Invalid 'group': 0",
- pcall_err(meths.nvim_exec_autocmds, 'FileType', {
+ pcall_err(api.nvim_exec_autocmds, 'FileType', {
group = 0,
})
)
eq(
"Invalid 'buffer': expected Buffer, got Array",
- pcall_err(meths.nvim_exec_autocmds, 'FileType', {
+ pcall_err(api.nvim_exec_autocmds, 'FileType', {
buffer = {},
})
)
eq(
"Invalid 'event' item: expected String, got Array",
- pcall_err(meths.nvim_exec_autocmds, { 'FileType', {} }, {})
+ pcall_err(api.nvim_exec_autocmds, { 'FileType', {} }, {})
)
end)
it('can trigger builtin autocmds', function()
- meths.nvim_set_var('autocmd_executed', false)
+ api.nvim_set_var('autocmd_executed', false)
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = '*',
command = 'let g:autocmd_executed = v:true',
})
- eq(false, meths.nvim_get_var('autocmd_executed'))
- meths.nvim_exec_autocmds('BufReadPost', {})
- eq(true, meths.nvim_get_var('autocmd_executed'))
+ eq(false, api.nvim_get_var('autocmd_executed'))
+ api.nvim_exec_autocmds('BufReadPost', {})
+ eq(true, api.nvim_get_var('autocmd_executed'))
end)
it('can trigger multiple patterns', function()
- meths.nvim_set_var('autocmd_executed', 0)
+ api.nvim_set_var('autocmd_executed', 0)
- meths.nvim_create_autocmd('BufReadPost', {
+ api.nvim_create_autocmd('BufReadPost', {
pattern = '*',
command = 'let g:autocmd_executed += 1',
})
- meths.nvim_exec_autocmds('BufReadPost', { pattern = { '*.lua', '*.vim' } })
- eq(2, meths.nvim_get_var('autocmd_executed'))
+ api.nvim_exec_autocmds('BufReadPost', { pattern = { '*.lua', '*.vim' } })
+ eq(2, api.nvim_get_var('autocmd_executed'))
- meths.nvim_create_autocmd('BufReadPre', {
+ api.nvim_create_autocmd('BufReadPre', {
pattern = { 'bar', 'foo' },
command = 'let g:autocmd_executed += 10',
})
- meths.nvim_exec_autocmds('BufReadPre', { pattern = { 'foo', 'bar', 'baz', 'frederick' } })
- eq(22, meths.nvim_get_var('autocmd_executed'))
+ api.nvim_exec_autocmds('BufReadPre', { pattern = { 'foo', 'bar', 'baz', 'frederick' } })
+ eq(22, api.nvim_get_var('autocmd_executed'))
end)
it('can pass the buffer', function()
- meths.nvim_set_var('buffer_executed', -1)
- eq(-1, meths.nvim_get_var('buffer_executed'))
+ api.nvim_set_var('buffer_executed', -1)
+ eq(-1, api.nvim_get_var('buffer_executed'))
- meths.nvim_create_autocmd('BufLeave', {
+ api.nvim_create_autocmd('BufLeave', {
pattern = '*',
command = 'let g:buffer_executed = +expand("<abuf>")',
})
-- Doesn't execute for other non-matching events
- meths.nvim_exec_autocmds('CursorHold', { buffer = 1 })
- eq(-1, meths.nvim_get_var('buffer_executed'))
+ api.nvim_exec_autocmds('CursorHold', { buffer = 1 })
+ eq(-1, api.nvim_get_var('buffer_executed'))
- meths.nvim_exec_autocmds('BufLeave', { buffer = 1 })
- eq(1, meths.nvim_get_var('buffer_executed'))
+ api.nvim_exec_autocmds('BufLeave', { buffer = 1 })
+ eq(1, api.nvim_get_var('buffer_executed'))
end)
it('can pass the filename, pattern match', function()
- meths.nvim_set_var('filename_executed', 'none')
- eq('none', meths.nvim_get_var('filename_executed'))
+ api.nvim_set_var('filename_executed', 'none')
+ eq('none', api.nvim_get_var('filename_executed'))
- meths.nvim_create_autocmd('BufEnter', {
+ api.nvim_create_autocmd('BufEnter', {
pattern = '*.py',
command = 'let g:filename_executed = expand("<afile>")',
})
-- Doesn't execute for other non-matching events
- meths.nvim_exec_autocmds('CursorHold', { buffer = 1 })
- eq('none', meths.nvim_get_var('filename_executed'))
+ api.nvim_exec_autocmds('CursorHold', { buffer = 1 })
+ eq('none', api.nvim_get_var('filename_executed'))
command('edit __init__.py')
- eq('__init__.py', meths.nvim_get_var('filename_executed'))
+ eq('__init__.py', api.nvim_get_var('filename_executed'))
end)
it('cannot pass buf and fname', function()
local ok = pcall(
- meths.nvim_exec_autocmds,
+ api.nvim_exec_autocmds,
'BufReadPre',
{ pattern = 'literally_cannot_error.rs', buffer = 1 }
)
@@ -952,73 +952,73 @@ describe('autocmd api', function()
end)
it('can pass the filename, exact match', function()
- meths.nvim_set_var('filename_executed', 'none')
- eq('none', meths.nvim_get_var('filename_executed'))
+ api.nvim_set_var('filename_executed', 'none')
+ eq('none', api.nvim_get_var('filename_executed'))
command('edit other_file.txt')
command('edit __init__.py')
- eq('none', meths.nvim_get_var('filename_executed'))
+ eq('none', api.nvim_get_var('filename_executed'))
- meths.nvim_create_autocmd('CursorHoldI', {
+ api.nvim_create_autocmd('CursorHoldI', {
pattern = '__init__.py',
command = 'let g:filename_executed = expand("<afile>")',
})
-- Doesn't execute for other non-matching events
- meths.nvim_exec_autocmds('CursorHoldI', { buffer = 1 })
- eq('none', meths.nvim_get_var('filename_executed'))
+ api.nvim_exec_autocmds('CursorHoldI', { buffer = 1 })
+ eq('none', api.nvim_get_var('filename_executed'))
- meths.nvim_exec_autocmds('CursorHoldI', { buffer = meths.nvim_get_current_buf() })
- eq('__init__.py', meths.nvim_get_var('filename_executed'))
+ api.nvim_exec_autocmds('CursorHoldI', { buffer = api.nvim_get_current_buf() })
+ eq('__init__.py', api.nvim_get_var('filename_executed'))
-- Reset filename
- meths.nvim_set_var('filename_executed', 'none')
+ api.nvim_set_var('filename_executed', 'none')
- meths.nvim_exec_autocmds('CursorHoldI', { pattern = '__init__.py' })
- eq('__init__.py', meths.nvim_get_var('filename_executed'))
+ api.nvim_exec_autocmds('CursorHoldI', { pattern = '__init__.py' })
+ eq('__init__.py', api.nvim_get_var('filename_executed'))
end)
it('works with user autocmds', function()
- meths.nvim_set_var('matched', 'none')
+ api.nvim_set_var('matched', 'none')
- meths.nvim_create_autocmd('User', {
+ api.nvim_create_autocmd('User', {
pattern = 'TestCommand',
command = 'let g:matched = "matched"',
})
- meths.nvim_exec_autocmds('User', { pattern = 'OtherCommand' })
- eq('none', meths.nvim_get_var('matched'))
- meths.nvim_exec_autocmds('User', { pattern = 'TestCommand' })
- eq('matched', meths.nvim_get_var('matched'))
+ api.nvim_exec_autocmds('User', { pattern = 'OtherCommand' })
+ eq('none', api.nvim_get_var('matched'))
+ api.nvim_exec_autocmds('User', { pattern = 'TestCommand' })
+ eq('matched', api.nvim_get_var('matched'))
end)
it('can pass group by id', function()
- meths.nvim_set_var('group_executed', false)
+ api.nvim_set_var('group_executed', false)
- local auid = meths.nvim_create_augroup('nvim_test_augroup', { clear = true })
- meths.nvim_create_autocmd('FileType', {
+ local auid = api.nvim_create_augroup('nvim_test_augroup', { clear = true })
+ api.nvim_create_autocmd('FileType', {
group = auid,
command = 'let g:group_executed = v:true',
})
- eq(false, meths.nvim_get_var('group_executed'))
- meths.nvim_exec_autocmds('FileType', { group = auid })
- eq(true, meths.nvim_get_var('group_executed'))
+ eq(false, api.nvim_get_var('group_executed'))
+ api.nvim_exec_autocmds('FileType', { group = auid })
+ eq(true, api.nvim_get_var('group_executed'))
end)
it('can pass group by name', function()
- meths.nvim_set_var('group_executed', false)
+ api.nvim_set_var('group_executed', false)
local auname = 'nvim_test_augroup'
- meths.nvim_create_augroup(auname, { clear = true })
- meths.nvim_create_autocmd('FileType', {
+ api.nvim_create_augroup(auname, { clear = true })
+ api.nvim_create_autocmd('FileType', {
group = auname,
command = 'let g:group_executed = v:true',
})
- eq(false, meths.nvim_get_var('group_executed'))
- meths.nvim_exec_autocmds('FileType', { group = auname })
- eq(true, meths.nvim_get_var('group_executed'))
+ eq(false, api.nvim_get_var('group_executed'))
+ api.nvim_exec_autocmds('FileType', { group = auname })
+ eq(true, api.nvim_get_var('group_executed'))
end)
end)
@@ -1026,7 +1026,7 @@ describe('autocmd api', function()
before_each(function()
clear()
- meths.nvim_set_var('executed', 0)
+ api.nvim_set_var('executed', 0)
end)
local make_counting_autocmd = function(opts)
@@ -1040,7 +1040,7 @@ describe('autocmd api', function()
resulting.group = opts.group
resulting.once = opts.once
- meths.nvim_create_autocmd('FileType', resulting)
+ api.nvim_create_autocmd('FileType', resulting)
end
local set_ft = function(ft)
@@ -1049,12 +1049,12 @@ describe('autocmd api', function()
end
local get_executed_count = function()
- return meths.nvim_get_var('executed')
+ return api.nvim_get_var('executed')
end
it('can be added in a group', function()
local augroup = 'TestGroup'
- meths.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_augroup(augroup, { clear = true })
make_counting_autocmd { group = augroup }
set_ft('txt')
@@ -1083,7 +1083,7 @@ describe('autocmd api', function()
end)
it('errors on unexpected keys', function()
- local success, code = pcall(meths.nvim_create_autocmd, 'FileType', {
+ local success, code = pcall(api.nvim_create_autocmd, 'FileType', {
pattern = '*',
not_a_valid_key = 'NotDefined',
})
@@ -1190,8 +1190,8 @@ describe('autocmd api', function()
it('groups can be cleared', function()
local augroup = 'TestGroup'
- meths.nvim_create_augroup(augroup, { clear = true })
- meths.nvim_create_autocmd('FileType', {
+ api.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_autocmd('FileType', {
group = augroup,
command = 'let g:executed = g:executed + 1',
})
@@ -1200,8 +1200,8 @@ describe('autocmd api', function()
set_ft('txt')
eq(2, get_executed_count(), 'should only count twice')
- meths.nvim_create_augroup(augroup, { clear = true })
- eq({}, meths.nvim_get_autocmds { group = augroup })
+ api.nvim_create_augroup(augroup, { clear = true })
+ eq({}, api.nvim_get_autocmds { group = augroup })
set_ft('txt')
set_ft('txt')
@@ -1210,22 +1210,22 @@ describe('autocmd api', function()
it('can delete non-existent groups with pcall', function()
eq(false, exec_lua [[return pcall(vim.api.nvim_del_augroup_by_name, 'noexist')]])
- eq('Vim:E367: No such group: "noexist"', pcall_err(meths.nvim_del_augroup_by_name, 'noexist'))
+ eq('Vim:E367: No such group: "noexist"', pcall_err(api.nvim_del_augroup_by_name, 'noexist'))
eq(false, exec_lua [[return pcall(vim.api.nvim_del_augroup_by_id, -12342)]])
- eq('Vim:E367: No such group: "--Deleted--"', pcall_err(meths.nvim_del_augroup_by_id, -12312))
+ eq('Vim:E367: No such group: "--Deleted--"', pcall_err(api.nvim_del_augroup_by_id, -12312))
eq(false, exec_lua [[return pcall(vim.api.nvim_del_augroup_by_id, 0)]])
- eq('Vim:E367: No such group: "[NULL]"', pcall_err(meths.nvim_del_augroup_by_id, 0))
+ eq('Vim:E367: No such group: "[NULL]"', pcall_err(api.nvim_del_augroup_by_id, 0))
eq(false, exec_lua [[return pcall(vim.api.nvim_del_augroup_by_id, 12342)]])
- eq('Vim:E367: No such group: "[NULL]"', pcall_err(meths.nvim_del_augroup_by_id, 12312))
+ eq('Vim:E367: No such group: "[NULL]"', pcall_err(api.nvim_del_augroup_by_id, 12312))
end)
it('groups work with once', function()
local augroup = 'TestGroup'
- meths.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_augroup(augroup, { clear = true })
make_counting_autocmd { group = augroup, once = true }
set_ft('txt')
@@ -1237,7 +1237,7 @@ describe('autocmd api', function()
it('autocmds can be registered multiple times.', function()
local augroup = 'TestGroup'
- meths.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_augroup(augroup, { clear = true })
make_counting_autocmd { group = augroup, once = false }
make_counting_autocmd { group = augroup, once = false }
make_counting_autocmd { group = augroup, once = false }
@@ -1251,16 +1251,16 @@ describe('autocmd api', function()
it('can be deleted', function()
local augroup = 'WillBeDeleted'
- meths.nvim_create_augroup(augroup, { clear = true })
- meths.nvim_create_autocmd({ 'FileType' }, {
+ api.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_autocmd({ 'FileType' }, {
pattern = '*',
command = "echo 'does not matter'",
})
-- Clears the augroup from before, which erases the autocmd
- meths.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_augroup(augroup, { clear = true })
- local result = #meths.nvim_get_autocmds { group = augroup }
+ local result = #api.nvim_get_autocmds { group = augroup }
eq(0, result)
end)
@@ -1268,10 +1268,10 @@ describe('autocmd api', function()
it('can be used for buffer local autocmds', function()
local augroup = 'WillBeDeleted'
- meths.nvim_set_var('value_set', false)
+ api.nvim_set_var('value_set', false)
- meths.nvim_create_augroup(augroup, { clear = true })
- meths.nvim_create_autocmd('FileType', {
+ api.nvim_create_augroup(augroup, { clear = true })
+ api.nvim_create_autocmd('FileType', {
pattern = '<buffer>',
command = 'let g:value_set = v:true',
})
@@ -1279,7 +1279,7 @@ describe('autocmd api', function()
command 'new'
command 'set filetype=python'
- eq(false, meths.nvim_get_var('value_set'))
+ eq(false, api.nvim_get_var('value_set'))
end)
it('can accept vimscript functions', function()
@@ -1302,7 +1302,7 @@ describe('autocmd api', function()
set filetype=txt
]]
- eq(2, meths.nvim_get_var('vimscript_executed'))
+ eq(2, api.nvim_get_var('vimscript_executed'))
end)
end)
@@ -1314,11 +1314,11 @@ describe('autocmd api', function()
command('augroup! TEMP_A')
- eq(false, pcall(meths.nvim_get_autocmds, { group = 'TEMP_A' }))
+ eq(false, pcall(api.nvim_get_autocmds, { group = 'TEMP_A' }))
-- For some reason, augroup! doesn't clear the autocmds themselves, which is just wild
-- but we managed to keep this behavior.
- eq(1, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(1, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
it('legacy: remove augroups that have no autocmds', function()
@@ -1327,8 +1327,8 @@ describe('autocmd api', function()
command('augroup! TEMP_AB')
- eq(false, pcall(meths.nvim_get_autocmds, { group = 'TEMP_AB' }))
- eq(0, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(false, pcall(api.nvim_get_autocmds, { group = 'TEMP_AB' }))
+ eq(0, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
it('legacy: multiple remove and add augroup', function()
@@ -1340,7 +1340,7 @@ describe('autocmd api', function()
command('augroup! TEMP_ABC')
-- Should still have one autocmd :'(
- local aus = meths.nvim_get_autocmds { event = 'BufReadPost' }
+ local aus = api.nvim_get_autocmds { event = 'BufReadPost' }
eq(1, #aus, aus)
command('augroup TEMP_ABC')
@@ -1349,13 +1349,13 @@ describe('autocmd api', function()
command('augroup END')
-- Should now have two autocmds :'(
- aus = meths.nvim_get_autocmds { event = 'BufReadPost' }
+ aus = api.nvim_get_autocmds { event = 'BufReadPost' }
eq(2, #aus, aus)
command('augroup! TEMP_ABC')
- eq(false, pcall(meths.nvim_get_autocmds, { group = 'TEMP_ABC' }))
- eq(2, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(false, pcall(api.nvim_get_autocmds, { group = 'TEMP_ABC' }))
+ eq(2, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
it('api: should clear and not return any autocmds for delete groups by id', function()
@@ -1363,13 +1363,13 @@ describe('autocmd api', function()
command('autocmd! BufReadPost *.py :echo "Hello"')
command('augroup END')
- local augroup_id = meths.nvim_create_augroup('TEMP_ABCD', { clear = false })
- meths.nvim_del_augroup_by_id(augroup_id)
+ local augroup_id = api.nvim_create_augroup('TEMP_ABCD', { clear = false })
+ api.nvim_del_augroup_by_id(augroup_id)
-- For good reason, we kill all the autocmds from del_augroup,
-- so now this works as expected
- eq(false, pcall(meths.nvim_get_autocmds, { group = 'TEMP_ABCD' }))
- eq(0, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(false, pcall(api.nvim_get_autocmds, { group = 'TEMP_ABCD' }))
+ eq(0, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
it('api: should clear and not return any autocmds for delete groups by name', function()
@@ -1377,12 +1377,12 @@ describe('autocmd api', function()
command('autocmd! BufReadPost *.py :echo "Hello"')
command('augroup END')
- meths.nvim_del_augroup_by_name('TEMP_ABCDE')
+ api.nvim_del_augroup_by_name('TEMP_ABCDE')
-- For good reason, we kill all the autocmds from del_augroup,
-- so now this works as expected
- eq(false, pcall(meths.nvim_get_autocmds, { group = 'TEMP_ABCDE' }))
- eq(0, #meths.nvim_get_autocmds { event = 'BufReadPost' })
+ eq(false, pcall(api.nvim_get_autocmds, { group = 'TEMP_ABCDE' }))
+ eq(0, #api.nvim_get_autocmds { event = 'BufReadPost' })
end)
end)
@@ -1390,18 +1390,18 @@ describe('autocmd api', function()
it('validation', function()
eq(
"Cannot use both 'pattern' and 'buffer'",
- pcall_err(meths.nvim_clear_autocmds, {
+ pcall_err(api.nvim_clear_autocmds, {
pattern = '*',
buffer = 42,
})
)
eq(
"Invalid 'event' item: expected String, got Array",
- pcall_err(meths.nvim_clear_autocmds, {
+ pcall_err(api.nvim_clear_autocmds, {
event = { 'FileType', {} },
})
)
- eq("Invalid 'group': 0", pcall_err(meths.nvim_clear_autocmds, { group = 0 }))
+ eq("Invalid 'group': 0", pcall_err(api.nvim_clear_autocmds, { group = 0 }))
end)
it('should clear based on event + pattern', function()
@@ -1409,17 +1409,17 @@ describe('autocmd api', function()
command('autocmd InsertEnter *.txt :echo "Text Files Are Cool"')
local search = { event = 'InsertEnter', pattern = '*.txt' }
- local before_delete = meths.nvim_get_autocmds(search)
+ local before_delete = api.nvim_get_autocmds(search)
eq(1, #before_delete)
- local before_delete_all = meths.nvim_get_autocmds { event = search.event }
+ local before_delete_all = api.nvim_get_autocmds { event = search.event }
eq(2, #before_delete_all)
- meths.nvim_clear_autocmds(search)
- local after_delete = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds(search)
+ local after_delete = api.nvim_get_autocmds(search)
eq(0, #after_delete)
- local after_delete_all = meths.nvim_get_autocmds { event = search.event }
+ local after_delete_all = api.nvim_get_autocmds { event = search.event }
eq(1, #after_delete_all)
end)
@@ -1428,11 +1428,11 @@ describe('autocmd api', function()
command('autocmd InsertEnter *.txt :echo "Text Files Are Cool"')
local search = { event = 'InsertEnter' }
- local before_delete = meths.nvim_get_autocmds(search)
+ local before_delete = api.nvim_get_autocmds(search)
eq(2, #before_delete)
- meths.nvim_clear_autocmds(search)
- local after_delete = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds(search)
+ local after_delete = api.nvim_get_autocmds(search)
eq(0, #after_delete)
end)
@@ -1443,18 +1443,17 @@ describe('autocmd api', function()
command('autocmd InsertLeave *.TestPat2 :echo "Leave 2"')
local search = { pattern = '*.TestPat1' }
- local before_delete = meths.nvim_get_autocmds(search)
+ local before_delete = api.nvim_get_autocmds(search)
eq(2, #before_delete)
local before_delete_events =
- meths.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
+ api.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
eq(4, #before_delete_events)
- meths.nvim_clear_autocmds(search)
- local after_delete = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds(search)
+ local after_delete = api.nvim_get_autocmds(search)
eq(0, #after_delete)
- local after_delete_events =
- meths.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
+ local after_delete_events = api.nvim_get_autocmds { event = { 'InsertEnter', 'InsertLeave' } }
eq(2, #after_delete_events)
end)
@@ -1464,11 +1463,11 @@ describe('autocmd api', function()
command('autocmd InsertEnter *.TestPat1 :echo "Enter Pattern"')
local search = { event = 'InsertEnter' }
- local before_delete = meths.nvim_get_autocmds(search)
+ local before_delete = api.nvim_get_autocmds(search)
eq(2, #before_delete)
- meths.nvim_clear_autocmds { buffer = 0 }
- local after_delete = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds { buffer = 0 }
+ local after_delete = api.nvim_get_autocmds(search)
eq(1, #after_delete)
eq('*.TestPat1', after_delete[1].pattern)
end)
@@ -1481,17 +1480,17 @@ describe('autocmd api', function()
command('augroup END')
local search = { event = 'InsertEnter', group = 'TestNvimClearAutocmds' }
- local before_delete = meths.nvim_get_autocmds(search)
+ local before_delete = api.nvim_get_autocmds(search)
eq(2, #before_delete)
-- Doesn't clear without passing group.
- meths.nvim_clear_autocmds { buffer = 0 }
- local without_group = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds { buffer = 0 }
+ local without_group = api.nvim_get_autocmds(search)
eq(2, #without_group)
-- Doesn't clear with passing group.
- meths.nvim_clear_autocmds { buffer = 0, group = search.group }
- local with_group = meths.nvim_get_autocmds(search)
+ api.nvim_clear_autocmds { buffer = 0, group = search.group }
+ local with_group = api.nvim_get_autocmds(search)
eq(1, #with_group)
end)
end)
diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua
index b1b4c9f583..10be4c56a7 100644
--- a/test/functional/api/buffer_spec.lua
+++ b/test/functional/api/buffer_spec.lua
@@ -4,8 +4,8 @@ local clear = helpers.clear
local eq = helpers.eq
local ok = helpers.ok
local describe_lua_and_rpc = helpers.describe_lua_and_rpc(describe)
-local meths = helpers.meths
-local funcs = helpers.funcs
+local api = helpers.api
+local fn = helpers.fn
local request = helpers.request
local exc_exec = helpers.exc_exec
local exec_lua = helpers.exec_lua
@@ -41,120 +41,114 @@ describe('api/buf', function()
end)
it("doesn't crash just after set undolevels=1 #24894", function()
- local buf = meths.nvim_create_buf(false, true)
- meths.nvim_buf_set_option(buf, 'undolevels', -1)
- meths.nvim_buf_set_lines(buf, 0, 1, false, {})
+ local buf = api.nvim_create_buf(false, true)
+ api.nvim_buf_set_option(buf, 'undolevels', -1)
+ api.nvim_buf_set_lines(buf, 0, 1, false, {})
assert_alive()
end)
it('cursor position is maintained after lines are inserted #9961', function()
-- replace the buffer contents with these three lines.
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
-- Set the current cursor to {3, 2}.
- meths.nvim_win_set_cursor(0, { 3, 2 })
+ api.nvim_win_set_cursor(0, { 3, 2 })
-- add 2 lines and delete 1 line above the current cursor position.
- meths.nvim_buf_set_lines(0, 1, 2, true, { 'line5', 'line6' })
+ api.nvim_buf_set_lines(0, 1, 2, true, { 'line5', 'line6' })
-- check the current set of lines in the buffer.
- eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, meths.nvim_buf_get_lines(0, 0, -1, true))
+ eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, api.nvim_buf_get_lines(0, 0, -1, true))
-- cursor should be moved below by 1 line.
- eq({ 4, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(0))
-- add a line after the current cursor position.
- meths.nvim_buf_set_lines(0, 5, 5, true, { 'line7' })
+ api.nvim_buf_set_lines(0, 5, 5, true, { 'line7' })
-- check the current set of lines in the buffer.
eq(
{ 'line1', 'line5', 'line6', 'line3', 'line4', 'line7' },
- meths.nvim_buf_get_lines(0, 0, -1, true)
+ api.nvim_buf_get_lines(0, 0, -1, true)
)
-- cursor position is unchanged.
- eq({ 4, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(0))
-- overwrite current cursor line.
- meths.nvim_buf_set_lines(0, 3, 5, true, { 'line8', 'line9' })
+ api.nvim_buf_set_lines(0, 3, 5, true, { 'line8', 'line9' })
-- check the current set of lines in the buffer.
eq(
{ 'line1', 'line5', 'line6', 'line8', 'line9', 'line7' },
- meths.nvim_buf_get_lines(0, 0, -1, true)
+ api.nvim_buf_get_lines(0, 0, -1, true)
)
-- cursor position is unchanged.
- eq({ 4, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(0))
-- delete current cursor line.
- meths.nvim_buf_set_lines(0, 3, 5, true, {})
+ api.nvim_buf_set_lines(0, 3, 5, true, {})
-- check the current set of lines in the buffer.
- eq({ 'line1', 'line5', 'line6', 'line7' }, meths.nvim_buf_get_lines(0, 0, -1, true))
+ eq({ 'line1', 'line5', 'line6', 'line7' }, api.nvim_buf_get_lines(0, 0, -1, true))
-- cursor position is unchanged.
- eq({ 4, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(0))
end)
it('cursor position is maintained in non-current window', function()
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
- meths.nvim_win_set_cursor(0, { 3, 2 })
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
+ api.nvim_win_set_cursor(0, { 3, 2 })
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new')
- meths.nvim_buf_set_lines(buf, 1, 2, true, { 'line5', 'line6' })
- eq(
- { 'line1', 'line5', 'line6', 'line3', 'line4' },
- meths.nvim_buf_get_lines(buf, 0, -1, true)
- )
- eq({ 4, 2 }, meths.nvim_win_get_cursor(win))
+ api.nvim_buf_set_lines(buf, 1, 2, true, { 'line5', 'line6' })
+ eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, api.nvim_buf_get_lines(buf, 0, -1, true))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(win))
end)
it('cursor position is maintained in TWO non-current windows', function()
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
- meths.nvim_win_set_cursor(0, { 3, 2 })
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
+ api.nvim_win_set_cursor(0, { 3, 2 })
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('split')
- meths.nvim_win_set_cursor(0, { 4, 2 })
- local win2 = meths.nvim_get_current_win()
+ api.nvim_win_set_cursor(0, { 4, 2 })
+ local win2 = api.nvim_get_current_win()
-- set current window to third one with another buffer
command('new')
- meths.nvim_buf_set_lines(buf, 1, 2, true, { 'line5', 'line6' })
- eq(
- { 'line1', 'line5', 'line6', 'line3', 'line4' },
- meths.nvim_buf_get_lines(buf, 0, -1, true)
- )
- eq({ 4, 2 }, meths.nvim_win_get_cursor(win))
- eq({ 5, 2 }, meths.nvim_win_get_cursor(win2))
+ api.nvim_buf_set_lines(buf, 1, 2, true, { 'line5', 'line6' })
+ eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, api.nvim_buf_get_lines(buf, 0, -1, true))
+ eq({ 4, 2 }, api.nvim_win_get_cursor(win))
+ eq({ 5, 2 }, api.nvim_win_get_cursor(win2))
end)
it('line_count has defined behaviour for unloaded buffers', function()
-- we'll need to know our bufnr for when it gets unloaded
- local bufnr = meths.nvim_buf_get_number(0)
+ local bufnr = api.nvim_buf_get_number(0)
-- replace the buffer contents with these three lines
- meths.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
+ api.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
-- check the line count is correct
- eq(4, meths.nvim_buf_line_count(bufnr))
+ eq(4, api.nvim_buf_line_count(bufnr))
-- force unload the buffer (this will discard changes)
command('new')
command('bunload! ' .. bufnr)
-- line count for an unloaded buffer should always be 0
- eq(0, meths.nvim_buf_line_count(bufnr))
+ eq(0, api.nvim_buf_line_count(bufnr))
end)
it('get_lines has defined behaviour for unloaded buffers', function()
-- we'll need to know our bufnr for when it gets unloaded
- local bufnr = meths.nvim_buf_get_number(0)
+ local bufnr = api.nvim_buf_get_number(0)
-- replace the buffer contents with these three lines
- meths.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
+ api.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1', 'line2', 'line3', 'line4' })
-- confirm that getting lines works
- eq({ 'line2', 'line3' }, meths.nvim_buf_get_lines(bufnr, 1, 3, true))
+ eq({ 'line2', 'line3' }, api.nvim_buf_get_lines(bufnr, 1, 3, true))
-- force unload the buffer (this will discard changes)
command('new')
command('bunload! ' .. bufnr)
-- attempting to get lines now always gives empty list
- eq({}, meths.nvim_buf_get_lines(bufnr, 1, 3, true))
+ eq({}, api.nvim_buf_get_lines(bufnr, 1, 3, true))
-- it's impossible to get out-of-bounds errors for an unloaded buffer
- eq({}, meths.nvim_buf_get_lines(bufnr, 8888, 9999, true))
+ eq({}, api.nvim_buf_get_lines(bufnr, 8888, 9999, true))
end)
describe('handles topline', function()
@@ -167,22 +161,22 @@ describe('api/buf', function()
[3] = { reverse = true },
}
screen:attach()
- meths.nvim_buf_set_lines(
+ api.nvim_buf_set_lines(
0,
0,
-1,
true,
{ 'aaa', 'bbb', 'ccc', 'ddd', 'www', 'xxx', 'yyy', 'zzz' }
)
- meths.nvim_set_option_value('modified', false, {})
+ api.nvim_set_option_value('modified', false, {})
end)
it('of current window', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new | wincmd w')
- meths.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
screen:expect {
grid = [[
@@ -198,7 +192,7 @@ describe('api/buf', function()
]],
}
- meths.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
+ api.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
screen:expect {
grid = [[
|
@@ -214,7 +208,7 @@ describe('api/buf', function()
}
-- replacing topline keeps it the topline
- meths.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
+ api.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
screen:expect {
grid = [[
|
@@ -230,7 +224,7 @@ describe('api/buf', function()
}
-- inserting just before topline does not scroll up if cursor would be moved
- meths.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
+ api.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
screen:expect {
grid = [[
|
@@ -246,7 +240,7 @@ describe('api/buf', function()
unchanged = true,
}
- meths.nvim_win_set_cursor(0, { 7, 0 })
+ api.nvim_win_set_cursor(0, { 7, 0 })
screen:expect {
grid = [[
|
@@ -261,7 +255,7 @@ describe('api/buf', function()
]],
}
- meths.nvim_buf_set_lines(buf, 4, 4, true, { 'mmmeeeee' })
+ api.nvim_buf_set_lines(buf, 4, 4, true, { 'mmmeeeee' })
screen:expect {
grid = [[
|
@@ -278,11 +272,11 @@ describe('api/buf', function()
end)
it('of non-current window', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new')
- meths.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
screen:expect {
grid = [[
@@ -298,7 +292,7 @@ describe('api/buf', function()
]],
}
- meths.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
+ api.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
screen:expect {
grid = [[
^ |
@@ -314,7 +308,7 @@ describe('api/buf', function()
}
-- replacing topline keeps it the topline
- meths.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
+ api.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
screen:expect {
grid = [[
^ |
@@ -330,7 +324,7 @@ describe('api/buf', function()
}
-- inserting just before topline scrolls up
- meths.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
+ api.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
screen:expect {
grid = [[
^ |
@@ -347,12 +341,12 @@ describe('api/buf', function()
end)
it('of split windows with same buffer', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('split')
- meths.nvim_win_set_cursor(win, { 8, 0 })
- meths.nvim_win_set_cursor(0, { 1, 0 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(0, { 1, 0 })
screen:expect {
grid = [[
@@ -370,7 +364,7 @@ describe('api/buf', function()
|
]],
}
- meths.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
+ api.nvim_buf_set_lines(buf, 0, 2, true, { 'aaabbb' })
screen:expect {
grid = [[
@@ -390,7 +384,7 @@ describe('api/buf', function()
}
-- replacing topline keeps it the topline
- meths.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
+ api.nvim_buf_set_lines(buf, 3, 4, true, { 'wwweeee' })
screen:expect {
grid = [[
^aaabbb |
@@ -409,7 +403,7 @@ describe('api/buf', function()
}
-- inserting just before topline scrolls up
- meths.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
+ api.nvim_buf_set_lines(buf, 3, 3, true, { 'mmm' })
screen:expect {
grid = [[
^aaabbb |
@@ -430,15 +424,15 @@ describe('api/buf', function()
end)
it('handles clearing out non-current buffer #24911', function()
- local buf = meths.nvim_get_current_buf()
- meths.nvim_buf_set_lines(buf, 0, -1, true, { 'aaa', 'bbb', 'ccc' })
+ local buf = api.nvim_get_current_buf()
+ api.nvim_buf_set_lines(buf, 0, -1, true, { 'aaa', 'bbb', 'ccc' })
command('new')
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'xxx', 'yyy', 'zzz' })
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'xxx', 'yyy', 'zzz' })
- meths.nvim_buf_set_lines(buf, 0, -1, true, {})
- eq({ 'xxx', 'yyy', 'zzz' }, meths.nvim_buf_get_lines(0, 0, -1, true))
- eq({ '' }, meths.nvim_buf_get_lines(buf, 0, -1, true))
+ api.nvim_buf_set_lines(buf, 0, -1, true, {})
+ eq({ 'xxx', 'yyy', 'zzz' }, api.nvim_buf_get_lines(0, 0, -1, true))
+ eq({ '' }, api.nvim_buf_get_lines(buf, 0, -1, true))
end)
end)
@@ -520,24 +514,24 @@ describe('api/buf', function()
end)
end)
- describe_lua_and_rpc('nvim_buf_get_lines, nvim_buf_set_lines', function(api)
+ describe_lua_and_rpc('nvim_buf_get_lines, nvim_buf_set_lines', function(lua_or_rpc)
local function get_lines(...)
- return api.meths.nvim_buf_get_lines(0, ...)
+ return lua_or_rpc.nvim_buf_get_lines(0, ...)
end
local function set_lines(...)
- return api.meths.nvim_buf_set_lines(0, ...)
+ return lua_or_rpc.nvim_buf_set_lines(0, ...)
end
local function line_count()
- return api.meths.nvim_buf_line_count(0)
+ return lua_or_rpc.nvim_buf_line_count(0)
end
it('fails correctly when input is not valid', function()
- eq(1, api.meths.nvim_buf_get_number(0))
+ eq(1, lua_or_rpc.nvim_buf_get_number(0))
eq(
[['replacement string' item contains newlines]],
- pcall_err(api.meths.nvim_buf_set_lines, 1, 1, 2, false, { 'b\na' })
+ pcall_err(lua_or_rpc.nvim_buf_set_lines, 1, 1, 2, false, { 'b\na' })
)
end)
@@ -545,7 +539,7 @@ describe('api/buf', function()
command('set nomodifiable')
eq(
[[Buffer is not 'modifiable']],
- pcall_err(api.meths.nvim_buf_set_lines, 1, 1, 2, false, { 'a', 'b' })
+ pcall_err(lua_or_rpc.nvim_buf_set_lines, 1, 1, 2, false, { 'a', 'b' })
)
end)
@@ -701,7 +695,7 @@ describe('api/buf', function()
Who would win?
A real window
with proper text]])
- local buf = api.meths.nvim_create_buf(false, true)
+ local buf = lua_or_rpc.nvim_create_buf(false, true)
screen:expect([[
Who would win? |
A real window |
@@ -710,7 +704,7 @@ describe('api/buf', function()
|
]])
- api.meths.nvim_buf_set_lines(buf, 0, -1, true, { 'or some', 'scratchy text' })
+ lua_or_rpc.nvim_buf_set_lines(buf, 0, -1, true, { 'or some', 'scratchy text' })
feed('i') -- provoke redraw
screen:expect([[
Who would win? |
@@ -726,41 +720,41 @@ describe('api/buf', function()
visible buffer line 1
line 2
]])
- local hiddenbuf = api.meths.nvim_create_buf(false, true)
+ local hiddenbuf = lua_or_rpc.nvim_create_buf(false, true)
command('vsplit')
command('vsplit')
feed('<c-w>l<c-w>l<c-w>l')
- eq(3, funcs.winnr())
+ eq(3, fn.winnr())
feed('<c-w>h')
- eq(2, funcs.winnr())
- api.meths.nvim_buf_set_lines(hiddenbuf, 0, -1, true, { 'hidden buffer line 1', 'line 2' })
+ eq(2, fn.winnr())
+ lua_or_rpc.nvim_buf_set_lines(hiddenbuf, 0, -1, true, { 'hidden buffer line 1', 'line 2' })
feed('<c-w>p')
- eq(3, funcs.winnr())
+ eq(3, fn.winnr())
end)
it('set_lines on unloaded buffer #8659 #22670', function()
- local bufnr = meths.nvim_buf_get_number(0)
- meths.nvim_buf_set_lines(bufnr, 0, -1, false, { 'a', 'b', 'c' })
- meths.nvim_buf_set_name(bufnr, 'set_lines')
+ local bufnr = api.nvim_get_current_buf().id
+ lua_or_rpc.nvim_buf_set_lines(bufnr, 0, -1, false, { 'a', 'b', 'c' })
+ lua_or_rpc.nvim_buf_set_name(bufnr, 'set_lines')
finally(function()
os.remove('set_lines')
end)
command('write!')
command('new')
command('bunload! ' .. bufnr)
- local new_bufnr = funcs.bufnr('set_lines', true)
- meths.nvim_buf_set_lines(new_bufnr, 0, -1, false, {})
- eq({ '' }, meths.nvim_buf_get_lines(new_bufnr, 0, -1, false))
+ local new_bufnr = fn.bufnr('set_lines', true)
+ lua_or_rpc.nvim_buf_set_lines(new_bufnr, 0, -1, false, {})
+ eq({ '' }, lua_or_rpc.nvim_buf_get_lines(new_bufnr, 0, -1, false))
end)
end)
describe('nvim_buf_set_text', function()
local function get_lines(...)
- return meths.nvim_buf_get_lines(0, ...)
+ return api.nvim_buf_get_lines(0, ...)
end
local function set_text(...)
- return meths.nvim_buf_set_text(0, ...)
+ return api.nvim_buf_set_text(0, ...)
end
it('works', function()
@@ -840,12 +834,12 @@ describe('api/buf', function()
]])
-- position the cursor on `!`
- meths.nvim_win_set_cursor(0, { 1, 11 })
+ api.nvim_win_set_cursor(0, { 1, 11 })
-- replace 'world' with 'foo'
set_text(0, 6, 0, 11, { 'foo' })
eq('hello foo!', curbuf_depr('get_line', 0))
-- cursor should be moved left by two columns (replacement is shorter by 2 chars)
- eq({ 1, 9 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 9 }, api.nvim_win_get_cursor(0))
end)
it('updates the cursor position in non-current window', function()
@@ -853,18 +847,18 @@ describe('api/buf', function()
hello world!]])
-- position the cursor on `!`
- meths.nvim_win_set_cursor(0, { 1, 11 })
+ api.nvim_win_set_cursor(0, { 1, 11 })
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new')
-- replace 'world' with 'foo'
- meths.nvim_buf_set_text(buf, 0, 6, 0, 11, { 'foo' })
- eq({ 'hello foo!' }, meths.nvim_buf_get_lines(buf, 0, -1, true))
+ api.nvim_buf_set_text(buf, 0, 6, 0, 11, { 'foo' })
+ eq({ 'hello foo!' }, api.nvim_buf_get_lines(buf, 0, -1, true))
-- cursor should be moved left by two columns (replacement is shorter by 2 chars)
- eq({ 1, 9 }, meths.nvim_win_get_cursor(win))
+ eq({ 1, 9 }, api.nvim_win_get_cursor(win))
end)
it('updates the cursor position in TWO non-current windows', function()
@@ -872,24 +866,24 @@ describe('api/buf', function()
hello world!]])
-- position the cursor on `!`
- meths.nvim_win_set_cursor(0, { 1, 11 })
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ api.nvim_win_set_cursor(0, { 1, 11 })
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('split')
- local win2 = meths.nvim_get_current_win()
+ local win2 = api.nvim_get_current_win()
-- position the cursor on `w`
- meths.nvim_win_set_cursor(0, { 1, 6 })
+ api.nvim_win_set_cursor(0, { 1, 6 })
command('new')
-- replace 'hello' with 'foo'
- meths.nvim_buf_set_text(buf, 0, 0, 0, 5, { 'foo' })
- eq({ 'foo world!' }, meths.nvim_buf_get_lines(buf, 0, -1, true))
+ api.nvim_buf_set_text(buf, 0, 0, 0, 5, { 'foo' })
+ eq({ 'foo world!' }, api.nvim_buf_get_lines(buf, 0, -1, true))
-- both cursors should be moved left by two columns (replacement is shorter by 2 chars)
- eq({ 1, 9 }, meths.nvim_win_get_cursor(win))
- eq({ 1, 4 }, meths.nvim_win_get_cursor(win2))
+ eq({ 1, 9 }, api.nvim_win_get_cursor(win))
+ eq({ 1, 4 }, api.nvim_win_get_cursor(win2))
end)
describe('when text is being added right at cursor position #22526', function()
@@ -898,12 +892,12 @@ describe('api/buf', function()
abcd]])
-- position the cursor on 'c'
- meths.nvim_win_set_cursor(0, { 1, 2 })
+ api.nvim_win_set_cursor(0, { 1, 2 })
-- add 'xxx' before 'c'
set_text(0, 2, 0, 2, { 'xxx' })
eq({ 'abxxxcd' }, get_lines(0, -1, true))
-- cursor should be on 'c'
- eq({ 1, 5 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 5 }, api.nvim_win_get_cursor(0))
end)
it('updates the cursor position only in non-current window when in INSERT mode', function()
@@ -911,7 +905,7 @@ describe('api/buf', function()
abcd]])
-- position the cursor on 'c'
- meths.nvim_win_set_cursor(0, { 1, 2 })
+ api.nvim_win_set_cursor(0, { 1, 2 })
-- open vertical split
feed('<c-w>v')
-- get into INSERT mode to treat cursor
@@ -921,13 +915,13 @@ describe('api/buf', function()
set_text(0, 2, 0, 2, { 'xxx' })
eq({ 'abxxxcd' }, get_lines(0, -1, true))
-- in the current window cursor should stay after 'b'
- eq({ 1, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 2 }, api.nvim_win_get_cursor(0))
-- quit INSERT mode
feed('<esc>')
-- close current window
feed('<c-w>c')
-- in another window cursor should be on 'c'
- eq({ 1, 5 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 5 }, api.nvim_win_get_cursor(0))
end)
end)
@@ -937,12 +931,12 @@ describe('api/buf', function()
abcd]])
-- position the cursor on 'b'
- meths.nvim_win_set_cursor(0, { 1, 1 })
+ api.nvim_win_set_cursor(0, { 1, 1 })
-- delete 'b'
set_text(0, 1, 0, 2, {})
eq({ 'acd' }, get_lines(0, -1, true))
-- cursor is now on 'c'
- eq({ 1, 1 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 1 }, api.nvim_win_get_cursor(0))
end)
it('maintains INSERT-mode cursor position current/non-current window', function()
@@ -950,7 +944,7 @@ describe('api/buf', function()
abcd]])
-- position the cursor on 'b'
- meths.nvim_win_set_cursor(0, { 1, 1 })
+ api.nvim_win_set_cursor(0, { 1, 1 })
-- open vertical split
feed('<c-w>v')
-- get into INSERT mode to treat cursor
@@ -960,13 +954,13 @@ describe('api/buf', function()
set_text(0, 1, 0, 2, {})
eq({ 'acd' }, get_lines(0, -1, true))
-- cursor in the current window should stay after 'a'
- eq({ 1, 1 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 1 }, api.nvim_win_get_cursor(0))
-- quit INSERT mode
feed('<esc>')
-- close current window
feed('<c-w>c')
-- cursor in non-current window should stay on 'c'
- eq({ 1, 1 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 1 }, api.nvim_win_get_cursor(0))
end)
end)
@@ -978,7 +972,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on ' ' before 'first'
- meths.nvim_win_set_cursor(0, { 1, 14 })
+ api.nvim_win_set_cursor(0, { 1, 14 })
set_text(0, 15, 2, 11, {
'the line we do not want',
@@ -990,7 +984,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should stay at the same position
- eq({ 1, 14 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 14 }, api.nvim_win_get_cursor(0))
end)
it('maintains cursor position if at start_row and column is still valid', function()
@@ -1000,7 +994,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'f' in 'first'
- meths.nvim_win_set_cursor(0, { 1, 15 })
+ api.nvim_win_set_cursor(0, { 1, 15 })
set_text(0, 15, 2, 11, {
'the line we do not want',
@@ -1012,7 +1006,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should stay at the same position
- eq({ 1, 15 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 15 }, api.nvim_win_get_cursor(0))
end)
it('adjusts cursor column to keep it valid if start_row got smaller', function()
@@ -1022,7 +1016,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 't' in 'first'
- meths.nvim_win_set_cursor(0, { 1, 19 })
+ api.nvim_win_set_cursor(0, { 1, 19 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 15, 2, 24, {'last'})
@@ -1031,7 +1025,7 @@ describe('api/buf', function()
eq({ 'This should be last' }, get_lines(0, -1, true))
-- cursor should end up on 't' in 'last'
- eq({ 1, 18 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 18 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 18 }, cursor)
end)
@@ -1043,7 +1037,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 't' in 'first'
- meths.nvim_win_set_cursor(0, { 1, 19 })
+ api.nvim_win_set_cursor(0, { 1, 19 })
-- enter INSERT mode to treat cursor as being after 't'
feed('a')
@@ -1054,7 +1048,7 @@ describe('api/buf', function()
eq({ 'This should be last' }, get_lines(0, -1, true))
-- cursor should end up after 't' in 'last'
- eq({ 1, 19 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 19 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 19 }, cursor)
end)
@@ -1066,7 +1060,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'w' in 'want'
- meths.nvim_win_set_cursor(0, { 2, 31 })
+ api.nvim_win_set_cursor(0, { 2, 31 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 15, 2, 11, {
@@ -1083,7 +1077,7 @@ describe('api/buf', function()
'and then the last one',
}, get_lines(0, -1, true))
-- cursor column should end up at the end of a row
- eq({ 2, 5 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 5 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 5 }, cursor)
end)
@@ -1097,7 +1091,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'w' in 'want'
- meths.nvim_win_set_cursor(0, { 2, 31 })
+ api.nvim_win_set_cursor(0, { 2, 31 })
-- enter INSERT mode
feed('a')
@@ -1116,7 +1110,7 @@ describe('api/buf', function()
'and then the last one',
}, get_lines(0, -1, true))
-- cursor column should end up at the end of a row
- eq({ 2, 6 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 6 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 6 }, cursor)
end
@@ -1129,7 +1123,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'n' in 'finally'
- meths.nvim_win_set_cursor(0, { 3, 6 })
+ api.nvim_win_set_cursor(0, { 3, 6 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 15, 2, 11, {
@@ -1145,7 +1139,7 @@ describe('api/buf', function()
}, get_lines(0, -1, true))
-- cursor should end up on 'y' in 'hopefully'
-- to stay in the range, because it got smaller
- eq({ 2, 12 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 12 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 12 }, cursor)
end)
@@ -1157,7 +1151,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'r' in 'there'
- meths.nvim_win_set_cursor(0, { 2, 8 })
+ api.nvim_win_set_cursor(0, { 2, 8 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 15, 2, 12, {})
@@ -1166,7 +1160,7 @@ describe('api/buf', function()
eq({ 'This should be the last one' }, get_lines(0, -1, true))
-- cursor should end up on the next column after deleted range
- eq({ 1, 15 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 15 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 15 }, cursor)
end)
@@ -1178,7 +1172,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'r' in 'there'
- meths.nvim_win_set_cursor(0, { 2, 8 })
+ api.nvim_win_set_cursor(0, { 2, 8 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 0, 2, 4, {})
@@ -1187,7 +1181,7 @@ describe('api/buf', function()
eq({ 'finally the last one' }, get_lines(0, -1, true))
-- cursor should end up in column 0
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 0 }, cursor)
end)
@@ -1199,7 +1193,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'y' in 'finally'
- meths.nvim_win_set_cursor(0, { 3, 10 })
+ api.nvim_win_set_cursor(0, { 3, 10 })
set_text(0, 15, 2, 11, { '1', 'this 2', 'and then' })
eq({
@@ -1208,7 +1202,7 @@ describe('api/buf', function()
'and then the last one',
}, get_lines(0, -1, true))
-- cursor should end up on 'n' in 'then'
- eq({ 3, 7 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 7 }, api.nvim_win_get_cursor(0))
end)
it(
@@ -1220,7 +1214,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'y' at 'finally'
- meths.nvim_win_set_cursor(0, { 3, 10 })
+ api.nvim_win_set_cursor(0, { 3, 10 })
-- enter INSERT mode to treat cursor as being between 'l' and 'y'
feed('i')
set_text(0, 15, 2, 11, { '1', 'this 2', 'and then' })
@@ -1231,7 +1225,7 @@ describe('api/buf', function()
'and then the last one',
}, get_lines(0, -1, true))
-- cursor should end up after 'n' in 'then'
- eq({ 3, 8 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 8 }, api.nvim_win_get_cursor(0))
end
)
@@ -1242,7 +1236,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'y' in 'finally'
- meths.nvim_win_set_cursor(0, { 3, 10 })
+ api.nvim_win_set_cursor(0, { 3, 10 })
set_text(2, 4, 2, 11, { 'then' })
eq({
@@ -1251,7 +1245,7 @@ describe('api/buf', function()
'and then the last one',
}, get_lines(0, -1, true))
-- cursor should end up on 'n' in 'then'
- eq({ 3, 7 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 7 }, api.nvim_win_get_cursor(0))
end)
it('does not move cursor column after end of a line', function()
@@ -1260,7 +1254,7 @@ describe('api/buf', function()
!!!]])
-- position cursor on the last '1'
- meths.nvim_win_set_cursor(0, { 2, 2 })
+ api.nvim_win_set_cursor(0, { 2, 2 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 33, 1, 3, {})
@@ -1269,7 +1263,7 @@ describe('api/buf', function()
eq({ 'This should be the only line here' }, get_lines(0, -1, true))
-- cursor should end up on '!'
- eq({ 1, 32 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 32 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 32 }, cursor)
end)
@@ -1278,7 +1272,7 @@ describe('api/buf', function()
insert('\n!!!')
-- position cursor on the last '1'
- meths.nvim_win_set_cursor(0, { 2, 2 })
+ api.nvim_win_set_cursor(0, { 2, 2 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 0, 1, 3, {})
@@ -1287,7 +1281,7 @@ describe('api/buf', function()
eq({ '' }, get_lines(0, -1, true))
-- cursor should end up on '!'
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 0 }, cursor)
end)
@@ -1300,7 +1294,7 @@ describe('api/buf', function()
and finally the last one]])
-- position cursor on 't' in 'want'
- meths.nvim_win_set_cursor(0, { 2, 34 })
+ api.nvim_win_set_cursor(0, { 2, 34 })
-- turn on virtualedit
command('set virtualedit=all')
@@ -1318,7 +1312,7 @@ describe('api/buf', function()
}, get_lines(0, -1, true))
-- cursor should end up on 'y' in 'hopefully'
-- to stay in the range
- eq({ 2, 12 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 12 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 12 }, cursor)
-- coladd should be 0
@@ -1337,7 +1331,7 @@ describe('api/buf', function()
and finally the last one]])
-- position cursor on 't' in 'want'
- meths.nvim_win_set_cursor(0, { 2, 34 })
+ api.nvim_win_set_cursor(0, { 2, 34 })
-- turn on virtualedit
command('set virtualedit=all')
-- move cursor after eol
@@ -1358,7 +1352,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should end up at eol of a new row
- eq({ 2, 26 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 26 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 26 }, cursor)
-- coladd should be increased so that cursor stays in the same screen column
@@ -1379,7 +1373,7 @@ describe('api/buf', function()
and finally the last one]])
-- position cursor on 't' in 'first'
- meths.nvim_win_set_cursor(0, { 1, 19 })
+ api.nvim_win_set_cursor(0, { 1, 19 })
-- turn on virtualedit
command('set virtualedit=all')
-- move cursor after eol
@@ -1400,7 +1394,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should end up at eol of a new row
- eq({ 1, 38 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 38 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 38 }, cursor)
-- coladd should be increased so that cursor stays in the same screen column
@@ -1422,7 +1416,7 @@ describe('api/buf', function()
and finally the last one]])
-- position cursor on 't' in 'first'
- meths.nvim_win_set_cursor(0, { 1, 19 })
+ api.nvim_win_set_cursor(0, { 1, 19 })
-- turn on virtualedit
command('set virtualedit=all')
-- move cursor after eol just a bit
@@ -1443,7 +1437,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should stay at the same screen column
- eq({ 1, 22 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 22 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 22 }, cursor)
-- coladd should become 0
@@ -1466,7 +1460,7 @@ describe('api/buf', function()
and finally the last one]])
-- position cursor on 'e' in 'more'
- meths.nvim_win_set_cursor(0, { 3, 11 })
+ api.nvim_win_set_cursor(0, { 3, 11 })
-- turn on virtualedit
command('set virtualedit=all')
-- move cursor after eol
@@ -1487,7 +1481,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should end up at eol of a new row
- eq({ 2, 26 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 26 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 2, 26 }, cursor)
-- coladd should be increased so that cursor stays in the same screen column
@@ -1510,17 +1504,17 @@ describe('api/buf', function()
line]])
-- position the cursor on 'i'
- meths.nvim_win_set_cursor(0, { 3, 2 })
+ api.nvim_win_set_cursor(0, { 3, 2 })
set_text(1, 6, 2, 0, {})
eq({ 'first line', 'second line' }, get_lines(0, -1, true))
-- cursor should stay on 'i'
- eq({ 2, 8 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 8 }, api.nvim_win_get_cursor(0))
-- add a newline back
set_text(1, 6, 1, 6, { '', '' })
eq({ 'first line', 'second', ' line' }, get_lines(0, -1, true))
-- cursor should return back to the original position
- eq({ 3, 2 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 2 }, api.nvim_win_get_cursor(0))
end)
it(
@@ -1532,11 +1526,11 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 'h' in 'the'
- meths.nvim_win_set_cursor(0, { 3, 13 })
+ api.nvim_win_set_cursor(0, { 3, 13 })
set_text(0, 14, 2, 11, {})
eq({ 'This should be the last one' }, get_lines(0, -1, true))
-- cursor should stay on 'h'
- eq({ 1, 16 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 16 }, api.nvim_win_get_cursor(0))
-- add deleted lines back
set_text(0, 14, 0, 14, {
' first',
@@ -1549,7 +1543,7 @@ describe('api/buf', function()
'and finally the last one',
}, get_lines(0, -1, true))
-- cursor should return back to the original position
- eq({ 3, 13 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 13 }, api.nvim_win_get_cursor(0))
end
)
@@ -1562,7 +1556,7 @@ describe('api/buf', function()
and finally the last one]])
-- position the cursor on 's' in 'last'
- meths.nvim_win_set_cursor(0, { 3, 18 })
+ api.nvim_win_set_cursor(0, { 3, 18 })
set_text(0, 15, 2, 11, {
'the line we do not want',
'but hopefully',
@@ -1573,7 +1567,7 @@ describe('api/buf', function()
'but hopefully the last one',
}, get_lines(0, -1, true))
-- cursor should stay on 's'
- eq({ 2, 20 }, meths.nvim_win_get_cursor(0))
+ eq({ 2, 20 }, api.nvim_win_get_cursor(0))
set_text(0, 15, 1, 13, {
'first',
@@ -1587,7 +1581,7 @@ describe('api/buf', function()
'and finally the last one',
}, get_lines(0, -1, true))
-- cursor should return back to the original position
- eq({ 3, 18 }, meths.nvim_win_get_cursor(0))
+ eq({ 3, 18 }, api.nvim_win_get_cursor(0))
end
)
@@ -1597,7 +1591,7 @@ describe('api/buf', function()
]])
-- position cursor at the empty line
- meths.nvim_win_set_cursor(0, { 2, 0 })
+ api.nvim_win_set_cursor(0, { 2, 0 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 33, 1, 0, {'!'})
@@ -1606,7 +1600,7 @@ describe('api/buf', function()
eq({ 'This should be the only line here!' }, get_lines(0, -1, true))
-- cursor should end up on '!'
- eq({ 1, 33 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 33 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 33 }, cursor)
end)
@@ -1617,7 +1611,7 @@ describe('api/buf', function()
eq({ '', '' }, get_lines(0, -1, true))
-- position cursor on the last '1'
- meths.nvim_win_set_cursor(0, { 2, 2 })
+ api.nvim_win_set_cursor(0, { 2, 2 })
local cursor = exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 0, 1, 0, {''})
@@ -1626,7 +1620,7 @@ describe('api/buf', function()
eq({ '' }, get_lines(0, -1, true))
-- cursor should end up on '!'
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
-- immediate call to nvim_win_get_cursor should have returned the same position
eq({ 1, 0 }, cursor)
end)
@@ -1638,46 +1632,46 @@ describe('api/buf', function()
end)
it('adjusts extmarks', function()
- local ns = meths.nvim_create_namespace('my-fancy-plugin')
+ local ns = api.nvim_create_namespace('my-fancy-plugin')
insert([[
foo bar
baz
]])
- local id1 = meths.nvim_buf_set_extmark(0, ns, 0, 1, {})
- local id2 = meths.nvim_buf_set_extmark(0, ns, 0, 7, {})
- local id3 = meths.nvim_buf_set_extmark(0, ns, 1, 1, {})
+ local id1 = api.nvim_buf_set_extmark(0, ns, 0, 1, {})
+ local id2 = api.nvim_buf_set_extmark(0, ns, 0, 7, {})
+ local id3 = api.nvim_buf_set_extmark(0, ns, 1, 1, {})
set_text(0, 4, 0, 7, { 'q' })
eq({ 'foo q', 'baz' }, get_lines(0, 2, true))
-- mark before replacement point is unaffected
- eq({ 0, 1 }, meths.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
+ eq({ 0, 1 }, api.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
-- mark gets shifted back because the replacement was shorter
- eq({ 0, 5 }, meths.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
+ eq({ 0, 5 }, api.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
-- mark on the next line is unaffected
- eq({ 1, 1 }, meths.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
+ eq({ 1, 1 }, api.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
-- replacing the text spanning two lines will adjust the mark on the next line
set_text(0, 3, 1, 3, { 'qux' })
eq({ 'fooqux', '' }, get_lines(0, 2, true))
- eq({ 0, 6 }, meths.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
+ eq({ 0, 6 }, api.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
-- but mark before replacement point is still unaffected
- eq({ 0, 1 }, meths.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
+ eq({ 0, 1 }, api.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
-- and the mark in the middle was shifted to the end of the insertion
- eq({ 0, 6 }, meths.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
+ eq({ 0, 6 }, api.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
-- marks should be put back into the same place after undoing
set_text(0, 0, 0, 2, { '' })
feed('u')
- eq({ 0, 1 }, meths.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
- eq({ 0, 6 }, meths.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
- eq({ 0, 6 }, meths.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
+ eq({ 0, 1 }, api.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
+ eq({ 0, 6 }, api.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
+ eq({ 0, 6 }, api.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
-- marks should be shifted over by the correct number of bytes for multibyte
-- chars
set_text(0, 0, 0, 0, { 'Ø' })
- eq({ 0, 3 }, meths.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
- eq({ 0, 8 }, meths.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
- eq({ 0, 8 }, meths.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
+ eq({ 0, 3 }, api.nvim_buf_get_extmark_by_id(0, ns, id1, {}))
+ eq({ 0, 8 }, api.nvim_buf_get_extmark_by_id(0, ns, id2, {}))
+ eq({ 0, 8 }, api.nvim_buf_get_extmark_by_id(0, ns, id3, {}))
end)
it('correctly marks changed region for redraw #13890', function()
@@ -1689,7 +1683,7 @@ describe('api/buf', function()
BBB
]])
- meths.nvim_buf_set_text(0, 0, 0, 1, 3, { 'XXX', 'YYY' })
+ api.nvim_buf_set_text(0, 0, 0, 1, 3, { 'XXX', 'YYY' })
screen:expect([[
XXX |
@@ -1724,7 +1718,7 @@ describe('api/buf', function()
it('no heap-use-after-free when called consecutively #19643', function()
set_text(0, 0, 0, 0, { 'one', '', '', 'two' })
eq({ 'one', '', '', 'two' }, get_lines(0, 4, true))
- meths.nvim_win_set_cursor(0, { 1, 0 })
+ api.nvim_win_set_cursor(0, { 1, 0 })
exec_lua([[
vim.api.nvim_buf_set_text(0, 0, 3, 1, 0, {''})
vim.api.nvim_buf_set_text(0, 0, 3, 1, 0, {''})
@@ -1742,22 +1736,22 @@ describe('api/buf', function()
[3] = { reverse = true },
}
screen:attach()
- meths.nvim_buf_set_lines(
+ api.nvim_buf_set_lines(
0,
0,
-1,
true,
{ 'aaa', 'bbb', 'ccc', 'ddd', 'www', 'xxx', 'yyy', 'zzz' }
)
- meths.nvim_set_option_value('modified', false, {})
+ api.nvim_set_option_value('modified', false, {})
end)
it('of current window', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new | wincmd w')
- meths.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
screen:expect {
grid = [[
@@ -1772,7 +1766,7 @@ describe('api/buf', function()
|
]],
}
- meths.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
+ api.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
screen:expect {
grid = [[
@@ -1790,11 +1784,11 @@ describe('api/buf', function()
end)
it('of non-current window', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('new')
- meths.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
screen:expect {
grid = [[
@@ -1810,7 +1804,7 @@ describe('api/buf', function()
]],
}
- meths.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
+ api.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
screen:expect {
grid = [[
^ |
@@ -1827,12 +1821,12 @@ describe('api/buf', function()
end)
it('of split windows with same buffer', function()
- local win = meths.nvim_get_current_win()
- local buf = meths.nvim_get_current_buf()
+ local win = api.nvim_get_current_win()
+ local buf = api.nvim_get_current_buf()
command('split')
- meths.nvim_win_set_cursor(win, { 8, 0 })
- meths.nvim_win_set_cursor(0, { 1, 1 })
+ api.nvim_win_set_cursor(win, { 8, 0 })
+ api.nvim_win_set_cursor(0, { 1, 1 })
screen:expect {
grid = [[
@@ -1850,7 +1844,7 @@ describe('api/buf', function()
|
]],
}
- meths.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
+ api.nvim_buf_set_text(buf, 0, 3, 1, 0, { 'X' })
screen:expect {
grid = [[
@@ -1872,8 +1866,8 @@ describe('api/buf', function()
end)
end)
- describe_lua_and_rpc('nvim_buf_get_text', function(api)
- local get_text = api.meths.nvim_buf_get_text
+ describe_lua_and_rpc('nvim_buf_get_text', function(lua_or_rpc)
+ local get_text = lua_or_rpc.nvim_buf_get_text
before_each(function()
insert([[
hello foo!
@@ -1898,7 +1892,7 @@ describe('api/buf', function()
eq('Index out of bounds', pcall_err(get_text, 0, 0, 0, 3, 0, {}))
eq('Index out of bounds', pcall_err(get_text, 0, 0, 0, -4, 0, {}))
-- no ml_get errors should happen #19017
- eq('', meths.nvim_get_vvar('errmsg'))
+ eq('', api.nvim_get_vvar('errmsg'))
end)
it('errors when start is greater than end', function()
@@ -1908,10 +1902,10 @@ describe('api/buf', function()
end)
describe('nvim_buf_get_offset', function()
- local get_offset = meths.nvim_buf_get_offset
+ local get_offset = api.nvim_buf_get_offset
it('works', function()
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'Some\r', 'exa\000mple', '', 'buf\rfer', 'text' })
- eq(5, meths.nvim_buf_line_count(0))
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'Some\r', 'exa\000mple', '', 'buf\rfer', 'text' })
+ eq(5, api.nvim_buf_line_count(0))
eq(0, get_offset(0, 0))
eq(6, get_offset(0, 1))
eq(15, get_offset(0, 2))
@@ -1921,33 +1915,33 @@ describe('api/buf', function()
eq('Index out of bounds', pcall_err(get_offset, 0, 6))
eq('Index out of bounds', pcall_err(get_offset, 0, -1))
- meths.nvim_set_option_value('eol', false, {})
- meths.nvim_set_option_value('fixeol', false, {})
+ api.nvim_set_option_value('eol', false, {})
+ api.nvim_set_option_value('fixeol', false, {})
eq(28, get_offset(0, 5))
-- fileformat is ignored
- meths.nvim_set_option_value('fileformat', 'dos', {})
+ api.nvim_set_option_value('fileformat', 'dos', {})
eq(0, get_offset(0, 0))
eq(6, get_offset(0, 1))
eq(15, get_offset(0, 2))
eq(16, get_offset(0, 3))
eq(24, get_offset(0, 4))
eq(28, get_offset(0, 5))
- meths.nvim_set_option_value('eol', true, {})
+ api.nvim_set_option_value('eol', true, {})
eq(29, get_offset(0, 5))
command('set hidden')
command('enew')
- eq(6, meths.nvim_buf_get_offset(1, 1))
+ eq(6, api.nvim_buf_get_offset(1, 1))
command('bunload! 1')
- eq(-1, meths.nvim_buf_get_offset(1, 1))
- eq(-1, meths.nvim_buf_get_offset(1, 0))
+ eq(-1, api.nvim_buf_get_offset(1, 1))
+ eq(-1, api.nvim_buf_get_offset(1, 0))
end)
it('works in empty buffer', function()
eq(0, get_offset(0, 0))
eq(1, get_offset(0, 1))
- eq(-1, funcs.line2byte('$'))
+ eq(-1, fn.line2byte('$'))
end)
it('works in buffer with one line inserted', function()
@@ -1959,28 +1953,28 @@ describe('api/buf', function()
describe('nvim_buf_get_var, nvim_buf_set_var, nvim_buf_del_var', function()
it('works', function()
- meths.nvim_buf_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_buf_get_var(0, 'lua'))
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_eval('b:lua'))
- eq(1, funcs.exists('b:lua'))
- meths.nvim_buf_del_var(0, 'lua')
- eq(0, funcs.exists('b:lua'))
- eq('Key not found: lua', pcall_err(meths.nvim_buf_del_var, 0, 'lua'))
- meths.nvim_buf_set_var(0, 'lua', 1)
+ api.nvim_buf_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_buf_get_var(0, 'lua'))
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_eval('b:lua'))
+ eq(1, fn.exists('b:lua'))
+ api.nvim_buf_del_var(0, 'lua')
+ eq(0, fn.exists('b:lua'))
+ eq('Key not found: lua', pcall_err(api.nvim_buf_del_var, 0, 'lua'))
+ api.nvim_buf_set_var(0, 'lua', 1)
command('lockvar b:lua')
- eq('Key is locked: lua', pcall_err(meths.nvim_buf_del_var, 0, 'lua'))
- eq('Key is locked: lua', pcall_err(meths.nvim_buf_set_var, 0, 'lua', 1))
- eq('Key is read-only: changedtick', pcall_err(meths.nvim_buf_del_var, 0, 'changedtick'))
- eq('Key is read-only: changedtick', pcall_err(meths.nvim_buf_set_var, 0, 'changedtick', 1))
+ eq('Key is locked: lua', pcall_err(api.nvim_buf_del_var, 0, 'lua'))
+ eq('Key is locked: lua', pcall_err(api.nvim_buf_set_var, 0, 'lua', 1))
+ eq('Key is read-only: changedtick', pcall_err(api.nvim_buf_del_var, 0, 'changedtick'))
+ eq('Key is read-only: changedtick', pcall_err(api.nvim_buf_set_var, 0, 'changedtick', 1))
end)
end)
describe('nvim_buf_get_changedtick', function()
it('works', function()
- eq(2, meths.nvim_buf_get_changedtick(0))
- meths.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
- eq(3, meths.nvim_buf_get_changedtick(0))
- eq(3, meths.nvim_buf_get_var(0, 'changedtick'))
+ eq(2, api.nvim_buf_get_changedtick(0))
+ api.nvim_buf_set_lines(0, 0, 1, false, { 'abc\0', '\0def', 'ghi' })
+ eq(3, api.nvim_buf_get_changedtick(0))
+ eq(3, api.nvim_buf_get_var(0, 'changedtick'))
end)
it('buffer_set_var returns the old value', function()
@@ -2001,33 +1995,33 @@ describe('api/buf', function()
describe('nvim_get_option_value, nvim_set_option_value', function()
it('works', function()
- eq(8, meths.nvim_get_option_value('shiftwidth', {}))
- meths.nvim_set_option_value('shiftwidth', 4, {})
- eq(4, meths.nvim_get_option_value('shiftwidth', {}))
+ eq(8, api.nvim_get_option_value('shiftwidth', {}))
+ api.nvim_set_option_value('shiftwidth', 4, {})
+ eq(4, api.nvim_get_option_value('shiftwidth', {}))
-- global-local option
- meths.nvim_set_option_value('define', 'test', { buf = 0 })
- eq('test', meths.nvim_get_option_value('define', { buf = 0 }))
+ api.nvim_set_option_value('define', 'test', { buf = 0 })
+ eq('test', api.nvim_get_option_value('define', { buf = 0 }))
-- Doesn't change the global value
- eq('', meths.nvim_get_option_value('define', { scope = 'global' }))
+ eq('', api.nvim_get_option_value('define', { scope = 'global' }))
end)
it('returns values for unset local options', function()
-- 'undolevels' is only set to its "unset" value when a new buffer is
-- created
command('enew')
- eq(-123456, meths.nvim_get_option_value('undolevels', { buf = 0 }))
+ eq(-123456, api.nvim_get_option_value('undolevels', { buf = 0 }))
end)
end)
describe('nvim_buf_get_name, nvim_buf_set_name', function()
it('works', function()
command('new')
- eq('', meths.nvim_buf_get_name(0))
- local new_name = meths.nvim_eval('resolve(tempname())')
- meths.nvim_buf_set_name(0, new_name)
- eq(new_name, meths.nvim_buf_get_name(0))
+ eq('', api.nvim_buf_get_name(0))
+ local new_name = api.nvim_eval('resolve(tempname())')
+ api.nvim_buf_set_name(0, new_name)
+ eq(new_name, api.nvim_buf_get_name(0))
command('w!')
- eq(1, funcs.filereadable(new_name))
+ eq(1, fn.filereadable(new_name))
os.remove(new_name)
end)
end)
@@ -2035,121 +2029,121 @@ describe('api/buf', function()
describe('nvim_buf_is_loaded', function()
it('works', function()
-- record our buffer number for when we unload it
- local bufnr = meths.nvim_buf_get_number(0)
+ local bufnr = api.nvim_buf_get_number(0)
-- api should report that the buffer is loaded
- ok(meths.nvim_buf_is_loaded(bufnr))
+ ok(api.nvim_buf_is_loaded(bufnr))
-- hide the current buffer by switching to a new empty buffer
-- Careful! we need to modify the buffer first or vim will just reuse it
- meths.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1' })
+ api.nvim_buf_set_lines(bufnr, 0, -1, true, { 'line1' })
command('hide enew')
-- confirm the buffer is hidden, but still loaded
- local infolist = meths.nvim_eval('getbufinfo(' .. bufnr .. ')')
+ local infolist = api.nvim_eval('getbufinfo(' .. bufnr .. ')')
eq(1, #infolist)
eq(1, infolist[1].hidden)
eq(1, infolist[1].loaded)
-- now force unload the buffer
command('bunload! ' .. bufnr)
-- confirm the buffer is unloaded
- infolist = meths.nvim_eval('getbufinfo(' .. bufnr .. ')')
+ infolist = api.nvim_eval('getbufinfo(' .. bufnr .. ')')
eq(0, infolist[1].loaded)
-- nvim_buf_is_loaded() should also report the buffer as unloaded
- eq(false, meths.nvim_buf_is_loaded(bufnr))
+ eq(false, api.nvim_buf_is_loaded(bufnr))
end)
end)
describe('nvim_buf_is_valid', function()
it('works', function()
command('new')
- local b = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_is_valid(b))
+ local b = api.nvim_get_current_buf()
+ ok(api.nvim_buf_is_valid(b))
command('bw!')
- ok(not meths.nvim_buf_is_valid(b))
+ ok(not api.nvim_buf_is_valid(b))
end)
end)
describe('nvim_buf_delete', function()
it('allows for just deleting', function()
command('new')
- local b = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_is_valid(b))
- meths.nvim_buf_delete(b, {})
- ok(not meths.nvim_buf_is_loaded(b))
- ok(not meths.nvim_buf_is_valid(b))
+ local b = api.nvim_get_current_buf()
+ ok(api.nvim_buf_is_valid(b))
+ api.nvim_buf_delete(b, {})
+ ok(not api.nvim_buf_is_loaded(b))
+ ok(not api.nvim_buf_is_valid(b))
end)
it('allows for just unloading', function()
command('new')
- local b = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_is_valid(b))
- meths.nvim_buf_delete(b, { unload = true })
- ok(not meths.nvim_buf_is_loaded(b))
- ok(meths.nvim_buf_is_valid(b))
+ local b = api.nvim_get_current_buf()
+ ok(api.nvim_buf_is_valid(b))
+ api.nvim_buf_delete(b, { unload = true })
+ ok(not api.nvim_buf_is_loaded(b))
+ ok(api.nvim_buf_is_valid(b))
end)
end)
describe('nvim_buf_get_mark', function()
it('works', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_win_set_cursor(0, { 3, 4 })
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_win_set_cursor(0, { 3, 4 })
command('mark v')
- eq({ 3, 0 }, meths.nvim_buf_get_mark(0, 'v'))
+ eq({ 3, 0 }, api.nvim_buf_get_mark(0, 'v'))
end)
end)
describe('nvim_buf_set_mark', function()
it('works with buffer local marks', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- eq(true, meths.nvim_buf_set_mark(0, 'z', 1, 1, {}))
- eq({ 1, 1 }, meths.nvim_buf_get_mark(0, 'z'))
- eq({ 0, 1, 2, 0 }, funcs.getpos("'z"))
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ eq(true, api.nvim_buf_set_mark(0, 'z', 1, 1, {}))
+ eq({ 1, 1 }, api.nvim_buf_get_mark(0, 'z'))
+ eq({ 0, 1, 2, 0 }, fn.getpos("'z"))
end)
it('works with file/uppercase marks', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- eq(true, meths.nvim_buf_set_mark(0, 'Z', 3, 2, {}))
- eq({ 3, 2 }, meths.nvim_buf_get_mark(0, 'Z'))
- eq({ meths.nvim_get_current_buf().id, 3, 3, 0 }, funcs.getpos("'Z"))
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ eq(true, api.nvim_buf_set_mark(0, 'Z', 3, 2, {}))
+ eq({ 3, 2 }, api.nvim_buf_get_mark(0, 'Z'))
+ eq({ api.nvim_get_current_buf().id, 3, 3, 0 }, fn.getpos("'Z"))
end)
it('fails when invalid marks names are used', function()
- eq(false, pcall(meths.nvim_buf_set_mark, 0, '!', 1, 0, {}))
- eq(false, pcall(meths.nvim_buf_set_mark, 0, 'fail', 1, 0, {}))
+ eq(false, pcall(api.nvim_buf_set_mark, 0, '!', 1, 0, {}))
+ eq(false, pcall(api.nvim_buf_set_mark, 0, 'fail', 1, 0, {}))
end)
it('fails when invalid buffer number is used', function()
- eq(false, pcall(meths.nvim_buf_set_mark, 99, 'a', 1, 1, {}))
+ eq(false, pcall(api.nvim_buf_set_mark, 99, 'a', 1, 1, {}))
end)
end)
describe('nvim_buf_del_mark', function()
it('works with buffer local marks', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_buf_set_mark(0, 'z', 3, 1, {})
- eq(true, meths.nvim_buf_del_mark(0, 'z'))
- eq({ 0, 0 }, meths.nvim_buf_get_mark(0, 'z'))
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_buf_set_mark(0, 'z', 3, 1, {})
+ eq(true, api.nvim_buf_del_mark(0, 'z'))
+ eq({ 0, 0 }, api.nvim_buf_get_mark(0, 'z'))
end)
it('works with file/uppercase marks', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_buf_set_mark(0, 'Z', 3, 3, {})
- eq(true, meths.nvim_buf_del_mark(0, 'Z'))
- eq({ 0, 0 }, meths.nvim_buf_get_mark(0, 'Z'))
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_buf_set_mark(0, 'Z', 3, 3, {})
+ eq(true, api.nvim_buf_del_mark(0, 'Z'))
+ eq({ 0, 0 }, api.nvim_buf_get_mark(0, 'Z'))
end)
it('returns false in marks not set in this buffer', function()
- local abuf = meths.nvim_create_buf(false, true)
- meths.nvim_buf_set_lines(abuf, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_buf_set_mark(abuf, 'A', 2, 2, {})
- eq(false, meths.nvim_buf_del_mark(0, 'A'))
- eq({ 2, 2 }, meths.nvim_buf_get_mark(abuf, 'A'))
+ local abuf = api.nvim_create_buf(false, true)
+ api.nvim_buf_set_lines(abuf, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_buf_set_mark(abuf, 'A', 2, 2, {})
+ eq(false, api.nvim_buf_del_mark(0, 'A'))
+ eq({ 2, 2 }, api.nvim_buf_get_mark(abuf, 'A'))
end)
it('returns false if mark was not deleted', function()
- meths.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_buf_set_mark(0, 'z', 3, 1, {})
- eq(true, meths.nvim_buf_del_mark(0, 'z'))
- eq(false, meths.nvim_buf_del_mark(0, 'z')) -- Mark was already deleted
+ api.nvim_buf_set_lines(0, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_buf_set_mark(0, 'z', 3, 1, {})
+ eq(true, api.nvim_buf_del_mark(0, 'z'))
+ eq(false, api.nvim_buf_del_mark(0, 'z')) -- Mark was already deleted
end)
it('fails when invalid marks names are used', function()
- eq(false, pcall(meths.nvim_buf_del_mark, 0, '!'))
- eq(false, pcall(meths.nvim_buf_del_mark, 0, 'fail'))
+ eq(false, pcall(api.nvim_buf_del_mark, 0, '!'))
+ eq(false, pcall(api.nvim_buf_del_mark, 0, 'fail'))
end)
it('fails when invalid buffer number is used', function()
- eq(false, pcall(meths.nvim_buf_del_mark, 99, 'a'))
+ eq(false, pcall(api.nvim_buf_del_mark, 99, 'a'))
end)
end)
end)
diff --git a/test/functional/api/buffer_updates_spec.lua b/test/functional/api/buffer_updates_spec.lua
index 254e7d4d42..050d4adfec 100644
--- a/test/functional/api/buffer_updates_spec.lua
+++ b/test/functional/api/buffer_updates_spec.lua
@@ -1,8 +1,8 @@
local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local eq, ok = helpers.eq, helpers.ok
-local funcs = helpers.funcs
-local meths = helpers.meths
+local fn = helpers.fn
+local api = helpers.api
local command, eval, next_msg = helpers.command, helpers.eval, helpers.next_msg
local nvim_prog = helpers.nvim_prog
local pcall_err = helpers.pcall_err
@@ -24,7 +24,7 @@ local function expectn(name, args)
end
local function sendkeys(keys)
- meths.nvim_input(keys)
+ api.nvim_input(keys)
-- give nvim some time to process msgpack requests before possibly sending
-- more key presses - otherwise they all pile up in the queue and get
-- processed at once
@@ -37,7 +37,7 @@ local function open(activate, lines)
local filename = helpers.tmpname()
write_file(filename, table.concat(lines, '\n') .. '\n', true)
command('edit ' .. filename)
- local b = meths.nvim_get_current_buf()
+ local b = api.nvim_get_current_buf()
-- what is the value of b:changedtick?
local tick = eval('b:changedtick')
@@ -45,7 +45,7 @@ local function open(activate, lines)
-- arrive as expected
if activate then
local firstline = 0
- ok(meths.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
expectn('nvim_buf_lines_event', { b, tick, firstline, -1, lines, false })
end
@@ -62,12 +62,12 @@ local function editoriginal(activate, lines)
end
local function reopen(buf, expectedlines)
- ok(meths.nvim_buf_detach(buf))
+ ok(api.nvim_buf_detach(buf))
expectn('nvim_buf_detach_event', { buf })
-- for some reason the :edit! increments tick by 2
command('edit!')
local tick = eval('b:changedtick')
- ok(meths.nvim_buf_attach(buf, true, {}))
+ ok(api.nvim_buf_attach(buf, true, {}))
local firstline = 0
expectn('nvim_buf_lines_event', { buf, tick, firstline, -1, expectedlines, false })
command('normal! gg')
@@ -197,21 +197,21 @@ describe('API: buffer events:', function()
-- add a line at the start of an empty file
command('enew')
tick = eval('b:changedtick')
- local b2 = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_attach(b2, true, {}))
+ local b2 = api.nvim_get_current_buf()
+ ok(api.nvim_buf_attach(b2, true, {}))
expectn('nvim_buf_lines_event', { b2, tick, 0, -1, { '' }, false })
eval('append(0, ["new line 1"])')
tick = tick + 1
expectn('nvim_buf_lines_event', { b2, tick, 0, 0, { 'new line 1' }, false })
-- turn off buffer events manually
- meths.nvim_buf_detach(b2)
+ api.nvim_buf_detach(b2)
expectn('nvim_buf_detach_event', { b2 })
-- add multiple lines to a blank file
command('enew!')
- local b3 = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_attach(b3, true, {}))
+ local b3 = api.nvim_get_current_buf()
+ ok(api.nvim_buf_attach(b3, true, {}))
tick = eval('b:changedtick')
expectn('nvim_buf_lines_event', { b3, tick, 0, -1, { '' }, false })
eval('append(0, ["new line 1", "new line 2", "new line 3"])')
@@ -222,7 +222,7 @@ describe('API: buffer events:', function()
)
-- use the API itself to add a line to the start of the buffer
- meths.nvim_buf_set_lines(b3, 0, 0, true, { 'New First Line' })
+ api.nvim_buf_set_lines(b3, 0, 0, true, { 'New First Line' })
tick = tick + 1
expectn('nvim_buf_lines_event', { b3, tick, 0, 0, { 'New First Line' }, false })
end)
@@ -306,8 +306,8 @@ describe('API: buffer events:', function()
command('bdelete!')
tick = 2
expectn('nvim_buf_detach_event', { b })
- local bnew = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_attach(bnew, true, {}))
+ local bnew = api.nvim_get_current_buf()
+ ok(api.nvim_buf_attach(bnew, true, {}))
expectn('nvim_buf_lines_event', { bnew, tick, 0, -1, { '' }, false })
sendkeys('i')
sendkeys('h')
@@ -472,25 +472,25 @@ describe('API: buffer events:', function()
end)
it('does not get confused if enabled/disabled many times', function()
- local channel = meths.nvim_get_api_info()[1]
+ local channel = api.nvim_get_api_info()[1]
local b, tick = editoriginal(false)
-- Enable buffer events many times.
- ok(meths.nvim_buf_attach(b, true, {}))
- ok(meths.nvim_buf_attach(b, true, {}))
- ok(meths.nvim_buf_attach(b, true, {}))
- ok(meths.nvim_buf_attach(b, true, {}))
- ok(meths.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
+ ok(api.nvim_buf_attach(b, true, {}))
expectn('nvim_buf_lines_event', { b, tick, 0, -1, origlines, false })
eval('rpcnotify(' .. channel .. ', "Hello There")')
expectn('Hello There', {})
-- Disable buffer events many times.
- ok(meths.nvim_buf_detach(b))
- ok(meths.nvim_buf_detach(b))
- ok(meths.nvim_buf_detach(b))
- ok(meths.nvim_buf_detach(b))
- ok(meths.nvim_buf_detach(b))
+ ok(api.nvim_buf_detach(b))
+ ok(api.nvim_buf_detach(b))
+ ok(api.nvim_buf_detach(b))
+ ok(api.nvim_buf_detach(b))
+ ok(api.nvim_buf_detach(b))
expectn('nvim_buf_detach_event', { b })
eval('rpcnotify(' .. channel .. ', "Hello Again")')
expectn('Hello Again', {})
@@ -573,7 +573,7 @@ describe('API: buffer events:', function()
it('works with :diffput and :diffget', function()
local b1, tick1 = editoriginal(true, { 'AAA', 'BBB' })
- local channel = meths.nvim_get_api_info()[1]
+ local channel = api.nvim_get_api_info()[1]
command('diffthis')
command('rightbelow vsplit')
local b2, tick2 = open(true, { 'BBB', 'CCC' })
@@ -690,7 +690,7 @@ describe('API: buffer events:', function()
it('detaches if the buffer is closed', function()
local b, tick = editoriginal(true, { 'AAA' })
- local channel = meths.nvim_get_api_info()[1]
+ local channel = api.nvim_get_api_info()[1]
-- Test that buffer events are working.
command('normal! x')
@@ -729,7 +729,7 @@ describe('API: buffer events:', function()
it(':enew! does not detach hidden buffer', function()
local b, tick = editoriginal(true, { 'AAA', 'BBB' })
- local channel = meths.nvim_get_api_info()[1]
+ local channel = api.nvim_get_api_info()[1]
command('set undoreload=1 hidden')
command('normal! x')
@@ -743,7 +743,7 @@ describe('API: buffer events:', function()
it('stays attached if the buffer is hidden', function()
local b, tick = editoriginal(true, { 'AAA' })
- local channel = meths.nvim_get_api_info()[1]
+ local channel = api.nvim_get_api_info()[1]
-- Test that buffer events are working.
command('normal! x')
@@ -790,14 +790,14 @@ describe('API: buffer events:', function()
it('does not send the buffer content if not requested', function()
clear()
local b, tick = editoriginal(false)
- ok(meths.nvim_buf_attach(b, false, {}))
+ ok(api.nvim_buf_attach(b, false, {}))
expectn('nvim_buf_changedtick_event', { b, tick })
end)
it('returns a proper error on nonempty options dict', function()
clear()
local b = editoriginal(false)
- eq("Invalid key: 'builtin'", pcall_err(meths.nvim_buf_attach, b, false, { builtin = 'asfd' }))
+ eq("Invalid key: 'builtin'", pcall_err(api.nvim_buf_attach, b, false, { builtin = 'asfd' }))
end)
it('nvim_buf_attach returns response after delay #8634', function()
@@ -869,12 +869,12 @@ describe('API: buffer events:', function()
it('when :terminal lines change', function()
local buffer_lines = {}
local expected_lines = {}
- funcs.termopen({ nvim_prog, '-u', 'NONE', '-i', 'NONE', '-n', '-c', 'set shortmess+=A' }, {
+ fn.termopen({ nvim_prog, '-u', 'NONE', '-i', 'NONE', '-n', '-c', 'set shortmess+=A' }, {
env = { VIMRUNTIME = os.getenv('VIMRUNTIME') },
})
- local b = meths.nvim_get_current_buf()
- ok(meths.nvim_buf_attach(b, true, {}))
+ local b = api.nvim_get_current_buf()
+ ok(api.nvim_buf_attach(b, true, {}))
for _ = 1, 22 do
table.insert(expected_lines, '~')
diff --git a/test/functional/api/command_spec.lua b/test/functional/api/command_spec.lua
index dc6a68da03..f73b9c8b13 100644
--- a/test/functional/api/command_spec.lua
+++ b/test/functional/api/command_spec.lua
@@ -4,14 +4,14 @@ local NIL = vim.NIL
local clear = helpers.clear
local command = helpers.command
local eq = helpers.eq
-local meths = helpers.meths
+local api = helpers.api
local matches = helpers.matches
local source = helpers.source
local pcall_err = helpers.pcall_err
local exec_lua = helpers.exec_lua
local assert_alive = helpers.assert_alive
local feed = helpers.feed
-local funcs = helpers.funcs
+local fn = helpers.fn
describe('nvim_get_commands', function()
local cmd_dict = {
@@ -49,39 +49,39 @@ describe('nvim_get_commands', function()
before_each(clear)
it('gets empty list if no commands were defined', function()
- eq({}, meths.nvim_get_commands({ builtin = false }))
+ eq({}, api.nvim_get_commands({ builtin = false }))
end)
it('validation', function()
- eq('builtin=true not implemented', pcall_err(meths.nvim_get_commands, { builtin = true }))
- eq("Invalid key: 'foo'", pcall_err(meths.nvim_get_commands, { foo = 'blah' }))
+ eq('builtin=true not implemented', pcall_err(api.nvim_get_commands, { builtin = true }))
+ eq("Invalid key: 'foo'", pcall_err(api.nvim_get_commands, { foo = 'blah' }))
end)
it('gets global user-defined commands', function()
-- Define a command.
command('command -nargs=1 Hello echo "Hello World"')
- eq({ Hello = cmd_dict }, meths.nvim_get_commands({ builtin = false }))
+ eq({ Hello = cmd_dict }, api.nvim_get_commands({ builtin = false }))
-- Define another command.
command('command -nargs=? Pwd pwd')
- eq({ Hello = cmd_dict, Pwd = cmd_dict2 }, meths.nvim_get_commands({ builtin = false }))
+ eq({ Hello = cmd_dict, Pwd = cmd_dict2 }, api.nvim_get_commands({ builtin = false }))
-- Delete a command.
command('delcommand Pwd')
- eq({ Hello = cmd_dict }, meths.nvim_get_commands({ builtin = false }))
+ eq({ Hello = cmd_dict }, api.nvim_get_commands({ builtin = false }))
end)
it('gets buffer-local user-defined commands', function()
-- Define a buffer-local command.
command('command -buffer -nargs=1 Hello echo "Hello World"')
- eq({ Hello = cmd_dict }, meths.nvim_buf_get_commands(0, { builtin = false }))
+ eq({ Hello = cmd_dict }, api.nvim_buf_get_commands(0, { builtin = false }))
-- Define another buffer-local command.
command('command -buffer -nargs=? Pwd pwd')
- eq({ Hello = cmd_dict, Pwd = cmd_dict2 }, meths.nvim_buf_get_commands(0, { builtin = false }))
+ eq({ Hello = cmd_dict, Pwd = cmd_dict2 }, api.nvim_buf_get_commands(0, { builtin = false }))
-- Delete a command.
command('delcommand Pwd')
- eq({ Hello = cmd_dict }, meths.nvim_buf_get_commands(0, { builtin = false }))
+ eq({ Hello = cmd_dict }, api.nvim_buf_get_commands(0, { builtin = false }))
-- {builtin=true} always returns empty for buffer-local case.
- eq({}, meths.nvim_buf_get_commands(0, { builtin = true }))
+ eq({}, api.nvim_buf_get_commands(0, { builtin = true }))
end)
it('gets various command attributes', function()
@@ -169,9 +169,9 @@ describe('nvim_get_commands', function()
let s:foo = 1
command -complete=custom,ListUsers -nargs=+ Finger !finger <args>
]])
- eq({ Finger = cmd1 }, meths.nvim_get_commands({ builtin = false }))
+ eq({ Finger = cmd1 }, api.nvim_get_commands({ builtin = false }))
command('command -nargs=1 -complete=dir -addr=arguments -count=10 TestCmd pwd <args>')
- eq({ Finger = cmd1, TestCmd = cmd0 }, meths.nvim_get_commands({ builtin = false }))
+ eq({ Finger = cmd1, TestCmd = cmd0 }, api.nvim_get_commands({ builtin = false }))
source([[
function! s:foo() abort
@@ -191,7 +191,7 @@ describe('nvim_get_commands', function()
-- TODO(justinmk): Order is stable but undefined. Sort before return?
eq(
{ Cmd2 = cmd2, Cmd3 = cmd3, Cmd4 = cmd4, Finger = cmd1, TestCmd = cmd0 },
- meths.nvim_get_commands({ builtin = false })
+ api.nvim_get_commands({ builtin = false })
)
end)
end)
@@ -200,9 +200,9 @@ describe('nvim_create_user_command', function()
before_each(clear)
it('works with strings', function()
- meths.nvim_create_user_command('SomeCommand', 'let g:command_fired = <args>', { nargs = 1 })
+ api.nvim_create_user_command('SomeCommand', 'let g:command_fired = <args>', { nargs = 1 })
command('SomeCommand 42')
- eq(42, meths.nvim_eval('g:command_fired'))
+ eq(42, api.nvim_eval('g:command_fired'))
end)
it('works with Lua functions', function()
@@ -644,10 +644,10 @@ describe('nvim_create_user_command', function()
end)
it('can define buffer-local commands', function()
- local bufnr = meths.nvim_create_buf(false, false)
- meths.nvim_buf_create_user_command(bufnr, 'Hello', '', {})
+ local bufnr = api.nvim_create_buf(false, false)
+ api.nvim_buf_create_user_command(bufnr, 'Hello', '', {})
matches('Not an editor command: Hello', pcall_err(command, 'Hello'))
- meths.nvim_set_current_buf(bufnr)
+ api.nvim_set_current_buf(bufnr)
command('Hello')
assert_alive()
end)
@@ -670,9 +670,9 @@ describe('nvim_create_user_command', function()
]]
feed(':Test a<Tab>')
- eq('Test aaa', funcs.getcmdline())
+ eq('Test aaa', fn.getcmdline())
feed('<C-U>Test b<Tab>')
- eq('Test bbb', funcs.getcmdline())
+ eq('Test bbb', fn.getcmdline())
end)
it('does not allow invalid command names', function()
@@ -729,29 +729,29 @@ describe('nvim_create_user_command', function()
vim.api.nvim_cmd({ cmd = 'echo', args = { '&verbose' }, mods = opts.smods }, {})
end, {})
]]
- eq('3', meths.nvim_cmd({ cmd = 'MyEcho', mods = { verbose = 3 } }, { output = true }))
+ eq('3', api.nvim_cmd({ cmd = 'MyEcho', mods = { verbose = 3 } }, { output = true }))
- eq(1, #meths.nvim_list_tabpages())
+ eq(1, #api.nvim_list_tabpages())
exec_lua [[
vim.api.nvim_create_user_command('MySplit', function(opts)
vim.api.nvim_cmd({ cmd = 'split', mods = opts.smods }, {})
end, {})
]]
- meths.nvim_cmd({ cmd = 'MySplit' }, {})
- eq(1, #meths.nvim_list_tabpages())
- eq(2, #meths.nvim_list_wins())
- meths.nvim_cmd({ cmd = 'MySplit', mods = { tab = 1 } }, {})
- eq(2, #meths.nvim_list_tabpages())
- eq(2, funcs.tabpagenr())
- meths.nvim_cmd({ cmd = 'MySplit', mods = { tab = 1 } }, {})
- eq(3, #meths.nvim_list_tabpages())
- eq(2, funcs.tabpagenr())
- meths.nvim_cmd({ cmd = 'MySplit', mods = { tab = 3 } }, {})
- eq(4, #meths.nvim_list_tabpages())
- eq(4, funcs.tabpagenr())
- meths.nvim_cmd({ cmd = 'MySplit', mods = { tab = 0 } }, {})
- eq(5, #meths.nvim_list_tabpages())
- eq(1, funcs.tabpagenr())
+ api.nvim_cmd({ cmd = 'MySplit' }, {})
+ eq(1, #api.nvim_list_tabpages())
+ eq(2, #api.nvim_list_wins())
+ api.nvim_cmd({ cmd = 'MySplit', mods = { tab = 1 } }, {})
+ eq(2, #api.nvim_list_tabpages())
+ eq(2, fn.tabpagenr())
+ api.nvim_cmd({ cmd = 'MySplit', mods = { tab = 1 } }, {})
+ eq(3, #api.nvim_list_tabpages())
+ eq(2, fn.tabpagenr())
+ api.nvim_cmd({ cmd = 'MySplit', mods = { tab = 3 } }, {})
+ eq(4, #api.nvim_list_tabpages())
+ eq(4, fn.tabpagenr())
+ api.nvim_cmd({ cmd = 'MySplit', mods = { tab = 0 } }, {})
+ eq(5, #api.nvim_list_tabpages())
+ eq(1, fn.tabpagenr())
end)
end)
@@ -759,16 +759,16 @@ describe('nvim_del_user_command', function()
before_each(clear)
it('can delete global commands', function()
- meths.nvim_create_user_command('Hello', 'echo "Hi"', {})
+ api.nvim_create_user_command('Hello', 'echo "Hi"', {})
command('Hello')
- meths.nvim_del_user_command('Hello')
+ api.nvim_del_user_command('Hello')
matches('Not an editor command: Hello', pcall_err(command, 'Hello'))
end)
it('can delete buffer-local commands', function()
- meths.nvim_buf_create_user_command(0, 'Hello', 'echo "Hi"', {})
+ api.nvim_buf_create_user_command(0, 'Hello', 'echo "Hi"', {})
command('Hello')
- meths.nvim_buf_del_user_command(0, 'Hello')
+ api.nvim_buf_del_user_command(0, 'Hello')
matches('Not an editor command: Hello', pcall_err(command, 'Hello'))
end)
end)
diff --git a/test/functional/api/extmark_spec.lua b/test/functional/api/extmark_spec.lua
index 668ce43588..ed7c52971d 100644
--- a/test/functional/api/extmark_spec.lua
+++ b/test/functional/api/extmark_spec.lua
@@ -10,7 +10,7 @@ local feed = helpers.feed
local clear = helpers.clear
local command = helpers.command
local exec = helpers.exec
-local meths = helpers.meths
+local api = helpers.api
local assert_alive = helpers.assert_alive
local function expect(contents)
@@ -24,21 +24,21 @@ local function set_extmark(ns_id, id, line, col, opts)
if id ~= nil and id ~= 0 then
opts.id = id
end
- return meths.nvim_buf_set_extmark(0, ns_id, line, col, opts)
+ return api.nvim_buf_set_extmark(0, ns_id, line, col, opts)
end
local function get_extmarks(ns_id, start, end_, opts)
if opts == nil then
opts = {}
end
- return meths.nvim_buf_get_extmarks(0, ns_id, start, end_, opts)
+ return api.nvim_buf_get_extmarks(0, ns_id, start, end_, opts)
end
local function get_extmark_by_id(ns_id, id, opts)
if opts == nil then
opts = {}
end
- return meths.nvim_buf_get_extmark_by_id(0, ns_id, id, opts)
+ return api.nvim_buf_get_extmark_by_id(0, ns_id, id, opts)
end
local function check_undo_redo(ns, mark, sr, sc, er, ec) --s = start, e = end
@@ -196,11 +196,11 @@ describe('API/extmarks', function()
eq({ row, col }, rv)
-- remove the test marks
- eq(true, meths.nvim_buf_del_extmark(0, ns, marks[1]))
- eq(false, meths.nvim_buf_del_extmark(0, ns, marks[1]))
- eq(true, meths.nvim_buf_del_extmark(0, ns, marks[2]))
- eq(false, meths.nvim_buf_del_extmark(0, ns, marks[3]))
- eq(false, meths.nvim_buf_del_extmark(0, ns, 1000))
+ eq(true, api.nvim_buf_del_extmark(0, ns, marks[1]))
+ eq(false, api.nvim_buf_del_extmark(0, ns, marks[1]))
+ eq(true, api.nvim_buf_del_extmark(0, ns, marks[2]))
+ eq(false, api.nvim_buf_del_extmark(0, ns, marks[3]))
+ eq(false, api.nvim_buf_del_extmark(0, ns, 1000))
end)
it('can clear a specific namespace range', function()
@@ -208,7 +208,7 @@ describe('API/extmarks', function()
set_extmark(ns2, 1, 0, 1)
-- force a new undo buffer
feed('o<esc>')
- meths.nvim_buf_clear_namespace(0, ns2, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns2, 0, -1)
eq({ { 1, 0, 1 } }, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
eq({}, get_extmarks(ns2, { 0, 0 }, { -1, -1 }))
feed('u')
@@ -224,7 +224,7 @@ describe('API/extmarks', function()
set_extmark(ns2, 1, 0, 1)
-- force a new undo buffer
feed('o<esc>')
- meths.nvim_buf_clear_namespace(0, -1, 0, -1)
+ api.nvim_buf_clear_namespace(0, -1, 0, -1)
eq({}, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
eq({}, get_extmarks(ns2, { 0, 0 }, { -1, -1 }))
feed('u')
@@ -242,14 +242,14 @@ describe('API/extmarks', function()
eq({ { 1, 0, 0 }, { 2, 1, 0 } }, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
feed('dd')
eq({ { 1, 1, 0 }, { 2, 1, 0 } }, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
- meths.nvim_buf_clear_namespace(0, ns, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns, 0, -1)
eq({}, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
set_extmark(ns, 1, 0, 0, { right_gravity = false })
set_extmark(ns, 2, 1, 0, { right_gravity = false })
eq({ { 1, 0, 0 }, { 2, 1, 0 } }, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
feed('u')
eq({ { 1, 0, 0 }, { 2, 1, 0 } }, get_extmarks(ns, { 0, 0 }, { -1, -1 }))
- meths.nvim_buf_clear_namespace(0, ns, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns, 0, -1)
end)
it('querying for information and ranges', function()
@@ -931,7 +931,7 @@ describe('API/extmarks', function()
-- Test unset
feed('o<esc>')
- meths.nvim_buf_del_extmark(0, ns, marks[3])
+ api.nvim_buf_del_extmark(0, ns, marks[3])
feed('u')
rv = get_extmarks(ns, { 0, 0 }, { -1, -1 })
-- undo does NOT restore deleted marks
@@ -987,10 +987,10 @@ describe('API/extmarks', function()
rv = get_extmarks(ns2, positions[2], positions[1])
eq(2, #rv)
- meths.nvim_buf_del_extmark(0, ns, marks[1])
+ api.nvim_buf_del_extmark(0, ns, marks[1])
rv = get_extmarks(ns, { 0, 0 }, { -1, -1 })
eq(2, #rv)
- meths.nvim_buf_del_extmark(0, ns2, marks[1])
+ api.nvim_buf_del_extmark(0, ns2, marks[1])
rv = get_extmarks(ns2, { 0, 0 }, { -1, -1 })
eq(2, #rv)
end)
@@ -1427,7 +1427,7 @@ describe('API/extmarks', function()
"Invalid 'ns_id': 3",
pcall_err(set_extmark, ns_invalid, marks[1], positions[1][1], positions[1][2])
)
- eq("Invalid 'ns_id': 3", pcall_err(meths.nvim_buf_del_extmark, 0, ns_invalid, marks[1]))
+ eq("Invalid 'ns_id': 3", pcall_err(api.nvim_buf_del_extmark, 0, ns_invalid, marks[1]))
eq("Invalid 'ns_id': 3", pcall_err(get_extmarks, ns_invalid, positions[1], positions[2]))
eq("Invalid 'ns_id': 3", pcall_err(get_extmark_by_id, ns_invalid, marks[1]))
end)
@@ -1470,7 +1470,7 @@ describe('API/extmarks', function()
it('in read-only buffer', function()
command('view! runtime/doc/help.txt')
- eq(true, meths.nvim_get_option_value('ro', {}))
+ eq(true, api.nvim_get_option_value('ro', {}))
local id = set_extmark(ns, 0, 0, 2)
eq({ { id, 0, 2 } }, get_extmarks(ns, 0, -1))
end)
@@ -1478,8 +1478,8 @@ describe('API/extmarks', function()
it('can set a mark to other buffer', function()
local buf = request('nvim_create_buf', 0, 1)
request('nvim_buf_set_lines', buf, 0, -1, 1, { '', '' })
- local id = meths.nvim_buf_set_extmark(buf, ns, 1, 0, {})
- eq({ { id, 1, 0 } }, meths.nvim_buf_get_extmarks(buf, ns, 0, -1, {}))
+ local id = api.nvim_buf_set_extmark(buf, ns, 1, 0, {})
+ eq({ { id, 1, 0 } }, api.nvim_buf_get_extmarks(buf, ns, 0, -1, {}))
end)
it('does not crash with append/delete/undo sequence', function()
@@ -1495,30 +1495,30 @@ describe('API/extmarks', function()
it('works with left and right gravity', function()
-- right gravity should move with inserted text, while
-- left gravity should stay in place.
- meths.nvim_buf_set_extmark(0, ns, 0, 5, { right_gravity = false })
- meths.nvim_buf_set_extmark(0, ns, 0, 5, { right_gravity = true })
+ api.nvim_buf_set_extmark(0, ns, 0, 5, { right_gravity = false })
+ api.nvim_buf_set_extmark(0, ns, 0, 5, { right_gravity = true })
feed([[Aasdfasdf]])
- eq({ { 1, 0, 5 }, { 2, 0, 13 } }, meths.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
+ eq({ { 1, 0, 5 }, { 2, 0, 13 } }, api.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
-- but both move when text is inserted before
feed([[<esc>Iasdf<esc>]])
- -- eq({}, meths.nvim_buf_get_lines(0, 0, -1, true))
- eq({ { 1, 0, 9 }, { 2, 0, 17 } }, meths.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
+ -- eq({}, api.nvim_buf_get_lines(0, 0, -1, true))
+ eq({ { 1, 0, 9 }, { 2, 0, 17 } }, api.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
-- clear text
- meths.nvim_buf_set_text(0, 0, 0, 0, 17, {})
+ api.nvim_buf_set_text(0, 0, 0, 0, 17, {})
-- handles set_text correctly as well
- eq({ { 1, 0, 0 }, { 2, 0, 0 } }, meths.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
- meths.nvim_buf_set_text(0, 0, 0, 0, 0, { 'asdfasdf' })
- eq({ { 1, 0, 0 }, { 2, 0, 8 } }, meths.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
+ eq({ { 1, 0, 0 }, { 2, 0, 0 } }, api.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
+ api.nvim_buf_set_text(0, 0, 0, 0, 0, { 'asdfasdf' })
+ eq({ { 1, 0, 0 }, { 2, 0, 8 } }, api.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
feed('u')
-- handles pasting
exec([[let @a='asdfasdf']])
feed([["ap]])
- eq({ { 1, 0, 0 }, { 2, 0, 8 } }, meths.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
+ eq({ { 1, 0, 0 }, { 2, 0, 8 } }, api.nvim_buf_get_extmarks(0, ns, 0, -1, {}))
end)
it('can accept "end_row" or "end_line" #16548', function()
@@ -1545,7 +1545,7 @@ describe('API/extmarks', function()
it('in prompt buffer', function()
feed('dd')
local id = set_extmark(ns, marks[1], 0, 0, {})
- meths.nvim_set_option_value('buftype', 'prompt', {})
+ api.nvim_set_option_value('buftype', 'prompt', {})
feed('i<esc>')
eq({ { id, 0, 2 } }, get_extmarks(ns, 0, -1))
end)
@@ -1639,7 +1639,7 @@ describe('API/extmarks', function()
right_gravity = true,
},
}, get_extmark_by_id(ns, marks[3], { details = true }))
- meths.nvim_buf_clear_namespace(0, ns, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns, 0, -1)
-- legacy sign mark includes sign name
command('sign define sign1 text=s1 texthl=Title linehl=LineNR numhl=Normal culhl=CursorLine')
command('sign place 1 name=sign1 line=1')
@@ -1693,7 +1693,7 @@ describe('API/extmarks', function()
screen = Screen.new(40, 6)
screen:attach()
feed('dd6iaaa bbb ccc<CR><ESC>gg')
- meths.nvim_set_option_value('signcolumn', 'auto:2', {})
+ api.nvim_set_option_value('signcolumn', 'auto:2', {})
set_extmark(ns, 1, 0, 0, { invalidate = true, sign_text = 'S1', end_row = 1 })
set_extmark(ns, 2, 1, 0, { invalidate = true, sign_text = 'S2', end_row = 2 })
-- mark with invalidate is removed
@@ -1768,7 +1768,7 @@ describe('Extmarks buffer api with many marks', function()
for i = 1, 30 do
lines[#lines + 1] = string.rep('x ', i)
end
- meths.nvim_buf_set_lines(0, 0, -1, true, lines)
+ api.nvim_buf_set_lines(0, 0, -1, true, lines)
local ns = ns1
local q = 0
for i = 0, 29 do
@@ -1802,16 +1802,16 @@ describe('Extmarks buffer api with many marks', function()
end)
it('can clear all marks in ns', function()
- meths.nvim_buf_clear_namespace(0, ns1, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns1, 0, -1)
eq({}, get_marks(ns1))
eq(ns_marks[ns2], get_marks(ns2))
- meths.nvim_buf_clear_namespace(0, ns2, 0, -1)
+ api.nvim_buf_clear_namespace(0, ns2, 0, -1)
eq({}, get_marks(ns1))
eq({}, get_marks(ns2))
end)
it('can clear line range', function()
- meths.nvim_buf_clear_namespace(0, ns1, 10, 20)
+ api.nvim_buf_clear_namespace(0, ns1, 10, 20)
for id, mark in pairs(ns_marks[ns1]) do
if 10 <= mark[1] and mark[1] < 20 then
ns_marks[ns1][id] = nil
diff --git a/test/functional/api/highlight_spec.lua b/test/functional/api/highlight_spec.lua
index b86fe550a1..1973d3e1c7 100644
--- a/test/functional/api/highlight_spec.lua
+++ b/test/functional/api/highlight_spec.lua
@@ -4,8 +4,8 @@ local Screen = require('test.functional.ui.screen')
local eq, eval = helpers.eq, helpers.eval
local command = helpers.command
local exec_capture = helpers.exec_capture
-local meths = helpers.meths
-local funcs = helpers.funcs
+local api = helpers.api
+local fn = helpers.fn
local pcall_err = helpers.pcall_err
local ok = helpers.ok
local assert_alive = helpers.assert_alive
@@ -52,128 +52,125 @@ describe('API: highlight', function()
it('nvim_get_hl_by_id', function()
local hl_id = eval("hlID('NewHighlight')")
- eq(expected_cterm, meths.nvim_get_hl_by_id(hl_id, false))
+ eq(expected_cterm, api.nvim_get_hl_by_id(hl_id, false))
hl_id = eval("hlID('NewHighlight')")
-- Test valid id.
- eq(expected_rgb, meths.nvim_get_hl_by_id(hl_id, true))
+ eq(expected_rgb, api.nvim_get_hl_by_id(hl_id, true))
-- Test invalid id.
- eq('Invalid highlight id: 30000', pcall_err(meths.nvim_get_hl_by_id, 30000, false))
+ eq('Invalid highlight id: 30000', pcall_err(api.nvim_get_hl_by_id, 30000, false))
-- Test all highlight properties.
command('hi NewHighlight gui=underline,bold,italic,reverse,strikethrough,altfont,nocombine')
- eq(expected_rgb2, meths.nvim_get_hl_by_id(hl_id, true))
+ eq(expected_rgb2, api.nvim_get_hl_by_id(hl_id, true))
-- Test undercurl
command('hi NewHighlight gui=undercurl')
- eq(expected_undercurl, meths.nvim_get_hl_by_id(hl_id, true))
+ eq(expected_undercurl, api.nvim_get_hl_by_id(hl_id, true))
-- Test nil argument.
eq(
'Wrong type for argument 1 when calling nvim_get_hl_by_id, expecting Integer',
- pcall_err(meths.nvim_get_hl_by_id, { nil }, false)
+ pcall_err(api.nvim_get_hl_by_id, { nil }, false)
)
-- Test 0 argument.
- eq('Invalid highlight id: 0', pcall_err(meths.nvim_get_hl_by_id, 0, false))
+ eq('Invalid highlight id: 0', pcall_err(api.nvim_get_hl_by_id, 0, false))
-- Test -1 argument.
- eq('Invalid highlight id: -1', pcall_err(meths.nvim_get_hl_by_id, -1, false))
+ eq('Invalid highlight id: -1', pcall_err(api.nvim_get_hl_by_id, -1, false))
-- Test highlight group without ctermbg value.
command('hi Normal ctermfg=red ctermbg=yellow')
command('hi NewConstant ctermfg=green guifg=white guibg=blue')
hl_id = eval("hlID('NewConstant')")
- eq({ foreground = 10 }, meths.nvim_get_hl_by_id(hl_id, false))
+ eq({ foreground = 10 }, api.nvim_get_hl_by_id(hl_id, false))
-- Test highlight group without ctermfg value.
command('hi clear NewConstant')
command('hi NewConstant ctermbg=Magenta guifg=white guibg=blue')
- eq({ background = 13 }, meths.nvim_get_hl_by_id(hl_id, false))
+ eq({ background = 13 }, api.nvim_get_hl_by_id(hl_id, false))
-- Test highlight group with ctermfg and ctermbg values.
command('hi clear NewConstant')
command('hi NewConstant ctermfg=green ctermbg=Magenta guifg=white guibg=blue')
- eq({ foreground = 10, background = 13 }, meths.nvim_get_hl_by_id(hl_id, false))
+ eq({ foreground = 10, background = 13 }, api.nvim_get_hl_by_id(hl_id, false))
end)
it('nvim_get_hl_by_name', function()
local expected_normal = { background = Screen.colors.Yellow, foreground = Screen.colors.Red }
-- Test `Normal` default values.
- eq({}, meths.nvim_get_hl_by_name('Normal', true))
+ eq({}, api.nvim_get_hl_by_name('Normal', true))
- eq(expected_cterm, meths.nvim_get_hl_by_name('NewHighlight', false))
- eq(expected_rgb, meths.nvim_get_hl_by_name('NewHighlight', true))
+ eq(expected_cterm, api.nvim_get_hl_by_name('NewHighlight', false))
+ eq(expected_rgb, api.nvim_get_hl_by_name('NewHighlight', true))
-- Test `Normal` modified values.
command('hi Normal guifg=red guibg=yellow')
- eq(expected_normal, meths.nvim_get_hl_by_name('Normal', true))
+ eq(expected_normal, api.nvim_get_hl_by_name('Normal', true))
-- Test invalid name.
eq(
"Invalid highlight name: 'unknown_highlight'",
- pcall_err(meths.nvim_get_hl_by_name, 'unknown_highlight', false)
+ pcall_err(api.nvim_get_hl_by_name, 'unknown_highlight', false)
)
-- Test nil argument.
eq(
'Wrong type for argument 1 when calling nvim_get_hl_by_name, expecting String',
- pcall_err(meths.nvim_get_hl_by_name, { nil }, false)
+ pcall_err(api.nvim_get_hl_by_name, { nil }, false)
)
-- Test empty string argument.
- eq('Invalid highlight name', pcall_err(meths.nvim_get_hl_by_name, '', false))
+ eq('Invalid highlight name', pcall_err(api.nvim_get_hl_by_name, '', false))
-- Test "standout" attribute. #8054
- eq({ underline = true }, meths.nvim_get_hl_by_name('cursorline', 0))
+ eq({ underline = true }, api.nvim_get_hl_by_name('cursorline', 0))
command('hi CursorLine cterm=standout,underline term=standout,underline gui=standout,underline')
command('set cursorline')
- eq({ underline = true, standout = true }, meths.nvim_get_hl_by_name('cursorline', 0))
+ eq({ underline = true, standout = true }, api.nvim_get_hl_by_name('cursorline', 0))
-- Test cterm & Normal values. #18024 (tail) & #18980
-- Ensure Normal, and groups that match Normal return their fg & bg cterm values
- meths.nvim_set_hl(0, 'Normal', { ctermfg = 17, ctermbg = 213 })
- meths.nvim_set_hl(0, 'NotNormal', { ctermfg = 17, ctermbg = 213, nocombine = true })
+ api.nvim_set_hl(0, 'Normal', { ctermfg = 17, ctermbg = 213 })
+ api.nvim_set_hl(0, 'NotNormal', { ctermfg = 17, ctermbg = 213, nocombine = true })
-- Note colors are "cterm" values, not rgb-as-ints
- eq({ foreground = 17, background = 213 }, meths.nvim_get_hl_by_name('Normal', false))
+ eq({ foreground = 17, background = 213 }, api.nvim_get_hl_by_name('Normal', false))
eq(
{ foreground = 17, background = 213, nocombine = true },
- meths.nvim_get_hl_by_name('NotNormal', false)
+ api.nvim_get_hl_by_name('NotNormal', false)
)
end)
it('nvim_get_hl_id_by_name', function()
-- precondition: use a hl group that does not yet exist
- eq(
- "Invalid highlight name: 'Shrubbery'",
- pcall_err(meths.nvim_get_hl_by_name, 'Shrubbery', true)
- )
- eq(0, funcs.hlID('Shrubbery'))
+ eq("Invalid highlight name: 'Shrubbery'", pcall_err(api.nvim_get_hl_by_name, 'Shrubbery', true))
+ eq(0, fn.hlID('Shrubbery'))
- local hl_id = meths.nvim_get_hl_id_by_name('Shrubbery')
+ local hl_id = api.nvim_get_hl_id_by_name('Shrubbery')
ok(hl_id > 0)
- eq(hl_id, funcs.hlID('Shrubbery'))
+ eq(hl_id, fn.hlID('Shrubbery'))
command('hi Shrubbery guifg=#888888 guibg=#888888')
eq(
{ foreground = tonumber('0x888888'), background = tonumber('0x888888') },
- meths.nvim_get_hl_by_id(hl_id, true)
+ api.nvim_get_hl_by_id(hl_id, true)
)
eq(
{ foreground = tonumber('0x888888'), background = tonumber('0x888888') },
- meths.nvim_get_hl_by_name('Shrubbery', true)
+ api.nvim_get_hl_by_name('Shrubbery', true)
)
end)
it("nvim_buf_add_highlight to other buffer doesn't crash if undo is disabled #12873", function()
command('vsplit file')
- local err, _ = pcall(meths.nvim_set_option_value, 'undofile', false, { buf = 1 })
+ local err, _ = pcall(api.nvim_set_option_value, 'undofile', false, { buf = 1 })
eq(true, err)
- err, _ = pcall(meths.nvim_set_option_value, 'undolevels', -1, { buf = 1 })
+ err, _ = pcall(api.nvim_set_option_value, 'undolevels', -1, { buf = 1 })
eq(true, err)
- err, _ = pcall(meths.nvim_buf_add_highlight, 1, -1, 'Question', 0, 0, -1)
+ err, _ = pcall(api.nvim_buf_add_highlight, 1, -1, 'Question', 0, 0, -1)
eq(true, err)
assert_alive()
end)
@@ -244,8 +241,8 @@ describe('API: set highlight', function()
}
local function get_ns()
- local ns = meths.nvim_create_namespace('Test_set_hl')
- meths.nvim_set_hl_ns(ns)
+ local ns = api.nvim_create_namespace('Test_set_hl')
+ api.nvim_set_hl_ns(ns)
return ns
end
@@ -254,51 +251,51 @@ describe('API: set highlight', function()
it('validation', function()
eq(
"Invalid 'blend': out of range",
- pcall_err(meths.nvim_set_hl, 0, 'Test_hl3', { fg = '#FF00FF', blend = 999 })
+ pcall_err(api.nvim_set_hl, 0, 'Test_hl3', { fg = '#FF00FF', blend = 999 })
)
eq(
"Invalid 'blend': expected Integer, got Array",
- pcall_err(meths.nvim_set_hl, 0, 'Test_hl3', { fg = '#FF00FF', blend = {} })
+ pcall_err(api.nvim_set_hl, 0, 'Test_hl3', { fg = '#FF00FF', blend = {} })
)
end)
it('can set gui highlight', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight1)
- eq(highlight1, meths.nvim_get_hl_by_name('Test_hl', true))
+ api.nvim_set_hl(ns, 'Test_hl', highlight1)
+ eq(highlight1, api.nvim_get_hl_by_name('Test_hl', true))
end)
it('can set cterm highlight', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight2_config)
- eq(highlight2_result, meths.nvim_get_hl_by_name('Test_hl', false))
+ api.nvim_set_hl(ns, 'Test_hl', highlight2_config)
+ eq(highlight2_result, api.nvim_get_hl_by_name('Test_hl', false))
end)
it('can set empty cterm attr', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', { cterm = {} })
- eq({}, meths.nvim_get_hl_by_name('Test_hl', false))
+ api.nvim_set_hl(ns, 'Test_hl', { cterm = {} })
+ eq({}, api.nvim_get_hl_by_name('Test_hl', false))
end)
it('cterm attr defaults to gui attr', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight1)
+ api.nvim_set_hl(ns, 'Test_hl', highlight1)
eq({
bold = true,
italic = true,
- }, meths.nvim_get_hl_by_name('Test_hl', false))
+ }, api.nvim_get_hl_by_name('Test_hl', false))
end)
it('can overwrite attr for cterm', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight3_config)
- eq(highlight3_result_gui, meths.nvim_get_hl_by_name('Test_hl', true))
- eq(highlight3_result_cterm, meths.nvim_get_hl_by_name('Test_hl', false))
+ api.nvim_set_hl(ns, 'Test_hl', highlight3_config)
+ eq(highlight3_result_gui, api.nvim_get_hl_by_name('Test_hl', true))
+ eq(highlight3_result_cterm, api.nvim_get_hl_by_name('Test_hl', false))
end)
it('only allows one underline attribute #22371', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', {
+ api.nvim_set_hl(ns, 'Test_hl', {
underdouble = true,
underdotted = true,
cterm = {
@@ -306,21 +303,21 @@ describe('API: set highlight', function()
undercurl = true,
},
})
- eq({ undercurl = true }, meths.nvim_get_hl_by_name('Test_hl', false))
- eq({ underdotted = true }, meths.nvim_get_hl_by_name('Test_hl', true))
+ eq({ undercurl = true }, api.nvim_get_hl_by_name('Test_hl', false))
+ eq({ underdotted = true }, api.nvim_get_hl_by_name('Test_hl', true))
end)
it('can set a highlight in the global namespace', function()
- meths.nvim_set_hl(0, 'Test_hl', highlight2_config)
+ api.nvim_set_hl(0, 'Test_hl', highlight2_config)
eq(
'Test_hl xxx cterm=underline,reverse ctermfg=8 ctermbg=15 gui=underline,reverse',
exec_capture('highlight Test_hl')
)
- meths.nvim_set_hl(0, 'Test_hl', { background = highlight_color.bg })
+ api.nvim_set_hl(0, 'Test_hl', { background = highlight_color.bg })
eq('Test_hl xxx guibg=#0032aa', exec_capture('highlight Test_hl'))
- meths.nvim_set_hl(0, 'Test_hl2', highlight3_config)
+ api.nvim_set_hl(0, 'Test_hl2', highlight3_config)
eq(
'Test_hl2 xxx cterm=italic,reverse,strikethrough,altfont,nocombine ctermfg=8 ctermbg=15 gui=bold,underdashed,italic,reverse,strikethrough,altfont guifg=#ff0000 guibg=#0032aa',
exec_capture('highlight Test_hl2')
@@ -328,63 +325,63 @@ describe('API: set highlight', function()
-- Colors are stored with the name they are defined, but
-- with canonical casing
- meths.nvim_set_hl(0, 'Test_hl3', { bg = 'reD', fg = 'bLue' })
+ api.nvim_set_hl(0, 'Test_hl3', { bg = 'reD', fg = 'bLue' })
eq('Test_hl3 xxx guifg=Blue guibg=Red', exec_capture('highlight Test_hl3'))
end)
it('can modify a highlight in the global namespace', function()
- meths.nvim_set_hl(0, 'Test_hl3', { bg = 'red', fg = 'blue' })
+ api.nvim_set_hl(0, 'Test_hl3', { bg = 'red', fg = 'blue' })
eq('Test_hl3 xxx guifg=Blue guibg=Red', exec_capture('highlight Test_hl3'))
- meths.nvim_set_hl(0, 'Test_hl3', { bg = 'red' })
+ api.nvim_set_hl(0, 'Test_hl3', { bg = 'red' })
eq('Test_hl3 xxx guibg=Red', exec_capture('highlight Test_hl3'))
- meths.nvim_set_hl(0, 'Test_hl3', { ctermbg = 9, ctermfg = 12 })
+ api.nvim_set_hl(0, 'Test_hl3', { ctermbg = 9, ctermfg = 12 })
eq('Test_hl3 xxx ctermfg=12 ctermbg=9', exec_capture('highlight Test_hl3'))
- meths.nvim_set_hl(0, 'Test_hl3', { ctermbg = 'red', ctermfg = 'blue' })
+ api.nvim_set_hl(0, 'Test_hl3', { ctermbg = 'red', ctermfg = 'blue' })
eq('Test_hl3 xxx ctermfg=12 ctermbg=9', exec_capture('highlight Test_hl3'))
- meths.nvim_set_hl(0, 'Test_hl3', { ctermbg = 9 })
+ api.nvim_set_hl(0, 'Test_hl3', { ctermbg = 9 })
eq('Test_hl3 xxx ctermbg=9', exec_capture('highlight Test_hl3'))
eq(
"Invalid highlight color: 'redd'",
- pcall_err(meths.nvim_set_hl, 0, 'Test_hl3', { fg = 'redd' })
+ pcall_err(api.nvim_set_hl, 0, 'Test_hl3', { fg = 'redd' })
)
eq(
"Invalid highlight color: 'bleu'",
- pcall_err(meths.nvim_set_hl, 0, 'Test_hl3', { ctermfg = 'bleu' })
+ pcall_err(api.nvim_set_hl, 0, 'Test_hl3', { ctermfg = 'bleu' })
)
- meths.nvim_set_hl(0, 'Test_hl3', { fg = '#FF00FF' })
+ api.nvim_set_hl(0, 'Test_hl3', { fg = '#FF00FF' })
eq('Test_hl3 xxx guifg=#ff00ff', exec_capture('highlight Test_hl3'))
eq(
"Invalid highlight color: '#FF00FF'",
- pcall_err(meths.nvim_set_hl, 0, 'Test_hl3', { ctermfg = '#FF00FF' })
+ pcall_err(api.nvim_set_hl, 0, 'Test_hl3', { ctermfg = '#FF00FF' })
)
for _, fg_val in ipairs { nil, 'NONE', 'nOnE', '', -1 } do
- meths.nvim_set_hl(0, 'Test_hl3', { fg = fg_val })
+ api.nvim_set_hl(0, 'Test_hl3', { fg = fg_val })
eq('Test_hl3 xxx cleared', exec_capture('highlight Test_hl3'))
end
- meths.nvim_set_hl(0, 'Test_hl3', { fg = '#FF00FF', blend = 50 })
+ api.nvim_set_hl(0, 'Test_hl3', { fg = '#FF00FF', blend = 50 })
eq('Test_hl3 xxx guifg=#ff00ff blend=50', exec_capture('highlight Test_hl3'))
end)
it("correctly sets 'Normal' internal properties", function()
-- Normal has some special handling internally. #18024
- meths.nvim_set_hl(0, 'Normal', { fg = '#000083', bg = '#0000F3' })
- eq({ foreground = 131, background = 243 }, meths.nvim_get_hl_by_name('Normal', true))
+ api.nvim_set_hl(0, 'Normal', { fg = '#000083', bg = '#0000F3' })
+ eq({ foreground = 131, background = 243 }, api.nvim_get_hl_by_name('Normal', true))
end)
it('does not segfault on invalid group name #20009', function()
eq(
"Invalid highlight name: 'foo bar'",
- pcall_err(meths.nvim_set_hl, 0, 'foo bar', { bold = true })
+ pcall_err(api.nvim_set_hl, 0, 'foo bar', { bold = true })
)
assert_alive()
end)
@@ -452,14 +449,14 @@ describe('API: get highlight', function()
local function get_ns()
-- Test namespace filtering behavior
- local ns2 = meths.nvim_create_namespace('Another_namespace')
- meths.nvim_set_hl(ns2, 'Test_hl', { ctermfg = 23 })
- meths.nvim_set_hl(ns2, 'Test_another_hl', { link = 'Test_hl' })
- meths.nvim_set_hl(ns2, 'Test_hl_link', { link = 'Test_another_hl' })
- meths.nvim_set_hl(ns2, 'Test_another_hl_link', { link = 'Test_hl_link' })
+ local ns2 = api.nvim_create_namespace('Another_namespace')
+ api.nvim_set_hl(ns2, 'Test_hl', { ctermfg = 23 })
+ api.nvim_set_hl(ns2, 'Test_another_hl', { link = 'Test_hl' })
+ api.nvim_set_hl(ns2, 'Test_hl_link', { link = 'Test_another_hl' })
+ api.nvim_set_hl(ns2, 'Test_another_hl_link', { link = 'Test_hl_link' })
- local ns = meths.nvim_create_namespace('Test_set_hl')
- meths.nvim_set_hl_ns(ns)
+ local ns = api.nvim_create_namespace('Test_set_hl')
+ api.nvim_set_hl_ns(ns)
return ns
end
@@ -469,24 +466,24 @@ describe('API: get highlight', function()
it('validation', function()
eq(
"Invalid 'name': expected String, got Integer",
- pcall_err(meths.nvim_get_hl, 0, { name = 177 })
+ pcall_err(api.nvim_get_hl, 0, { name = 177 })
)
- eq('Highlight id out of bounds', pcall_err(meths.nvim_get_hl, 0, { name = 'Test set hl' }))
+ eq('Highlight id out of bounds', pcall_err(api.nvim_get_hl, 0, { name = 'Test set hl' }))
end)
it('nvim_get_hl with create flag', function()
- eq({}, meths.nvim_get_hl(0, { name = 'Foo', create = false }))
- eq(0, funcs.hlexists('Foo'))
- meths.nvim_get_hl(0, { name = 'Bar', create = true })
- eq(1, funcs.hlexists('Bar'))
- meths.nvim_get_hl(0, { name = 'FooBar' })
- eq(1, funcs.hlexists('FooBar'))
+ eq({}, api.nvim_get_hl(0, { name = 'Foo', create = false }))
+ eq(0, fn.hlexists('Foo'))
+ api.nvim_get_hl(0, { name = 'Bar', create = true })
+ eq(1, fn.hlexists('Bar'))
+ api.nvim_get_hl(0, { name = 'FooBar' })
+ eq(1, fn.hlexists('FooBar'))
end)
it('can get all highlights in current namespace', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', { bg = '#B4BEFE' })
- meths.nvim_set_hl(ns, 'Test_hl_link', { link = 'Test_hl' })
+ api.nvim_set_hl(ns, 'Test_hl', { bg = '#B4BEFE' })
+ api.nvim_set_hl(ns, 'Test_hl_link', { link = 'Test_hl' })
eq({
Test_hl = {
bg = 11845374,
@@ -494,42 +491,42 @@ describe('API: get highlight', function()
Test_hl_link = {
link = 'Test_hl',
},
- }, meths.nvim_get_hl(ns, {}))
+ }, api.nvim_get_hl(ns, {}))
end)
it('can get gui highlight', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight1)
- eq(highlight1, meths.nvim_get_hl(ns, { name = 'Test_hl' }))
+ api.nvim_set_hl(ns, 'Test_hl', highlight1)
+ eq(highlight1, api.nvim_get_hl(ns, { name = 'Test_hl' }))
end)
it('can get cterm highlight', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight2)
- eq(highlight2, meths.nvim_get_hl(ns, { name = 'Test_hl' }))
+ api.nvim_set_hl(ns, 'Test_hl', highlight2)
+ eq(highlight2, api.nvim_get_hl(ns, { name = 'Test_hl' }))
end)
it('can get empty cterm attr', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', { cterm = {} })
- eq({}, meths.nvim_get_hl(ns, { name = 'Test_hl' }))
+ api.nvim_set_hl(ns, 'Test_hl', { cterm = {} })
+ eq({}, api.nvim_get_hl(ns, { name = 'Test_hl' }))
end)
it('cterm attr defaults to gui attr', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight1)
- eq(highlight1, meths.nvim_get_hl(ns, { name = 'Test_hl' }))
+ api.nvim_set_hl(ns, 'Test_hl', highlight1)
+ eq(highlight1, api.nvim_get_hl(ns, { name = 'Test_hl' }))
end)
it('can overwrite attr for cterm', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', highlight3_config)
- eq(highlight3_result, meths.nvim_get_hl(ns, { name = 'Test_hl' }))
+ api.nvim_set_hl(ns, 'Test_hl', highlight3_config)
+ eq(highlight3_result, api.nvim_get_hl(ns, { name = 'Test_hl' }))
end)
it('only allows one underline attribute #22371', function()
local ns = get_ns()
- meths.nvim_set_hl(ns, 'Test_hl', {
+ api.nvim_set_hl(ns, 'Test_hl', {
underdouble = true,
underdotted = true,
cterm = {
@@ -539,33 +536,33 @@ describe('API: get highlight', function()
})
eq(
{ underdotted = true, cterm = { undercurl = true } },
- meths.nvim_get_hl(ns, { name = 'Test_hl' })
+ api.nvim_get_hl(ns, { name = 'Test_hl' })
)
end)
it('can get a highlight in the global namespace', function()
- meths.nvim_set_hl(0, 'Test_hl', highlight2)
- eq(highlight2, meths.nvim_get_hl(0, { name = 'Test_hl' }))
+ api.nvim_set_hl(0, 'Test_hl', highlight2)
+ eq(highlight2, api.nvim_get_hl(0, { name = 'Test_hl' }))
- meths.nvim_set_hl(0, 'Test_hl', { background = highlight_color.bg })
+ api.nvim_set_hl(0, 'Test_hl', { background = highlight_color.bg })
eq({
bg = 12970,
- }, meths.nvim_get_hl(0, { name = 'Test_hl' }))
+ }, api.nvim_get_hl(0, { name = 'Test_hl' }))
- meths.nvim_set_hl(0, 'Test_hl2', highlight3_config)
- eq(highlight3_result, meths.nvim_get_hl(0, { name = 'Test_hl2' }))
+ api.nvim_set_hl(0, 'Test_hl2', highlight3_config)
+ eq(highlight3_result, api.nvim_get_hl(0, { name = 'Test_hl2' }))
-- Colors are stored with the name they are defined, but
-- with canonical casing
- meths.nvim_set_hl(0, 'Test_hl3', { bg = 'reD', fg = 'bLue' })
+ api.nvim_set_hl(0, 'Test_hl3', { bg = 'reD', fg = 'bLue' })
eq({
bg = 16711680,
fg = 255,
- }, meths.nvim_get_hl(0, { name = 'Test_hl3' }))
+ }, api.nvim_get_hl(0, { name = 'Test_hl3' }))
end)
it('nvim_get_hl by id', function()
- local hl_id = meths.nvim_get_hl_id_by_name('NewHighlight')
+ local hl_id = api.nvim_get_hl_id_by_name('NewHighlight')
command(
'hi NewHighlight cterm=underline ctermbg=green guifg=red guibg=yellow guisp=blue gui=bold'
@@ -577,14 +574,14 @@ describe('API: get highlight', function()
bold = true,
ctermbg = 10,
cterm = { underline = true },
- }, meths.nvim_get_hl(0, { id = hl_id }))
+ }, api.nvim_get_hl(0, { id = hl_id }))
-- Test 0 argument
- eq('Highlight id out of bounds', pcall_err(meths.nvim_get_hl, 0, { id = 0 }))
+ eq('Highlight id out of bounds', pcall_err(api.nvim_get_hl, 0, { id = 0 }))
eq(
"Invalid 'id': expected Integer, got String",
- pcall_err(meths.nvim_get_hl, 0, { id = 'Test_set_hl' })
+ pcall_err(api.nvim_get_hl, 0, { id = 'Test_set_hl' })
)
-- Test all highlight properties.
@@ -602,7 +599,7 @@ describe('API: get highlight', function()
underline = true,
ctermbg = 10,
cterm = { underline = true },
- }, meths.nvim_get_hl(0, { id = hl_id }))
+ }, api.nvim_get_hl(0, { id = hl_id }))
-- Test undercurl
command('hi NewHighlight gui=undercurl')
@@ -613,16 +610,16 @@ describe('API: get highlight', function()
undercurl = true,
ctermbg = 10,
cterm = { underline = true },
- }, meths.nvim_get_hl(0, { id = hl_id }))
+ }, api.nvim_get_hl(0, { id = hl_id }))
end)
it('can correctly detect links', function()
command('hi String guifg=#a6e3a1 ctermfg=NONE')
command('hi link @string string')
command('hi link @string.cpp @string')
- eq({ fg = 10937249 }, meths.nvim_get_hl(0, { name = 'String' }))
- eq({ link = 'String' }, meths.nvim_get_hl(0, { name = '@string' }))
- eq({ fg = 10937249 }, meths.nvim_get_hl(0, { name = '@string.cpp', link = false }))
+ eq({ fg = 10937249 }, api.nvim_get_hl(0, { name = 'String' }))
+ eq({ link = 'String' }, api.nvim_get_hl(0, { name = '@string' }))
+ eq({ fg = 10937249 }, api.nvim_get_hl(0, { name = '@string.cpp', link = false }))
end)
it('can get all attributes for a linked group', function()
@@ -631,55 +628,55 @@ describe('API: get highlight', function()
command('hi! link Foo Bar')
eq(
{ link = 'Bar', fg = tonumber('00ff00', 16), bold = true, underline = true },
- meths.nvim_get_hl(0, { name = 'Foo', link = true })
+ api.nvim_get_hl(0, { name = 'Foo', link = true })
)
end)
it('can set link as well as other attributes', function()
command('hi Bar guifg=red')
local hl = { link = 'Bar', fg = tonumber('00ff00', 16), bold = true, cterm = { bold = true } }
- meths.nvim_set_hl(0, 'Foo', hl)
- eq(hl, meths.nvim_get_hl(0, { name = 'Foo', link = true }))
+ api.nvim_set_hl(0, 'Foo', hl)
+ eq(hl, api.nvim_get_hl(0, { name = 'Foo', link = true }))
end)
it("doesn't contain unset groups", function()
- local id = meths.nvim_get_hl_id_by_name '@foobar.hubbabubba'
+ local id = api.nvim_get_hl_id_by_name '@foobar.hubbabubba'
ok(id > 0)
- local data = meths.nvim_get_hl(0, {})
+ local data = api.nvim_get_hl(0, {})
eq(nil, data['@foobar.hubbabubba'])
eq(nil, data['@foobar'])
command 'hi @foobar.hubbabubba gui=bold'
- data = meths.nvim_get_hl(0, {})
+ data = api.nvim_get_hl(0, {})
eq({ bold = true }, data['@foobar.hubbabubba'])
eq(nil, data['@foobar'])
-- @foobar.hubbabubba was explicitly cleared and thus shows up
-- but @foobar was never touched, and thus doesn't
command 'hi clear @foobar.hubbabubba'
- data = meths.nvim_get_hl(0, {})
+ data = api.nvim_get_hl(0, {})
eq({}, data['@foobar.hubbabubba'])
eq(nil, data['@foobar'])
end)
it('should return default flag', function()
- meths.nvim_set_hl(0, 'Tried', { fg = '#00ff00', default = true })
- eq({ fg = tonumber('00ff00', 16), default = true }, meths.nvim_get_hl(0, { name = 'Tried' }))
+ api.nvim_set_hl(0, 'Tried', { fg = '#00ff00', default = true })
+ eq({ fg = tonumber('00ff00', 16), default = true }, api.nvim_get_hl(0, { name = 'Tried' }))
end)
it('should not output empty gui and cterm #23474', function()
- meths.nvim_set_hl(0, 'Foo', { default = true })
- meths.nvim_set_hl(0, 'Bar', { default = true, fg = '#ffffff' })
- meths.nvim_set_hl(0, 'FooBar', { default = true, fg = '#ffffff', cterm = { bold = true } })
- meths.nvim_set_hl(
+ api.nvim_set_hl(0, 'Foo', { default = true })
+ api.nvim_set_hl(0, 'Bar', { default = true, fg = '#ffffff' })
+ api.nvim_set_hl(0, 'FooBar', { default = true, fg = '#ffffff', cterm = { bold = true } })
+ api.nvim_set_hl(
0,
'FooBarA',
{ default = true, fg = '#ffffff', cterm = { bold = true, italic = true } }
)
eq('Foo xxx cleared', exec_capture('highlight Foo'))
- eq({ default = true }, meths.nvim_get_hl(0, { name = 'Foo' }))
+ eq({ default = true }, api.nvim_get_hl(0, { name = 'Foo' }))
eq('Bar xxx guifg=#ffffff', exec_capture('highlight Bar'))
eq('FooBar xxx cterm=bold guifg=#ffffff', exec_capture('highlight FooBar'))
eq('FooBarA xxx cterm=bold,italic guifg=#ffffff', exec_capture('highlight FooBarA'))
@@ -688,27 +685,27 @@ describe('API: get highlight', function()
it('can override exist highlight group by force #20323', function()
local white = tonumber('ffffff', 16)
local green = tonumber('00ff00', 16)
- meths.nvim_set_hl(0, 'Foo', { fg = white })
- meths.nvim_set_hl(0, 'Foo', { fg = green, force = true })
- eq({ fg = green }, meths.nvim_get_hl(0, { name = 'Foo' }))
- meths.nvim_set_hl(0, 'Bar', { link = 'Comment', default = true })
- meths.nvim_set_hl(0, 'Bar', { link = 'Foo', default = true, force = true })
- eq({ link = 'Foo', default = true }, meths.nvim_get_hl(0, { name = 'Bar' }))
+ api.nvim_set_hl(0, 'Foo', { fg = white })
+ api.nvim_set_hl(0, 'Foo', { fg = green, force = true })
+ eq({ fg = green }, api.nvim_get_hl(0, { name = 'Foo' }))
+ api.nvim_set_hl(0, 'Bar', { link = 'Comment', default = true })
+ api.nvim_set_hl(0, 'Bar', { link = 'Foo', default = true, force = true })
+ eq({ link = 'Foo', default = true }, api.nvim_get_hl(0, { name = 'Bar' }))
end)
end)
describe('API: set/get highlight namespace', function()
it('set/get highlight namespace', function()
- eq(0, meths.nvim_get_hl_ns({}))
- local ns = meths.nvim_create_namespace('')
- meths.nvim_set_hl_ns(ns)
- eq(ns, meths.nvim_get_hl_ns({}))
+ eq(0, api.nvim_get_hl_ns({}))
+ local ns = api.nvim_create_namespace('')
+ api.nvim_set_hl_ns(ns)
+ eq(ns, api.nvim_get_hl_ns({}))
end)
it('set/get window highlight namespace', function()
- eq(-1, meths.nvim_get_hl_ns({ winid = 0 }))
- local ns = meths.nvim_create_namespace('')
- meths.nvim_win_set_hl_ns(0, ns)
- eq(ns, meths.nvim_get_hl_ns({ winid = 0 }))
+ eq(-1, api.nvim_get_hl_ns({ winid = 0 }))
+ local ns = api.nvim_create_namespace('')
+ api.nvim_win_set_hl_ns(0, ns)
+ eq(ns, api.nvim_get_hl_ns({ winid = 0 }))
end)
end)
diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua
index b7de7732e8..4f57f6d0bd 100644
--- a/test/functional/api/keymap_spec.lua
+++ b/test/functional/api/keymap_spec.lua
@@ -6,8 +6,8 @@ local eq, neq = helpers.eq, helpers.neq
local exec_lua = helpers.exec_lua
local exec = helpers.exec
local feed = helpers.feed
-local funcs = helpers.funcs
-local meths = helpers.meths
+local fn = helpers.fn
+local api = helpers.api
local source = helpers.source
local pcall_err = helpers.pcall_err
@@ -55,7 +55,7 @@ describe('nvim_get_keymap', function()
}
it('returns empty list when no map', function()
- eq({}, meths.nvim_get_keymap('n'))
+ eq({}, api.nvim_get_keymap('n'))
end)
it('returns list of all applicable mappings', function()
@@ -64,8 +64,8 @@ describe('nvim_get_keymap', function()
-- Should be the same as the dictionary we supplied earlier
-- and the dictionary you would get from maparg
-- since this is a global map, and not script local
- eq({ foo_bar_map_table }, meths.nvim_get_keymap('n'))
- eq({ funcs.maparg('foo', 'n', false, true) }, meths.nvim_get_keymap('n'))
+ eq({ foo_bar_map_table }, api.nvim_get_keymap('n'))
+ eq({ fn.maparg('foo', 'n', false, true) }, api.nvim_get_keymap('n'))
-- Add another mapping
command('nnoremap foo_longer bar_longer')
@@ -74,11 +74,11 @@ describe('nvim_get_keymap', function()
foolong_bar_map_table['lhsraw'] = 'foo_longer'
foolong_bar_map_table['rhs'] = 'bar_longer'
- eq({ foolong_bar_map_table, foo_bar_map_table }, meths.nvim_get_keymap('n'))
+ eq({ foolong_bar_map_table, foo_bar_map_table }, api.nvim_get_keymap('n'))
-- Remove a mapping
command('unmap foo_longer')
- eq({ foo_bar_map_table }, meths.nvim_get_keymap('n'))
+ eq({ foo_bar_map_table }, api.nvim_get_keymap('n'))
end)
it('works for other modes', function()
@@ -92,7 +92,7 @@ describe('nvim_get_keymap', function()
insert_table['mode'] = 'i'
insert_table['mode_bits'] = 0x10
- eq({ insert_table }, meths.nvim_get_keymap('i'))
+ eq({ insert_table }, api.nvim_get_keymap('i'))
end)
it('considers scope', function()
@@ -109,8 +109,8 @@ describe('nvim_get_keymap', function()
command('nnoremap <buffer> foo bar')
-- The buffer mapping should not show up
- eq({ foolong_bar_map_table }, meths.nvim_get_keymap('n'))
- eq({ buffer_table }, meths.nvim_buf_get_keymap(0, 'n'))
+ eq({ foolong_bar_map_table }, api.nvim_get_keymap('n'))
+ eq({ buffer_table }, api.nvim_buf_get_keymap(0, 'n'))
end)
it('considers scope for overlapping maps', function()
@@ -121,12 +121,12 @@ describe('nvim_get_keymap', function()
command('nnoremap <buffer> foo bar')
- eq({ foo_bar_map_table }, meths.nvim_get_keymap('n'))
- eq({ buffer_table }, meths.nvim_buf_get_keymap(0, 'n'))
+ eq({ foo_bar_map_table }, api.nvim_get_keymap('n'))
+ eq({ buffer_table }, api.nvim_buf_get_keymap(0, 'n'))
end)
it('can retrieve mapping for different buffers', function()
- local original_buffer = meths.nvim_buf_get_number(0)
+ local original_buffer = api.nvim_buf_get_number(0)
-- Place something in each of the buffers to make sure they stick around
-- and set hidden so we can leave them
command('set hidden')
@@ -135,21 +135,21 @@ describe('nvim_get_keymap', function()
command('new')
command('normal! ihello 3')
- local final_buffer = meths.nvim_buf_get_number(0)
+ local final_buffer = api.nvim_buf_get_number(0)
command('nnoremap <buffer> foo bar')
-- Final buffer will have buffer mappings
local buffer_table = shallowcopy(foo_bar_map_table)
buffer_table['buffer'] = final_buffer
- eq({ buffer_table }, meths.nvim_buf_get_keymap(final_buffer, 'n'))
- eq({ buffer_table }, meths.nvim_buf_get_keymap(0, 'n'))
+ eq({ buffer_table }, api.nvim_buf_get_keymap(final_buffer, 'n'))
+ eq({ buffer_table }, api.nvim_buf_get_keymap(0, 'n'))
command('buffer ' .. original_buffer)
- eq(original_buffer, meths.nvim_buf_get_number(0))
+ eq(original_buffer, api.nvim_buf_get_number(0))
-- Original buffer won't have any mappings
- eq({}, meths.nvim_get_keymap('n'))
- eq({}, meths.nvim_buf_get_keymap(0, 'n'))
- eq({ buffer_table }, meths.nvim_buf_get_keymap(final_buffer, 'n'))
+ eq({}, api.nvim_get_keymap('n'))
+ eq({}, api.nvim_buf_get_keymap(0, 'n'))
+ eq({ buffer_table }, api.nvim_buf_get_keymap(final_buffer, 'n'))
end)
-- Test toggle switches for basic options
@@ -189,7 +189,7 @@ describe('nvim_get_keymap', function()
function()
make_new_windows(new_windows)
command(map .. ' ' .. option_token .. ' foo bar')
- local result = meths.nvim_get_keymap(mode)[1][option]
+ local result = api.nvim_get_keymap(mode)[1][option]
eq(global_on_result, result)
end
)
@@ -207,7 +207,7 @@ describe('nvim_get_keymap', function()
function()
make_new_windows(new_windows)
command(map .. ' <buffer> ' .. option_token .. ' foo bar')
- local result = meths.nvim_buf_get_keymap(0, mode)[1][option]
+ local result = api.nvim_buf_get_keymap(0, mode)[1][option]
eq(buffer_on_result, result)
end
)
@@ -226,7 +226,7 @@ describe('nvim_get_keymap', function()
function()
make_new_windows(new_windows)
command(map .. ' baz bat')
- local result = meths.nvim_get_keymap(mode)[1][option]
+ local result = api.nvim_get_keymap(mode)[1][option]
eq(global_off_result, result)
end
)
@@ -244,7 +244,7 @@ describe('nvim_get_keymap', function()
make_new_windows(new_windows)
command(map .. ' <buffer> foo bar')
- local result = meths.nvim_buf_get_keymap(0, mode)[1][option]
+ local result = api.nvim_buf_get_keymap(0, mode)[1][option]
eq(buffer_off_result, result)
end
)
@@ -275,9 +275,9 @@ describe('nvim_get_keymap', function()
nnoremap fizz :call <SID>maparg_test_function()<CR>
]])
- local sid_result = meths.nvim_get_keymap('n')[1]['sid']
+ local sid_result = api.nvim_get_keymap('n')[1]['sid']
eq(1, sid_result)
- eq('testing', meths.nvim_call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
+ eq('testing', api.nvim_call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
end)
it('returns script numbers for buffer maps', function()
@@ -288,15 +288,15 @@ describe('nvim_get_keymap', function()
nnoremap <buffer> fizz :call <SID>maparg_test_function()<CR>
]])
- local sid_result = meths.nvim_buf_get_keymap(0, 'n')[1]['sid']
+ local sid_result = api.nvim_buf_get_keymap(0, 'n')[1]['sid']
eq(1, sid_result)
- eq('testing', meths.nvim_call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
+ eq('testing', api.nvim_call_function('<SNR>' .. sid_result .. '_maparg_test_function', {}))
end)
it('works with <F12> and others', function()
command('nnoremap <F12> :let g:maparg_test_var = 1<CR>')
- eq('<F12>', meths.nvim_get_keymap('n')[1]['lhs'])
- eq(':let g:maparg_test_var = 1<CR>', meths.nvim_get_keymap('n')[1]['rhs'])
+ eq('<F12>', api.nvim_get_keymap('n')[1]['lhs'])
+ eq(':let g:maparg_test_var = 1<CR>', api.nvim_get_keymap('n')[1]['rhs'])
end)
it('works correctly despite various &cpo settings', function()
@@ -339,7 +339,7 @@ describe('nvim_get_keymap', function()
-- wrapper around get_keymap() that drops "lhsraw" and "lhsrawalt" which are hard to check
local function get_keymap_noraw(...)
- local ret = meths.nvim_get_keymap(...)
+ local ret = api.nvim_get_keymap(...)
for _, item in ipairs(ret) do
item.lhsraw = nil
item.lhsrawalt = nil
@@ -390,7 +390,7 @@ describe('nvim_get_keymap', function()
lnum = 0,
}
command('nnoremap \\|<Char-0x20><Char-32><Space><Bar> \\|<Char-0x20><Char-32><Space> <Bar>')
- eq({ space_table }, meths.nvim_get_keymap('n'))
+ eq({ space_table }, api.nvim_get_keymap('n'))
end)
it('can handle lua mappings', function()
@@ -419,7 +419,7 @@ describe('nvim_get_keymap', function()
]])
eq(3, exec_lua([[return GlobalCount]]))
- local mapargs = meths.nvim_get_keymap('n')
+ local mapargs = api.nvim_get_keymap('n')
mapargs[1].callback = nil
eq({
lhs = 'asdf',
@@ -440,7 +440,7 @@ describe('nvim_get_keymap', function()
end)
it('can handle map descriptions', function()
- meths.nvim_set_keymap('n', 'lhs', 'rhs', { desc = 'map description' })
+ api.nvim_set_keymap('n', 'lhs', 'rhs', { desc = 'map description' })
eq({
lhs = 'lhs',
lhsraw = 'lhs',
@@ -458,7 +458,7 @@ describe('nvim_get_keymap', function()
noremap = 0,
lnum = 0,
desc = 'map description',
- }, meths.nvim_get_keymap('n')[1])
+ }, api.nvim_get_keymap('n')[1])
end)
end)
@@ -511,7 +511,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
-- Gets a maparg() dict from Nvim, if one exists.
local function get_mapargs(mode, lhs)
- local mapargs = funcs.maparg(lhs, normalize_mapmode(mode), mode:sub(-1) == 'a', true)
+ local mapargs = fn.maparg(lhs, normalize_mapmode(mode), mode:sub(-1) == 'a', true)
-- drop "lhsraw" and "lhsrawalt" which are hard to check
mapargs.lhsraw = nil
mapargs.lhsrawalt = nil
@@ -520,9 +520,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('error on empty LHS', function()
-- escape parentheses in lua string, else comparison fails erroneously
- eq('Invalid (empty) LHS', pcall_err(meths.nvim_set_keymap, '', '', 'rhs', {}))
- eq('Invalid (empty) LHS', pcall_err(meths.nvim_set_keymap, '', '', '', {}))
- eq('Invalid (empty) LHS', pcall_err(meths.nvim_del_keymap, '', ''))
+ eq('Invalid (empty) LHS', pcall_err(api.nvim_set_keymap, '', '', 'rhs', {}))
+ eq('Invalid (empty) LHS', pcall_err(api.nvim_set_keymap, '', '', '', {}))
+ eq('Invalid (empty) LHS', pcall_err(api.nvim_del_keymap, '', ''))
end)
it('error if LHS longer than MAXMAPLEN', function()
@@ -534,19 +534,19 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
end
-- exactly 50 chars should be fine
- meths.nvim_set_keymap('', lhs, 'rhs', {})
+ api.nvim_set_keymap('', lhs, 'rhs', {})
-- del_keymap should unmap successfully
- meths.nvim_del_keymap('', lhs)
+ api.nvim_del_keymap('', lhs)
eq({}, get_mapargs('', lhs))
-- 51 chars should produce an error
lhs = lhs .. '1'
eq(
'LHS exceeds maximum map length: ' .. lhs,
- pcall_err(meths.nvim_set_keymap, '', lhs, 'rhs', {})
+ pcall_err(api.nvim_set_keymap, '', lhs, 'rhs', {})
)
- eq('LHS exceeds maximum map length: ' .. lhs, pcall_err(meths.nvim_del_keymap, '', lhs))
+ eq('LHS exceeds maximum map length: ' .. lhs, pcall_err(api.nvim_del_keymap, '', lhs))
end)
it('does not throw errors when rhs is longer than MAXMAPLEN', function()
@@ -556,65 +556,65 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
rhs = rhs .. (i % 10)
end
rhs = rhs .. '1'
- meths.nvim_set_keymap('', 'lhs', rhs, {})
+ api.nvim_set_keymap('', 'lhs', rhs, {})
eq(generate_mapargs('', 'lhs', rhs), get_mapargs('', 'lhs'))
end)
it('error on invalid mode shortname', function()
- eq('Invalid mode shortname: " "', pcall_err(meths.nvim_set_keymap, ' ', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "m"', pcall_err(meths.nvim_set_keymap, 'm', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "?"', pcall_err(meths.nvim_set_keymap, '?', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "y"', pcall_err(meths.nvim_set_keymap, 'y', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "p"', pcall_err(meths.nvim_set_keymap, 'p', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "a"', pcall_err(meths.nvim_set_keymap, 'a', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "oa"', pcall_err(meths.nvim_set_keymap, 'oa', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "!o"', pcall_err(meths.nvim_set_keymap, '!o', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "!i"', pcall_err(meths.nvim_set_keymap, '!i', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "!!"', pcall_err(meths.nvim_set_keymap, '!!', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "map"', pcall_err(meths.nvim_set_keymap, 'map', 'lhs', 'rhs', {}))
- eq('Invalid mode shortname: "vmap"', pcall_err(meths.nvim_set_keymap, 'vmap', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: " "', pcall_err(api.nvim_set_keymap, ' ', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "m"', pcall_err(api.nvim_set_keymap, 'm', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "?"', pcall_err(api.nvim_set_keymap, '?', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "y"', pcall_err(api.nvim_set_keymap, 'y', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "p"', pcall_err(api.nvim_set_keymap, 'p', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "a"', pcall_err(api.nvim_set_keymap, 'a', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "oa"', pcall_err(api.nvim_set_keymap, 'oa', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "!o"', pcall_err(api.nvim_set_keymap, '!o', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "!i"', pcall_err(api.nvim_set_keymap, '!i', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "!!"', pcall_err(api.nvim_set_keymap, '!!', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "map"', pcall_err(api.nvim_set_keymap, 'map', 'lhs', 'rhs', {}))
+ eq('Invalid mode shortname: "vmap"', pcall_err(api.nvim_set_keymap, 'vmap', 'lhs', 'rhs', {}))
eq(
'Invalid mode shortname: "xnoremap"',
- pcall_err(meths.nvim_set_keymap, 'xnoremap', 'lhs', 'rhs', {})
+ pcall_err(api.nvim_set_keymap, 'xnoremap', 'lhs', 'rhs', {})
)
- eq('Invalid mode shortname: " "', pcall_err(meths.nvim_del_keymap, ' ', 'lhs'))
- eq('Invalid mode shortname: "m"', pcall_err(meths.nvim_del_keymap, 'm', 'lhs'))
- eq('Invalid mode shortname: "?"', pcall_err(meths.nvim_del_keymap, '?', 'lhs'))
- eq('Invalid mode shortname: "y"', pcall_err(meths.nvim_del_keymap, 'y', 'lhs'))
- eq('Invalid mode shortname: "p"', pcall_err(meths.nvim_del_keymap, 'p', 'lhs'))
- eq('Invalid mode shortname: "a"', pcall_err(meths.nvim_del_keymap, 'a', 'lhs'))
- eq('Invalid mode shortname: "oa"', pcall_err(meths.nvim_del_keymap, 'oa', 'lhs'))
- eq('Invalid mode shortname: "!o"', pcall_err(meths.nvim_del_keymap, '!o', 'lhs'))
- eq('Invalid mode shortname: "!i"', pcall_err(meths.nvim_del_keymap, '!i', 'lhs'))
- eq('Invalid mode shortname: "!!"', pcall_err(meths.nvim_del_keymap, '!!', 'lhs'))
- eq('Invalid mode shortname: "map"', pcall_err(meths.nvim_del_keymap, 'map', 'lhs'))
- eq('Invalid mode shortname: "vmap"', pcall_err(meths.nvim_del_keymap, 'vmap', 'lhs'))
- eq('Invalid mode shortname: "xnoremap"', pcall_err(meths.nvim_del_keymap, 'xnoremap', 'lhs'))
+ eq('Invalid mode shortname: " "', pcall_err(api.nvim_del_keymap, ' ', 'lhs'))
+ eq('Invalid mode shortname: "m"', pcall_err(api.nvim_del_keymap, 'm', 'lhs'))
+ eq('Invalid mode shortname: "?"', pcall_err(api.nvim_del_keymap, '?', 'lhs'))
+ eq('Invalid mode shortname: "y"', pcall_err(api.nvim_del_keymap, 'y', 'lhs'))
+ eq('Invalid mode shortname: "p"', pcall_err(api.nvim_del_keymap, 'p', 'lhs'))
+ eq('Invalid mode shortname: "a"', pcall_err(api.nvim_del_keymap, 'a', 'lhs'))
+ eq('Invalid mode shortname: "oa"', pcall_err(api.nvim_del_keymap, 'oa', 'lhs'))
+ eq('Invalid mode shortname: "!o"', pcall_err(api.nvim_del_keymap, '!o', 'lhs'))
+ eq('Invalid mode shortname: "!i"', pcall_err(api.nvim_del_keymap, '!i', 'lhs'))
+ eq('Invalid mode shortname: "!!"', pcall_err(api.nvim_del_keymap, '!!', 'lhs'))
+ eq('Invalid mode shortname: "map"', pcall_err(api.nvim_del_keymap, 'map', 'lhs'))
+ eq('Invalid mode shortname: "vmap"', pcall_err(api.nvim_del_keymap, 'vmap', 'lhs'))
+ eq('Invalid mode shortname: "xnoremap"', pcall_err(api.nvim_del_keymap, 'xnoremap', 'lhs'))
end)
it('error on invalid optnames', function()
eq(
"Invalid key: 'silentt'",
- pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', { silentt = true })
+ pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', { silentt = true })
)
- eq("Invalid key: 'sidd'", pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', { sidd = false }))
+ eq("Invalid key: 'sidd'", pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', { sidd = false }))
eq(
"Invalid key: 'nowaiT'",
- pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', { nowaiT = false })
+ pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', { nowaiT = false })
)
end)
it('error on <buffer> option key', function()
eq(
"Invalid key: 'buffer'",
- pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', { buffer = true })
+ pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', { buffer = true })
)
end)
it('error when "replace_keycodes" is used without "expr"', function()
eq(
'"replace_keycodes" requires "expr"',
- pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', { replace_keycodes = true })
+ pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', { replace_keycodes = true })
)
end)
@@ -624,45 +624,45 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('throws an error when given non-boolean value for ' .. opt, function()
local opts = {}
opts[opt] = 'fooo'
- eq(opt .. ' is not a boolean', pcall_err(meths.nvim_set_keymap, 'n', 'lhs', 'rhs', opts))
+ eq(opt .. ' is not a boolean', pcall_err(api.nvim_set_keymap, 'n', 'lhs', 'rhs', opts))
end)
end
-- Perform tests of basic functionality
it('sets ordinary mappings', function()
- meths.nvim_set_keymap('n', 'lhs', 'rhs', {})
+ api.nvim_set_keymap('n', 'lhs', 'rhs', {})
eq(generate_mapargs('n', 'lhs', 'rhs'), get_mapargs('n', 'lhs'))
- meths.nvim_set_keymap('v', 'lhs', 'rhs', {})
+ api.nvim_set_keymap('v', 'lhs', 'rhs', {})
eq(generate_mapargs('v', 'lhs', 'rhs'), get_mapargs('v', 'lhs'))
end)
it('does not throw when LHS or RHS have leading/trailing whitespace', function()
- meths.nvim_set_keymap('n', ' lhs', 'rhs', {})
+ api.nvim_set_keymap('n', ' lhs', 'rhs', {})
eq(generate_mapargs('n', '<Space><Space><Space>lhs', 'rhs'), get_mapargs('n', ' lhs'))
- meths.nvim_set_keymap('n', 'lhs ', 'rhs', {})
+ api.nvim_set_keymap('n', 'lhs ', 'rhs', {})
eq(generate_mapargs('n', 'lhs<Space><Space><Space><Space>', 'rhs'), get_mapargs('n', 'lhs '))
- meths.nvim_set_keymap('v', ' lhs ', '\trhs\t\f', {})
+ api.nvim_set_keymap('v', ' lhs ', '\trhs\t\f', {})
eq(generate_mapargs('v', '<Space>lhs<Space><Space>', '\trhs\t\f'), get_mapargs('v', ' lhs '))
end)
it('can set noremap mappings', function()
- meths.nvim_set_keymap('x', 'lhs', 'rhs', { noremap = true })
+ api.nvim_set_keymap('x', 'lhs', 'rhs', { noremap = true })
eq(generate_mapargs('x', 'lhs', 'rhs', { noremap = true }), get_mapargs('x', 'lhs'))
- meths.nvim_set_keymap('t', 'lhs', 'rhs', { noremap = true })
+ api.nvim_set_keymap('t', 'lhs', 'rhs', { noremap = true })
eq(generate_mapargs('t', 'lhs', 'rhs', { noremap = true }), get_mapargs('t', 'lhs'))
end)
it('can unmap mappings', function()
- meths.nvim_set_keymap('v', 'lhs', 'rhs', {})
- meths.nvim_del_keymap('v', 'lhs')
+ api.nvim_set_keymap('v', 'lhs', 'rhs', {})
+ api.nvim_del_keymap('v', 'lhs')
eq({}, get_mapargs('v', 'lhs'))
- meths.nvim_set_keymap('t', 'lhs', 'rhs', { noremap = true })
- meths.nvim_del_keymap('t', 'lhs')
+ api.nvim_set_keymap('t', 'lhs', 'rhs', { noremap = true })
+ api.nvim_del_keymap('t', 'lhs')
eq({}, get_mapargs('t', 'lhs'))
end)
@@ -670,8 +670,8 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
it('"!" and empty string are synonyms for mapmode-nvo', function()
local nvo_shortnames = { '', '!' }
for _, name in ipairs(nvo_shortnames) do
- meths.nvim_set_keymap(name, 'lhs', 'rhs', {})
- meths.nvim_del_keymap(name, 'lhs')
+ api.nvim_set_keymap(name, 'lhs', 'rhs', {})
+ api.nvim_del_keymap(name, 'lhs')
eq({}, get_mapargs(name, 'lhs'))
end
end)
@@ -681,48 +681,48 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
for _, rhs in ipairs(special_chars) do
local mapmode = '!'
it('can set mappings with special characters, lhs: ' .. lhs .. ', rhs: ' .. rhs, function()
- meths.nvim_set_keymap(mapmode, lhs, rhs, {})
+ api.nvim_set_keymap(mapmode, lhs, rhs, {})
eq(generate_mapargs(mapmode, lhs, rhs), get_mapargs(mapmode, lhs))
end)
end
end
it('can set mappings containing literal keycodes', function()
- meths.nvim_set_keymap('n', '\n\r\n', 'rhs', {})
+ api.nvim_set_keymap('n', '\n\r\n', 'rhs', {})
local expected = generate_mapargs('n', '<NL><CR><NL>', 'rhs')
eq(expected, get_mapargs('n', '<NL><CR><NL>'))
end)
it('can set mappings whose RHS is a <Nop>', function()
- meths.nvim_set_keymap('i', 'lhs', '<Nop>', {})
+ api.nvim_set_keymap('i', 'lhs', '<Nop>', {})
command('normal ilhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, 0)) -- imap to <Nop> does nothing
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, 0)) -- imap to <Nop> does nothing
eq(generate_mapargs('i', 'lhs', '<Nop>', {}), get_mapargs('i', 'lhs'))
-- also test for case insensitivity
- meths.nvim_set_keymap('i', 'lhs', '<nOp>', {})
+ api.nvim_set_keymap('i', 'lhs', '<nOp>', {})
command('normal ilhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, 0))
-- note: RHS in returned mapargs() dict reflects the original RHS
-- provided by the user
eq(generate_mapargs('i', 'lhs', '<nOp>', {}), get_mapargs('i', 'lhs'))
- meths.nvim_set_keymap('i', 'lhs', '<NOP>', {})
+ api.nvim_set_keymap('i', 'lhs', '<NOP>', {})
command('normal ilhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, 0))
eq(generate_mapargs('i', 'lhs', '<NOP>', {}), get_mapargs('i', 'lhs'))
-- a single ^V in RHS is also <Nop> (see :h map-empty-rhs)
- meths.nvim_set_keymap('i', 'lhs', '\022', {})
+ api.nvim_set_keymap('i', 'lhs', '\022', {})
command('normal ilhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, 0))
eq(generate_mapargs('i', 'lhs', '\022', {}), get_mapargs('i', 'lhs'))
end)
it('treats an empty RHS in a mapping like a <Nop>', function()
- meths.nvim_set_keymap('i', 'lhs', '', {})
+ api.nvim_set_keymap('i', 'lhs', '', {})
command('normal ilhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, 0))
eq(generate_mapargs('i', 'lhs', '', {}), get_mapargs('i', 'lhs'))
end)
@@ -730,8 +730,8 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
-- Taken from the legacy test: test_mapping.vim. Exposes a bug in which
-- replace_termcodes changes the length of the mapping's LHS, but
-- do_map continues to use the *old* length of LHS.
- meths.nvim_set_keymap('i', '<M-">', 'foo', {})
- meths.nvim_del_keymap('i', '<M-">')
+ api.nvim_set_keymap('i', '<M-">', 'foo', {})
+ api.nvim_del_keymap('i', '<M-">')
eq({}, get_mapargs('i', '<M-">'))
end)
@@ -741,18 +741,18 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
command([[call nvim_set_keymap('i', "\<space>", "\<tab>", {})]])
eq(generate_mapargs('i', '<Space>', '\t', { sid = 0 }), get_mapargs('i', '<Space>'))
feed('i ')
- eq({ '\t' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '\t' }, api.nvim_buf_get_lines(0, 0, -1, 0))
end
)
it('throws appropriate error messages when setting <unique> maps', function()
- meths.nvim_set_keymap('l', 'lhs', 'rhs', {})
+ api.nvim_set_keymap('l', 'lhs', 'rhs', {})
eq(
'E227: mapping already exists for lhs',
- pcall_err(meths.nvim_set_keymap, 'l', 'lhs', 'rhs', { unique = true })
+ pcall_err(api.nvim_set_keymap, 'l', 'lhs', 'rhs', { unique = true })
)
-- different mapmode, no error should be thrown
- meths.nvim_set_keymap('t', 'lhs', 'rhs', { unique = true })
+ api.nvim_set_keymap('t', 'lhs', 'rhs', { unique = true })
end)
it('can set <expr> mappings whose RHS change dynamically', function()
@@ -763,50 +763,50 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
return g:flip
endfunction
]])
- eq(1, meths.nvim_call_function('FlipFlop', {}))
- eq(0, meths.nvim_call_function('FlipFlop', {}))
- eq(1, meths.nvim_call_function('FlipFlop', {}))
- eq(0, meths.nvim_call_function('FlipFlop', {}))
+ eq(1, api.nvim_call_function('FlipFlop', {}))
+ eq(0, api.nvim_call_function('FlipFlop', {}))
+ eq(1, api.nvim_call_function('FlipFlop', {}))
+ eq(0, api.nvim_call_function('FlipFlop', {}))
- meths.nvim_set_keymap('i', 'lhs', 'FlipFlop()', { expr = true })
+ api.nvim_set_keymap('i', 'lhs', 'FlipFlop()', { expr = true })
command('normal ilhs')
- eq({ '1' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '1' }, api.nvim_buf_get_lines(0, 0, -1, 0))
command('normal! ggVGd')
command('normal ilhs')
- eq({ '0' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ '0' }, api.nvim_buf_get_lines(0, 0, -1, 0))
end)
it('can set mappings that do trigger other mappings', function()
- meths.nvim_set_keymap('i', 'mhs', 'rhs', {})
- meths.nvim_set_keymap('i', 'lhs', 'mhs', {})
+ api.nvim_set_keymap('i', 'mhs', 'rhs', {})
+ api.nvim_set_keymap('i', 'lhs', 'mhs', {})
command('normal imhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, -1, 0))
command('normal! ggVGd')
command('normal ilhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, -1, 0))
end)
it("can set noremap mappings that don't trigger other mappings", function()
- meths.nvim_set_keymap('i', 'mhs', 'rhs', {})
- meths.nvim_set_keymap('i', 'lhs', 'mhs', { noremap = true })
+ api.nvim_set_keymap('i', 'mhs', 'rhs', {})
+ api.nvim_set_keymap('i', 'lhs', 'mhs', { noremap = true })
command('normal imhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, -1, 0))
command('normal! ggVGd')
command('normal ilhs') -- shouldn't trigger mhs-to-rhs mapping
- eq({ 'mhs' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ 'mhs' }, api.nvim_buf_get_lines(0, 0, -1, 0))
end)
it('can set nowait mappings that fire without waiting', function()
- meths.nvim_set_keymap('i', '123456', 'longer', {})
- meths.nvim_set_keymap('i', '123', 'shorter', { nowait = true })
+ api.nvim_set_keymap('i', '123456', 'longer', {})
+ api.nvim_set_keymap('i', '123', 'shorter', { nowait = true })
-- feed keys one at a time; if all keys arrive atomically, the longer
-- mapping will trigger
@@ -815,29 +815,29 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
feed(c)
sleep(5)
end
- eq({ 'shorter456' }, meths.nvim_buf_get_lines(0, 0, -1, 0))
+ eq({ 'shorter456' }, api.nvim_buf_get_lines(0, 0, -1, 0))
end)
-- Perform exhaustive tests of basic functionality
local mapmodes = { 'n', 'v', 'x', 's', 'o', '!', 'i', 'l', 'c', 't', '', 'ia', 'ca', '!a' }
for _, mapmode in ipairs(mapmodes) do
it('can set/unset normal mappings in mapmode ' .. mapmode, function()
- meths.nvim_set_keymap(mapmode, 'lhs', 'rhs', {})
+ api.nvim_set_keymap(mapmode, 'lhs', 'rhs', {})
eq(generate_mapargs(mapmode, 'lhs', 'rhs'), get_mapargs(mapmode, 'lhs'))
-- some mapmodes (like 'o') will prevent other mapmodes (like '!') from
-- taking effect, so unmap after each mapping
- meths.nvim_del_keymap(mapmode, 'lhs')
+ api.nvim_del_keymap(mapmode, 'lhs')
eq({}, get_mapargs(mapmode, 'lhs'))
end)
end
for _, mapmode in ipairs(mapmodes) do
it('can set/unset noremap mappings using mapmode ' .. mapmode, function()
- meths.nvim_set_keymap(mapmode, 'lhs', 'rhs', { noremap = true })
+ api.nvim_set_keymap(mapmode, 'lhs', 'rhs', { noremap = true })
eq(generate_mapargs(mapmode, 'lhs', 'rhs', { noremap = true }), get_mapargs(mapmode, 'lhs'))
- meths.nvim_del_keymap(mapmode, 'lhs')
+ api.nvim_del_keymap(mapmode, 'lhs')
eq({}, get_mapargs(mapmode, 'lhs'))
end)
end
@@ -849,12 +849,12 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
-- Test with single mappings
for _, maparg in ipairs(optnames) do
it('can set/unset ' .. mapmode .. '-mappings with maparg: ' .. maparg, function()
- meths.nvim_set_keymap(mapmode, 'lhs', 'rhs', { [maparg] = true })
+ api.nvim_set_keymap(mapmode, 'lhs', 'rhs', { [maparg] = true })
eq(
generate_mapargs(mapmode, 'lhs', 'rhs', { [maparg] = true }),
get_mapargs(mapmode, 'lhs')
)
- meths.nvim_del_keymap(mapmode, 'lhs')
+ api.nvim_del_keymap(mapmode, 'lhs')
eq({}, get_mapargs(mapmode, 'lhs'))
end)
it(
@@ -864,9 +864,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
.. maparg
.. ', whose value is false',
function()
- meths.nvim_set_keymap(mapmode, 'lhs', 'rhs', { [maparg] = false })
+ api.nvim_set_keymap(mapmode, 'lhs', 'rhs', { [maparg] = false })
eq(generate_mapargs(mapmode, 'lhs', 'rhs'), get_mapargs(mapmode, 'lhs'))
- meths.nvim_del_keymap(mapmode, 'lhs')
+ api.nvim_del_keymap(mapmode, 'lhs')
eq({}, get_mapargs(mapmode, 'lhs'))
end
)
@@ -886,9 +886,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
.. opt3,
function()
local opts = { [opt1] = true, [opt2] = false, [opt3] = true }
- meths.nvim_set_keymap(mapmode, 'lhs', 'rhs', opts)
+ api.nvim_set_keymap(mapmode, 'lhs', 'rhs', opts)
eq(generate_mapargs(mapmode, 'lhs', 'rhs', opts), get_mapargs(mapmode, 'lhs'))
- meths.nvim_del_keymap(mapmode, 'lhs')
+ api.nvim_del_keymap(mapmode, 'lhs')
eq({}, get_mapargs(mapmode, 'lhs'))
end
)
@@ -926,7 +926,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
exec_lua [[
vim.api.nvim_set_keymap('n', 'asdf', '', {callback = function() print('jkl;') end })
]]
- assert.truthy(string.match(funcs.mapcheck('asdf', 'n'), '^<Lua %d+>'))
+ assert.truthy(string.match(fn.mapcheck('asdf', 'n'), '^<Lua %d+>'))
end)
it('maparg() returns lua mapping correctly', function()
@@ -939,9 +939,9 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
]])
)
- assert.truthy(string.match(funcs.maparg('asdf', 'n'), '^<Lua %d+>'))
+ assert.truthy(string.match(fn.maparg('asdf', 'n'), '^<Lua %d+>'))
- local mapargs = funcs.maparg('asdf', 'n', false, true)
+ local mapargs = fn.maparg('asdf', 'n', false, true)
mapargs.callback = nil
mapargs.lhsraw = nil
mapargs.lhsrawalt = nil
@@ -968,7 +968,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
feed('aa')
- eq({ 'π<M-π>foo<' }, meths.nvim_buf_get_lines(0, 0, -1, false))
+ eq({ 'π<M-π>foo<' }, api.nvim_buf_get_lines(0, 0, -1, false))
end)
it('can make lua expr mappings without replacing keycodes', function()
@@ -978,7 +978,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
feed('iaa<esc>')
- eq({ '<space>' }, meths.nvim_buf_get_lines(0, 0, -1, false))
+ eq({ '<space>' }, api.nvim_buf_get_lines(0, 0, -1, false))
end)
it('lua expr mapping returning nil is equivalent to returning an empty string', function()
@@ -988,7 +988,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
feed('iaa<esc>')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, false))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, false))
end)
it('does not reset pum in lua mapping', function()
@@ -1091,7 +1091,7 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
end)
it('can set descriptions on mappings', function()
- meths.nvim_set_keymap('n', 'lhs', 'rhs', { desc = 'map description' })
+ api.nvim_set_keymap('n', 'lhs', 'rhs', { desc = 'map description' })
eq(generate_mapargs('n', 'lhs', 'rhs', { desc = 'map description' }), get_mapargs('n', 'lhs'))
eq('\nn lhs rhs\n map description', helpers.exec_capture('nmap lhs'))
end)
@@ -1106,10 +1106,10 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
]]
feed 'iThe foo and the bar and the foo again<esc>'
- eq('The 1 and the bar and the 2 again', meths.nvim_get_current_line())
+ eq('The 1 and the bar and the 2 again', api.nvim_get_current_line())
feed ':let x = "The foo is the one"<cr>'
- eq('The 3 is the one', meths.nvim_eval 'x')
+ eq('The 3 is the one', api.nvim_eval 'x')
end)
it('can define insert mode abbreviations with lua callbacks', function()
@@ -1122,10 +1122,10 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
]]
feed 'iThe foo and the bar and the foo again<esc>'
- eq('The 1 and the bar and the 2 again', meths.nvim_get_current_line())
+ eq('The 1 and the bar and the 2 again', api.nvim_get_current_line())
feed ':let x = "The foo is the one"<cr>'
- eq('The foo is the one', meths.nvim_eval 'x')
+ eq('The foo is the one', api.nvim_eval 'x')
end)
it('can define cmdline mode abbreviations with lua callbacks', function()
@@ -1138,10 +1138,10 @@ describe('nvim_set_keymap, nvim_del_keymap', function()
]]
feed 'iThe foo and the bar and the foo again<esc>'
- eq('The foo and the bar and the foo again', meths.nvim_get_current_line())
+ eq('The foo and the bar and the foo again', api.nvim_get_current_line())
feed ':let x = "The foo is the one"<cr>'
- eq('The 1 is the one', meths.nvim_eval 'x')
+ eq('The 1 is the one', api.nvim_eval 'x')
end)
end)
@@ -1164,9 +1164,9 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
local function make_two_buffers(start_from_first)
command('set hidden')
- local first_buf = meths.nvim_call_function('bufnr', { '%' })
+ local first_buf = api.nvim_call_function('bufnr', { '%' })
command('new')
- local second_buf = meths.nvim_call_function('bufnr', { '%' })
+ local second_buf = api.nvim_call_function('bufnr', { '%' })
neq(second_buf, first_buf) -- sanity check
if start_from_first then
@@ -1179,66 +1179,66 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
it('rejects negative bufnr values', function()
eq(
'Wrong type for argument 1 when calling nvim_buf_set_keymap, expecting Buffer',
- pcall_err(meths.nvim_buf_set_keymap, -1, '', 'lhs', 'rhs', {})
+ pcall_err(api.nvim_buf_set_keymap, -1, '', 'lhs', 'rhs', {})
)
end)
it('can set mappings active in the current buffer but not others', function()
local first, second = make_two_buffers(true)
- meths.nvim_buf_set_keymap(0, '', 'lhs', 'irhs<Esc>', {})
+ api.nvim_buf_set_keymap(0, '', 'lhs', 'irhs<Esc>', {})
command('normal lhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, 1, 1))
-- mapping should have no effect in new buffer
switch_to_buf(second)
command('normal lhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, 1, 1))
-- mapping should remain active in old buffer
switch_to_buf(first)
command('normal ^lhs')
- eq({ 'rhsrhs' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ 'rhsrhs' }, api.nvim_buf_get_lines(0, 0, 1, 1))
end)
it('can set local mappings in buffer other than current', function()
local first = make_two_buffers(false)
- meths.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
+ api.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
-- shouldn't do anything
command('normal lhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, 1, 1))
-- should take effect
switch_to_buf(first)
command('normal lhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, 1, 1))
end)
it('can disable mappings made in another buffer, inside that buffer', function()
local first = make_two_buffers(false)
- meths.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
- meths.nvim_buf_del_keymap(first, '', 'lhs')
+ api.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
+ api.nvim_buf_del_keymap(first, '', 'lhs')
switch_to_buf(first)
-- shouldn't do anything
command('normal lhs')
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, 1, 1))
end)
it("can't disable mappings given wrong buffer handle", function()
local first, second = make_two_buffers(false)
- meths.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
- eq('E31: No such mapping', pcall_err(meths.nvim_buf_del_keymap, second, '', 'lhs'))
+ api.nvim_buf_set_keymap(first, '', 'lhs', 'irhs<Esc>', {})
+ eq('E31: No such mapping', pcall_err(api.nvim_buf_del_keymap, second, '', 'lhs'))
-- should still work
switch_to_buf(first)
command('normal lhs')
- eq({ 'rhs' }, meths.nvim_buf_get_lines(0, 0, 1, 1))
+ eq({ 'rhs' }, api.nvim_buf_get_lines(0, 0, 1, 1))
end)
it('does not crash when setting mapping in a non-existing buffer #13541', function()
- pcall_err(meths.nvim_buf_set_keymap, 100, '', 'lsh', 'irhs<Esc>', {})
+ pcall_err(api.nvim_buf_set_keymap, 100, '', 'lsh', 'irhs<Esc>', {})
helpers.assert_alive()
end)
@@ -1264,7 +1264,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
feed('aa')
- eq({ 'π<M-π>foo<' }, meths.nvim_buf_get_lines(0, 0, -1, false))
+ eq({ 'π<M-π>foo<' }, api.nvim_buf_get_lines(0, 0, -1, false))
end)
it('can make lua expr mappings without replacing keycodes', function()
@@ -1274,7 +1274,7 @@ describe('nvim_buf_set_keymap, nvim_buf_del_keymap', function()
feed('iaa<esc>')
- eq({ '<space>' }, meths.nvim_buf_get_lines(0, 0, -1, false))
+ eq({ '<space>' }, api.nvim_buf_get_lines(0, 0, -1, false))
end)
it('can overwrite lua mappings', function()
diff --git a/test/functional/api/proc_spec.lua b/test/functional/api/proc_spec.lua
index 82a3968ab7..50c441792c 100644
--- a/test/functional/api/proc_spec.lua
+++ b/test/functional/api/proc_spec.lua
@@ -2,7 +2,7 @@ local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local eq = helpers.eq
-local funcs = helpers.funcs
+local fn = helpers.fn
local neq = helpers.neq
local nvim_argv = helpers.nvim_argv
local request = helpers.request
@@ -15,28 +15,28 @@ describe('API', function()
describe('nvim_get_proc_children', function()
it('returns child process ids', function()
- local this_pid = funcs.getpid()
+ local this_pid = fn.getpid()
-- Might be non-zero already (left-over from some other test?),
-- but this is not what is tested here.
local initial_children = request('nvim_get_proc_children', this_pid)
- local job1 = funcs.jobstart(nvim_argv)
+ local job1 = fn.jobstart(nvim_argv)
retry(nil, nil, function()
eq(#initial_children + 1, #request('nvim_get_proc_children', this_pid))
end)
- local job2 = funcs.jobstart(nvim_argv)
+ local job2 = fn.jobstart(nvim_argv)
retry(nil, nil, function()
eq(#initial_children + 2, #request('nvim_get_proc_children', this_pid))
end)
- funcs.jobstop(job1)
+ fn.jobstop(job1)
retry(nil, nil, function()
eq(#initial_children + 1, #request('nvim_get_proc_children', this_pid))
end)
- funcs.jobstop(job2)
+ fn.jobstop(job2)
retry(nil, nil, function()
eq(#initial_children, #request('nvim_get_proc_children', this_pid))
end)
@@ -60,7 +60,7 @@ describe('API', function()
describe('nvim_get_proc', function()
it('returns process info', function()
- local pid = funcs.getpid()
+ local pid = fn.getpid()
local pinfo = request('nvim_get_proc', pid)
eq((is_os('win') and 'nvim.exe' or 'nvim'), pinfo.name)
eq(pid, pinfo.pid)
diff --git a/test/functional/api/server_notifications_spec.lua b/test/functional/api/server_notifications_spec.lua
index c80f7f4f7b..f6058b14ee 100644
--- a/test/functional/api/server_notifications_spec.lua
+++ b/test/functional/api/server_notifications_spec.lua
@@ -2,7 +2,7 @@ local helpers = require('test.functional.helpers')(after_each)
local assert_log = helpers.assert_log
local eq, clear, eval, command, next_msg =
helpers.eq, helpers.clear, helpers.eval, helpers.command, helpers.next_msg
-local meths = helpers.meths
+local api = helpers.api
local exec_lua = helpers.exec_lua
local retry = helpers.retry
local assert_alive = helpers.assert_alive
@@ -14,7 +14,7 @@ describe('notify', function()
before_each(function()
clear()
- channel = meths.nvim_get_api_info()[1]
+ channel = api.nvim_get_api_info()[1]
end)
after_each(function()
@@ -33,21 +33,21 @@ describe('notify', function()
describe('passing 0 as the channel id', function()
it('sends the notification/args to all subscribed channels', function()
- meths.nvim_subscribe('event2')
+ api.nvim_subscribe('event2')
eval('rpcnotify(0, "event1", 1, 2, 3)')
eval('rpcnotify(0, "event2", 4, 5, 6)')
eval('rpcnotify(0, "event2", 7, 8, 9)')
eq({ 'notification', 'event2', { 4, 5, 6 } }, next_msg())
eq({ 'notification', 'event2', { 7, 8, 9 } }, next_msg())
- meths.nvim_unsubscribe('event2')
- meths.nvim_subscribe('event1')
+ api.nvim_unsubscribe('event2')
+ api.nvim_subscribe('event1')
eval('rpcnotify(0, "event2", 10, 11, 12)')
eval('rpcnotify(0, "event1", 13, 14, 15)')
eq({ 'notification', 'event1', { 13, 14, 15 } }, next_msg())
end)
it('does not crash for deeply nested variable', function()
- meths.nvim_set_var('l', {})
+ api.nvim_set_var('l', {})
local nest_level = 1000
command(('call map(range(%u), "extend(g:, {\'l\': [g:l]})")'):format(nest_level - 1))
eval('rpcnotify(' .. channel .. ', "event", g:l)')
@@ -79,10 +79,10 @@ describe('notify', function()
clear { env = {
NVIM_LOG_FILE = testlog,
} }
- meths.nvim_subscribe('event1')
- meths.nvim_unsubscribe('doesnotexist')
+ api.nvim_subscribe('event1')
+ api.nvim_unsubscribe('doesnotexist')
assert_log("tried to unsubscribe unknown event 'doesnotexist'", testlog, 10)
- meths.nvim_unsubscribe('event1')
+ api.nvim_unsubscribe('event1')
assert_alive()
end)
@@ -106,7 +106,7 @@ describe('notify', function()
exec_lua([[ return {pcall(vim.rpcrequest, ..., 'nvim_eval', '1+1')}]], catchan)
)
retry(nil, 3000, function()
- eq({}, meths.nvim_get_chan_info(catchan))
+ eq({}, api.nvim_get_chan_info(catchan))
end) -- cat be dead :(
end)
end)
diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua
index e06d32f656..5e508e7513 100644
--- a/test/functional/api/server_requests_spec.lua
+++ b/test/functional/api/server_requests_spec.lua
@@ -4,10 +4,10 @@ local helpers = require('test.functional.helpers')(after_each)
local clear, eval = helpers.clear, helpers.eval
local eq, neq, run, stop = helpers.eq, helpers.neq, helpers.run, helpers.stop
-local nvim_prog, command, funcs = helpers.nvim_prog, helpers.command, helpers.funcs
+local nvim_prog, command, fn = helpers.nvim_prog, helpers.command, helpers.fn
local source, next_msg = helpers.source, helpers.next_msg
local ok = helpers.ok
-local meths = helpers.meths
+local api = helpers.api
local spawn, merge_args = helpers.spawn, helpers.merge_args
local set_session = helpers.set_session
local pcall_err = helpers.pcall_err
@@ -18,7 +18,7 @@ describe('server -> client', function()
before_each(function()
clear()
- cid = meths.nvim_get_api_info()[1]
+ cid = api.nvim_get_api_info()[1]
end)
it('handles unexpected closed stream while preparing RPC response', function()
@@ -77,15 +77,15 @@ describe('server -> client', function()
describe('recursive call', function()
it('works', function()
local function on_setup()
- meths.nvim_set_var('result1', 0)
- meths.nvim_set_var('result2', 0)
- meths.nvim_set_var('result3', 0)
- meths.nvim_set_var('result4', 0)
+ api.nvim_set_var('result1', 0)
+ api.nvim_set_var('result2', 0)
+ api.nvim_set_var('result3', 0)
+ api.nvim_set_var('result4', 0)
command('let g:result1 = rpcrequest(' .. cid .. ', "rcall", 2)')
- eq(4, meths.nvim_get_var('result1'))
- eq(8, meths.nvim_get_var('result2'))
- eq(16, meths.nvim_get_var('result3'))
- eq(32, meths.nvim_get_var('result4'))
+ eq(4, api.nvim_get_var('result1'))
+ eq(8, api.nvim_get_var('result2'))
+ eq(16, api.nvim_get_var('result3'))
+ eq(32, api.nvim_get_var('result4'))
stop()
end
@@ -113,12 +113,12 @@ describe('server -> client', function()
it('does not delay notifications during pending request', function()
local received = false
local function on_setup()
- eq('retval', funcs.rpcrequest(cid, 'doit'))
+ eq('retval', fn.rpcrequest(cid, 'doit'))
stop()
end
local function on_request(method)
if method == 'doit' then
- funcs.rpcnotify(cid, 'headsup')
+ fn.rpcnotify(cid, 'headsup')
eq(true, received)
return 'retval'
end
@@ -231,8 +231,8 @@ describe('server -> client', function()
describe('jobstart()', function()
local jobid
before_each(function()
- local channel = meths.nvim_get_api_info()[1]
- meths.nvim_set_var('channel', channel)
+ local channel = api.nvim_get_api_info()[1]
+ api.nvim_set_var('channel', channel)
source([[
function! s:OnEvent(id, data, event)
call rpcnotify(g:channel, a:event, 0, a:data)
@@ -244,7 +244,7 @@ describe('server -> client', function()
\ 'rpc': v:true
\ }
]])
- meths.nvim_set_var('args', {
+ api.nvim_set_var('args', {
nvim_prog,
'-ll',
'test/functional/api/rpc_fixture.lua',
@@ -256,7 +256,7 @@ describe('server -> client', function()
end)
after_each(function()
- pcall(funcs.jobstop, jobid)
+ pcall(fn.jobstop, jobid)
end)
if helpers.skip(helpers.is_os('win')) then
@@ -264,16 +264,16 @@ describe('server -> client', function()
end
it('rpc and text stderr can be combined', function()
- local status, rv = pcall(funcs.rpcrequest, jobid, 'poll')
+ local status, rv = pcall(fn.rpcrequest, jobid, 'poll')
if not status then
error(string.format('missing nvim Lua module? (%s)', rv))
end
eq('ok', rv)
- funcs.rpcnotify(jobid, 'ping')
+ fn.rpcnotify(jobid, 'ping')
eq({ 'notification', 'pong', {} }, next_msg())
- eq('done!', funcs.rpcrequest(jobid, 'write_stderr', 'fluff\n'))
+ eq('done!', fn.rpcrequest(jobid, 'write_stderr', 'fluff\n'))
eq({ 'notification', 'stderr', { 0, { 'fluff', '' } } }, next_msg())
- pcall(funcs.rpcrequest, jobid, 'exit')
+ pcall(fn.rpcrequest, jobid, 'exit')
eq({ 'notification', 'stderr', { 0, { '' } } }, next_msg())
eq({ 'notification', 'exit', { 0, 0 } }, next_msg())
end)
@@ -282,29 +282,29 @@ describe('server -> client', function()
describe('connecting to another (peer) nvim', function()
local nvim_argv = merge_args(helpers.nvim_argv, { '--headless' })
local function connect_test(server, mode, address)
- local serverpid = funcs.getpid()
+ local serverpid = fn.getpid()
local client = spawn(nvim_argv, false, nil, true)
set_session(client)
- local clientpid = funcs.getpid()
+ local clientpid = fn.getpid()
neq(serverpid, clientpid)
- local id = funcs.sockconnect(mode, address, { rpc = true })
+ local id = fn.sockconnect(mode, address, { rpc = true })
ok(id > 0)
- funcs.rpcrequest(id, 'nvim_set_current_line', 'hello')
- local client_id = funcs.rpcrequest(id, 'nvim_get_api_info')[1]
+ fn.rpcrequest(id, 'nvim_set_current_line', 'hello')
+ local client_id = fn.rpcrequest(id, 'nvim_get_api_info')[1]
set_session(server)
- eq(serverpid, funcs.getpid())
- eq('hello', meths.nvim_get_current_line())
+ eq(serverpid, fn.getpid())
+ eq('hello', api.nvim_get_current_line())
-- method calls work both ways
- funcs.rpcrequest(client_id, 'nvim_set_current_line', 'howdy!')
- eq(id, funcs.rpcrequest(client_id, 'nvim_get_api_info')[1])
+ fn.rpcrequest(client_id, 'nvim_set_current_line', 'howdy!')
+ eq(id, fn.rpcrequest(client_id, 'nvim_get_api_info')[1])
set_session(client)
- eq(clientpid, funcs.getpid())
- eq('howdy!', meths.nvim_get_current_line())
+ eq(clientpid, fn.getpid())
+ eq('howdy!', api.nvim_get_current_line())
server:close()
client:close()
@@ -313,7 +313,7 @@ describe('server -> client', function()
it('via named pipe', function()
local server = spawn(nvim_argv)
set_session(server)
- local address = funcs.serverlist()[1]
+ local address = fn.serverlist()[1]
local first = string.sub(address, 1, 1)
ok(first == '/' or first == '\\')
connect_test(server, 'pipe', address)
@@ -322,7 +322,7 @@ describe('server -> client', function()
it('via ipv4 address', function()
local server = spawn(nvim_argv)
set_session(server)
- local status, address = pcall(funcs.serverstart, '127.0.0.1:')
+ local status, address = pcall(fn.serverstart, '127.0.0.1:')
if not status then
pending('no ipv4 stack')
end
@@ -333,7 +333,7 @@ describe('server -> client', function()
it('via ipv6 address', function()
local server = spawn(nvim_argv)
set_session(server)
- local status, address = pcall(funcs.serverstart, '::1:')
+ local status, address = pcall(fn.serverstart, '::1:')
if not status then
pending('no ipv6 stack')
end
@@ -344,7 +344,7 @@ describe('server -> client', function()
it('via hostname', function()
local server = spawn(nvim_argv)
set_session(server)
- local address = funcs.serverstart('localhost:')
+ local address = fn.serverstart('localhost:')
eq('localhost:', string.sub(address, 1, 10))
connect_test(server, 'tcp', address)
end)
@@ -352,12 +352,12 @@ describe('server -> client', function()
it('does not crash on receiving UI events', function()
local server = spawn(nvim_argv)
set_session(server)
- local address = funcs.serverlist()[1]
+ local address = fn.serverlist()[1]
local client = spawn(nvim_argv, false, nil, true)
set_session(client)
- local id = funcs.sockconnect('pipe', address, { rpc = true })
- funcs.rpcrequest(id, 'nvim_ui_attach', 80, 24, {})
+ local id = fn.sockconnect('pipe', address, { rpc = true })
+ fn.rpcrequest(id, 'nvim_ui_attach', 80, 24, {})
assert_alive()
server:close()
@@ -367,18 +367,18 @@ describe('server -> client', function()
describe('connecting to its own pipe address', function()
it('does not deadlock', function()
- local address = funcs.serverlist()[1]
+ local address = fn.serverlist()[1]
local first = string.sub(address, 1, 1)
ok(first == '/' or first == '\\')
- local serverpid = funcs.getpid()
+ local serverpid = fn.getpid()
- local id = funcs.sockconnect('pipe', address, { rpc = true })
+ local id = fn.sockconnect('pipe', address, { rpc = true })
- funcs.rpcrequest(id, 'nvim_set_current_line', 'hello')
- eq('hello', meths.nvim_get_current_line())
- eq(serverpid, funcs.rpcrequest(id, 'nvim_eval', 'getpid()'))
+ fn.rpcrequest(id, 'nvim_set_current_line', 'hello')
+ eq('hello', api.nvim_get_current_line())
+ eq(serverpid, fn.rpcrequest(id, 'nvim_eval', 'getpid()'))
- eq(id, funcs.rpcrequest(id, 'nvim_get_api_info')[1])
+ eq(id, fn.rpcrequest(id, 'nvim_get_api_info')[1])
end)
end)
end)
diff --git a/test/functional/api/tabpage_spec.lua b/test/functional/api/tabpage_spec.lua
index 830b547da5..65b030fc60 100644
--- a/test/functional/api/tabpage_spec.lua
+++ b/test/functional/api/tabpage_spec.lua
@@ -1,7 +1,7 @@
local helpers = require('test.functional.helpers')(after_each)
local clear, eq, ok = helpers.clear, helpers.eq, helpers.ok
-local meths = helpers.meths
-local funcs = helpers.funcs
+local api = helpers.api
+local fn = helpers.fn
local request = helpers.request
local NIL = vim.NIL
local pcall_err = helpers.pcall_err
@@ -14,33 +14,33 @@ describe('api/tabpage', function()
it('works', function()
helpers.command('tabnew')
helpers.command('vsplit')
- local tab1, tab2 = unpack(meths.nvim_list_tabpages())
- local win1, win2, win3 = unpack(meths.nvim_list_wins())
- eq({ win1 }, meths.nvim_tabpage_list_wins(tab1))
- eq({ win2, win3 }, meths.nvim_tabpage_list_wins(tab2))
- eq(win2, meths.nvim_tabpage_get_win(tab2))
- meths.nvim_set_current_win(win3)
- eq(win3, meths.nvim_tabpage_get_win(tab2))
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ local win1, win2, win3 = unpack(api.nvim_list_wins())
+ eq({ win1 }, api.nvim_tabpage_list_wins(tab1))
+ eq({ win2, win3 }, api.nvim_tabpage_list_wins(tab2))
+ eq(win2, api.nvim_tabpage_get_win(tab2))
+ api.nvim_set_current_win(win3)
+ eq(win3, api.nvim_tabpage_get_win(tab2))
end)
it('validates args', function()
- eq('Invalid tabpage id: 23', pcall_err(meths.nvim_tabpage_list_wins, 23))
+ eq('Invalid tabpage id: 23', pcall_err(api.nvim_tabpage_list_wins, 23))
end)
end)
describe('{get,set,del}_var', function()
it('works', function()
- meths.nvim_tabpage_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_tabpage_get_var(0, 'lua'))
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_eval('t:lua'))
- eq(1, funcs.exists('t:lua'))
- meths.nvim_tabpage_del_var(0, 'lua')
- eq(0, funcs.exists('t:lua'))
- eq('Key not found: lua', pcall_err(meths.nvim_tabpage_del_var, 0, 'lua'))
- meths.nvim_tabpage_set_var(0, 'lua', 1)
+ api.nvim_tabpage_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_tabpage_get_var(0, 'lua'))
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_eval('t:lua'))
+ eq(1, fn.exists('t:lua'))
+ api.nvim_tabpage_del_var(0, 'lua')
+ eq(0, fn.exists('t:lua'))
+ eq('Key not found: lua', pcall_err(api.nvim_tabpage_del_var, 0, 'lua'))
+ api.nvim_tabpage_set_var(0, 'lua', 1)
command('lockvar t:lua')
- eq('Key is locked: lua', pcall_err(meths.nvim_tabpage_del_var, 0, 'lua'))
- eq('Key is locked: lua', pcall_err(meths.nvim_tabpage_set_var, 0, 'lua', 1))
+ eq('Key is locked: lua', pcall_err(api.nvim_tabpage_del_var, 0, 'lua'))
+ eq('Key is locked: lua', pcall_err(api.nvim_tabpage_set_var, 0, 'lua', 1))
end)
it('tabpage_set_var returns the old value', function()
@@ -61,28 +61,28 @@ describe('api/tabpage', function()
describe('get_number', function()
it('works', function()
- local tabs = meths.nvim_list_tabpages()
- eq(1, meths.nvim_tabpage_get_number(tabs[1]))
+ local tabs = api.nvim_list_tabpages()
+ eq(1, api.nvim_tabpage_get_number(tabs[1]))
helpers.command('tabnew')
- local tab1, tab2 = unpack(meths.nvim_list_tabpages())
- eq(1, meths.nvim_tabpage_get_number(tab1))
- eq(2, meths.nvim_tabpage_get_number(tab2))
+ local tab1, tab2 = unpack(api.nvim_list_tabpages())
+ eq(1, api.nvim_tabpage_get_number(tab1))
+ eq(2, api.nvim_tabpage_get_number(tab2))
helpers.command('-tabmove')
- eq(2, meths.nvim_tabpage_get_number(tab1))
- eq(1, meths.nvim_tabpage_get_number(tab2))
+ eq(2, api.nvim_tabpage_get_number(tab1))
+ eq(1, api.nvim_tabpage_get_number(tab2))
end)
end)
describe('is_valid', function()
it('works', function()
helpers.command('tabnew')
- local tab = meths.nvim_list_tabpages()[2]
- meths.nvim_set_current_tabpage(tab)
- ok(meths.nvim_tabpage_is_valid(tab))
+ local tab = api.nvim_list_tabpages()[2]
+ api.nvim_set_current_tabpage(tab)
+ ok(api.nvim_tabpage_is_valid(tab))
helpers.command('tabclose')
- ok(not meths.nvim_tabpage_is_valid(tab))
+ ok(not api.nvim_tabpage_is_valid(tab))
end)
end)
end)
diff --git a/test/functional/api/ui_spec.lua b/test/functional/api/ui_spec.lua
index e74a35e97e..3e1f1ec965 100644
--- a/test/functional/api/ui_spec.lua
+++ b/test/functional/api/ui_spec.lua
@@ -6,7 +6,7 @@ local eq = helpers.eq
local eval = helpers.eval
local exec = helpers.exec
local feed = helpers.feed
-local meths = helpers.meths
+local api = helpers.api
local request = helpers.request
local pcall_err = helpers.pcall_err
@@ -23,39 +23,39 @@ describe('nvim_ui_attach()', function()
end)
it('validation', function()
- eq('No such UI option: foo', pcall_err(meths.nvim_ui_attach, 80, 24, { foo = { 'foo' } }))
+ eq('No such UI option: foo', pcall_err(api.nvim_ui_attach, 80, 24, { foo = { 'foo' } }))
eq(
"Invalid 'ext_linegrid': expected Boolean, got Array",
- pcall_err(meths.nvim_ui_attach, 80, 24, { ext_linegrid = {} })
+ pcall_err(api.nvim_ui_attach, 80, 24, { ext_linegrid = {} })
)
eq(
"Invalid 'override': expected Boolean, got Array",
- pcall_err(meths.nvim_ui_attach, 80, 24, { override = {} })
+ pcall_err(api.nvim_ui_attach, 80, 24, { override = {} })
)
eq(
"Invalid 'rgb': expected Boolean, got Array",
- pcall_err(meths.nvim_ui_attach, 80, 24, { rgb = {} })
+ pcall_err(api.nvim_ui_attach, 80, 24, { rgb = {} })
)
eq(
"Invalid 'term_name': expected String, got Boolean",
- pcall_err(meths.nvim_ui_attach, 80, 24, { term_name = true })
+ pcall_err(api.nvim_ui_attach, 80, 24, { term_name = true })
)
eq(
"Invalid 'term_colors': expected Integer, got Boolean",
- pcall_err(meths.nvim_ui_attach, 80, 24, { term_colors = true })
+ pcall_err(api.nvim_ui_attach, 80, 24, { term_colors = true })
)
eq(
"Invalid 'stdin_fd': expected Integer, got String",
- pcall_err(meths.nvim_ui_attach, 80, 24, { stdin_fd = 'foo' })
+ pcall_err(api.nvim_ui_attach, 80, 24, { stdin_fd = 'foo' })
)
eq(
"Invalid 'stdin_tty': expected Boolean, got String",
- pcall_err(meths.nvim_ui_attach, 80, 24, { stdin_tty = 'foo' })
+ pcall_err(api.nvim_ui_attach, 80, 24, { stdin_tty = 'foo' })
)
eq(
"Invalid 'stdout_tty': expected Boolean, got String",
- pcall_err(meths.nvim_ui_attach, 80, 24, { stdout_tty = 'foo' })
+ pcall_err(api.nvim_ui_attach, 80, 24, { stdout_tty = 'foo' })
)
eq('UI not attached to channel: 1', pcall_err(request, 'nvim_ui_try_resize', 40, 10))
@@ -117,17 +117,17 @@ it('autocmds VimSuspend/VimResume #22041', function()
end)
eq({ 's', 'r', 's' }, eval('g:ev'))
screen.suspended = false
- meths.nvim_input_mouse('move', '', '', 0, 0, 0)
+ api.nvim_input_mouse('move', '', '', 0, 0, 0)
eq({ 's', 'r', 's', 'r' }, eval('g:ev'))
feed('<C-Z><C-Z><C-Z>')
screen:expect(function()
eq(true, screen.suspended)
end)
- meths.nvim_ui_set_focus(false)
+ api.nvim_ui_set_focus(false)
eq({ 's', 'r', 's', 'r', 's' }, eval('g:ev'))
screen.suspended = false
- meths.nvim_ui_set_focus(true)
+ api.nvim_ui_set_focus(true)
eq({ 's', 'r', 's', 'r', 's', 'r' }, eval('g:ev'))
command('suspend | suspend | suspend')
diff --git a/test/functional/api/version_spec.lua b/test/functional/api/version_spec.lua
index fefafb8f98..c304f1aa88 100644
--- a/test/functional/api/version_spec.lua
+++ b/test/functional/api/version_spec.lua
@@ -1,7 +1,6 @@
local helpers = require('test.functional.helpers')(after_each)
-local clear, funcs, eq = helpers.clear, helpers.funcs, helpers.eq
-local call = helpers.call
-local meths = helpers.meths
+local clear, fn, eq = helpers.clear, helpers.fn, helpers.eq
+local api = helpers.api
local function read_mpack_file(fname)
local fd = io.open(fname, 'rb')
@@ -19,7 +18,7 @@ describe("api_info()['version']", function()
before_each(clear)
it('returns API level', function()
- local version = call('api_info')['version']
+ local version = fn.api_info()['version']
local current = version['api_level']
local compat = version['api_compatible']
eq('number', type(current))
@@ -28,7 +27,7 @@ describe("api_info()['version']", function()
end)
it('returns Nvim version', function()
- local version = call('api_info')['version']
+ local version = fn.api_info()['version']
local major = version['major']
local minor = version['minor']
local patch = version['patch']
@@ -38,10 +37,10 @@ describe("api_info()['version']", function()
eq('number', type(minor))
eq('number', type(patch))
eq('boolean', type(prerelease))
- eq(1, funcs.has('nvim-' .. major .. '.' .. minor .. '.' .. patch))
- eq(0, funcs.has('nvim-' .. major .. '.' .. minor .. '.' .. (patch + 1)))
- eq(0, funcs.has('nvim-' .. major .. '.' .. (minor + 1) .. '.' .. patch))
- eq(0, funcs.has('nvim-' .. (major + 1) .. '.' .. minor .. '.' .. patch))
+ eq(1, fn.has('nvim-' .. major .. '.' .. minor .. '.' .. patch))
+ eq(0, fn.has('nvim-' .. major .. '.' .. minor .. '.' .. (patch + 1)))
+ eq(0, fn.has('nvim-' .. major .. '.' .. (minor + 1) .. '.' .. patch))
+ eq(0, fn.has('nvim-' .. (major + 1) .. '.' .. minor .. '.' .. patch))
assert(build == nil or type(build) == 'string')
end)
end)
@@ -90,14 +89,14 @@ describe('api metadata', function()
end
end
- local api, compat, stable, api_level
+ local api_info, compat, stable, api_level
local old_api = {}
setup(function()
clear() -- Ensure a session before requesting api_info.
- api = meths.nvim_get_api_info()[2]
- compat = api.version.api_compatible
- api_level = api.version.api_level
- if api.version.api_prerelease then
+ api_info = api.nvim_get_api_info()[2]
+ compat = api_info.version.api_compatible
+ api_level = api_info.version.api_level
+ if api_info.version.api_prerelease then
stable = api_level - 1
else
stable = api_level
@@ -108,7 +107,7 @@ describe('api metadata', function()
old_api[level] = read_mpack_file(path)
if old_api[level] == nil then
local errstr = 'missing metadata fixture for stable level ' .. level .. '. '
- if level == api_level and not api.version.api_prerelease then
+ if level == api_level and not api_info.version.api_prerelease then
errstr = (
errstr
.. 'If NVIM_API_CURRENT was bumped, '
@@ -125,7 +124,7 @@ describe('api metadata', function()
end)
it('functions are compatible with old metadata or have new level', function()
- local funcs_new = name_table(api.functions)
+ local funcs_new = name_table(api_info.functions)
local funcs_compat = {}
for level = compat, stable do
for _, f in ipairs(old_api[level].functions) do
@@ -146,7 +145,7 @@ describe('api metadata', function()
funcs_compat[level] = name_table(old_api[level].functions)
end
- for _, f in ipairs(api.functions) do
+ for _, f in ipairs(api_info.functions) do
if f.since <= stable then
local f_old = funcs_compat[f.since][f.name]
if f_old == nil then
@@ -159,7 +158,7 @@ describe('api metadata', function()
.. (stable + 1)
.. '.'
)
- if not api.version.api_prerelease then
+ if not api_info.version.api_prerelease then
errstr = (
errstr
.. ' Also bump NVIM_API_CURRENT and set '
@@ -172,7 +171,7 @@ describe('api metadata', function()
end
end
elseif f.since > api_level then
- if api.version.api_prerelease then
+ if api_info.version.api_prerelease then
error('New function ' .. f.name .. ' should use since value ' .. api_level)
else
error(
@@ -188,7 +187,7 @@ describe('api metadata', function()
end)
it('UI events are compatible with old metadata or have new level', function()
- local ui_events_new = name_table(api.ui_events)
+ local ui_events_new = name_table(api_info.ui_events)
local ui_events_compat = {}
-- UI events were formalized in level 3
@@ -202,7 +201,7 @@ describe('api metadata', function()
ui_events_compat[level] = name_table(old_api[level].ui_events)
end
- for _, e in ipairs(api.ui_events) do
+ for _, e in ipairs(api_info.ui_events) do
if e.since <= stable then
local e_old = ui_events_compat[e.since][e.name]
if e_old == nil then
@@ -214,7 +213,7 @@ describe('api metadata', function()
.. (stable + 1)
.. '.'
)
- if not api.version.api_prerelease then
+ if not api_info.version.api_prerelease then
errstr = (
errstr
.. ' Also bump NVIM_API_CURRENT and set '
@@ -224,7 +223,7 @@ describe('api metadata', function()
error(errstr)
end
elseif e.since > api_level then
- if api.version.api_prerelease then
+ if api_info.version.api_prerelease then
error('New UI event ' .. e.name .. ' should use since value ' .. api_level)
else
error(
@@ -241,7 +240,7 @@ describe('api metadata', function()
it('ui_options are preserved from older levels', function()
local available_options = {}
- for _, option in ipairs(api.ui_options) do
+ for _, option in ipairs(api_info.ui_options) do
available_options[option] = true
end
-- UI options were versioned from level 4
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index ba2042d585..aa3b4419cc 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -8,13 +8,13 @@ local assert_alive = helpers.assert_alive
local NIL = vim.NIL
local clear, eq, neq = helpers.clear, helpers.eq, helpers.neq
local command = helpers.command
-local command_output = helpers.meths.command_output
+local command_output = helpers.api.command_output
local exec = helpers.exec
local exec_capture = helpers.exec_capture
local eval = helpers.eval
local expect = helpers.expect
-local funcs = helpers.funcs
-local meths = helpers.meths
+local fn = helpers.fn
+local api = helpers.api
local matches = helpers.matches
local pesc = vim.pesc
local mkdir_p = helpers.mkdir_p
@@ -71,7 +71,7 @@ describe('API', function()
end)
it('handles errors in async requests', function()
- local error_types = meths.nvim_get_api_info()[2].error_types
+ local error_types = api.nvim_get_api_info()[2].error_types
nvim_async('bogus')
eq({
'notification',
@@ -83,7 +83,7 @@ describe('API', function()
end)
it('failed async request emits nvim_error_event', function()
- local error_types = meths.nvim_get_api_info()[2].error_types
+ local error_types = api.nvim_get_api_info()[2].error_types
nvim_async('command', 'bogus')
eq({
'notification',
@@ -98,37 +98,37 @@ describe('API', function()
command('split')
command('autocmd WinEnter * startinsert')
command('wincmd w')
- eq({ mode = 'i', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'i', blocking = false }, api.nvim_get_mode())
end)
describe('nvim_exec2', function()
it('always returns table', function()
-- In built version this results into `vim.empty_dict()`
- eq({}, meths.nvim_exec2('echo "Hello"', {}))
- eq({}, meths.nvim_exec2('echo "Hello"', { output = false }))
- eq({ output = 'Hello' }, meths.nvim_exec2('echo "Hello"', { output = true }))
+ eq({}, api.nvim_exec2('echo "Hello"', {}))
+ eq({}, api.nvim_exec2('echo "Hello"', { output = false }))
+ eq({ output = 'Hello' }, api.nvim_exec2('echo "Hello"', { output = true }))
end)
it('default options', function()
-- Should be equivalent to { output = false }
- meths.nvim_exec2("let x0 = 'a'", {})
- eq('a', meths.nvim_get_var('x0'))
+ api.nvim_exec2("let x0 = 'a'", {})
+ eq('a', api.nvim_get_var('x0'))
end)
it('one-line input', function()
- meths.nvim_exec2("let x1 = 'a'", { output = false })
- eq('a', meths.nvim_get_var('x1'))
+ api.nvim_exec2("let x1 = 'a'", { output = false })
+ eq('a', api.nvim_get_var('x1'))
end)
it(':verbose set {option}?', function()
- meths.nvim_exec2('set nowrap', { output = false })
+ api.nvim_exec2('set nowrap', { output = false })
eq(
{ output = 'nowrap\n\tLast set from anonymous :source' },
- meths.nvim_exec2('verbose set wrap?', { output = true })
+ api.nvim_exec2('verbose set wrap?', { output = true })
)
-- Using script var to force creation of a script item
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
let s:a = 1
set nowrap
@@ -137,39 +137,39 @@ describe('API', function()
)
eq(
{ output = 'nowrap\n\tLast set from anonymous :source (script id 1)' },
- meths.nvim_exec2('verbose set wrap?', { output = true })
+ api.nvim_exec2('verbose set wrap?', { output = true })
)
end)
it('multiline input', function()
-- Heredoc + empty lines.
- meths.nvim_exec2("let x2 = 'a'\n", { output = false })
- eq('a', meths.nvim_get_var('x2'))
- meths.nvim_exec2('lua <<EOF\n\n\n\ny=3\n\n\nEOF', { output = false })
- eq(3, meths.nvim_eval("luaeval('y')"))
+ api.nvim_exec2("let x2 = 'a'\n", { output = false })
+ eq('a', api.nvim_get_var('x2'))
+ api.nvim_exec2('lua <<EOF\n\n\n\ny=3\n\n\nEOF', { output = false })
+ eq(3, api.nvim_eval("luaeval('y')"))
- eq({}, meths.nvim_exec2('lua <<EOF\ny=3\nEOF', { output = false }))
- eq(3, meths.nvim_eval("luaeval('y')"))
+ eq({}, api.nvim_exec2('lua <<EOF\ny=3\nEOF', { output = false }))
+ eq(3, api.nvim_eval("luaeval('y')"))
-- Multiple statements
- meths.nvim_exec2('let x1=1\nlet x2=2\nlet x3=3\n', { output = false })
- eq(1, meths.nvim_eval('x1'))
- eq(2, meths.nvim_eval('x2'))
- eq(3, meths.nvim_eval('x3'))
+ api.nvim_exec2('let x1=1\nlet x2=2\nlet x3=3\n', { output = false })
+ eq(1, api.nvim_eval('x1'))
+ eq(2, api.nvim_eval('x2'))
+ eq(3, api.nvim_eval('x3'))
-- Functions
- meths.nvim_exec2('function Foo()\ncall setline(1,["xxx"])\nendfunction', { output = false })
- eq('', meths.nvim_get_current_line())
- meths.nvim_exec2('call Foo()', { output = false })
- eq('xxx', meths.nvim_get_current_line())
+ api.nvim_exec2('function Foo()\ncall setline(1,["xxx"])\nendfunction', { output = false })
+ eq('', api.nvim_get_current_line())
+ api.nvim_exec2('call Foo()', { output = false })
+ eq('xxx', api.nvim_get_current_line())
-- Autocmds
- meths.nvim_exec2('autocmd BufAdd * :let x1 = "Hello"', { output = false })
+ api.nvim_exec2('autocmd BufAdd * :let x1 = "Hello"', { output = false })
command('new foo')
eq('Hello', request('nvim_eval', 'g:x1'))
-- Line continuations
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
let abc = #{
\ a: 1,
@@ -181,13 +181,13 @@ describe('API', function()
eq({ a = 1, c = 3 }, request('nvim_eval', 'g:abc'))
-- try no spaces before continuations to catch off-by-one error
- meths.nvim_exec2('let ab = #{\n\\a: 98,\n"\\ b: 2\n\\}', { output = false })
+ api.nvim_exec2('let ab = #{\n\\a: 98,\n"\\ b: 2\n\\}', { output = false })
eq({ a = 98 }, request('nvim_eval', 'g:ab'))
-- Script scope (s:)
eq(
{ output = 'ahoy! script-scoped varrrrr' },
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
let s:pirate = 'script-scoped varrrrr'
function! s:avast_ye_hades(s) abort
@@ -201,7 +201,7 @@ describe('API', function()
eq(
{ output = "{'output': 'ahoy! script-scoped varrrrr'}" },
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
let s:pirate = 'script-scoped varrrrr'
function! Avast_ye_hades(s) abort
@@ -229,7 +229,7 @@ describe('API', function()
-- Script items are created only on script var access
eq(
{ output = '1\n0' },
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
echo expand("<SID>")->empty()
let s:a = 123
@@ -241,7 +241,7 @@ describe('API', function()
eq(
{ output = '1\n0' },
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
echo expand("<SID>")->empty()
function s:a() abort
@@ -254,7 +254,7 @@ describe('API', function()
end)
it('non-ASCII input', function()
- meths.nvim_exec2(
+ api.nvim_exec2(
[=[
new
exe "normal! i ax \n Ax "
@@ -263,11 +263,11 @@ describe('API', function()
{ output = false }
)
command('1')
- eq(' --a1234-- ', meths.nvim_get_current_line())
+ eq(' --a1234-- ', api.nvim_get_current_line())
command('2')
- eq(' --A1234-- ', meths.nvim_get_current_line())
+ eq(' --A1234-- ', api.nvim_get_current_line())
- meths.nvim_exec2(
+ api.nvim_exec2(
[[
new
call setline(1,['xxx'])
@@ -276,7 +276,7 @@ describe('API', function()
]],
{ output = false }
)
- eq('ñxx', meths.nvim_get_current_line())
+ eq('ñxx', api.nvim_get_current_line())
end)
it('execution error', function()
@@ -284,7 +284,7 @@ describe('API', function()
'nvim_exec2(): Vim:E492: Not an editor command: bogus_command',
pcall_err(request, 'nvim_exec2', 'bogus_command', {})
)
- eq('', meths.nvim_eval('v:errmsg')) -- v:errmsg was not updated.
+ eq('', api.nvim_eval('v:errmsg')) -- v:errmsg was not updated.
eq('', eval('v:exception'))
eq(
@@ -319,7 +319,7 @@ describe('API', function()
write_file(fname, 'echo "hello"\n')
local sourcing_fname = tmpname()
write_file(sourcing_fname, 'call nvim_exec2("source ' .. fname .. '", {"output": v:false})\n')
- meths.nvim_exec2('set verbose=2', { output = false })
+ api.nvim_exec2('set verbose=2', { output = false })
local traceback_output = dedent([[
line 0: sourcing "%s"
line 0: sourcing "%s"
@@ -336,7 +336,7 @@ describe('API', function()
)
eq(
{ output = traceback_output },
- meths.nvim_exec2(
+ api.nvim_exec2(
'call nvim_exec2("source ' .. sourcing_fname .. '", {"output": v:false})',
{ output = true }
)
@@ -348,10 +348,10 @@ describe('API', function()
it('returns output', function()
eq(
{ output = 'this is spinal tap' },
- meths.nvim_exec2('lua <<EOF\n\n\nprint("this is spinal tap")\n\n\nEOF', { output = true })
+ api.nvim_exec2('lua <<EOF\n\n\nprint("this is spinal tap")\n\n\nEOF', { output = true })
)
- eq({ output = '' }, meths.nvim_exec2('echo', { output = true }))
- eq({ output = 'foo 42' }, meths.nvim_exec2('echo "foo" 42', { output = true }))
+ eq({ output = '' }, api.nvim_exec2('echo', { output = true }))
+ eq({ output = 'foo 42' }, api.nvim_exec2('echo "foo" 42', { output = true }))
end)
it('displays messages when opts.output=false', function()
@@ -360,7 +360,7 @@ describe('API', function()
screen:set_default_attr_ids({
[0] = { bold = true, foreground = Screen.colors.Blue },
})
- meths.nvim_exec2("echo 'hello'", { output = false })
+ api.nvim_exec2("echo 'hello'", { output = false })
screen:expect {
grid = [[
^ |
@@ -376,7 +376,7 @@ describe('API', function()
screen:set_default_attr_ids({
[0] = { bold = true, foreground = Screen.colors.Blue },
})
- meths.nvim_exec2("echo 'hello'", { output = true })
+ api.nvim_exec2("echo 'hello'", { output = true })
screen:expect {
grid = [[
^ |
@@ -421,7 +421,7 @@ describe('API', function()
local status, rv = pcall(command, 'bogus_command')
eq(false, status) -- nvim_command() failed.
eq('E492:', string.match(rv, 'E%d*:')) -- Vimscript error was returned.
- eq('', meths.nvim_eval('v:errmsg')) -- v:errmsg was not updated.
+ eq('', api.nvim_eval('v:errmsg')) -- v:errmsg was not updated.
eq('', eval('v:exception'))
end)
@@ -444,18 +444,18 @@ describe('API', function()
describe('nvim_command_output', function()
it('does not induce hit-enter prompt', function()
- meths.nvim_ui_attach(80, 20, {})
+ api.nvim_ui_attach(80, 20, {})
-- Induce a hit-enter prompt use nvim_input (non-blocking).
command('set cmdheight=1')
- meths.nvim_input([[:echo "hi\nhi2"<CR>]])
+ api.nvim_input([[:echo "hi\nhi2"<CR>]])
-- Verify hit-enter prompt.
- eq({ mode = 'r', blocking = true }, meths.nvim_get_mode())
- meths.nvim_input([[<C-c>]])
+ eq({ mode = 'r', blocking = true }, api.nvim_get_mode())
+ api.nvim_input([[<C-c>]])
-- Verify NO hit-enter prompt.
command_output([[echo "hi\nhi2"]])
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('captures command output', function()
@@ -500,7 +500,7 @@ describe('API', function()
eq('E492: Not an editor command: bogus commannnd', string.match(rv, 'E%d*:.*'))
eq('', eval('v:errmsg')) -- v:errmsg was not updated.
-- Verify NO hit-enter prompt.
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('Vimscript execution error: fails with specific error', function()
@@ -509,7 +509,7 @@ describe('API', function()
eq('E86: Buffer 42 does not exist', string.match(rv, 'E%d*:.*'))
eq('', eval('v:errmsg')) -- v:errmsg was not updated.
-- Verify NO hit-enter prompt.
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('does not cause heap buffer overflow with large output', function()
@@ -521,12 +521,12 @@ describe('API', function()
it('works', function()
command('let g:v1 = "a"')
command('let g:v2 = [1, 2, {"v3": 3}]')
- eq({ v1 = 'a', v2 = { 1, 2, { v3 = 3 } } }, meths.nvim_eval('g:'))
+ eq({ v1 = 'a', v2 = { 1, 2, { v3 = 3 } } }, api.nvim_eval('g:'))
end)
it('handles NULL-initialized strings correctly', function()
- eq(1, meths.nvim_eval("matcharg(1) == ['', '']"))
- eq({ '', '' }, meths.nvim_eval('matcharg(1)'))
+ eq(1, api.nvim_eval("matcharg(1) == ['', '']"))
+ eq({ '', '' }, api.nvim_eval('matcharg(1)'))
end)
it('works under deprecated name', function()
@@ -541,10 +541,10 @@ describe('API', function()
describe('nvim_call_function', function()
it('works', function()
- meths.nvim_call_function('setqflist', { { { filename = 'something', lnum = 17 } }, 'r' })
- eq(17, meths.nvim_call_function('getqflist', {})[1].lnum)
- eq(17, meths.nvim_call_function('eval', { 17 }))
- eq('foo', meths.nvim_call_function('simplify', { 'this/./is//redundant/../../../foo' }))
+ api.nvim_call_function('setqflist', { { { filename = 'something', lnum = 17 } }, 'r' })
+ eq(17, api.nvim_call_function('getqflist', {})[1].lnum)
+ eq(17, api.nvim_call_function('eval', { 17 }))
+ eq('foo', api.nvim_call_function('simplify', { 'this/./is//redundant/../../../foo' }))
end)
it('Vimscript validation error: returns specific error, does NOT update v:errmsg', function()
@@ -619,18 +619,18 @@ describe('API', function()
]])
-- :help Dictionary-function
- eq('Hello, World!', meths.nvim_call_dict_function('g:test_dict_fn', 'F', { 'World' }))
+ eq('Hello, World!', api.nvim_call_dict_function('g:test_dict_fn', 'F', { 'World' }))
-- Funcref is sent as NIL over RPC.
- eq({ greeting = 'Hello', F = NIL }, meths.nvim_get_var('test_dict_fn'))
+ eq({ greeting = 'Hello', F = NIL }, api.nvim_get_var('test_dict_fn'))
-- :help numbered-function
- eq('Hi, Moon ...', meths.nvim_call_dict_function('g:test_dict_fn2', 'F2', { 'Moon' }))
+ eq('Hi, Moon ...', api.nvim_call_dict_function('g:test_dict_fn2', 'F2', { 'Moon' }))
-- Funcref is sent as NIL over RPC.
- eq({ greeting = 'Hi', F2 = NIL }, meths.nvim_get_var('test_dict_fn2'))
+ eq({ greeting = 'Hi', F2 = NIL }, api.nvim_get_var('test_dict_fn2'))
-- Function specified via RPC dict.
source('function! G() dict\n return "@".(self.result)."@"\nendfunction')
- eq('@it works@', meths.nvim_call_dict_function({ result = 'it works', G = 'G' }, 'G', {}))
+ eq('@it works@', api.nvim_call_dict_function({ result = 'it works', G = 'G' }, 'G', {}))
end)
it('validation', function()
@@ -675,8 +675,8 @@ describe('API', function()
local start_dir
before_each(function()
- funcs.mkdir('Xtestdir')
- start_dir = funcs.getcwd()
+ fn.mkdir('Xtestdir')
+ start_dir = fn.getcwd()
end)
after_each(function()
@@ -684,84 +684,84 @@ describe('API', function()
end)
it('works', function()
- meths.nvim_set_current_dir('Xtestdir')
- eq(funcs.getcwd(), start_dir .. helpers.get_pathsep() .. 'Xtestdir')
+ api.nvim_set_current_dir('Xtestdir')
+ eq(fn.getcwd(), start_dir .. helpers.get_pathsep() .. 'Xtestdir')
end)
it('sets previous directory', function()
- meths.nvim_set_current_dir('Xtestdir')
+ api.nvim_set_current_dir('Xtestdir')
command('cd -')
- eq(funcs.getcwd(), start_dir)
+ eq(fn.getcwd(), start_dir)
end)
end)
describe('nvim_exec_lua', function()
it('works', function()
- meths.nvim_exec_lua('vim.api.nvim_set_var("test", 3)', {})
- eq(3, meths.nvim_get_var('test'))
+ api.nvim_exec_lua('vim.api.nvim_set_var("test", 3)', {})
+ eq(3, api.nvim_get_var('test'))
- eq(17, meths.nvim_exec_lua('a, b = ...\nreturn a + b', { 10, 7 }))
+ eq(17, api.nvim_exec_lua('a, b = ...\nreturn a + b', { 10, 7 }))
- eq(NIL, meths.nvim_exec_lua('function xx(a,b)\nreturn a..b\nend', {}))
- eq('xy', meths.nvim_exec_lua('return xx(...)', { 'x', 'y' }))
+ eq(NIL, api.nvim_exec_lua('function xx(a,b)\nreturn a..b\nend', {}))
+ eq('xy', api.nvim_exec_lua('return xx(...)', { 'x', 'y' }))
-- Deprecated name: nvim_execute_lua.
- eq('xy', meths.nvim_execute_lua('return xx(...)', { 'x', 'y' }))
+ eq('xy', api.nvim_execute_lua('return xx(...)', { 'x', 'y' }))
end)
it('reports errors', function()
eq(
[[Error loading lua: [string "<nvim>"]:0: '=' expected near '+']],
- pcall_err(meths.nvim_exec_lua, 'a+*b', {})
+ pcall_err(api.nvim_exec_lua, 'a+*b', {})
)
eq(
[[Error loading lua: [string "<nvim>"]:0: unexpected symbol near '1']],
- pcall_err(meths.nvim_exec_lua, '1+2', {})
+ pcall_err(api.nvim_exec_lua, '1+2', {})
)
eq(
[[Error loading lua: [string "<nvim>"]:0: unexpected symbol]],
- pcall_err(meths.nvim_exec_lua, 'aa=bb\0', {})
+ pcall_err(api.nvim_exec_lua, 'aa=bb\0', {})
)
eq(
[[attempt to call global 'bork' (a nil value)]],
- pcall_err(meths.nvim_exec_lua, 'bork()', {})
+ pcall_err(api.nvim_exec_lua, 'bork()', {})
)
- eq('did\nthe\nfail', pcall_err(meths.nvim_exec_lua, 'error("did\\nthe\\nfail")', {}))
+ eq('did\nthe\nfail', pcall_err(api.nvim_exec_lua, 'error("did\\nthe\\nfail")', {}))
end)
it('uses native float values', function()
- eq(2.5, meths.nvim_exec_lua('return select(1, ...)', { 2.5 }))
- eq('2.5', meths.nvim_exec_lua('return vim.inspect(...)', { 2.5 }))
+ eq(2.5, api.nvim_exec_lua('return select(1, ...)', { 2.5 }))
+ eq('2.5', api.nvim_exec_lua('return vim.inspect(...)', { 2.5 }))
-- "special" float values are still accepted as return values.
- eq(2.5, meths.nvim_exec_lua("return vim.api.nvim_eval('2.5')", {}))
+ eq(2.5, api.nvim_exec_lua("return vim.api.nvim_eval('2.5')", {}))
eq(
'{\n [false] = 2.5,\n [true] = 3\n}',
- meths.nvim_exec_lua("return vim.inspect(vim.api.nvim_eval('2.5'))", {})
+ api.nvim_exec_lua("return vim.inspect(vim.api.nvim_eval('2.5'))", {})
)
end)
end)
describe('nvim_notify', function()
it('can notify a info message', function()
- meths.nvim_notify('hello world', 2, {})
+ api.nvim_notify('hello world', 2, {})
end)
it('can be overridden', function()
command('lua vim.notify = function(...) return 42 end')
- eq(42, meths.nvim_exec_lua("return vim.notify('Hello world')", {}))
- meths.nvim_notify('hello world', 4, {})
+ eq(42, api.nvim_exec_lua("return vim.notify('Hello world')", {}))
+ api.nvim_notify('hello world', 4, {})
end)
end)
describe('nvim_input', function()
it('Vimscript error: does NOT fail, updates v:errmsg', function()
- local status, _ = pcall(meths.nvim_input, ':call bogus_fn()<CR>')
- local v_errnum = string.match(meths.nvim_eval('v:errmsg'), 'E%d*:')
+ local status, _ = pcall(api.nvim_input, ':call bogus_fn()<CR>')
+ local v_errnum = string.match(api.nvim_eval('v:errmsg'), 'E%d*:')
eq(true, status) -- nvim_input() did not fail.
eq('E117:', v_errnum) -- v:errmsg was updated.
end)
@@ -779,23 +779,23 @@ describe('API', function()
end)
local function run_streamed_paste_tests()
it('stream: multiple chunks form one undo-block', function()
- meths.nvim_paste('1/chunk 1 (start)\n', true, 1)
- meths.nvim_paste('1/chunk 2 (end)\n', true, 3)
+ api.nvim_paste('1/chunk 1 (start)\n', true, 1)
+ api.nvim_paste('1/chunk 2 (end)\n', true, 3)
local expected1 = [[
1/chunk 1 (start)
1/chunk 2 (end)
]]
expect(expected1)
- meths.nvim_paste('2/chunk 1 (start)\n', true, 1)
- meths.nvim_paste('2/chunk 2\n', true, 2)
+ api.nvim_paste('2/chunk 1 (start)\n', true, 1)
+ api.nvim_paste('2/chunk 2\n', true, 2)
expect([[
1/chunk 1 (start)
1/chunk 2 (end)
2/chunk 1 (start)
2/chunk 2
]])
- meths.nvim_paste('2/chunk 3\n', true, 2)
- meths.nvim_paste('2/chunk 4 (end)\n', true, 3)
+ api.nvim_paste('2/chunk 3\n', true, 2)
+ api.nvim_paste('2/chunk 4 (end)\n', true, 3)
expect([[
1/chunk 1 (start)
1/chunk 2 (end)
@@ -811,10 +811,10 @@ describe('API', function()
-- If nvim_paste() calls :undojoin without making any changes, this makes it an error.
feed('afoo<Esc>u')
feed('i')
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('aaaaaabbbbbbccccccdddddd')
feed('<Esc>u')
expect('')
@@ -830,17 +830,17 @@ describe('API', function()
expect('')
end)
it('pasting one line', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('aaaaaabbbbbbccccccdddddd')
end)
it('pasting multiple lines', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
aaaaaa
bbbbbb
@@ -860,17 +860,17 @@ describe('API', function()
expect('||')
end)
it('pasting one line', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('|aaaaaabbbbbbccccccdddddd|')
end)
it('pasting multiple lines', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
|aaaaaa
bbbbbb
@@ -890,17 +890,17 @@ describe('API', function()
expect('||')
end)
it('pasting one line', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('||aaaaaabbbbbbccccccdddddd')
end)
it('pasting multiple lines', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
||aaaaaa
bbbbbb
@@ -924,24 +924,24 @@ describe('API', function()
xxx|]])
end)
it('with non-empty chunks', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('|aaaaaabbbbbbccccccdddddd|')
end)
it('with empty first chunk', function()
- meths.nvim_paste('', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('|bbbbbbccccccdddddd|')
end)
it('with all chunks empty', function()
- meths.nvim_paste('', false, 1)
- meths.nvim_paste('', false, 2)
- meths.nvim_paste('', false, 2)
- meths.nvim_paste('', false, 3)
+ api.nvim_paste('', false, 1)
+ api.nvim_paste('', false, 2)
+ api.nvim_paste('', false, 2)
+ api.nvim_paste('', false, 3)
expect('||')
end)
end)
@@ -959,17 +959,17 @@ describe('API', function()
xxx]])
end)
it('with non-empty chunks', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('||aaaaaabbbbbbccccccdddddd')
end)
it('with empty first chunk', function()
- meths.nvim_paste('', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('||bbbbbbccccccdddddd')
end)
end)
@@ -987,17 +987,17 @@ describe('API', function()
xxx]])
end)
it('with non-empty chunks', function()
- meths.nvim_paste('aaaaaa', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('||aaaaaabbbbbbccccccdddddd')
end)
it('with empty first chunk', function()
- meths.nvim_paste('', false, 1)
- meths.nvim_paste('bbbbbb', false, 2)
- meths.nvim_paste('cccccc', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('', false, 1)
+ api.nvim_paste('bbbbbb', false, 2)
+ api.nvim_paste('cccccc', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect('||bbbbbbccccccdddddd')
end)
end)
@@ -1020,10 +1020,10 @@ describe('API', function()
feed('ggV')
end)
it('pasting text without final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
aaaaaa
bbbbbb
@@ -1032,10 +1032,10 @@ describe('API', function()
123456789]])
end)
it('pasting text with final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd\n', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd\n', false, 3)
expect([[
aaaaaa
bbbbbb
@@ -1050,10 +1050,10 @@ describe('API', function()
feed('2ggV')
end)
it('pasting text without final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
123456789
aaaaaa
@@ -1062,10 +1062,10 @@ describe('API', function()
dddddd123456789]])
end)
it('pasting text with final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd\n', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd\n', false, 3)
expect([[
123456789
aaaaaa
@@ -1080,10 +1080,10 @@ describe('API', function()
feed('3ggV')
end)
it('pasting text without final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
123456789
987654321
@@ -1093,10 +1093,10 @@ describe('API', function()
dddddd]])
end)
it('pasting text with final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd\n', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd\n', false, 3)
expect([[
123456789
987654321
@@ -1112,10 +1112,10 @@ describe('API', function()
feed('ggVG')
end)
it('pasting text without final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd', false, 3)
expect([[
aaaaaa
bbbbbb
@@ -1123,10 +1123,10 @@ describe('API', function()
dddddd]])
end)
it('pasting text with final new line', function()
- meths.nvim_paste('aaaaaa\n', false, 1)
- meths.nvim_paste('bbbbbb\n', false, 2)
- meths.nvim_paste('cccccc\n', false, 2)
- meths.nvim_paste('dddddd\n', false, 3)
+ api.nvim_paste('aaaaaa\n', false, 1)
+ api.nvim_paste('bbbbbb\n', false, 2)
+ api.nvim_paste('cccccc\n', false, 2)
+ api.nvim_paste('dddddd\n', false, 3)
expect([[
aaaaaa
bbbbbb
@@ -1148,71 +1148,71 @@ describe('API', function()
end)
it('non-streaming', function()
-- With final "\n".
- meths.nvim_paste('line 1\nline 2\nline 3\n', true, -1)
+ api.nvim_paste('line 1\nline 2\nline 3\n', true, -1)
expect([[
line 1
line 2
line 3
]])
- eq({ 0, 4, 1, 0 }, funcs.getpos('.')) -- Cursor follows the paste.
- eq(false, meths.nvim_get_option_value('paste', {}))
+ eq({ 0, 4, 1, 0 }, fn.getpos('.')) -- Cursor follows the paste.
+ eq(false, api.nvim_get_option_value('paste', {}))
command('%delete _')
-- Without final "\n".
- meths.nvim_paste('line 1\nline 2\nline 3', true, -1)
+ api.nvim_paste('line 1\nline 2\nline 3', true, -1)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 3, 6, 0 }, funcs.getpos('.'))
+ eq({ 0, 3, 6, 0 }, fn.getpos('.'))
command('%delete _')
-- CRLF #10872
- meths.nvim_paste('line 1\r\nline 2\r\nline 3\r\n', true, -1)
+ api.nvim_paste('line 1\r\nline 2\r\nline 3\r\n', true, -1)
expect([[
line 1
line 2
line 3
]])
- eq({ 0, 4, 1, 0 }, funcs.getpos('.'))
+ eq({ 0, 4, 1, 0 }, fn.getpos('.'))
command('%delete _')
-- CRLF without final "\n".
- meths.nvim_paste('line 1\r\nline 2\r\nline 3\r', true, -1)
+ api.nvim_paste('line 1\r\nline 2\r\nline 3\r', true, -1)
expect([[
line 1
line 2
line 3
]])
- eq({ 0, 4, 1, 0 }, funcs.getpos('.'))
+ eq({ 0, 4, 1, 0 }, fn.getpos('.'))
command('%delete _')
-- CRLF without final "\r\n".
- meths.nvim_paste('line 1\r\nline 2\r\nline 3', true, -1)
+ api.nvim_paste('line 1\r\nline 2\r\nline 3', true, -1)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 3, 6, 0 }, funcs.getpos('.'))
+ eq({ 0, 3, 6, 0 }, fn.getpos('.'))
command('%delete _')
-- Various other junk.
- meths.nvim_paste('line 1\r\n\r\rline 2\nline 3\rline 4\r', true, -1)
+ api.nvim_paste('line 1\r\n\r\rline 2\nline 3\rline 4\r', true, -1)
expect('line 1\n\n\nline 2\nline 3\nline 4\n')
- eq({ 0, 7, 1, 0 }, funcs.getpos('.'))
- eq(false, meths.nvim_get_option_value('paste', {}))
+ eq({ 0, 7, 1, 0 }, fn.getpos('.'))
+ eq(false, api.nvim_get_option_value('paste', {}))
end)
it('Replace-mode', function()
-- Within single line
- meths.nvim_put({ 'aabbccdd', 'eeffgghh', 'iijjkkll' }, 'c', true, false)
+ api.nvim_put({ 'aabbccdd', 'eeffgghh', 'iijjkkll' }, 'c', true, false)
command('normal l')
command('startreplace')
- meths.nvim_paste('123456', true, -1)
+ api.nvim_paste('123456', true, -1)
expect([[
a123456d
eeffgghh
iijjkkll]])
command('%delete _')
-- Across lines
- meths.nvim_put({ 'aabbccdd', 'eeffgghh', 'iijjkkll' }, 'c', true, false)
+ api.nvim_put({ 'aabbccdd', 'eeffgghh', 'iijjkkll' }, 'c', true, false)
command('normal l')
command('startreplace')
- meths.nvim_paste('123\n456', true, -1)
+ api.nvim_paste('123\n456', true, -1)
expect([[
a123
456d
@@ -1221,30 +1221,30 @@ describe('API', function()
end)
it('when searching in Visual mode', function()
feed('v/')
- meths.nvim_paste('aabbccdd', true, -1)
- eq('aabbccdd', funcs.getcmdline())
+ api.nvim_paste('aabbccdd', true, -1)
+ eq('aabbccdd', fn.getcmdline())
expect('')
end)
it('mappings are disabled in Cmdline mode', function()
command('cnoremap a b')
feed(':')
- meths.nvim_paste('a', true, -1)
- eq('a', funcs.getcmdline())
+ api.nvim_paste('a', true, -1)
+ eq('a', fn.getcmdline())
end)
it('pasted text is saved in cmdline history when <CR> comes from mapping #20957', function()
command('cnoremap <CR> <CR>')
feed(':')
- meths.nvim_paste('echo', true, -1)
- eq('', funcs.histget(':'))
+ api.nvim_paste('echo', true, -1)
+ eq('', fn.histget(':'))
feed('<CR>')
- eq('echo', funcs.histget(':'))
+ eq('echo', fn.histget(':'))
end)
it('pasting with empty last chunk in Cmdline mode', function()
local screen = Screen.new(20, 4)
screen:attach()
feed(':')
- meths.nvim_paste('Foo', true, 1)
- meths.nvim_paste('', true, 3)
+ api.nvim_paste('Foo', true, 1)
+ api.nvim_paste('', true, 3)
screen:expect([[
|
~ |*2
@@ -1255,7 +1255,7 @@ describe('API', function()
local screen = Screen.new(20, 4)
screen:attach()
feed(':')
- meths.nvim_paste('normal! \023\022\006\027', true, -1)
+ api.nvim_paste('normal! \023\022\006\027', true, -1)
screen:expect([[
|
~ |*2
@@ -1263,12 +1263,12 @@ describe('API', function()
]])
end)
it('crlf=false does not break lines at CR, CRLF', function()
- meths.nvim_paste('line 1\r\n\r\rline 2\nline 3\rline 4\r', false, -1)
+ api.nvim_paste('line 1\r\n\r\rline 2\nline 3\rline 4\r', false, -1)
expect('line 1\r\n\r\rline 2\nline 3\rline 4\r')
- eq({ 0, 3, 14, 0 }, funcs.getpos('.'))
+ eq({ 0, 3, 14, 0 }, fn.getpos('.'))
end)
it('vim.paste() failure', function()
- meths.nvim_exec_lua('vim.paste = (function(lines, phase) error("fake fail") end)', {})
+ api.nvim_exec_lua('vim.paste = (function(lines, phase) error("fake fail") end)', {})
eq('fake fail', pcall_err(request, 'nvim_paste', 'line 1\nline 2\nline 3', false, 1))
end)
end)
@@ -1290,78 +1290,78 @@ describe('API', function()
end)
it('inserts text', function()
-- linewise
- meths.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'l', true, true)
+ api.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'l', true, true)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 4, 1, 0 }, funcs.getpos('.'))
+ eq({ 0, 4, 1, 0 }, fn.getpos('.'))
command('%delete _')
-- charwise
- meths.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'c', true, false)
+ api.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'c', true, false)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 1, 1, 0 }, funcs.getpos('.')) -- follow=false
+ eq({ 0, 1, 1, 0 }, fn.getpos('.')) -- follow=false
-- blockwise
- meths.nvim_put({ 'AA', 'BB' }, 'b', true, true)
+ api.nvim_put({ 'AA', 'BB' }, 'b', true, true)
expect([[
lAAine 1
lBBine 2
line 3]])
- eq({ 0, 2, 4, 0 }, funcs.getpos('.'))
+ eq({ 0, 2, 4, 0 }, fn.getpos('.'))
command('%delete _')
-- Empty lines list.
- meths.nvim_put({}, 'c', true, true)
- eq({ 0, 1, 1, 0 }, funcs.getpos('.'))
+ api.nvim_put({}, 'c', true, true)
+ eq({ 0, 1, 1, 0 }, fn.getpos('.'))
expect([[]])
-- Single empty line.
- meths.nvim_put({ '' }, 'c', true, true)
- eq({ 0, 1, 1, 0 }, funcs.getpos('.'))
+ api.nvim_put({ '' }, 'c', true, true)
+ eq({ 0, 1, 1, 0 }, fn.getpos('.'))
expect([[
]])
- meths.nvim_put({ 'AB' }, 'c', true, true)
+ api.nvim_put({ 'AB' }, 'c', true, true)
-- after=false, follow=true
- meths.nvim_put({ 'line 1', 'line 2' }, 'c', false, true)
+ api.nvim_put({ 'line 1', 'line 2' }, 'c', false, true)
expect([[
Aline 1
line 2B]])
- eq({ 0, 2, 7, 0 }, funcs.getpos('.'))
+ eq({ 0, 2, 7, 0 }, fn.getpos('.'))
command('%delete _')
- meths.nvim_put({ 'AB' }, 'c', true, true)
+ api.nvim_put({ 'AB' }, 'c', true, true)
-- after=false, follow=false
- meths.nvim_put({ 'line 1', 'line 2' }, 'c', false, false)
+ api.nvim_put({ 'line 1', 'line 2' }, 'c', false, false)
expect([[
Aline 1
line 2B]])
- eq({ 0, 1, 2, 0 }, funcs.getpos('.'))
- eq('', meths.nvim_eval('v:errmsg'))
+ eq({ 0, 1, 2, 0 }, fn.getpos('.'))
+ eq('', api.nvim_eval('v:errmsg'))
end)
it('detects charwise/linewise text (empty {type})', function()
-- linewise (final item is empty string)
- meths.nvim_put({ 'line 1', 'line 2', 'line 3', '' }, '', true, true)
+ api.nvim_put({ 'line 1', 'line 2', 'line 3', '' }, '', true, true)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 4, 1, 0 }, funcs.getpos('.'))
+ eq({ 0, 4, 1, 0 }, fn.getpos('.'))
command('%delete _')
-- charwise (final item is non-empty)
- meths.nvim_put({ 'line 1', 'line 2', 'line 3' }, '', true, true)
+ api.nvim_put({ 'line 1', 'line 2', 'line 3' }, '', true, true)
expect([[
line 1
line 2
line 3]])
- eq({ 0, 3, 6, 0 }, funcs.getpos('.'))
+ eq({ 0, 3, 6, 0 }, fn.getpos('.'))
end)
it('allows block width', function()
-- behave consistently with setreg(); support "\022{NUM}" return by getregtype()
- meths.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'l', false, false)
+ api.nvim_put({ 'line 1', 'line 2', 'line 3' }, 'l', false, false)
expect([[
line 1
line 2
@@ -1369,69 +1369,69 @@ describe('API', function()
]])
-- larger width create spaces
- meths.nvim_put({ 'a', 'bc' }, 'b3', false, false)
+ api.nvim_put({ 'a', 'bc' }, 'b3', false, false)
expect([[
a line 1
bc line 2
line 3
]])
-- smaller width is ignored
- meths.nvim_put({ 'xxx', 'yyy' }, '\0221', false, true)
+ api.nvim_put({ 'xxx', 'yyy' }, '\0221', false, true)
expect([[
xxxa line 1
yyybc line 2
line 3
]])
- eq("Invalid 'type': 'bx'", pcall_err(meths.nvim_put, { 'xxx', 'yyy' }, 'bx', false, true))
- eq("Invalid 'type': 'b3x'", pcall_err(meths.nvim_put, { 'xxx', 'yyy' }, 'b3x', false, true))
+ eq("Invalid 'type': 'bx'", pcall_err(api.nvim_put, { 'xxx', 'yyy' }, 'bx', false, true))
+ eq("Invalid 'type': 'b3x'", pcall_err(api.nvim_put, { 'xxx', 'yyy' }, 'b3x', false, true))
end)
end)
describe('nvim_strwidth', function()
it('works', function()
- eq(3, meths.nvim_strwidth('abc'))
+ eq(3, api.nvim_strwidth('abc'))
-- 6 + (neovim)
-- 19 * 2 (each japanese character occupies two cells)
- eq(44, meths.nvim_strwidth('neovimのデザインかなりまともなのになってる。'))
+ eq(44, api.nvim_strwidth('neovimのデザインかなりまともなのになってる。'))
end)
it('cannot handle NULs', function()
- eq(0, meths.nvim_strwidth('\0abc'))
+ eq(0, api.nvim_strwidth('\0abc'))
end)
end)
describe('nvim_get_current_line, nvim_set_current_line', function()
it('works', function()
- eq('', meths.nvim_get_current_line())
- meths.nvim_set_current_line('abc')
- eq('abc', meths.nvim_get_current_line())
+ eq('', api.nvim_get_current_line())
+ api.nvim_set_current_line('abc')
+ eq('abc', api.nvim_get_current_line())
end)
end)
describe('set/get/del variables', function()
it('validation', function()
- eq('Key not found: bogus', pcall_err(meths.nvim_get_var, 'bogus'))
- eq('Key not found: bogus', pcall_err(meths.nvim_del_var, 'bogus'))
+ eq('Key not found: bogus', pcall_err(api.nvim_get_var, 'bogus'))
+ eq('Key not found: bogus', pcall_err(api.nvim_del_var, 'bogus'))
end)
it('nvim_get_var, nvim_set_var, nvim_del_var', function()
- meths.nvim_set_var('lua', { 1, 2, { ['3'] = 1 } })
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_get_var('lua'))
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_eval('g:lua'))
- eq(1, funcs.exists('g:lua'))
- meths.nvim_del_var('lua')
- eq(0, funcs.exists('g:lua'))
- eq('Key not found: lua', pcall_err(meths.nvim_del_var, 'lua'))
- meths.nvim_set_var('lua', 1)
+ api.nvim_set_var('lua', { 1, 2, { ['3'] = 1 } })
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_get_var('lua'))
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_eval('g:lua'))
+ eq(1, fn.exists('g:lua'))
+ api.nvim_del_var('lua')
+ eq(0, fn.exists('g:lua'))
+ eq('Key not found: lua', pcall_err(api.nvim_del_var, 'lua'))
+ api.nvim_set_var('lua', 1)
-- Empty keys are allowed in Vim dicts (and msgpack).
- meths.nvim_set_var('dict_empty_key', { [''] = 'empty key' })
- eq({ [''] = 'empty key' }, meths.nvim_get_var('dict_empty_key'))
+ api.nvim_set_var('dict_empty_key', { [''] = 'empty key' })
+ eq({ [''] = 'empty key' }, api.nvim_get_var('dict_empty_key'))
-- Set locked g: var.
command('lockvar lua')
- eq('Key is locked: lua', pcall_err(meths.nvim_del_var, 'lua'))
- eq('Key is locked: lua', pcall_err(meths.nvim_set_var, 'lua', 1))
+ eq('Key is locked: lua', pcall_err(api.nvim_del_var, 'lua'))
+ eq('Key is locked: lua', pcall_err(api.nvim_set_var, 'lua', 1))
exec([[
function Test()
@@ -1441,8 +1441,8 @@ describe('API', function()
let g:Unknown_func = function('Test')
let g:Unknown_script_func = function('s:Test')
]])
- eq(NIL, meths.nvim_get_var('Unknown_func'))
- eq(NIL, meths.nvim_get_var('Unknown_script_func'))
+ eq(NIL, api.nvim_get_var('Unknown_func'))
+ eq(NIL, api.nvim_get_var('Unknown_script_func'))
-- Check if autoload works properly
local pathsep = helpers.get_pathsep()
@@ -1454,40 +1454,40 @@ describe('API', function()
write_file(autoload_file, [[let testload#value = 2]])
clear { args_rm = { '-u' }, env = { XDG_CONFIG_HOME = xconfig, XDG_DATA_HOME = xdata } }
- eq(2, meths.nvim_get_var('testload#value'))
+ eq(2, api.nvim_get_var('testload#value'))
rmdir('Xhome')
end)
it('nvim_get_vvar, nvim_set_vvar', function()
eq('Key is read-only: count', pcall_err(request, 'nvim_set_vvar', 'count', 42))
eq('Dictionary is locked', pcall_err(request, 'nvim_set_vvar', 'nosuchvar', 42))
- meths.nvim_set_vvar('errmsg', 'set by API')
- eq('set by API', meths.nvim_get_vvar('errmsg'))
- meths.nvim_set_vvar('errmsg', 42)
+ api.nvim_set_vvar('errmsg', 'set by API')
+ eq('set by API', api.nvim_get_vvar('errmsg'))
+ api.nvim_set_vvar('errmsg', 42)
eq('42', eval('v:errmsg'))
- meths.nvim_set_vvar('oldfiles', { 'one', 'two' })
+ api.nvim_set_vvar('oldfiles', { 'one', 'two' })
eq({ 'one', 'two' }, eval('v:oldfiles'))
- meths.nvim_set_vvar('oldfiles', {})
+ api.nvim_set_vvar('oldfiles', {})
eq({}, eval('v:oldfiles'))
eq(
'Setting v:oldfiles to value with wrong type',
- pcall_err(meths.nvim_set_vvar, 'oldfiles', 'a')
+ pcall_err(api.nvim_set_vvar, 'oldfiles', 'a')
)
eq({}, eval('v:oldfiles'))
feed('i foo foo foo<Esc>0/foo<CR>')
- eq({ 1, 1 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 1 }, api.nvim_win_get_cursor(0))
eq(1, eval('v:searchforward'))
feed('n')
- eq({ 1, 5 }, meths.nvim_win_get_cursor(0))
- meths.nvim_set_vvar('searchforward', 0)
+ eq({ 1, 5 }, api.nvim_win_get_cursor(0))
+ api.nvim_set_vvar('searchforward', 0)
eq(0, eval('v:searchforward'))
feed('n')
- eq({ 1, 1 }, meths.nvim_win_get_cursor(0))
- meths.nvim_set_vvar('searchforward', 1)
+ eq({ 1, 1 }, api.nvim_win_get_cursor(0))
+ api.nvim_set_vvar('searchforward', 1)
eq(1, eval('v:searchforward'))
feed('n')
- eq({ 1, 5 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 5 }, api.nvim_win_get_cursor(0))
local screen = Screen.new(60, 3)
screen:set_default_attr_ids({
@@ -1503,7 +1503,7 @@ describe('API', function()
|
]],
}
- meths.nvim_set_vvar('hlsearch', 0)
+ api.nvim_set_vvar('hlsearch', 0)
eq(0, eval('v:hlsearch'))
screen:expect {
grid = [[
@@ -1512,7 +1512,7 @@ describe('API', function()
|
]],
}
- meths.nvim_set_vvar('hlsearch', 1)
+ api.nvim_set_vvar('hlsearch', 1)
eq(1, eval('v:hlsearch'))
screen:expect {
grid = [[
@@ -1539,182 +1539,182 @@ describe('API', function()
end)
it('truncates values with NULs in them', function()
- meths.nvim_set_var('xxx', 'ab\0cd')
- eq('ab', meths.nvim_get_var('xxx'))
+ api.nvim_set_var('xxx', 'ab\0cd')
+ eq('ab', api.nvim_get_var('xxx'))
end)
end)
describe('nvim_get_option_value, nvim_set_option_value', function()
it('works', function()
- ok(meths.nvim_get_option_value('equalalways', {}))
- meths.nvim_set_option_value('equalalways', false, {})
- ok(not meths.nvim_get_option_value('equalalways', {}))
+ ok(api.nvim_get_option_value('equalalways', {}))
+ api.nvim_set_option_value('equalalways', false, {})
+ ok(not api.nvim_get_option_value('equalalways', {}))
end)
it('works to get global value of local options', function()
- eq(false, meths.nvim_get_option_value('lisp', {}))
- eq(8, meths.nvim_get_option_value('shiftwidth', {}))
+ eq(false, api.nvim_get_option_value('lisp', {}))
+ eq(8, api.nvim_get_option_value('shiftwidth', {}))
end)
it('works to set global value of local options', function()
- meths.nvim_set_option_value('lisp', true, { scope = 'global' })
- eq(true, meths.nvim_get_option_value('lisp', { scope = 'global' }))
- eq(false, meths.nvim_get_option_value('lisp', {}))
+ api.nvim_set_option_value('lisp', true, { scope = 'global' })
+ eq(true, api.nvim_get_option_value('lisp', { scope = 'global' }))
+ eq(false, api.nvim_get_option_value('lisp', {}))
eq(nil, command_output('setglobal lisp?'):match('nolisp'))
eq('nolisp', command_output('setlocal lisp?'):match('nolisp'))
- meths.nvim_set_option_value('shiftwidth', 20, { scope = 'global' })
+ api.nvim_set_option_value('shiftwidth', 20, { scope = 'global' })
eq('20', command_output('setglobal shiftwidth?'):match('%d+'))
eq('8', command_output('setlocal shiftwidth?'):match('%d+'))
end)
it('updates where the option was last set from', function()
- meths.nvim_set_option_value('equalalways', false, {})
+ api.nvim_set_option_value('equalalways', false, {})
local status, rv = pcall(command_output, 'verbose set equalalways?')
eq(true, status)
ok(
nil ~= string.find(rv, 'noequalalways\n' .. '\tLast set from API client %(channel id %d+%)')
)
- meths.nvim_exec_lua('vim.api.nvim_set_option_value("equalalways", true, {})', {})
+ api.nvim_exec_lua('vim.api.nvim_set_option_value("equalalways", true, {})', {})
status, rv = pcall(command_output, 'verbose set equalalways?')
eq(true, status)
eq(' equalalways\n\tLast set from Lua', rv)
end)
it('updates whether the option has ever been set #25025', function()
- eq(false, meths.nvim_get_option_info2('autochdir', {}).was_set)
- meths.nvim_set_option_value('autochdir', true, {})
- eq(true, meths.nvim_get_option_info2('autochdir', {}).was_set)
+ eq(false, api.nvim_get_option_info2('autochdir', {}).was_set)
+ api.nvim_set_option_value('autochdir', true, {})
+ eq(true, api.nvim_get_option_info2('autochdir', {}).was_set)
- eq(false, meths.nvim_get_option_info2('cmdwinheight', {}).was_set)
- meths.nvim_set_option_value('cmdwinheight', 10, {})
- eq(true, meths.nvim_get_option_info2('cmdwinheight', {}).was_set)
+ eq(false, api.nvim_get_option_info2('cmdwinheight', {}).was_set)
+ api.nvim_set_option_value('cmdwinheight', 10, {})
+ eq(true, api.nvim_get_option_info2('cmdwinheight', {}).was_set)
- eq(false, meths.nvim_get_option_info2('debug', {}).was_set)
- meths.nvim_set_option_value('debug', 'beep', {})
- eq(true, meths.nvim_get_option_info2('debug', {}).was_set)
+ eq(false, api.nvim_get_option_info2('debug', {}).was_set)
+ api.nvim_set_option_value('debug', 'beep', {})
+ eq(true, api.nvim_get_option_info2('debug', {}).was_set)
end)
it('validation', function()
eq(
"Invalid 'scope': expected 'local' or 'global'",
- pcall_err(meths.nvim_get_option_value, 'scrolloff', { scope = 'bogus' })
+ pcall_err(api.nvim_get_option_value, 'scrolloff', { scope = 'bogus' })
)
eq(
"Invalid 'scope': expected 'local' or 'global'",
- pcall_err(meths.nvim_set_option_value, 'scrolloff', 1, { scope = 'bogus' })
+ pcall_err(api.nvim_set_option_value, 'scrolloff', 1, { scope = 'bogus' })
)
eq(
"Invalid 'scope': expected String, got Integer",
- pcall_err(meths.nvim_get_option_value, 'scrolloff', { scope = 42 })
+ pcall_err(api.nvim_get_option_value, 'scrolloff', { scope = 42 })
)
eq(
"Invalid 'value': expected valid option type, got Array",
- pcall_err(meths.nvim_set_option_value, 'scrolloff', {}, {})
+ pcall_err(api.nvim_set_option_value, 'scrolloff', {}, {})
)
eq(
"Invalid value for option 'scrolloff': expected number, got boolean true",
- pcall_err(meths.nvim_set_option_value, 'scrolloff', true, {})
+ pcall_err(api.nvim_set_option_value, 'scrolloff', true, {})
)
eq(
'Invalid value for option \'scrolloff\': expected number, got string "wrong"',
- pcall_err(meths.nvim_set_option_value, 'scrolloff', 'wrong', {})
+ pcall_err(api.nvim_set_option_value, 'scrolloff', 'wrong', {})
)
end)
it('can get local values when global value is set', function()
- eq(0, meths.nvim_get_option_value('scrolloff', {}))
- eq(-1, meths.nvim_get_option_value('scrolloff', { scope = 'local' }))
+ eq(0, api.nvim_get_option_value('scrolloff', {}))
+ eq(-1, api.nvim_get_option_value('scrolloff', { scope = 'local' }))
end)
it('can set global and local values', function()
- meths.nvim_set_option_value('makeprg', 'hello', {})
- eq('hello', meths.nvim_get_option_value('makeprg', {}))
- eq('', meths.nvim_get_option_value('makeprg', { scope = 'local' }))
- meths.nvim_set_option_value('makeprg', 'world', { scope = 'local' })
- eq('world', meths.nvim_get_option_value('makeprg', { scope = 'local' }))
- meths.nvim_set_option_value('makeprg', 'goodbye', { scope = 'global' })
- eq('goodbye', meths.nvim_get_option_value('makeprg', { scope = 'global' }))
- meths.nvim_set_option_value('makeprg', 'hello', {})
- eq('hello', meths.nvim_get_option_value('makeprg', { scope = 'global' }))
- eq('hello', meths.nvim_get_option_value('makeprg', {}))
- eq('', meths.nvim_get_option_value('makeprg', { scope = 'local' }))
+ api.nvim_set_option_value('makeprg', 'hello', {})
+ eq('hello', api.nvim_get_option_value('makeprg', {}))
+ eq('', api.nvim_get_option_value('makeprg', { scope = 'local' }))
+ api.nvim_set_option_value('makeprg', 'world', { scope = 'local' })
+ eq('world', api.nvim_get_option_value('makeprg', { scope = 'local' }))
+ api.nvim_set_option_value('makeprg', 'goodbye', { scope = 'global' })
+ eq('goodbye', api.nvim_get_option_value('makeprg', { scope = 'global' }))
+ api.nvim_set_option_value('makeprg', 'hello', {})
+ eq('hello', api.nvim_get_option_value('makeprg', { scope = 'global' }))
+ eq('hello', api.nvim_get_option_value('makeprg', {}))
+ eq('', api.nvim_get_option_value('makeprg', { scope = 'local' }))
end)
it('clears the local value of an option with nil', function()
-- Set global value
- meths.nvim_set_option_value('shiftwidth', 42, {})
- eq(42, meths.nvim_get_option_value('shiftwidth', {}))
+ api.nvim_set_option_value('shiftwidth', 42, {})
+ eq(42, api.nvim_get_option_value('shiftwidth', {}))
-- Set local value
- meths.nvim_set_option_value('shiftwidth', 8, { scope = 'local' })
- eq(8, meths.nvim_get_option_value('shiftwidth', {}))
- eq(8, meths.nvim_get_option_value('shiftwidth', { scope = 'local' }))
- eq(42, meths.nvim_get_option_value('shiftwidth', { scope = 'global' }))
+ api.nvim_set_option_value('shiftwidth', 8, { scope = 'local' })
+ eq(8, api.nvim_get_option_value('shiftwidth', {}))
+ eq(8, api.nvim_get_option_value('shiftwidth', { scope = 'local' }))
+ eq(42, api.nvim_get_option_value('shiftwidth', { scope = 'global' }))
-- Clear value without scope
- meths.nvim_set_option_value('shiftwidth', NIL, {})
- eq(42, meths.nvim_get_option_value('shiftwidth', {}))
- eq(42, meths.nvim_get_option_value('shiftwidth', { scope = 'local' }))
+ api.nvim_set_option_value('shiftwidth', NIL, {})
+ eq(42, api.nvim_get_option_value('shiftwidth', {}))
+ eq(42, api.nvim_get_option_value('shiftwidth', { scope = 'local' }))
-- Clear value with explicit scope
- meths.nvim_set_option_value('shiftwidth', 8, { scope = 'local' })
- meths.nvim_set_option_value('shiftwidth', NIL, { scope = 'local' })
- eq(42, meths.nvim_get_option_value('shiftwidth', {}))
- eq(42, meths.nvim_get_option_value('shiftwidth', { scope = 'local' }))
+ api.nvim_set_option_value('shiftwidth', 8, { scope = 'local' })
+ api.nvim_set_option_value('shiftwidth', NIL, { scope = 'local' })
+ eq(42, api.nvim_get_option_value('shiftwidth', {}))
+ eq(42, api.nvim_get_option_value('shiftwidth', { scope = 'local' }))
-- Now try with options with a special "local is unset" value (e.g. 'undolevels')
- meths.nvim_set_option_value('undolevels', 1000, {})
- meths.nvim_set_option_value('undolevels', 1200, { scope = 'local' })
- eq(1200, meths.nvim_get_option_value('undolevels', { scope = 'local' }))
- meths.nvim_set_option_value('undolevels', NIL, { scope = 'local' })
- eq(-123456, meths.nvim_get_option_value('undolevels', { scope = 'local' }))
- eq(1000, meths.nvim_get_option_value('undolevels', {}))
+ api.nvim_set_option_value('undolevels', 1000, {})
+ api.nvim_set_option_value('undolevels', 1200, { scope = 'local' })
+ eq(1200, api.nvim_get_option_value('undolevels', { scope = 'local' }))
+ api.nvim_set_option_value('undolevels', NIL, { scope = 'local' })
+ eq(-123456, api.nvim_get_option_value('undolevels', { scope = 'local' }))
+ eq(1000, api.nvim_get_option_value('undolevels', {}))
- meths.nvim_set_option_value('autoread', true, {})
- meths.nvim_set_option_value('autoread', false, { scope = 'local' })
- eq(false, meths.nvim_get_option_value('autoread', { scope = 'local' }))
- meths.nvim_set_option_value('autoread', NIL, { scope = 'local' })
- eq(NIL, meths.nvim_get_option_value('autoread', { scope = 'local' }))
- eq(true, meths.nvim_get_option_value('autoread', {}))
+ api.nvim_set_option_value('autoread', true, {})
+ api.nvim_set_option_value('autoread', false, { scope = 'local' })
+ eq(false, api.nvim_get_option_value('autoread', { scope = 'local' }))
+ api.nvim_set_option_value('autoread', NIL, { scope = 'local' })
+ eq(NIL, api.nvim_get_option_value('autoread', { scope = 'local' }))
+ eq(true, api.nvim_get_option_value('autoread', {}))
end)
it('set window options', function()
- meths.nvim_set_option_value('colorcolumn', '4,3', {})
- eq('4,3', meths.nvim_get_option_value('colorcolumn', { scope = 'local' }))
+ api.nvim_set_option_value('colorcolumn', '4,3', {})
+ eq('4,3', api.nvim_get_option_value('colorcolumn', { scope = 'local' }))
command('set modified hidden')
command('enew') -- edit new buffer, window option is preserved
- eq('4,3', meths.nvim_get_option_value('colorcolumn', { scope = 'local' }))
+ eq('4,3', api.nvim_get_option_value('colorcolumn', { scope = 'local' }))
end)
it('set local window options', function()
- meths.nvim_set_option_value('colorcolumn', '4,3', { win = 0, scope = 'local' })
- eq('4,3', meths.nvim_get_option_value('colorcolumn', { win = 0, scope = 'local' }))
+ api.nvim_set_option_value('colorcolumn', '4,3', { win = 0, scope = 'local' })
+ eq('4,3', api.nvim_get_option_value('colorcolumn', { win = 0, scope = 'local' }))
command('set modified hidden')
command('enew') -- edit new buffer, window option is reset
- eq('', meths.nvim_get_option_value('colorcolumn', { win = 0, scope = 'local' }))
+ eq('', api.nvim_get_option_value('colorcolumn', { win = 0, scope = 'local' }))
end)
it('get buffer or window-local options', function()
command('new')
- local buf = meths.nvim_get_current_buf().id
- meths.nvim_set_option_value('tagfunc', 'foobar', { buf = buf })
- eq('foobar', meths.nvim_get_option_value('tagfunc', { buf = buf }))
+ local buf = api.nvim_get_current_buf().id
+ api.nvim_set_option_value('tagfunc', 'foobar', { buf = buf })
+ eq('foobar', api.nvim_get_option_value('tagfunc', { buf = buf }))
- local win = meths.nvim_get_current_win().id
- meths.nvim_set_option_value('number', true, { win = win })
- eq(true, meths.nvim_get_option_value('number', { win = win }))
+ local win = api.nvim_get_current_win().id
+ api.nvim_set_option_value('number', true, { win = win })
+ eq(true, api.nvim_get_option_value('number', { win = win }))
end)
it('getting current buffer option does not adjust cursor #19381', function()
command('new')
- local buf = meths.nvim_get_current_buf().id
- local win = meths.nvim_get_current_win().id
+ local buf = api.nvim_get_current_buf().id
+ local win = api.nvim_get_current_win().id
insert('some text')
feed('0v$')
- eq({ 1, 9 }, meths.nvim_win_get_cursor(win))
- meths.nvim_get_option_value('filetype', { buf = buf })
- eq({ 1, 9 }, meths.nvim_win_get_cursor(win))
+ eq({ 1, 9 }, api.nvim_win_get_cursor(win))
+ api.nvim_get_option_value('filetype', { buf = buf })
+ eq({ 1, 9 }, api.nvim_win_get_cursor(win))
end)
it('can get default option values for filetypes', function()
@@ -1726,156 +1726,156 @@ describe('API', function()
xml = { formatexpr = 'xmlformat#Format()' },
} do
for option, value in pairs(opts) do
- eq(value, meths.nvim_get_option_value(option, { filetype = ft }))
+ eq(value, api.nvim_get_option_value(option, { filetype = ft }))
end
end
command 'au FileType lua setlocal commentstring=NEW\\ %s'
- eq('NEW %s', meths.nvim_get_option_value('commentstring', { filetype = 'lua' }))
+ eq('NEW %s', api.nvim_get_option_value('commentstring', { filetype = 'lua' }))
end)
it('errors for bad FileType autocmds', function()
command 'au FileType lua setlocal commentstring=BAD'
eq(
[[FileType Autocommands for "lua": Vim(setlocal):E537: 'commentstring' must be empty or contain %s: commentstring=BAD]],
- pcall_err(meths.nvim_get_option_value, 'commentstring', { filetype = 'lua' })
+ pcall_err(api.nvim_get_option_value, 'commentstring', { filetype = 'lua' })
)
end)
it("value of 'modified' is always false for scratch buffers", function()
- meths.nvim_set_current_buf(meths.nvim_create_buf(true, true))
+ api.nvim_set_current_buf(api.nvim_create_buf(true, true))
insert([[
foo
bar
baz
]])
- eq(false, meths.nvim_get_option_value('modified', {}))
+ eq(false, api.nvim_get_option_value('modified', {}))
end)
end)
describe('nvim_{get,set}_current_buf, nvim_list_bufs', function()
it('works', function()
- eq(1, #meths.nvim_list_bufs())
- eq(meths.nvim_list_bufs()[1], meths.nvim_get_current_buf())
+ eq(1, #api.nvim_list_bufs())
+ eq(api.nvim_list_bufs()[1], api.nvim_get_current_buf())
command('new')
- eq(2, #meths.nvim_list_bufs())
- eq(meths.nvim_list_bufs()[2], meths.nvim_get_current_buf())
- meths.nvim_set_current_buf(meths.nvim_list_bufs()[1])
- eq(meths.nvim_list_bufs()[1], meths.nvim_get_current_buf())
+ eq(2, #api.nvim_list_bufs())
+ eq(api.nvim_list_bufs()[2], api.nvim_get_current_buf())
+ api.nvim_set_current_buf(api.nvim_list_bufs()[1])
+ eq(api.nvim_list_bufs()[1], api.nvim_get_current_buf())
end)
end)
describe('nvim_{get,set}_current_win, nvim_list_wins', function()
it('works', function()
- eq(1, #meths.nvim_list_wins())
- eq(meths.nvim_list_wins()[1], meths.nvim_get_current_win())
+ eq(1, #api.nvim_list_wins())
+ eq(api.nvim_list_wins()[1], api.nvim_get_current_win())
command('vsplit')
command('split')
- eq(3, #meths.nvim_list_wins())
- eq(meths.nvim_list_wins()[1], meths.nvim_get_current_win())
- meths.nvim_set_current_win(meths.nvim_list_wins()[2])
- eq(meths.nvim_list_wins()[2], meths.nvim_get_current_win())
+ eq(3, #api.nvim_list_wins())
+ eq(api.nvim_list_wins()[1], api.nvim_get_current_win())
+ api.nvim_set_current_win(api.nvim_list_wins()[2])
+ eq(api.nvim_list_wins()[2], api.nvim_get_current_win())
end)
end)
describe('nvim_{get,set}_current_tabpage, nvim_list_tabpages', function()
it('works', function()
- eq(1, #meths.nvim_list_tabpages())
- eq(meths.nvim_list_tabpages()[1], meths.nvim_get_current_tabpage())
+ eq(1, #api.nvim_list_tabpages())
+ eq(api.nvim_list_tabpages()[1], api.nvim_get_current_tabpage())
command('tabnew')
- eq(2, #meths.nvim_list_tabpages())
- eq(2, #meths.nvim_list_wins())
- eq(meths.nvim_list_wins()[2], meths.nvim_get_current_win())
- eq(meths.nvim_list_tabpages()[2], meths.nvim_get_current_tabpage())
- meths.nvim_set_current_win(meths.nvim_list_wins()[1])
+ eq(2, #api.nvim_list_tabpages())
+ eq(2, #api.nvim_list_wins())
+ eq(api.nvim_list_wins()[2], api.nvim_get_current_win())
+ eq(api.nvim_list_tabpages()[2], api.nvim_get_current_tabpage())
+ api.nvim_set_current_win(api.nvim_list_wins()[1])
-- Switching window also switches tabpages if necessary
- eq(meths.nvim_list_tabpages()[1], meths.nvim_get_current_tabpage())
- eq(meths.nvim_list_wins()[1], meths.nvim_get_current_win())
- meths.nvim_set_current_tabpage(meths.nvim_list_tabpages()[2])
- eq(meths.nvim_list_tabpages()[2], meths.nvim_get_current_tabpage())
- eq(meths.nvim_list_wins()[2], meths.nvim_get_current_win())
+ eq(api.nvim_list_tabpages()[1], api.nvim_get_current_tabpage())
+ eq(api.nvim_list_wins()[1], api.nvim_get_current_win())
+ api.nvim_set_current_tabpage(api.nvim_list_tabpages()[2])
+ eq(api.nvim_list_tabpages()[2], api.nvim_get_current_tabpage())
+ eq(api.nvim_list_wins()[2], api.nvim_get_current_win())
end)
end)
describe('nvim_get_mode', function()
it('during normal-mode `g` returns blocking=true', function()
- meths.nvim_input('o') -- add a line
- eq({ mode = 'i', blocking = false }, meths.nvim_get_mode())
- meths.nvim_input([[<C-\><C-N>]])
- eq(2, meths.nvim_eval("line('.')"))
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ api.nvim_input('o') -- add a line
+ eq({ mode = 'i', blocking = false }, api.nvim_get_mode())
+ api.nvim_input([[<C-\><C-N>]])
+ eq(2, api.nvim_eval("line('.')"))
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
- meths.nvim_input('g')
- eq({ mode = 'n', blocking = true }, meths.nvim_get_mode())
+ api.nvim_input('g')
+ eq({ mode = 'n', blocking = true }, api.nvim_get_mode())
- meths.nvim_input('k') -- complete the operator
- eq(1, meths.nvim_eval("line('.')")) -- verify the completed operator
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ api.nvim_input('k') -- complete the operator
+ eq(1, api.nvim_eval("line('.')")) -- verify the completed operator
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('returns the correct result multiple consecutive times', function()
for _ = 1, 5 do
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end
- meths.nvim_input('g')
+ api.nvim_input('g')
for _ = 1, 4 do
- eq({ mode = 'n', blocking = true }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = true }, api.nvim_get_mode())
end
- meths.nvim_input('g')
+ api.nvim_input('g')
for _ = 1, 7 do
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end
end)
it('during normal-mode CTRL-W, returns blocking=true', function()
- meths.nvim_input('<C-W>')
- eq({ mode = 'n', blocking = true }, meths.nvim_get_mode())
+ api.nvim_input('<C-W>')
+ eq({ mode = 'n', blocking = true }, api.nvim_get_mode())
- meths.nvim_input('s') -- complete the operator
- eq(2, meths.nvim_eval("winnr('$')")) -- verify the completed operator
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ api.nvim_input('s') -- complete the operator
+ eq(2, api.nvim_eval("winnr('$')")) -- verify the completed operator
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('during press-enter prompt without UI returns blocking=false', function()
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
command("echom 'msg1'")
command("echom 'msg2'")
command("echom 'msg3'")
command("echom 'msg4'")
command("echom 'msg5'")
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
- meths.nvim_input(':messages<CR>')
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
+ api.nvim_input(':messages<CR>')
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('during press-enter prompt returns blocking=true', function()
- meths.nvim_ui_attach(80, 20, {})
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ api.nvim_ui_attach(80, 20, {})
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
command("echom 'msg1'")
command("echom 'msg2'")
command("echom 'msg3'")
command("echom 'msg4'")
command("echom 'msg5'")
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
- meths.nvim_input(':messages<CR>')
- eq({ mode = 'r', blocking = true }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
+ api.nvim_input(':messages<CR>')
+ eq({ mode = 'r', blocking = true }, api.nvim_get_mode())
end)
it('during getchar() returns blocking=false', function()
- meths.nvim_input(':let g:test_input = nr2char(getchar())<CR>')
+ api.nvim_input(':let g:test_input = nr2char(getchar())<CR>')
-- Events are enabled during getchar(), RPC calls are *not* blocked. #5384
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
- eq(0, meths.nvim_eval("exists('g:test_input')"))
- meths.nvim_input('J')
- eq('J', meths.nvim_eval('g:test_input'))
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
+ eq(0, api.nvim_eval("exists('g:test_input')"))
+ api.nvim_input('J')
+ eq('J', api.nvim_eval('g:test_input'))
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
-- TODO: bug #6247#issuecomment-286403810
it('batched with input', function()
- meths.nvim_ui_attach(80, 20, {})
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ api.nvim_ui_attach(80, 20, {})
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
command("echom 'msg1'")
command("echom 'msg2'")
command("echom 'msg3'")
@@ -1896,35 +1896,35 @@ describe('API', function()
1,
},
NIL,
- }, meths.nvim_call_atomic(req))
- eq({ mode = 'r', blocking = true }, meths.nvim_get_mode())
+ }, api.nvim_call_atomic(req))
+ eq({ mode = 'r', blocking = true }, api.nvim_get_mode())
end)
it('during insert-mode map-pending, returns blocking=true #6166', function()
command('inoremap xx foo')
- meths.nvim_input('ix')
- eq({ mode = 'i', blocking = true }, meths.nvim_get_mode())
+ api.nvim_input('ix')
+ eq({ mode = 'i', blocking = true }, api.nvim_get_mode())
end)
it('during normal-mode gU, returns blocking=false #6166', function()
- meths.nvim_input('gu')
- eq({ mode = 'no', blocking = false }, meths.nvim_get_mode())
+ api.nvim_input('gu')
+ eq({ mode = 'no', blocking = false }, api.nvim_get_mode())
end)
it("at '-- More --' prompt returns blocking=true #11899", function()
command('set more')
feed(':digraphs<cr>')
- eq({ mode = 'rm', blocking = true }, meths.nvim_get_mode())
+ eq({ mode = 'rm', blocking = true }, api.nvim_get_mode())
end)
it('after <Nop> mapping returns blocking=false #17257', function()
command('nnoremap <F2> <Nop>')
feed('<F2>')
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
it('after empty string <expr> mapping returns blocking=false #17257', function()
command('nnoremap <expr> <F2> ""')
feed('<F2>')
- eq({ mode = 'n', blocking = false }, meths.nvim_get_mode())
+ eq({ mode = 'n', blocking = false }, api.nvim_get_mode())
end)
end)
@@ -1933,16 +1933,16 @@ describe('API', function()
helpers.insert([[
FIRST LINE
SECOND LINE]])
- meths.nvim_input('gg')
- meths.nvim_input('gu')
+ api.nvim_input('gg')
+ api.nvim_input('gu')
-- Make any RPC request (can be non-async: op-pending does not block).
- meths.nvim_get_current_buf()
+ api.nvim_get_current_buf()
-- Buffer should not change.
expect([[
FIRST LINE
SECOND LINE]])
-- Now send input to complete the operator.
- meths.nvim_input('j')
+ api.nvim_input('j')
expect([[
first line
second line]])
@@ -1956,7 +1956,7 @@ describe('API', function()
feed('ia<cr>b<cr>c<cr><Esc>kkk')
feed('d')
-- Make any RPC request (can be non-async: op-pending does not block).
- meths.nvim_get_current_buf()
+ api.nvim_get_current_buf()
screen:expect([[
^a$ |
b$ |
@@ -1970,12 +1970,12 @@ describe('API', function()
helpers.insert([[
FIRST LINE
SECOND LINE]])
- meths.nvim_input('gg')
- meths.nvim_input('d')
+ api.nvim_input('gg')
+ api.nvim_input('d')
-- Make any RPC request (must be async, because map-pending blocks).
- meths.nvim_get_api_info()
+ api.nvim_get_api_info()
-- Send input to complete the mapping.
- meths.nvim_input('d')
+ api.nvim_input('d')
expect([[
FIRST LINE
SECOND LINE]])
@@ -1988,11 +1988,11 @@ describe('API', function()
helpers.insert([[
FIRST LINE
SECOND LINE]])
- meths.nvim_input('ix')
+ api.nvim_input('ix')
-- Make any RPC request (must be async, because map-pending blocks).
- meths.nvim_get_api_info()
+ api.nvim_get_api_info()
-- Send input to complete the mapping.
- meths.nvim_input('x')
+ api.nvim_input('x')
expect([[
FIRST LINE
SECOND LINfooE]])
@@ -2000,24 +2000,24 @@ describe('API', function()
it('does not interrupt Insert mode i_CTRL-O #10035', function()
feed('iHello World<c-o>')
- eq({ mode = 'niI', blocking = false }, meths.nvim_get_mode()) -- fast event
+ eq({ mode = 'niI', blocking = false }, api.nvim_get_mode()) -- fast event
eq(2, eval('1+1')) -- causes K_EVENT key
- eq({ mode = 'niI', blocking = false }, meths.nvim_get_mode()) -- still in ctrl-o mode
+ eq({ mode = 'niI', blocking = false }, api.nvim_get_mode()) -- still in ctrl-o mode
feed('dd')
- eq({ mode = 'i', blocking = false }, meths.nvim_get_mode()) -- left ctrl-o mode
+ eq({ mode = 'i', blocking = false }, api.nvim_get_mode()) -- left ctrl-o mode
expect('') -- executed the command
end)
it('does not interrupt Select mode v_CTRL-O #15688', function()
feed('iHello World<esc>gh<c-o>')
- eq({ mode = 'vs', blocking = false }, meths.nvim_get_mode()) -- fast event
- eq({ mode = 'vs', blocking = false }, meths.nvim_get_mode()) -- again #15288
+ eq({ mode = 'vs', blocking = false }, api.nvim_get_mode()) -- fast event
+ eq({ mode = 'vs', blocking = false }, api.nvim_get_mode()) -- again #15288
eq(2, eval('1+1')) -- causes K_EVENT key
- eq({ mode = 'vs', blocking = false }, meths.nvim_get_mode()) -- still in ctrl-o mode
+ eq({ mode = 'vs', blocking = false }, api.nvim_get_mode()) -- still in ctrl-o mode
feed('^')
- eq({ mode = 's', blocking = false }, meths.nvim_get_mode()) -- left ctrl-o mode
+ eq({ mode = 's', blocking = false }, api.nvim_get_mode()) -- left ctrl-o mode
feed('h')
- eq({ mode = 'i', blocking = false }, meths.nvim_get_mode()) -- entered insert mode
+ eq({ mode = 'i', blocking = false }, api.nvim_get_mode()) -- entered insert mode
expect('h') -- selection is the whole line and is replaced
end)
@@ -2043,34 +2043,34 @@ describe('API', function()
feed('<BS>')
eq(2, eval('1+1')) -- causes K_EVENT key
feed('.')
- eq('…', funcs.getcmdline()) -- digraph ",." worked
+ eq('…', fn.getcmdline()) -- digraph ",." worked
end)
end)
describe('nvim_get_context', function()
it('validation', function()
- eq("Invalid key: 'blah'", pcall_err(meths.nvim_get_context, { blah = {} }))
+ eq("Invalid key: 'blah'", pcall_err(api.nvim_get_context, { blah = {} }))
eq(
"Invalid 'types': expected Array, got Integer",
- pcall_err(meths.nvim_get_context, { types = 42 })
+ pcall_err(api.nvim_get_context, { types = 42 })
)
eq(
"Invalid 'type': 'zub'",
- pcall_err(meths.nvim_get_context, { types = { 'jumps', 'zub', 'zam' } })
+ pcall_err(api.nvim_get_context, { types = { 'jumps', 'zub', 'zam' } })
)
end)
it('returns map of current editor state', function()
local opts = { types = { 'regs', 'jumps', 'bufs', 'gvars' } }
- eq({}, parse_context(meths.nvim_get_context({})))
+ eq({}, parse_context(api.nvim_get_context({})))
feed('i1<cr>2<cr>3<c-[>ddddddqahjklquuu')
feed('gg')
feed('G')
command('edit! BUF1')
command('edit BUF2')
- meths.nvim_set_var('one', 1)
- meths.nvim_set_var('Two', 2)
- meths.nvim_set_var('THREE', 3)
+ api.nvim_set_var('one', 1)
+ api.nvim_set_var('Two', 2)
+ api.nvim_set_var('THREE', 3)
local expected_ctx = {
['regs'] = {
@@ -2095,72 +2095,72 @@ describe('API', function()
['gvars'] = { { 'one', 1 }, { 'Two', 2 }, { 'THREE', 3 } },
}
- eq(expected_ctx, parse_context(meths.nvim_get_context(opts)))
- eq(expected_ctx, parse_context(meths.nvim_get_context({})))
- eq(expected_ctx, parse_context(meths.nvim_get_context({ types = {} })))
+ eq(expected_ctx, parse_context(api.nvim_get_context(opts)))
+ eq(expected_ctx, parse_context(api.nvim_get_context({})))
+ eq(expected_ctx, parse_context(api.nvim_get_context({ types = {} })))
end)
end)
describe('nvim_load_context', function()
it('sets current editor state to given context dictionary', function()
local opts = { types = { 'regs', 'jumps', 'bufs', 'gvars' } }
- eq({}, parse_context(meths.nvim_get_context(opts)))
-
- meths.nvim_set_var('one', 1)
- meths.nvim_set_var('Two', 2)
- meths.nvim_set_var('THREE', 3)
- local ctx = meths.nvim_get_context(opts)
- meths.nvim_set_var('one', 'a')
- meths.nvim_set_var('Two', 'b')
- meths.nvim_set_var('THREE', 'c')
+ eq({}, parse_context(api.nvim_get_context(opts)))
+
+ api.nvim_set_var('one', 1)
+ api.nvim_set_var('Two', 2)
+ api.nvim_set_var('THREE', 3)
+ local ctx = api.nvim_get_context(opts)
+ api.nvim_set_var('one', 'a')
+ api.nvim_set_var('Two', 'b')
+ api.nvim_set_var('THREE', 'c')
eq({ 'a', 'b', 'c' }, eval('[g:one, g:Two, g:THREE]'))
- meths.nvim_load_context(ctx)
+ api.nvim_load_context(ctx)
eq({ 1, 2, 3 }, eval('[g:one, g:Two, g:THREE]'))
end)
it('errors when context dictionary is invalid', function()
eq(
'E474: Failed to convert list to msgpack string buffer',
- pcall_err(meths.nvim_load_context, { regs = { {} }, jumps = { {} } })
+ pcall_err(api.nvim_load_context, { regs = { {} }, jumps = { {} } })
)
eq(
'E474: Failed to convert list to msgpack string buffer',
- pcall_err(meths.nvim_load_context, { regs = { { [''] = '' } } })
+ pcall_err(api.nvim_load_context, { regs = { { [''] = '' } } })
)
end)
end)
describe('nvim_replace_termcodes', function()
it('escapes K_SPECIAL as K_SPECIAL KS_SPECIAL KE_FILLER', function()
- eq('\128\254X', helpers.meths.nvim_replace_termcodes('\128', true, true, true))
+ eq('\128\254X', helpers.api.nvim_replace_termcodes('\128', true, true, true))
end)
it('leaves non-K_SPECIAL string unchanged', function()
- eq('abc', helpers.meths.nvim_replace_termcodes('abc', true, true, true))
+ eq('abc', helpers.api.nvim_replace_termcodes('abc', true, true, true))
end)
it('converts <expressions>', function()
- eq('\\', helpers.meths.nvim_replace_termcodes('<Leader>', true, true, true))
+ eq('\\', helpers.api.nvim_replace_termcodes('<Leader>', true, true, true))
end)
it('converts <LeftMouse> to K_SPECIAL KS_EXTRA KE_LEFTMOUSE', function()
-- K_SPECIAL KS_EXTRA KE_LEFTMOUSE
-- 0x80 0xfd 0x2c
-- 128 253 44
- eq('\128\253\44', helpers.meths.nvim_replace_termcodes('<LeftMouse>', true, true, true))
+ eq('\128\253\44', helpers.api.nvim_replace_termcodes('<LeftMouse>', true, true, true))
end)
it('converts keycodes', function()
eq(
'\nx\27x\rx<x',
- helpers.meths.nvim_replace_termcodes('<NL>x<Esc>x<CR>x<lt>x', true, true, true)
+ helpers.api.nvim_replace_termcodes('<NL>x<Esc>x<CR>x<lt>x', true, true, true)
)
end)
it('does not convert keycodes if special=false', function()
eq(
'<NL>x<Esc>x<CR>x<lt>x',
- helpers.meths.nvim_replace_termcodes('<NL>x<Esc>x<CR>x<lt>x', true, true, false)
+ helpers.api.nvim_replace_termcodes('<NL>x<Esc>x<CR>x<lt>x', true, true, false)
)
end)
@@ -2172,13 +2172,13 @@ describe('API', function()
-- then `return str` in vim_replace_termcodes body will make Neovim free
-- `str.data` twice: once when freeing arguments, then when freeing return
-- value.
- eq('', meths.nvim_replace_termcodes('', true, true, true))
+ eq('', api.nvim_replace_termcodes('', true, true, true))
end)
-- Not exactly the case, as nvim_replace_termcodes() escapes K_SPECIAL in Unicode
it('translates the result of keytrans() on string with 0x80 byte back', function()
local s = 'ff\128\253\097tt'
- eq(s, meths.nvim_replace_termcodes(funcs.keytrans(s), true, true, true))
+ eq(s, api.nvim_replace_termcodes(fn.keytrans(s), true, true, true))
end)
end)
@@ -2186,15 +2186,15 @@ describe('API', function()
it('K_SPECIAL escaping', function()
local function on_setup()
-- notice the special char(…) \xe2\80\xa6
- meths.nvim_feedkeys(':let x1="…"\n', '', true)
+ api.nvim_feedkeys(':let x1="…"\n', '', true)
-- Both nvim_replace_termcodes and nvim_feedkeys escape \x80
- local inp = helpers.meths.nvim_replace_termcodes(':let x2="…"<CR>', true, true, true)
- meths.nvim_feedkeys(inp, '', true) -- escape_ks=true
+ local inp = helpers.api.nvim_replace_termcodes(':let x2="…"<CR>', true, true, true)
+ api.nvim_feedkeys(inp, '', true) -- escape_ks=true
-- nvim_feedkeys with K_SPECIAL escaping disabled
- inp = helpers.meths.nvim_replace_termcodes(':let x3="…"<CR>', true, true, true)
- meths.nvim_feedkeys(inp, '', false) -- escape_ks=false
+ inp = helpers.api.nvim_replace_termcodes(':let x3="…"<CR>', true, true, true)
+ api.nvim_feedkeys(inp, '', false) -- escape_ks=false
helpers.stop()
end
@@ -2202,10 +2202,10 @@ describe('API', function()
-- spin the loop a bit
helpers.run(nil, nil, on_setup)
- eq('…', meths.nvim_get_var('x1'))
+ eq('…', api.nvim_get_var('x1'))
-- Because of the double escaping this is neq
- neq('…', meths.nvim_get_var('x2'))
- eq('…', meths.nvim_get_var('x3'))
+ neq('…', api.nvim_get_var('x2'))
+ eq('…', api.nvim_get_var('x3'))
end)
end)
@@ -2240,7 +2240,7 @@ describe('API', function()
silent! call nvim_out_write("\n")
redir END
]])
- eq('\naaa\n' .. ('a'):rep(5002) .. '\naaa', meths.nvim_get_var('out'))
+ eq('\naaa\n' .. ('a'):rep(5002) .. '\naaa', api.nvim_get_var('out'))
end)
it('blank line in message', function()
@@ -2426,18 +2426,18 @@ describe('API', function()
}
it('returns {} for invalid channel', function()
- eq({}, meths.nvim_get_chan_info(0))
- eq({}, meths.nvim_get_chan_info(-1))
+ eq({}, api.nvim_get_chan_info(0))
+ eq({}, api.nvim_get_chan_info(-1))
-- more preallocated numbers might be added, try something high
- eq({}, meths.nvim_get_chan_info(10))
+ eq({}, api.nvim_get_chan_info(10))
end)
it('stream=stdio channel', function()
- eq({ [1] = testinfo, [2] = stderr }, meths.nvim_list_chans())
- eq(testinfo, meths.nvim_get_chan_info(1))
- eq(stderr, meths.nvim_get_chan_info(2))
+ eq({ [1] = testinfo, [2] = stderr }, api.nvim_list_chans())
+ eq(testinfo, api.nvim_get_chan_info(1))
+ eq(stderr, api.nvim_get_chan_info(2))
- meths.nvim_set_client_info(
+ api.nvim_set_client_info(
'functionaltests',
{ major = 0, minor = 3, patch = 17 },
'ui',
@@ -2456,9 +2456,9 @@ describe('API', function()
attributes = { license = 'Apache2' },
},
}
- eq({ info = info }, meths.nvim_get_var('info_event'))
- eq({ [1] = info, [2] = stderr }, meths.nvim_list_chans())
- eq(info, meths.nvim_get_chan_info(1))
+ eq({ info = info }, api.nvim_get_var('info_event'))
+ eq({ [1] = info, [2] = stderr }, api.nvim_list_chans())
+ eq(info, api.nvim_get_chan_info(1))
end)
it('stream=job channel', function()
@@ -2471,9 +2471,9 @@ describe('API', function()
mode = 'rpc',
client = {},
}
- eq({ info = info }, meths.nvim_get_var('opened_event'))
- eq({ [1] = testinfo, [2] = stderr, [3] = info }, meths.nvim_list_chans())
- eq(info, meths.nvim_get_chan_info(3))
+ eq({ info = info }, api.nvim_get_var('opened_event'))
+ eq({ [1] = testinfo, [2] = stderr, [3] = info }, api.nvim_list_chans())
+ eq(info, api.nvim_get_chan_info(3))
eval(
'rpcrequest(3, "nvim_set_client_info", "amazing-cat", {}, "remote",'
.. '{"nvim_command":{"n_args":1}},' -- and so on
@@ -2492,8 +2492,8 @@ describe('API', function()
attributes = { description = 'The Amazing Cat' },
},
}
- eq({ info = info }, meths.nvim_get_var('info_event'))
- eq({ [1] = testinfo, [2] = stderr, [3] = info }, meths.nvim_list_chans())
+ eq({ info = info }, api.nvim_get_var('info_event'))
+ eq({ [1] = testinfo, [2] = stderr, [3] = info }, api.nvim_list_chans())
eq(
"Vim:Error invoking 'nvim_set_current_buf' on channel 3 (amazing-cat):\nWrong type for argument 1 when calling nvim_set_current_buf, expecting Buffer",
@@ -2503,8 +2503,8 @@ describe('API', function()
it('stream=job :terminal channel', function()
command(':terminal')
- eq({ id = 1 }, meths.nvim_get_current_buf())
- eq(3, meths.nvim_get_option_value('channel', { buf = 1 }))
+ eq({ id = 1 }, api.nvim_get_current_buf())
+ eq(3, api.nvim_get_option_value('channel', { buf = 1 }))
local info = {
stream = 'job',
@@ -2514,20 +2514,20 @@ describe('API', function()
buffer = 1,
pty = '?',
}
- local event = meths.nvim_get_var('opened_event')
+ local event = api.nvim_get_var('opened_event')
if not is_os('win') then
info.pty = event.info.pty
neq(nil, string.match(info.pty, '^/dev/'))
end
eq({ info = info }, event)
info.buffer = { id = 1 }
- eq({ [1] = testinfo, [2] = stderr, [3] = info }, meths.nvim_list_chans())
- eq(info, meths.nvim_get_chan_info(3))
+ eq({ [1] = testinfo, [2] = stderr, [3] = info }, api.nvim_list_chans())
+ eq(info, api.nvim_get_chan_info(3))
-- :terminal with args + running process.
command('enew')
local progpath_esc = eval('shellescape(v:progpath)')
- funcs.termopen(('%s -u NONE -i NONE'):format(progpath_esc), {
+ fn.termopen(('%s -u NONE -i NONE'):format(progpath_esc), {
env = { VIMRUNTIME = os.getenv('VIMRUNTIME') },
})
eq(-1, eval('jobwait([&channel], 0)[0]')) -- Running?
@@ -2562,13 +2562,13 @@ describe('API', function()
describe('nvim_call_atomic', function()
it('works', function()
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'first' })
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'first' })
local req = {
{ 'nvim_get_current_line', {} },
{ 'nvim_set_current_line', { 'second' } },
}
- eq({ { 'first', NIL }, NIL }, meths.nvim_call_atomic(req))
- eq({ 'second' }, meths.nvim_buf_get_lines(0, 0, -1, true))
+ eq({ { 'first', NIL }, NIL }, api.nvim_call_atomic(req))
+ eq({ 'second' }, api.nvim_buf_get_lines(0, 0, -1, true))
end)
it('allows multiple return values', function()
@@ -2578,11 +2578,11 @@ describe('API', function()
{ 'nvim_get_var', { 'avar' } },
{ 'nvim_get_var', { 'bvar' } },
}
- eq({ { NIL, NIL, true, 'string' }, NIL }, meths.nvim_call_atomic(req))
+ eq({ { NIL, NIL, true, 'string' }, NIL }, api.nvim_call_atomic(req))
end)
it('is aborted by errors in call', function()
- local error_types = meths.nvim_get_api_info()[2].error_types
+ local error_types = api.nvim_get_api_info()[2].error_types
local req = {
{ 'nvim_set_var', { 'one', 1 } },
{ 'nvim_buf_set_lines', {} },
@@ -2595,9 +2595,9 @@ describe('API', function()
error_types.Exception.id,
'Wrong number of arguments: expecting 5 but got 0',
},
- }, meths.nvim_call_atomic(req))
- eq(1, meths.nvim_get_var('one'))
- eq(false, pcall(meths.nvim_get_var, 'two'))
+ }, api.nvim_call_atomic(req))
+ eq(1, api.nvim_get_var('one'))
+ eq(false, pcall(api.nvim_get_var, 'two'))
-- still returns all previous successful calls
req = {
@@ -2609,7 +2609,7 @@ describe('API', function()
}
eq(
{ { NIL, NIL, 5 }, { 3, error_types.Validation.id, 'Index out of bounds' } },
- meths.nvim_call_atomic(req)
+ api.nvim_call_atomic(req)
)
req = {
@@ -2618,9 +2618,9 @@ describe('API', function()
}
eq(
{ {}, { 0, error_types.Exception.id, 'Invalid method: i_am_not_a_method' } },
- meths.nvim_call_atomic(req)
+ api.nvim_call_atomic(req)
)
- eq(5, meths.nvim_get_var('avar'))
+ eq(5, api.nvim_get_var('avar'))
end)
it('validation', function()
@@ -2629,28 +2629,25 @@ describe('API', function()
{ 'nvim_set_var' },
{ 'nvim_set_var', { 'avar', 2 } },
}
- eq("Invalid 'calls' item: expected 2-item Array", pcall_err(meths.nvim_call_atomic, req))
+ eq("Invalid 'calls' item: expected 2-item Array", pcall_err(api.nvim_call_atomic, req))
-- call before was done, but not after
- eq(1, meths.nvim_get_var('avar'))
+ eq(1, api.nvim_get_var('avar'))
req = {
{ 'nvim_set_var', { 'bvar', { 2, 3 } } },
12,
}
- eq(
- "Invalid 'calls' item: expected Array, got Integer",
- pcall_err(meths.nvim_call_atomic, req)
- )
- eq({ 2, 3 }, meths.nvim_get_var('bvar'))
+ eq("Invalid 'calls' item: expected Array, got Integer", pcall_err(api.nvim_call_atomic, req))
+ eq({ 2, 3 }, api.nvim_get_var('bvar'))
req = {
{ 'nvim_set_current_line', 'little line' },
{ 'nvim_set_var', { 'avar', 3 } },
}
- eq('Invalid call args: expected Array, got String', pcall_err(meths.nvim_call_atomic, req))
+ eq('Invalid call args: expected Array, got String', pcall_err(api.nvim_call_atomic, req))
-- call before was done, but not after
- eq(1, meths.nvim_get_var('avar'))
- eq({ '' }, meths.nvim_buf_get_lines(0, 0, -1, true))
+ eq(1, api.nvim_get_var('avar'))
+ eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, true))
end)
end)
@@ -2664,55 +2661,55 @@ describe('API', function()
rmdir 'Xtest'
end)
before_each(function()
- meths.nvim_set_current_dir 'Xtest'
+ api.nvim_set_current_dir 'Xtest'
end)
it('returns nothing with empty &runtimepath', function()
- meths.nvim_set_option_value('runtimepath', '', {})
- eq({}, meths.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', '', {})
+ eq({}, api.nvim_list_runtime_paths())
end)
it('returns single runtimepath', function()
- meths.nvim_set_option_value('runtimepath', 'a', {})
- eq({ 'a' }, meths.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', 'a', {})
+ eq({ 'a' }, api.nvim_list_runtime_paths())
end)
it('returns two runtimepaths', function()
- meths.nvim_set_option_value('runtimepath', 'a,b', {})
- eq({ 'a', 'b' }, meths.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', 'a,b', {})
+ eq({ 'a', 'b' }, api.nvim_list_runtime_paths())
end)
it('returns empty strings when appropriate', function()
- meths.nvim_set_option_value('runtimepath', 'a,,b', {})
- eq({ 'a', '', 'b' }, meths.nvim_list_runtime_paths())
- meths.nvim_set_option_value('runtimepath', ',a,b', {})
- eq({ '', 'a', 'b' }, meths.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', 'a,,b', {})
+ eq({ 'a', '', 'b' }, api.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', ',a,b', {})
+ eq({ '', 'a', 'b' }, api.nvim_list_runtime_paths())
-- Trailing "," is ignored. Use ",," if you really really want CWD.
- meths.nvim_set_option_value('runtimepath', 'a,b,', {})
- eq({ 'a', 'b' }, meths.nvim_list_runtime_paths())
- meths.nvim_set_option_value('runtimepath', 'a,b,,', {})
- eq({ 'a', 'b', '' }, meths.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', 'a,b,', {})
+ eq({ 'a', 'b' }, api.nvim_list_runtime_paths())
+ api.nvim_set_option_value('runtimepath', 'a,b,,', {})
+ eq({ 'a', 'b', '' }, api.nvim_list_runtime_paths())
end)
it('truncates too long paths', function()
local long_path = ('/a'):rep(8192)
- meths.nvim_set_option_value('runtimepath', long_path, {})
- local paths_list = meths.nvim_list_runtime_paths()
+ api.nvim_set_option_value('runtimepath', long_path, {})
+ local paths_list = api.nvim_list_runtime_paths()
eq({}, paths_list)
end)
end)
it('can throw exceptions', function()
- local status, err = pcall(meths.nvim_get_option_value, 'invalid-option', {})
+ local status, err = pcall(api.nvim_get_option_value, 'invalid-option', {})
eq(false, status)
ok(err:match("Unknown option 'invalid%-option'") ~= nil)
end)
it('does not truncate error message <1 MB #5984', function()
local very_long_name = 'A' .. ('x'):rep(10000) .. 'Z'
- local status, err = pcall(meths.nvim_get_option_value, very_long_name, {})
+ local status, err = pcall(api.nvim_get_option_value, very_long_name, {})
eq(false, status)
eq(very_long_name, err:match('Ax+Z?'))
end)
it('does not leak memory on incorrect argument types', function()
- local status, err = pcall(meths.nvim_set_current_dir, { 'not', 'a', 'dir' })
+ local status, err = pcall(api.nvim_set_current_dir, { 'not', 'a', 'dir' })
eq(false, status)
ok(
err:match(': Wrong type for argument 1 when calling nvim_set_current_dir, expecting String')
@@ -2722,7 +2719,7 @@ describe('API', function()
describe('nvim_parse_expression', function()
before_each(function()
- meths.nvim_set_option_value('isident', '', {})
+ api.nvim_set_option_value('isident', '', {})
end)
local function simplify_east_api_node(line, east_api_node)
@@ -2855,7 +2852,7 @@ describe('API', function()
nz_flags_exps = nz_flags_exps or {}
for _, flags in ipairs(opts.flags) do
local err, msg = pcall(function()
- local east_api = meths.nvim_parse_expression(str, FLAGS_TO_STR[flags], true)
+ local east_api = api.nvim_parse_expression(str, FLAGS_TO_STR[flags], true)
local east_hl = east_api.highlight
east_api.highlight = nil
local ast = simplify_east_api(str, east_api)
@@ -2935,7 +2932,7 @@ describe('API', function()
describe('nvim_list_uis', function()
it('returns empty if --headless', function()
-- Test runner defaults to --headless.
- eq({}, meths.nvim_list_uis())
+ eq({}, api.nvim_list_uis())
end)
it('returns attached UIs', function()
local screen = Screen.new(20, 4)
@@ -2964,7 +2961,7 @@ describe('API', function()
},
}
- eq(expected, meths.nvim_list_uis())
+ eq(expected, api.nvim_list_uis())
screen:detach()
screen = Screen.new(44, 99)
@@ -2973,39 +2970,39 @@ describe('API', function()
expected[1].override = false
expected[1].width = 44
expected[1].height = 99
- eq(expected, meths.nvim_list_uis())
+ eq(expected, api.nvim_list_uis())
end)
end)
describe('nvim_create_namespace', function()
it('works', function()
- eq({}, meths.nvim_get_namespaces())
- eq(1, meths.nvim_create_namespace('ns-1'))
- eq(2, meths.nvim_create_namespace('ns-2'))
- eq(1, meths.nvim_create_namespace('ns-1'))
- eq({ ['ns-1'] = 1, ['ns-2'] = 2 }, meths.nvim_get_namespaces())
- eq(3, meths.nvim_create_namespace(''))
- eq(4, meths.nvim_create_namespace(''))
- eq({ ['ns-1'] = 1, ['ns-2'] = 2 }, meths.nvim_get_namespaces())
+ eq({}, api.nvim_get_namespaces())
+ eq(1, api.nvim_create_namespace('ns-1'))
+ eq(2, api.nvim_create_namespace('ns-2'))
+ eq(1, api.nvim_create_namespace('ns-1'))
+ eq({ ['ns-1'] = 1, ['ns-2'] = 2 }, api.nvim_get_namespaces())
+ eq(3, api.nvim_create_namespace(''))
+ eq(4, api.nvim_create_namespace(''))
+ eq({ ['ns-1'] = 1, ['ns-2'] = 2 }, api.nvim_get_namespaces())
end)
end)
describe('nvim_create_buf', function()
it('works', function()
- eq({ id = 2 }, meths.nvim_create_buf(true, false))
- eq({ id = 3 }, meths.nvim_create_buf(false, false))
+ eq({ id = 2 }, api.nvim_create_buf(true, false))
+ eq({ id = 3 }, api.nvim_create_buf(false, false))
eq(
' 1 %a "[No Name]" line 1\n'
.. ' 2 h "[No Name]" line 0',
command_output('ls')
)
-- current buffer didn't change
- eq({ id = 1 }, meths.nvim_get_current_buf())
+ eq({ id = 1 }, api.nvim_get_current_buf())
local screen = Screen.new(20, 4)
screen:attach()
- meths.nvim_buf_set_lines(2, 0, -1, true, { 'some text' })
- meths.nvim_set_current_buf(2)
+ api.nvim_buf_set_lines(2, 0, -1, true, { 'some text' })
+ api.nvim_set_current_buf(2)
screen:expect(
[[
^some text |
@@ -3019,43 +3016,43 @@ describe('API', function()
end)
it('can change buftype before visiting', function()
- meths.nvim_set_option_value('hidden', false, {})
- eq({ id = 2 }, meths.nvim_create_buf(true, false))
- meths.nvim_set_option_value('buftype', 'nofile', { buf = 2 })
- meths.nvim_buf_set_lines(2, 0, -1, true, { 'test text' })
+ api.nvim_set_option_value('hidden', false, {})
+ eq({ id = 2 }, api.nvim_create_buf(true, false))
+ api.nvim_set_option_value('buftype', 'nofile', { buf = 2 })
+ api.nvim_buf_set_lines(2, 0, -1, true, { 'test text' })
command('split | buffer 2')
- eq({ id = 2 }, meths.nvim_get_current_buf())
+ eq({ id = 2 }, api.nvim_get_current_buf())
-- if the buf_set_option("buftype") didn't work, this would error out.
command('close')
- eq({ id = 1 }, meths.nvim_get_current_buf())
+ eq({ id = 1 }, api.nvim_get_current_buf())
end)
it('does not trigger BufEnter, BufWinEnter', function()
command('let g:fired = v:false')
command('au BufEnter,BufWinEnter * let g:fired = v:true')
- eq({ id = 2 }, meths.nvim_create_buf(true, false))
- meths.nvim_buf_set_lines(2, 0, -1, true, { 'test', 'text' })
+ eq({ id = 2 }, api.nvim_create_buf(true, false))
+ api.nvim_buf_set_lines(2, 0, -1, true, { 'test', 'text' })
eq(false, eval('g:fired'))
end)
it('TextChanged and TextChangedI do not trigger without changes', function()
- local buf = meths.nvim_create_buf(true, false)
+ local buf = api.nvim_create_buf(true, false)
command([[let g:changed = '']])
- meths.nvim_create_autocmd({ 'TextChanged', 'TextChangedI' }, {
+ api.nvim_create_autocmd({ 'TextChanged', 'TextChangedI' }, {
buffer = buf,
command = 'let g:changed ..= mode()',
})
- meths.nvim_set_current_buf(buf)
+ api.nvim_set_current_buf(buf)
feed('i')
- eq('', meths.nvim_get_var('changed'))
+ eq('', api.nvim_get_var('changed'))
end)
it('scratch-buffer', function()
- eq({ id = 2 }, meths.nvim_create_buf(false, true))
- eq({ id = 3 }, meths.nvim_create_buf(true, true))
- eq({ id = 4 }, meths.nvim_create_buf(true, true))
+ eq({ id = 2 }, api.nvim_create_buf(false, true))
+ eq({ id = 3 }, api.nvim_create_buf(true, true))
+ eq({ id = 4 }, api.nvim_create_buf(true, true))
local scratch_bufs = { 2, 3, 4 }
eq(
' 1 %a "[No Name]" line 1\n'
@@ -3064,7 +3061,7 @@ describe('API', function()
exec_capture('ls')
)
-- current buffer didn't change
- eq({ id = 1 }, meths.nvim_get_current_buf())
+ eq({ id = 1 }, api.nvim_get_current_buf())
local screen = Screen.new(20, 4)
screen:set_default_attr_ids({
@@ -3076,27 +3073,27 @@ describe('API', function()
-- Editing a scratch-buffer does NOT change its properties.
--
local edited_buf = 2
- meths.nvim_buf_set_lines(edited_buf, 0, -1, true, { 'some text' })
+ api.nvim_buf_set_lines(edited_buf, 0, -1, true, { 'some text' })
for _, b in ipairs(scratch_bufs) do
- eq('nofile', meths.nvim_get_option_value('buftype', { buf = b }))
- eq('hide', meths.nvim_get_option_value('bufhidden', { buf = b }))
- eq(false, meths.nvim_get_option_value('swapfile', { buf = b }))
- eq(false, meths.nvim_get_option_value('modeline', { buf = b }))
+ eq('nofile', api.nvim_get_option_value('buftype', { buf = b }))
+ eq('hide', api.nvim_get_option_value('bufhidden', { buf = b }))
+ eq(false, api.nvim_get_option_value('swapfile', { buf = b }))
+ eq(false, api.nvim_get_option_value('modeline', { buf = b }))
end
--
-- Visiting a scratch-buffer DOES NOT change its properties.
--
- meths.nvim_set_current_buf(edited_buf)
+ api.nvim_set_current_buf(edited_buf)
screen:expect([[
^some text |
{1:~ }|*2
|
]])
- eq('nofile', meths.nvim_get_option_value('buftype', { buf = edited_buf }))
- eq('hide', meths.nvim_get_option_value('bufhidden', { buf = edited_buf }))
- eq(false, meths.nvim_get_option_value('swapfile', { buf = edited_buf }))
- eq(false, meths.nvim_get_option_value('modeline', { buf = edited_buf }))
+ eq('nofile', api.nvim_get_option_value('buftype', { buf = edited_buf }))
+ eq('hide', api.nvim_get_option_value('bufhidden', { buf = edited_buf }))
+ eq(false, api.nvim_get_option_value('swapfile', { buf = edited_buf }))
+ eq(false, api.nvim_get_option_value('modeline', { buf = edited_buf }))
-- Scratch buffer can be wiped without error.
command('bwipe')
@@ -3118,11 +3115,11 @@ describe('API', function()
describe('nvim_get_runtime_file', function()
local p = helpers.alter_slashes
it('can find files', function()
- eq({}, meths.nvim_get_runtime_file('bork.borkbork', false))
- eq({}, meths.nvim_get_runtime_file('bork.borkbork', true))
- eq(1, #meths.nvim_get_runtime_file('autoload/msgpack.vim', false))
- eq(1, #meths.nvim_get_runtime_file('autoload/msgpack.vim', true))
- local val = meths.nvim_get_runtime_file('autoload/remote/*.vim', true)
+ eq({}, api.nvim_get_runtime_file('bork.borkbork', false))
+ eq({}, api.nvim_get_runtime_file('bork.borkbork', true))
+ eq(1, #api.nvim_get_runtime_file('autoload/msgpack.vim', false))
+ eq(1, #api.nvim_get_runtime_file('autoload/msgpack.vim', true))
+ local val = api.nvim_get_runtime_file('autoload/remote/*.vim', true)
eq(2, #val)
if endswith(val[1], 'define.vim') then
ok(endswith(val[1], p 'autoload/remote/define.vim'))
@@ -3131,37 +3128,37 @@ describe('API', function()
ok(endswith(val[1], p 'autoload/remote/host.vim'))
ok(endswith(val[2], p 'autoload/remote/define.vim'))
end
- val = meths.nvim_get_runtime_file('autoload/remote/*.vim', false)
+ val = api.nvim_get_runtime_file('autoload/remote/*.vim', false)
eq(1, #val)
ok(
endswith(val[1], p 'autoload/remote/define.vim')
or endswith(val[1], p 'autoload/remote/host.vim')
)
- val = meths.nvim_get_runtime_file('lua', true)
+ val = api.nvim_get_runtime_file('lua', true)
eq(1, #val)
ok(endswith(val[1], p 'lua'))
- val = meths.nvim_get_runtime_file('lua/vim', true)
+ val = api.nvim_get_runtime_file('lua/vim', true)
eq(1, #val)
ok(endswith(val[1], p 'lua/vim'))
end)
it('can find directories', function()
- local val = meths.nvim_get_runtime_file('lua/', true)
+ local val = api.nvim_get_runtime_file('lua/', true)
eq(1, #val)
ok(endswith(val[1], p 'lua/'))
- val = meths.nvim_get_runtime_file('lua/vim/', true)
+ val = api.nvim_get_runtime_file('lua/vim/', true)
eq(1, #val)
ok(endswith(val[1], p 'lua/vim/'))
- eq({}, meths.nvim_get_runtime_file('foobarlang/', true))
+ eq({}, api.nvim_get_runtime_file('foobarlang/', true))
end)
it('can handle bad patterns', function()
skip(is_os('win'))
- eq('Vim:E220: Missing }.', pcall_err(meths.nvim_get_runtime_file, '{', false))
+ eq('Vim:E220: Missing }.', pcall_err(api.nvim_get_runtime_file, '{', false))
eq(
'Vim(echo):E5555: API call: Vim:E220: Missing }.',
@@ -3172,25 +3169,25 @@ describe('API', function()
describe('nvim_get_all_options_info', function()
it('should have key value pairs of option names', function()
- local options_info = meths.nvim_get_all_options_info()
+ local options_info = api.nvim_get_all_options_info()
neq(nil, options_info.listchars)
neq(nil, options_info.tabstop)
- eq(meths.nvim_get_option_info 'winhighlight', options_info.winhighlight)
+ eq(api.nvim_get_option_info 'winhighlight', options_info.winhighlight)
end)
it('should not crash when echoed', function()
- meths.nvim_exec2('echo nvim_get_all_options_info()', { output = true })
+ api.nvim_exec2('echo nvim_get_all_options_info()', { output = true })
end)
end)
describe('nvim_get_option_info', function()
it('should error for unknown options', function()
- eq("Invalid option (not found): 'bogus'", pcall_err(meths.nvim_get_option_info, 'bogus'))
+ eq("Invalid option (not found): 'bogus'", pcall_err(api.nvim_get_option_info, 'bogus'))
end)
it('should return the same options for short and long name', function()
- eq(meths.nvim_get_option_info 'winhl', meths.nvim_get_option_info 'winhighlight')
+ eq(api.nvim_get_option_info 'winhl', api.nvim_get_option_info 'winhighlight')
end)
it('should have information about window options', function()
@@ -3208,7 +3205,7 @@ describe('API', function()
shortname = 'winhl',
type = 'string',
was_set = false,
- }, meths.nvim_get_option_info 'winhl')
+ }, api.nvim_get_option_info 'winhl')
end)
it('should have information about buffer options', function()
@@ -3226,13 +3223,13 @@ describe('API', function()
shortname = 'ft',
type = 'string',
was_set = false,
- }, meths.nvim_get_option_info 'filetype')
+ }, api.nvim_get_option_info 'filetype')
end)
it('should have information about global options', function()
-- precondition: the option was changed from its default
-- in test setup.
- eq(false, meths.nvim_get_option_value('showcmd', {}))
+ eq(false, api.nvim_get_option_value('showcmd', {}))
eq({
allows_duplicates = true,
@@ -3248,9 +3245,9 @@ describe('API', function()
shortname = 'sc',
type = 'boolean',
was_set = true,
- }, meths.nvim_get_option_info 'showcmd')
+ }, api.nvim_get_option_info 'showcmd')
- meths.nvim_set_option_value('showcmd', true, {})
+ api.nvim_set_option_value('showcmd', true, {})
eq({
allows_duplicates = true,
@@ -3266,7 +3263,7 @@ describe('API', function()
shortname = 'sc',
type = 'boolean',
was_set = true,
- }, meths.nvim_get_option_info 'showcmd')
+ }, api.nvim_get_option_info 'showcmd')
end)
end)
@@ -3293,18 +3290,18 @@ describe('API', function()
)
exec_lua 'vim.cmd.vsplit()'
- meths.nvim_create_buf(false, false)
+ api.nvim_create_buf(false, false)
- bufs = meths.nvim_list_bufs()
- wins = meths.nvim_list_wins()
+ bufs = api.nvim_list_bufs()
+ wins = api.nvim_list_wins()
- meths.nvim_win_set_buf(wins[1].id, bufs[1].id)
- meths.nvim_win_set_buf(wins[2].id, bufs[2].id)
+ api.nvim_win_set_buf(wins[1].id, bufs[1].id)
+ api.nvim_win_set_buf(wins[2].id, bufs[2].id)
- meths.nvim_set_current_win(wins[2].id)
- meths.nvim_exec('source ' .. fname, false)
+ api.nvim_set_current_win(wins[2].id)
+ api.nvim_exec('source ' .. fname, false)
- meths.nvim_set_current_win(wins[1].id)
+ api.nvim_set_current_win(wins[1].id)
end)
after_each(function()
@@ -3312,9 +3309,9 @@ describe('API', function()
end)
it('should return option information', function()
- eq(meths.nvim_get_option_info('dictionary'), meths.nvim_get_option_info2('dictionary', {})) -- buffer
- eq(meths.nvim_get_option_info('fillchars'), meths.nvim_get_option_info2('fillchars', {})) -- window
- eq(meths.nvim_get_option_info('completeopt'), meths.nvim_get_option_info2('completeopt', {})) -- global
+ eq(api.nvim_get_option_info('dictionary'), api.nvim_get_option_info2('dictionary', {})) -- buffer
+ eq(api.nvim_get_option_info('fillchars'), api.nvim_get_option_info2('fillchars', {})) -- window
+ eq(api.nvim_get_option_info('completeopt'), api.nvim_get_option_info2('completeopt', {})) -- global
end)
describe('last set', function()
@@ -3346,21 +3343,21 @@ describe('API', function()
for _, t in pairs(tests) do
it(t.desc, function()
-- Switch to the target buffer/window so that curbuf/curwin are used.
- meths.nvim_set_current_win(wins[2].id)
- local info = meths.nvim_get_option_info2(unpack(t.args))
+ api.nvim_set_current_win(wins[2].id)
+ local info = api.nvim_get_option_info2(unpack(t.args))
eq(t.linenr, info.last_set_linenr)
eq(t.sid, info.last_set_sid)
end)
end
it('is provided for cross-buffer requests', function()
- local info = meths.nvim_get_option_info2('formatprg', { buf = bufs[2].id })
+ local info = api.nvim_get_option_info2('formatprg', { buf = bufs[2].id })
eq(2, info.last_set_linenr)
eq(1, info.last_set_sid)
end)
it('is provided for cross-window requests', function()
- local info = meths.nvim_get_option_info2('listchars', { win = wins[2].id })
+ local info = api.nvim_get_option_info2('listchars', { win = wins[2].id })
eq(6, info.last_set_linenr)
eq(1, info.last_set_sid)
end)
@@ -3427,7 +3424,7 @@ describe('API', function()
it('can save message history', function()
command('set cmdheight=2') -- suppress Press ENTER
- meths.nvim_echo({ { 'msg\nmsg' }, { 'msg' } }, true, {})
+ api.nvim_echo({ { 'msg\nmsg' }, { 'msg' } }, true, {})
eq('msg\nmsgmsg', exec_capture('messages'))
end)
@@ -3465,15 +3462,15 @@ describe('API', function()
end)
it('can batch process sequences', function()
- local b = meths.nvim_create_buf(true, true)
- meths.nvim_open_win(
+ local b = api.nvim_create_buf(true, true)
+ api.nvim_open_win(
b,
false,
{ width = 79, height = 31, row = 1, col = 1, relative = 'editor' }
)
- local t = meths.nvim_open_term(b, {})
+ local t = api.nvim_open_term(b, {})
- meths.nvim_chan_send(t, io.open('test/functional/fixtures/smile2.cat', 'r'):read('*a'))
+ api.nvim_chan_send(t, io.open('test/functional/fixtures/smile2.cat', 'r'):read('*a'))
screen:expect {
grid = [[
^ |
@@ -3579,56 +3576,53 @@ describe('API', function()
describe('nvim_del_mark', function()
it('works', function()
- local buf = meths.nvim_create_buf(false, true)
- meths.nvim_buf_set_lines(buf, -1, -1, true, { 'a', 'bit of', 'text' })
- eq(true, meths.nvim_buf_set_mark(buf, 'F', 2, 2, {}))
- eq(true, meths.nvim_del_mark('F'))
- eq({ 0, 0 }, meths.nvim_buf_get_mark(buf, 'F'))
+ local buf = api.nvim_create_buf(false, true)
+ api.nvim_buf_set_lines(buf, -1, -1, true, { 'a', 'bit of', 'text' })
+ eq(true, api.nvim_buf_set_mark(buf, 'F', 2, 2, {}))
+ eq(true, api.nvim_del_mark('F'))
+ eq({ 0, 0 }, api.nvim_buf_get_mark(buf, 'F'))
end)
it('validation', function()
- eq("Invalid mark name (must be file/uppercase): 'f'", pcall_err(meths.nvim_del_mark, 'f'))
- eq("Invalid mark name (must be file/uppercase): '!'", pcall_err(meths.nvim_del_mark, '!'))
- eq(
- "Invalid mark name (must be a single char): 'fail'",
- pcall_err(meths.nvim_del_mark, 'fail')
- )
+ eq("Invalid mark name (must be file/uppercase): 'f'", pcall_err(api.nvim_del_mark, 'f'))
+ eq("Invalid mark name (must be file/uppercase): '!'", pcall_err(api.nvim_del_mark, '!'))
+ eq("Invalid mark name (must be a single char): 'fail'", pcall_err(api.nvim_del_mark, 'fail'))
end)
end)
describe('nvim_get_mark', function()
it('works', function()
- local buf = meths.nvim_create_buf(false, true)
- meths.nvim_buf_set_lines(buf, -1, -1, true, { 'a', 'bit of', 'text' })
- meths.nvim_buf_set_mark(buf, 'F', 2, 2, {})
- meths.nvim_buf_set_name(buf, 'mybuf')
- local mark = meths.nvim_get_mark('F', {})
+ local buf = api.nvim_create_buf(false, true)
+ api.nvim_buf_set_lines(buf, -1, -1, true, { 'a', 'bit of', 'text' })
+ api.nvim_buf_set_mark(buf, 'F', 2, 2, {})
+ api.nvim_buf_set_name(buf, 'mybuf')
+ local mark = api.nvim_get_mark('F', {})
-- Compare the path tail only
assert(string.find(mark[4], 'mybuf$'))
eq({ 2, 2, buf.id, mark[4] }, mark)
end)
it('validation', function()
- eq("Invalid mark name (must be file/uppercase): 'f'", pcall_err(meths.nvim_get_mark, 'f', {}))
- eq("Invalid mark name (must be file/uppercase): '!'", pcall_err(meths.nvim_get_mark, '!', {}))
+ eq("Invalid mark name (must be file/uppercase): 'f'", pcall_err(api.nvim_get_mark, 'f', {}))
+ eq("Invalid mark name (must be file/uppercase): '!'", pcall_err(api.nvim_get_mark, '!', {}))
eq(
"Invalid mark name (must be a single char): 'fail'",
- pcall_err(meths.nvim_get_mark, 'fail', {})
+ pcall_err(api.nvim_get_mark, 'fail', {})
)
end)
it('returns the expected when mark is not set', function()
- eq(true, meths.nvim_del_mark('A'))
- eq({ 0, 0, 0, '' }, meths.nvim_get_mark('A', {}))
+ eq(true, api.nvim_del_mark('A'))
+ eq({ 0, 0, 0, '' }, api.nvim_get_mark('A', {}))
end)
it('works with deleted buffers', function()
local fname = tmpname()
write_file(fname, 'a\nbit of\text')
command('edit ' .. fname)
- local buf = meths.nvim_get_current_buf()
+ local buf = api.nvim_get_current_buf()
- meths.nvim_buf_set_mark(buf, 'F', 2, 2, {})
+ api.nvim_buf_set_mark(buf, 'F', 2, 2, {})
command('new') -- Create new buf to avoid :bd failing
command('bd! ' .. buf.id)
os.remove(fname)
- local mark = meths.nvim_get_mark('F', {})
+ local mark = api.nvim_get_mark('F', {})
-- To avoid comparing relative vs absolute path
local mfname = mark[4]
local tail_patt = [[[\/][^\/]*$]]
@@ -3642,72 +3636,72 @@ describe('API', function()
eq({
str = '%StatusLineStringWithHighlights',
width = 31,
- }, meths.nvim_eval_statusline('%%StatusLineString%#WarningMsg#WithHighlights', {}))
+ }, api.nvim_eval_statusline('%%StatusLineString%#WarningMsg#WithHighlights', {}))
end)
it("doesn't exceed maxwidth", function()
eq({
str = 'Should be trun>',
width = 15,
- }, meths.nvim_eval_statusline('Should be truncated%<', { maxwidth = 15 }))
+ }, api.nvim_eval_statusline('Should be truncated%<', { maxwidth = 15 }))
end)
it('supports ASCII fillchar', function()
eq(
{ str = 'a~~~b', width = 5 },
- meths.nvim_eval_statusline('a%=b', { fillchar = '~', maxwidth = 5 })
+ api.nvim_eval_statusline('a%=b', { fillchar = '~', maxwidth = 5 })
)
end)
it('supports single-width multibyte fillchar', function()
eq(
{ str = 'a━━━b', width = 5 },
- meths.nvim_eval_statusline('a%=b', { fillchar = '━', maxwidth = 5 })
+ api.nvim_eval_statusline('a%=b', { fillchar = '━', maxwidth = 5 })
)
end)
it('treats double-width fillchar as single-width', function()
eq(
{ str = 'a哦哦哦b', width = 5 },
- meths.nvim_eval_statusline('a%=b', { fillchar = '哦', maxwidth = 5 })
+ api.nvim_eval_statusline('a%=b', { fillchar = '哦', maxwidth = 5 })
)
end)
it('treats control character fillchar as single-width', function()
eq(
{ str = 'a\031\031\031b', width = 5 },
- meths.nvim_eval_statusline('a%=b', { fillchar = '\031', maxwidth = 5 })
+ api.nvim_eval_statusline('a%=b', { fillchar = '\031', maxwidth = 5 })
)
end)
it('rejects multiple-character fillchar', function()
eq(
"Invalid 'fillchar': expected single character",
- pcall_err(meths.nvim_eval_statusline, '', { fillchar = 'aa' })
+ pcall_err(api.nvim_eval_statusline, '', { fillchar = 'aa' })
)
end)
it('rejects empty string fillchar', function()
eq(
"Invalid 'fillchar': expected single character",
- pcall_err(meths.nvim_eval_statusline, '', { fillchar = '' })
+ pcall_err(api.nvim_eval_statusline, '', { fillchar = '' })
)
end)
it('rejects non-string fillchar', function()
eq(
"Invalid 'fillchar': expected String, got Integer",
- pcall_err(meths.nvim_eval_statusline, '', { fillchar = 1 })
+ pcall_err(api.nvim_eval_statusline, '', { fillchar = 1 })
)
end)
it('rejects invalid string', function()
- eq('E539: Illegal character <}>', pcall_err(meths.nvim_eval_statusline, '%{%}', {}))
+ eq('E539: Illegal character <}>', pcall_err(api.nvim_eval_statusline, '%{%}', {}))
end)
it('supports various items', function()
- eq({ str = '0', width = 1 }, meths.nvim_eval_statusline('%l', { maxwidth = 5 }))
+ eq({ str = '0', width = 1 }, api.nvim_eval_statusline('%l', { maxwidth = 5 }))
command('set readonly')
- eq({ str = '[RO]', width = 4 }, meths.nvim_eval_statusline('%r', { maxwidth = 5 }))
+ eq({ str = '[RO]', width = 4 }, api.nvim_eval_statusline('%r', { maxwidth = 5 }))
local screen = Screen.new(80, 24)
screen:attach()
command('set showcmd')
feed('1234')
screen:expect({ any = '1234' })
- eq({ str = '1234', width = 4 }, meths.nvim_eval_statusline('%S', { maxwidth = 5 }))
+ eq({ str = '1234', width = 4 }, api.nvim_eval_statusline('%S', { maxwidth = 5 }))
feed('56')
screen:expect({ any = '123456' })
- eq({ str = '<3456', width = 5 }, meths.nvim_eval_statusline('%S', { maxwidth = 5 }))
+ eq({ str = '<3456', width = 5 }, api.nvim_eval_statusline('%S', { maxwidth = 5 }))
end)
describe('highlight parsing', function()
it('works', function()
@@ -3720,7 +3714,7 @@ describe('API', function()
{ start = 24, group = 'User1' },
},
},
- meths.nvim_eval_statusline(
+ api.nvim_eval_statusline(
'%#WarningMsg#TextWithWarningHighlight%1*TextWithUserHighlight',
{ highlights = true }
)
@@ -3733,7 +3727,7 @@ describe('API', function()
highlights = {
{ start = 0, group = 'StatusLine' },
},
- }, meths.nvim_eval_statusline('TextWithNoHighlight', { highlights = true }))
+ }, api.nvim_eval_statusline('TextWithNoHighlight', { highlights = true }))
end)
it('works with inactive statusline', function()
command('split')
@@ -3747,9 +3741,9 @@ describe('API', function()
{ start = 19, group = 'WarningMsg' },
},
},
- meths.nvim_eval_statusline(
+ api.nvim_eval_statusline(
'TextWithNoHighlight%#WarningMsg#TextWithWarningHighlight',
- { winid = meths.nvim_list_wins()[2].id, highlights = true }
+ { winid = api.nvim_list_wins()[2].id, highlights = true }
)
)
end)
@@ -3763,7 +3757,7 @@ describe('API', function()
{ start = 19, group = 'WarningMsg' },
},
},
- meths.nvim_eval_statusline(
+ api.nvim_eval_statusline(
'TextWithNoHighlight%#WarningMsg#TextWithWarningHighlight',
{ use_tabline = true, highlights = true }
)
@@ -3779,7 +3773,7 @@ describe('API', function()
{ start = 19, group = 'WarningMsg' },
},
},
- meths.nvim_eval_statusline(
+ api.nvim_eval_statusline(
'TextWithNoHighlight%#WarningMsg#TextWithWarningHighlight',
{ use_winbar = true, highlights = true }
)
@@ -3807,7 +3801,7 @@ describe('API', function()
{ group = 'ErrorMsg', start = 8 },
{ group = 'Normal', start = 10 },
},
- }, meths.nvim_eval_statusline(
+ }, api.nvim_eval_statusline(
'%C%s%=%l ',
{ use_statuscol_lnum = 4, highlights = true }
))
@@ -3820,18 +3814,15 @@ describe('API', function()
{ group = 'ErrorMsg', start = 1 },
},
},
- meths.nvim_eval_statusline(
- '%l%#ErrorMsg# ',
- { use_statuscol_lnum = 3, highlights = true }
- )
+ api.nvim_eval_statusline('%l%#ErrorMsg# ', { use_statuscol_lnum = 3, highlights = true })
)
end)
it('no memory leak with click functions', function()
- meths.nvim_eval_statusline('%@ClickFunc@StatusLineStringWithClickFunc%T', {})
+ api.nvim_eval_statusline('%@ClickFunc@StatusLineStringWithClickFunc%T', {})
eq({
str = 'StatusLineStringWithClickFunc',
width = 29,
- }, meths.nvim_eval_statusline('%@ClickFunc@StatusLineStringWithClickFunc%T', {}))
+ }, api.nvim_eval_statusline('%@ClickFunc@StatusLineStringWithClickFunc%T', {}))
end)
end)
end)
@@ -3874,7 +3865,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('echo foo', {}))
+ }, api.nvim_parse_cmd('echo foo', {}))
end)
it('works with ranges', function()
eq({
@@ -3914,7 +3905,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('4,6s/math.random/math.max/', {}))
+ }, api.nvim_parse_cmd('4,6s/math.random/math.max/', {}))
end)
it('works with count', function()
eq({
@@ -3955,7 +3946,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('buffer 1', {}))
+ }, api.nvim_parse_cmd('buffer 1', {}))
end)
it('works with register', function()
eq({
@@ -3996,7 +3987,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('put +', {}))
+ }, api.nvim_parse_cmd('put +', {}))
eq({
cmd = 'put',
args = {},
@@ -4035,7 +4026,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('put', {}))
+ }, api.nvim_parse_cmd('put', {}))
end)
it('works with range, count and register', function()
eq({
@@ -4077,7 +4068,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('1,3delete * 5', {}))
+ }, api.nvim_parse_cmd('1,3delete * 5', {}))
end)
it('works with bang', function()
eq({
@@ -4117,7 +4108,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('w!', {}))
+ }, api.nvim_parse_cmd('w!', {}))
end)
it('works with modifiers', function()
eq(
@@ -4159,7 +4150,7 @@ describe('API', function()
vertical = false,
},
},
- meths.nvim_parse_cmd(
+ api.nvim_parse_cmd(
'15verbose silent! horizontal topleft tab filter /foo/ split foo.txt',
{}
)
@@ -4203,7 +4194,7 @@ describe('API', function()
vertical = false,
},
},
- meths.nvim_parse_cmd(
+ api.nvim_parse_cmd(
'0verbose unsilent botright 0tab confirm filter! /foo/ split foo.txt',
{}
)
@@ -4248,7 +4239,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('4,6MyCommand! test it', {}))
+ }, api.nvim_parse_cmd('4,6MyCommand! test it', {}))
end)
it('works for commands separated by bar', function()
eq({
@@ -4288,7 +4279,7 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('argadd a.txt | argadd b.txt', {}))
+ }, api.nvim_parse_cmd('argadd a.txt | argadd b.txt', {}))
end)
it('works for nargs=1', function()
command('command -nargs=1 MyCommand echo <q-args>')
@@ -4328,28 +4319,28 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('MyCommand test it', {}))
+ }, api.nvim_parse_cmd('MyCommand test it', {}))
end)
it('validates command', function()
- eq('Error while parsing command line', pcall_err(meths.nvim_parse_cmd, '', {}))
- eq('Error while parsing command line', pcall_err(meths.nvim_parse_cmd, '" foo', {}))
+ eq('Error while parsing command line', pcall_err(api.nvim_parse_cmd, '', {}))
+ eq('Error while parsing command line', pcall_err(api.nvim_parse_cmd, '" foo', {}))
eq(
'Error while parsing command line: E492: Not an editor command: Fubar',
- pcall_err(meths.nvim_parse_cmd, 'Fubar', {})
+ pcall_err(api.nvim_parse_cmd, 'Fubar', {})
)
command('command! Fubar echo foo')
eq(
'Error while parsing command line: E477: No ! allowed',
- pcall_err(meths.nvim_parse_cmd, 'Fubar!', {})
+ pcall_err(api.nvim_parse_cmd, 'Fubar!', {})
)
eq(
'Error while parsing command line: E481: No range allowed',
- pcall_err(meths.nvim_parse_cmd, '4,6Fubar', {})
+ pcall_err(api.nvim_parse_cmd, '4,6Fubar', {})
)
command('command! Foobar echo foo')
eq(
'Error while parsing command line: E464: Ambiguous use of user-defined command',
- pcall_err(meths.nvim_parse_cmd, 'F', {})
+ pcall_err(api.nvim_parse_cmd, 'F', {})
)
end)
it('does not interfere with printing line in Ex mode #19400', function()
@@ -4371,7 +4362,7 @@ describe('API', function()
Entering Ex mode. Type "visual" to go to Normal mode. |
:1^ |
]])
- eq('Error while parsing command line', pcall_err(meths.nvim_parse_cmd, '', {}))
+ eq('Error while parsing command line', pcall_err(api.nvim_parse_cmd, '', {}))
feed('<CR>')
screen:expect([[
foo |
@@ -4384,10 +4375,10 @@ describe('API', function()
]])
end)
it('does not move cursor or change search history/pattern #19878 #19890', function()
- meths.nvim_buf_set_lines(0, 0, -1, true, { 'foo', 'bar', 'foo', 'bar' })
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
- eq('', funcs.getreg('/'))
- eq('', funcs.histget('search'))
+ api.nvim_buf_set_lines(0, 0, -1, true, { 'foo', 'bar', 'foo', 'bar' })
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
+ eq('', fn.getreg('/'))
+ eq('', fn.histget('search'))
feed(':') -- call the API in cmdline mode to test whether it changes search history
eq({
cmd = 'normal',
@@ -4426,15 +4417,15 @@ describe('API', function()
verbose = -1,
vertical = false,
},
- }, meths.nvim_parse_cmd('+2;/bar/normal! x', {}))
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
- eq('', funcs.getreg('/'))
- eq('', funcs.histget('search'))
+ }, api.nvim_parse_cmd('+2;/bar/normal! x', {}))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
+ eq('', fn.getreg('/'))
+ eq('', fn.histget('search'))
end)
it('result can be used directly by nvim_cmd #20051', function()
- eq('foo', meths.nvim_cmd(meths.nvim_parse_cmd('echo "foo"', {}), { output = true }))
- meths.nvim_cmd(meths.nvim_parse_cmd('set cursorline', {}), {})
- eq(true, meths.nvim_get_option_value('cursorline', {}))
+ eq('foo', api.nvim_cmd(api.nvim_parse_cmd('echo "foo"', {}), { output = true }))
+ api.nvim_cmd(api.nvim_parse_cmd('set cursorline', {}), {})
+ eq(true, api.nvim_get_option_value('cursorline', {}))
end)
it('no side-effects (error messages) in pcall() #20339', function()
eq(
@@ -4447,86 +4438,83 @@ describe('API', function()
describe('nvim_cmd', function()
it('works', function()
- meths.nvim_cmd({ cmd = 'set', args = { 'cursorline' } }, {})
- eq(true, meths.nvim_get_option_value('cursorline', {}))
+ api.nvim_cmd({ cmd = 'set', args = { 'cursorline' } }, {})
+ eq(true, api.nvim_get_option_value('cursorline', {}))
end)
it('validation', function()
- eq("Invalid 'cmd': expected non-empty String", pcall_err(meths.nvim_cmd, { cmd = '' }, {}))
- eq("Invalid 'cmd': expected String, got Array", pcall_err(meths.nvim_cmd, { cmd = {} }, {}))
+ eq("Invalid 'cmd': expected non-empty String", pcall_err(api.nvim_cmd, { cmd = '' }, {}))
+ eq("Invalid 'cmd': expected String, got Array", pcall_err(api.nvim_cmd, { cmd = {} }, {}))
eq(
"Invalid 'args': expected Array, got Boolean",
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = true }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = true }, {})
)
eq(
'Invalid command arg: expected non-whitespace',
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = { ' ' } }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = { ' ' } }, {})
)
eq(
'Invalid command arg: expected valid type, got Array',
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = { {} } }, {})
- )
- eq(
- 'Wrong number of arguments',
- pcall_err(meths.nvim_cmd, { cmd = 'aboveleft', args = {} }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = { {} } }, {})
)
+ eq('Wrong number of arguments', pcall_err(api.nvim_cmd, { cmd = 'aboveleft', args = {} }, {}))
eq(
'Command cannot accept bang: print',
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, bang = true }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, bang = true }, {})
)
eq(
'Command cannot accept range: set',
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = {}, range = { 1 } }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = {}, range = { 1 } }, {})
)
eq(
"Invalid 'range': expected Array, got Boolean",
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, range = true }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, range = true }, {})
)
eq(
"Invalid 'range': expected <=2 elements",
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, range = { 1, 2, 3, 4 } }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, range = { 1, 2, 3, 4 } }, {})
)
eq(
'Invalid range element: expected non-negative Integer',
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, range = { -1 } }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, range = { -1 } }, {})
)
eq(
'Command cannot accept count: set',
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = {}, count = 1 }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = {}, count = 1 }, {})
)
eq(
"Invalid 'count': expected Integer, got Boolean",
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, count = true }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, count = true }, {})
)
eq(
"Invalid 'count': expected non-negative Integer",
- pcall_err(meths.nvim_cmd, { cmd = 'print', args = {}, count = -1 }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'print', args = {}, count = -1 }, {})
)
eq(
'Command cannot accept register: set',
- pcall_err(meths.nvim_cmd, { cmd = 'set', args = {}, reg = 'x' }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'set', args = {}, reg = 'x' }, {})
)
eq(
'Cannot use register "=',
- pcall_err(meths.nvim_cmd, { cmd = 'put', args = {}, reg = '=' }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'put', args = {}, reg = '=' }, {})
)
eq(
"Invalid 'reg': expected single character, got xx",
- pcall_err(meths.nvim_cmd, { cmd = 'put', args = {}, reg = 'xx' }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'put', args = {}, reg = 'xx' }, {})
)
-- #20681
- eq('Invalid command: "win_getid"', pcall_err(meths.nvim_cmd, { cmd = 'win_getid' }, {}))
- eq('Invalid command: "echo "hi""', pcall_err(meths.nvim_cmd, { cmd = 'echo "hi"' }, {}))
+ eq('Invalid command: "win_getid"', pcall_err(api.nvim_cmd, { cmd = 'win_getid' }, {}))
+ eq('Invalid command: "echo "hi""', pcall_err(api.nvim_cmd, { cmd = 'echo "hi"' }, {}))
eq('Invalid command: "win_getid"', pcall_err(exec_lua, [[return vim.cmd.win_getid{}]]))
-- Lua call allows empty {} for dict item.
eq('', exec_lua([[return vim.cmd{ cmd = "set", args = {}, magic = {} }]]))
eq('', exec_lua([[return vim.cmd{ cmd = "set", args = {}, mods = {} }]]))
- eq('', meths.nvim_cmd({ cmd = 'set', args = {}, magic = {} }, {}))
+ eq('', api.nvim_cmd({ cmd = 'set', args = {}, magic = {} }, {}))
-- Lua call does not allow non-empty list-like {} for dict item.
eq(
@@ -4544,11 +4532,11 @@ describe('API', function()
end)
it('captures output', function()
- eq('foo', meths.nvim_cmd({ cmd = 'echo', args = { '"foo"' } }, { output = true }))
+ eq('foo', api.nvim_cmd({ cmd = 'echo', args = { '"foo"' } }, { output = true }))
end)
it('sets correct script context', function()
- meths.nvim_cmd({ cmd = 'set', args = { 'cursorline' } }, {})
+ api.nvim_cmd({ cmd = 'set', args = { 'cursorline' } }, {})
local str = exec_capture([[verbose set cursorline?]])
neq(nil, str:find('cursorline\n\tLast set from API client %(channel id %d+%)'))
end)
@@ -4563,7 +4551,7 @@ describe('API', function()
line5
line6
]]
- meths.nvim_cmd({ cmd = 'del', range = { 2, 4 } }, {})
+ api.nvim_cmd({ cmd = 'del', range = { 2, 4 } }, {})
expect [[
line1
you didn't expect this
@@ -4581,7 +4569,7 @@ describe('API', function()
line5
line6
]]
- meths.nvim_cmd({ cmd = 'del', range = { 2 }, count = 4 }, {})
+ api.nvim_cmd({ cmd = 'del', range = { 2 }, count = 4 }, {})
expect [[
line1
line5
@@ -4598,7 +4586,7 @@ describe('API', function()
line5
line6
]]
- meths.nvim_cmd({ cmd = 'del', range = { 2, 4 }, reg = 'a' }, {})
+ api.nvim_cmd({ cmd = 'del', range = { 2, 4 }, reg = 'a' }, {})
command('1put a')
expect [[
line1
@@ -4611,29 +4599,29 @@ describe('API', function()
]]
end)
it('works with bang', function()
- meths.nvim_create_user_command('Foo', 'echo "<bang>"', { bang = true })
- eq('!', meths.nvim_cmd({ cmd = 'Foo', bang = true }, { output = true }))
- eq('', meths.nvim_cmd({ cmd = 'Foo', bang = false }, { output = true }))
+ api.nvim_create_user_command('Foo', 'echo "<bang>"', { bang = true })
+ eq('!', api.nvim_cmd({ cmd = 'Foo', bang = true }, { output = true }))
+ eq('', api.nvim_cmd({ cmd = 'Foo', bang = false }, { output = true }))
end)
it('works with modifiers', function()
-- with silent = true output is still captured
eq(
'1',
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'echomsg', args = { '1' }, mods = { silent = true } },
{ output = true }
)
)
-- but message isn't added to message history
- eq('', meths.nvim_cmd({ cmd = 'messages' }, { output = true }))
+ eq('', api.nvim_cmd({ cmd = 'messages' }, { output = true }))
- meths.nvim_create_user_command('Foo', 'set verbose', {})
- eq(' verbose=1', meths.nvim_cmd({ cmd = 'Foo', mods = { verbose = 1 } }, { output = true }))
+ api.nvim_create_user_command('Foo', 'set verbose', {})
+ eq(' verbose=1', api.nvim_cmd({ cmd = 'Foo', mods = { verbose = 1 } }, { output = true }))
- meths.nvim_create_user_command('Mods', "echo '<mods>'", {})
+ api.nvim_create_user_command('Mods', "echo '<mods>'", {})
eq(
'keepmarks keeppatterns silent 3verbose aboveleft horizontal',
- meths.nvim_cmd({
+ api.nvim_cmd({
cmd = 'Mods',
mods = {
horizontal = true,
@@ -4645,19 +4633,19 @@ describe('API', function()
},
}, { output = true })
)
- eq(0, meths.nvim_get_option_value('verbose', {}))
+ eq(0, api.nvim_get_option_value('verbose', {}))
command('edit foo.txt | edit bar.txt')
eq(
' 1 #h "foo.txt" line 1',
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'buffers', mods = { filter = { pattern = 'foo', force = false } } },
{ output = true }
)
)
eq(
' 2 %a "bar.txt" line 1',
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'buffers', mods = { filter = { pattern = 'foo', force = true } } },
{ output = true }
)
@@ -4665,10 +4653,10 @@ describe('API', function()
-- with emsg_silent = true error is suppressed
feed([[:lua vim.api.nvim_cmd({ cmd = 'call', mods = { emsg_silent = true } }, {})<CR>]])
- eq('', meths.nvim_cmd({ cmd = 'messages' }, { output = true }))
+ eq('', api.nvim_cmd({ cmd = 'messages' }, { output = true }))
-- error from the next command typed is not suppressed #21420
feed(':call<CR><CR>')
- eq('E471: Argument required', meths.nvim_cmd({ cmd = 'messages' }, { output = true }))
+ eq('E471: Argument required', api.nvim_cmd({ cmd = 'messages' }, { output = true }))
end)
it('works with magic.file', function()
exec_lua([[
@@ -4678,7 +4666,7 @@ describe('API', function()
]])
eq(
uv.cwd(),
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'Foo', args = { '%:p:h' }, magic = { file = true } },
{ output = true }
)
@@ -4690,24 +4678,24 @@ describe('API', function()
echo a:000
endfunction
]])
- meths.nvim_create_user_command('Foo', 'call FooFunc(<f-args>)', { nargs = '+' })
+ api.nvim_create_user_command('Foo', 'call FooFunc(<f-args>)', { nargs = '+' })
eq(
[=[['a quick', 'brown fox', 'jumps over the', 'lazy dog']]=],
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'Foo', args = { 'a quick', 'brown fox', 'jumps over the', 'lazy dog' } },
{ output = true }
)
)
eq(
[=[['test \ \\ \"""\', 'more\ tests\" ']]=],
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'Foo', args = { [[test \ \\ \"""\]], [[more\ tests\" ]] } },
{ output = true }
)
)
end)
it('splits arguments correctly for Lua callback', function()
- meths.nvim_exec_lua(
+ api.nvim_exec_lua(
[[
local function FooFunc(opts)
vim.print(opts.fargs)
@@ -4719,14 +4707,14 @@ describe('API', function()
)
eq(
[[{ "a quick", "brown fox", "jumps over the", "lazy dog" }]],
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'Foo', args = { 'a quick', 'brown fox', 'jumps over the', 'lazy dog' } },
{ output = true }
)
)
eq(
[[{ 'test \\ \\\\ \\"""\\', 'more\\ tests\\" ' }]],
- meths.nvim_cmd(
+ api.nvim_cmd(
{ cmd = 'Foo', args = { [[test \ \\ \"""\]], [[more\ tests\" ]] } },
{ output = true }
)
@@ -4734,13 +4722,13 @@ describe('API', function()
end)
it('works with buffer names', function()
command('edit foo.txt | edit bar.txt')
- meths.nvim_cmd({ cmd = 'buffer', args = { 'foo.txt' } }, {})
- eq('foo.txt', funcs.fnamemodify(meths.nvim_buf_get_name(0), ':t'))
- meths.nvim_cmd({ cmd = 'buffer', args = { 'bar.txt' } }, {})
- eq('bar.txt', funcs.fnamemodify(meths.nvim_buf_get_name(0), ':t'))
+ api.nvim_cmd({ cmd = 'buffer', args = { 'foo.txt' } }, {})
+ eq('foo.txt', fn.fnamemodify(api.nvim_buf_get_name(0), ':t'))
+ api.nvim_cmd({ cmd = 'buffer', args = { 'bar.txt' } }, {})
+ eq('bar.txt', fn.fnamemodify(api.nvim_buf_get_name(0), ':t'))
end)
it('triggers CmdUndefined event if command is not found', function()
- meths.nvim_exec_lua(
+ api.nvim_exec_lua(
[[
vim.api.nvim_create_autocmd("CmdUndefined",
{ pattern = "Foo",
@@ -4751,17 +4739,17 @@ describe('API', function()
]],
{}
)
- eq('foo', meths.nvim_cmd({ cmd = 'Foo' }, { output = true }))
+ eq('foo', api.nvim_cmd({ cmd = 'Foo' }, { output = true }))
end)
it('errors if command is not implemented', function()
- eq('Command not implemented: winpos', pcall_err(meths.nvim_cmd, { cmd = 'winpos' }, {}))
+ eq('Command not implemented: winpos', pcall_err(api.nvim_cmd, { cmd = 'winpos' }, {}))
end)
it('works with empty arguments list', function()
- meths.nvim_cmd({ cmd = 'update' }, {})
- meths.nvim_cmd({ cmd = 'buffer', count = 0 }, {})
+ api.nvim_cmd({ cmd = 'update' }, {})
+ api.nvim_cmd({ cmd = 'buffer', count = 0 }, {})
end)
it("doesn't suppress errors when used in keymapping", function()
- meths.nvim_exec_lua(
+ api.nvim_exec_lua(
[[
vim.keymap.set("n", "[l",
function() vim.api.nvim_cmd({ cmd = "echo", args = {"foo"} }, {}) end)
@@ -4772,31 +4760,31 @@ describe('API', function()
neq(nil, string.find(eval('v:errmsg'), 'E5108:'))
end)
it('handles 0 range #19608', function()
- meths.nvim_buf_set_lines(0, 0, -1, false, { 'aa' })
- meths.nvim_cmd({ cmd = 'delete', range = { 0 } }, {})
+ api.nvim_buf_set_lines(0, 0, -1, false, { 'aa' })
+ api.nvim_cmd({ cmd = 'delete', range = { 0 } }, {})
command('undo')
- eq({ 'aa' }, meths.nvim_buf_get_lines(0, 0, 1, false))
+ eq({ 'aa' }, api.nvim_buf_get_lines(0, 0, 1, false))
assert_alive()
end)
it('supports filename expansion', function()
- meths.nvim_cmd({ cmd = 'argadd', args = { '%:p:h:t', '%:p:h:t' } }, {})
- local arg = funcs.expand('%:p:h:t')
- eq({ arg, arg }, funcs.argv())
+ api.nvim_cmd({ cmd = 'argadd', args = { '%:p:h:t', '%:p:h:t' } }, {})
+ local arg = fn.expand('%:p:h:t')
+ eq({ arg, arg }, fn.argv())
end)
it("'make' command works when argument count isn't 1 #19696", function()
command('set makeprg=echo')
command('set shellquote=')
- matches('^:!echo ', meths.nvim_cmd({ cmd = 'make' }, { output = true }))
+ matches('^:!echo ', api.nvim_cmd({ cmd = 'make' }, { output = true }))
assert_alive()
matches(
'^:!echo foo bar',
- meths.nvim_cmd({ cmd = 'make', args = { 'foo', 'bar' } }, { output = true })
+ api.nvim_cmd({ cmd = 'make', args = { 'foo', 'bar' } }, { output = true })
)
assert_alive()
- local arg_pesc = pesc(funcs.expand('%:p:h:t'))
+ local arg_pesc = pesc(fn.expand('%:p:h:t'))
matches(
('^:!echo %s %s'):format(arg_pesc, arg_pesc),
- meths.nvim_cmd({ cmd = 'make', args = { '%:p:h:t', '%:p:h:t' } }, { output = true })
+ api.nvim_cmd({ cmd = 'make', args = { '%:p:h:t', '%:p:h:t' } }, { output = true })
)
assert_alive()
end)
@@ -4806,7 +4794,7 @@ describe('API', function()
screen:set_default_attr_ids({
[0] = { bold = true, foreground = Screen.colors.Blue },
})
- meths.nvim_cmd({ cmd = 'echo', args = { [['hello']] } }, { output = true })
+ api.nvim_cmd({ cmd = 'echo', args = { [['hello']] } }, { output = true })
screen:expect {
grid = [[
^ |
@@ -4829,29 +4817,29 @@ describe('API', function()
}
end)
it('works with non-String args', function()
- eq('2', meths.nvim_cmd({ cmd = 'echo', args = { 2 } }, { output = true }))
- eq('1', meths.nvim_cmd({ cmd = 'echo', args = { true } }, { output = true }))
+ eq('2', api.nvim_cmd({ cmd = 'echo', args = { 2 } }, { output = true }))
+ eq('1', api.nvim_cmd({ cmd = 'echo', args = { true } }, { output = true }))
end)
describe('first argument as count', function()
it('works', function()
command('vsplit | enew')
- meths.nvim_cmd({ cmd = 'bdelete', args = { meths.nvim_get_current_buf() } }, {})
- eq(1, meths.nvim_get_current_buf().id)
+ api.nvim_cmd({ cmd = 'bdelete', args = { api.nvim_get_current_buf() } }, {})
+ eq(1, api.nvim_get_current_buf().id)
end)
it('works with :sleep using milliseconds', function()
local start = uv.now()
- meths.nvim_cmd({ cmd = 'sleep', args = { '100m' } }, {})
+ api.nvim_cmd({ cmd = 'sleep', args = { '100m' } }, {})
ok(uv.now() - start <= 300)
end)
end)
it(':call with unknown function does not crash #26289', function()
eq(
'Vim:E117: Unknown function: UnknownFunc',
- pcall_err(meths.nvim_cmd, { cmd = 'call', args = { 'UnknownFunc()' } }, {})
+ pcall_err(api.nvim_cmd, { cmd = 'call', args = { 'UnknownFunc()' } }, {})
)
end)
it(':throw does not crash #24556', function()
- eq('42', pcall_err(meths.nvim_cmd, { cmd = 'throw', args = { '42' } }, {}))
+ eq('42', pcall_err(api.nvim_cmd, { cmd = 'throw', args = { '42' } }, {}))
end)
it('can use :return #24556', function()
exec([[
@@ -4862,8 +4850,8 @@ describe('API', function()
endfunc
let g:result = Foo()
]])
- eq('before', meths.nvim_get_var('pos'))
- eq({ 1, 2, 3 }, meths.nvim_get_var('result'))
+ eq('before', api.nvim_get_var('pos'))
+ eq({ 1, 2, 3 }, api.nvim_get_var('result'))
end)
end)
end)
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index 87aa0ca2a8..d30a6460a6 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -2,9 +2,9 @@ local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear, curbuf, curbuf_contents, curwin, eq, neq, ok, feed, insert, eval =
helpers.clear,
- helpers.meths.nvim_get_current_buf,
+ helpers.api.nvim_get_current_buf,
helpers.curbuf_contents,
- helpers.meths.nvim_get_current_win,
+ helpers.api.nvim_get_current_win,
helpers.eq,
helpers.neq,
helpers.ok,
@@ -13,10 +13,10 @@ local clear, curbuf, curbuf_contents, curwin, eq, neq, ok, feed, insert, eval =
helpers.eval
local poke_eventloop = helpers.poke_eventloop
local exec = helpers.exec
-local funcs = helpers.funcs
+local fn = helpers.fn
local request = helpers.request
local NIL = vim.NIL
-local meths = helpers.meths
+local api = helpers.api
local command = helpers.command
local pcall_err = helpers.pcall_err
local assert_alive = helpers.assert_alive
@@ -26,13 +26,13 @@ describe('API/win', function()
describe('get_buf', function()
it('works', function()
- eq(curbuf(), meths.nvim_win_get_buf(meths.nvim_list_wins()[1]))
+ eq(curbuf(), api.nvim_win_get_buf(api.nvim_list_wins()[1]))
command('new')
- meths.nvim_set_current_win(meths.nvim_list_wins()[2])
- eq(curbuf(), meths.nvim_win_get_buf(meths.nvim_list_wins()[2]))
+ api.nvim_set_current_win(api.nvim_list_wins()[2])
+ eq(curbuf(), api.nvim_win_get_buf(api.nvim_list_wins()[2]))
neq(
- meths.nvim_win_get_buf(meths.nvim_list_wins()[1]),
- meths.nvim_win_get_buf(meths.nvim_list_wins()[2])
+ api.nvim_win_get_buf(api.nvim_list_wins()[1]),
+ api.nvim_win_get_buf(api.nvim_list_wins()[2])
)
end)
end)
@@ -40,27 +40,21 @@ describe('API/win', function()
describe('set_buf', function()
it('works', function()
command('new')
- local windows = meths.nvim_list_wins()
- neq(meths.nvim_win_get_buf(windows[2]), meths.nvim_win_get_buf(windows[1]))
- meths.nvim_win_set_buf(windows[2], meths.nvim_win_get_buf(windows[1]))
- eq(meths.nvim_win_get_buf(windows[2]), meths.nvim_win_get_buf(windows[1]))
+ local windows = api.nvim_list_wins()
+ neq(api.nvim_win_get_buf(windows[2]), api.nvim_win_get_buf(windows[1]))
+ api.nvim_win_set_buf(windows[2], api.nvim_win_get_buf(windows[1]))
+ eq(api.nvim_win_get_buf(windows[2]), api.nvim_win_get_buf(windows[1]))
end)
it('validates args', function()
- eq(
- 'Invalid buffer id: 23',
- pcall_err(meths.nvim_win_set_buf, meths.nvim_get_current_win(), 23)
- )
- eq(
- 'Invalid window id: 23',
- pcall_err(meths.nvim_win_set_buf, 23, meths.nvim_get_current_buf())
- )
+ eq('Invalid buffer id: 23', pcall_err(api.nvim_win_set_buf, api.nvim_get_current_win(), 23))
+ eq('Invalid window id: 23', pcall_err(api.nvim_win_set_buf, 23, api.nvim_get_current_buf()))
end)
it('disallowed in cmdwin if win={old_}curwin or buf=curbuf', function()
- local new_buf = meths.nvim_create_buf(true, true)
- local old_win = meths.nvim_get_current_win()
- local new_win = meths.nvim_open_win(new_buf, false, {
+ local new_buf = api.nvim_create_buf(true, true)
+ local old_win = api.nvim_get_current_win()
+ local new_win = api.nvim_open_win(new_buf, false, {
relative = 'editor',
row = 10,
col = 10,
@@ -70,36 +64,36 @@ describe('API/win', function()
feed('q:')
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_win_set_buf, 0, new_buf)
+ pcall_err(api.nvim_win_set_buf, 0, new_buf)
)
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_win_set_buf, old_win, new_buf)
+ pcall_err(api.nvim_win_set_buf, old_win, new_buf)
)
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_win_set_buf, new_win, 0)
+ pcall_err(api.nvim_win_set_buf, new_win, 0)
)
- local next_buf = meths.nvim_create_buf(true, true)
- meths.nvim_win_set_buf(new_win, next_buf)
- eq(next_buf, meths.nvim_win_get_buf(new_win))
+ local next_buf = api.nvim_create_buf(true, true)
+ api.nvim_win_set_buf(new_win, next_buf)
+ eq(next_buf, api.nvim_win_get_buf(new_win))
end)
end)
describe('{get,set}_cursor', function()
it('works', function()
- eq({ 1, 0 }, meths.nvim_win_get_cursor(0))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(0))
command('normal ityping\027o some text')
eq('typing\n some text', curbuf_contents())
- eq({ 2, 10 }, meths.nvim_win_get_cursor(0))
- meths.nvim_win_set_cursor(0, { 2, 6 })
+ eq({ 2, 10 }, api.nvim_win_get_cursor(0))
+ api.nvim_win_set_cursor(0, { 2, 6 })
command('normal i dumb')
eq('typing\n some dumb text', curbuf_contents())
end)
it('does not leak memory when using invalid window ID with invalid pos', function()
- eq('Invalid window id: 1', pcall_err(meths.nvim_win_set_cursor, 1, { 'b\na' }))
+ eq('Invalid window id: 1', pcall_err(api.nvim_win_set_cursor, 1, { 'b\na' }))
end)
it('updates the screen, and also when the window is unfocused', function()
@@ -124,10 +118,10 @@ describe('API/win', function()
]],
}
-- cursor position is at beginning
- eq({ 1, 0 }, meths.nvim_win_get_cursor(win))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(win))
-- move cursor to end
- meths.nvim_win_set_cursor(win, { 101, 0 })
+ api.nvim_win_set_cursor(win, { 101, 0 })
screen:expect {
grid = [[
|*7
@@ -137,7 +131,7 @@ describe('API/win', function()
}
-- move cursor to the beginning again
- meths.nvim_win_set_cursor(win, { 1, 0 })
+ api.nvim_win_set_cursor(win, { 1, 0 })
screen:expect {
grid = [[
^prologue |
@@ -150,7 +144,7 @@ describe('API/win', function()
neq(win, curwin())
-- sanity check, cursor position is kept
- eq({ 1, 0 }, meths.nvim_win_get_cursor(win))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(win))
screen:expect {
grid = [[
^ |
@@ -164,7 +158,7 @@ describe('API/win', function()
}
-- move cursor to end
- meths.nvim_win_set_cursor(win, { 101, 0 })
+ api.nvim_win_set_cursor(win, { 101, 0 })
screen:expect {
grid = [[
^ |
@@ -178,7 +172,7 @@ describe('API/win', function()
}
-- move cursor to the beginning again
- meths.nvim_win_set_cursor(win, { 1, 0 })
+ api.nvim_win_set_cursor(win, { 1, 0 })
screen:expect {
grid = [[
^ |
@@ -205,17 +199,17 @@ describe('API/win', function()
-- cursor position is at beginning
local win = curwin()
- eq({ 1, 0 }, meths.nvim_win_get_cursor(win))
+ eq({ 1, 0 }, api.nvim_win_get_cursor(win))
-- move cursor to column 5
- meths.nvim_win_set_cursor(win, { 1, 5 })
+ api.nvim_win_set_cursor(win, { 1, 5 })
-- move down a line
feed('j')
poke_eventloop() -- let nvim process the 'j' command
-- cursor is still in column 5
- eq({ 2, 5 }, meths.nvim_win_get_cursor(win))
+ eq({ 2, 5 }, api.nvim_win_get_cursor(win))
end)
it('updates cursorline and statusline ruler in non-current window', function()
@@ -245,7 +239,7 @@ describe('API/win', function()
{3:[No Name] [+] 4,3 All }{4:[No Name] [+] 4,3 All}|
|
]])
- meths.nvim_win_set_cursor(oldwin, { 1, 0 })
+ api.nvim_win_set_cursor(oldwin, { 1, 0 })
screen:expect([[
aaa │{2:aaa }|
bbb │bbb |
@@ -283,7 +277,7 @@ describe('API/win', function()
{3:[No Name] [+] }{4:[No Name] [+] }|
|
]])
- meths.nvim_win_set_cursor(oldwin, { 2, 0 })
+ api.nvim_win_set_cursor(oldwin, { 2, 0 })
screen:expect([[
aa{2:a} │{2:a}aa |
bb{2:b} │bbb |
@@ -300,33 +294,33 @@ describe('API/win', function()
it('works', function()
command('vsplit')
eq(
- meths.nvim_win_get_height(meths.nvim_list_wins()[2]),
- meths.nvim_win_get_height(meths.nvim_list_wins()[1])
+ api.nvim_win_get_height(api.nvim_list_wins()[2]),
+ api.nvim_win_get_height(api.nvim_list_wins()[1])
)
- meths.nvim_set_current_win(meths.nvim_list_wins()[2])
+ api.nvim_set_current_win(api.nvim_list_wins()[2])
command('split')
eq(
- meths.nvim_win_get_height(meths.nvim_list_wins()[2]),
- math.floor(meths.nvim_win_get_height(meths.nvim_list_wins()[1]) / 2)
+ api.nvim_win_get_height(api.nvim_list_wins()[2]),
+ math.floor(api.nvim_win_get_height(api.nvim_list_wins()[1]) / 2)
)
- meths.nvim_win_set_height(meths.nvim_list_wins()[2], 2)
- eq(2, meths.nvim_win_get_height(meths.nvim_list_wins()[2]))
+ api.nvim_win_set_height(api.nvim_list_wins()[2], 2)
+ eq(2, api.nvim_win_get_height(api.nvim_list_wins()[2]))
end)
it('correctly handles height=1', function()
command('split')
- meths.nvim_set_current_win(meths.nvim_list_wins()[1])
- meths.nvim_win_set_height(meths.nvim_list_wins()[2], 1)
- eq(1, meths.nvim_win_get_height(meths.nvim_list_wins()[2]))
+ api.nvim_set_current_win(api.nvim_list_wins()[1])
+ api.nvim_win_set_height(api.nvim_list_wins()[2], 1)
+ eq(1, api.nvim_win_get_height(api.nvim_list_wins()[2]))
end)
it('correctly handles height=1 with a winbar', function()
command('set winbar=foobar')
command('set winminheight=0')
command('split')
- meths.nvim_set_current_win(meths.nvim_list_wins()[1])
- meths.nvim_win_set_height(meths.nvim_list_wins()[2], 1)
- eq(1, meths.nvim_win_get_height(meths.nvim_list_wins()[2]))
+ api.nvim_set_current_win(api.nvim_list_wins()[1])
+ api.nvim_win_set_height(api.nvim_list_wins()[2], 1)
+ eq(1, api.nvim_win_get_height(api.nvim_list_wins()[2]))
end)
it('do not cause ml_get errors with foldmethod=expr #19989', function()
@@ -342,7 +336,7 @@ describe('API/win', function()
call nvim_win_set_height(w, 5)
]])
feed('l')
- eq('', meths.nvim_get_vvar('errmsg'))
+ eq('', api.nvim_get_vvar('errmsg'))
end)
end)
@@ -350,17 +344,17 @@ describe('API/win', function()
it('works', function()
command('split')
eq(
- meths.nvim_win_get_width(meths.nvim_list_wins()[2]),
- meths.nvim_win_get_width(meths.nvim_list_wins()[1])
+ api.nvim_win_get_width(api.nvim_list_wins()[2]),
+ api.nvim_win_get_width(api.nvim_list_wins()[1])
)
- meths.nvim_set_current_win(meths.nvim_list_wins()[2])
+ api.nvim_set_current_win(api.nvim_list_wins()[2])
command('vsplit')
eq(
- meths.nvim_win_get_width(meths.nvim_list_wins()[2]),
- math.floor(meths.nvim_win_get_width(meths.nvim_list_wins()[1]) / 2)
+ api.nvim_win_get_width(api.nvim_list_wins()[2]),
+ math.floor(api.nvim_win_get_width(api.nvim_list_wins()[1]) / 2)
)
- meths.nvim_win_set_width(meths.nvim_list_wins()[2], 2)
- eq(2, meths.nvim_win_get_width(meths.nvim_list_wins()[2]))
+ api.nvim_win_set_width(api.nvim_list_wins()[2], 2)
+ eq(2, api.nvim_win_get_width(api.nvim_list_wins()[2]))
end)
it('do not cause ml_get errors with foldmethod=expr #19989', function()
@@ -376,23 +370,23 @@ describe('API/win', function()
call nvim_win_set_width(w, 5)
]])
feed('l')
- eq('', meths.nvim_get_vvar('errmsg'))
+ eq('', api.nvim_get_vvar('errmsg'))
end)
end)
describe('{get,set,del}_var', function()
it('works', function()
- meths.nvim_win_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_win_get_var(0, 'lua'))
- eq({ 1, 2, { ['3'] = 1 } }, meths.nvim_eval('w:lua'))
- eq(1, funcs.exists('w:lua'))
- meths.nvim_win_del_var(0, 'lua')
- eq(0, funcs.exists('w:lua'))
- eq('Key not found: lua', pcall_err(meths.nvim_win_del_var, 0, 'lua'))
- meths.nvim_win_set_var(0, 'lua', 1)
+ api.nvim_win_set_var(0, 'lua', { 1, 2, { ['3'] = 1 } })
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_win_get_var(0, 'lua'))
+ eq({ 1, 2, { ['3'] = 1 } }, api.nvim_eval('w:lua'))
+ eq(1, fn.exists('w:lua'))
+ api.nvim_win_del_var(0, 'lua')
+ eq(0, fn.exists('w:lua'))
+ eq('Key not found: lua', pcall_err(api.nvim_win_del_var, 0, 'lua'))
+ api.nvim_win_set_var(0, 'lua', 1)
command('lockvar w:lua')
- eq('Key is locked: lua', pcall_err(meths.nvim_win_del_var, 0, 'lua'))
- eq('Key is locked: lua', pcall_err(meths.nvim_win_set_var, 0, 'lua', 1))
+ eq('Key is locked: lua', pcall_err(api.nvim_win_del_var, 0, 'lua'))
+ eq('Key is locked: lua', pcall_err(api.nvim_win_set_var, 0, 'lua', 1))
end)
it('window_set_var returns the old value', function()
@@ -413,51 +407,51 @@ describe('API/win', function()
describe('nvim_get_option_value, nvim_set_option_value', function()
it('works', function()
- meths.nvim_set_option_value('colorcolumn', '4,3', {})
- eq('4,3', meths.nvim_get_option_value('colorcolumn', {}))
+ api.nvim_set_option_value('colorcolumn', '4,3', {})
+ eq('4,3', api.nvim_get_option_value('colorcolumn', {}))
command('set modified hidden')
command('enew') -- edit new buffer, window option is preserved
- eq('4,3', meths.nvim_get_option_value('colorcolumn', {}))
+ eq('4,3', api.nvim_get_option_value('colorcolumn', {}))
-- global-local option
- meths.nvim_set_option_value('statusline', 'window-status', { win = 0 })
- eq('window-status', meths.nvim_get_option_value('statusline', { win = 0 }))
- eq('', meths.nvim_get_option_value('statusline', { scope = 'global' }))
+ api.nvim_set_option_value('statusline', 'window-status', { win = 0 })
+ eq('window-status', api.nvim_get_option_value('statusline', { win = 0 }))
+ eq('', api.nvim_get_option_value('statusline', { scope = 'global' }))
command('set modified')
command('enew') -- global-local: not preserved in new buffer
-- confirm local value was not copied
- eq('', meths.nvim_get_option_value('statusline', { win = 0 }))
+ eq('', api.nvim_get_option_value('statusline', { win = 0 }))
eq('', eval('&l:statusline'))
end)
it('after switching windows #15390', function()
command('tabnew')
- local tab1 = unpack(meths.nvim_list_tabpages())
- local win1 = unpack(meths.nvim_tabpage_list_wins(tab1))
- meths.nvim_set_option_value('statusline', 'window-status', { win = win1.id })
+ local tab1 = unpack(api.nvim_list_tabpages())
+ local win1 = unpack(api.nvim_tabpage_list_wins(tab1))
+ api.nvim_set_option_value('statusline', 'window-status', { win = win1.id })
command('split')
command('wincmd J')
command('wincmd j')
- eq('window-status', meths.nvim_get_option_value('statusline', { win = win1.id }))
+ eq('window-status', api.nvim_get_option_value('statusline', { win = win1.id }))
assert_alive()
end)
it('returns values for unset local options', function()
- eq(-1, meths.nvim_get_option_value('scrolloff', { win = 0, scope = 'local' }))
+ eq(-1, api.nvim_get_option_value('scrolloff', { win = 0, scope = 'local' }))
end)
end)
describe('get_position', function()
it('works', function()
- local height = meths.nvim_win_get_height(meths.nvim_list_wins()[1])
- local width = meths.nvim_win_get_width(meths.nvim_list_wins()[1])
+ local height = api.nvim_win_get_height(api.nvim_list_wins()[1])
+ local width = api.nvim_win_get_width(api.nvim_list_wins()[1])
command('split')
command('vsplit')
- eq({ 0, 0 }, meths.nvim_win_get_position(meths.nvim_list_wins()[1]))
+ eq({ 0, 0 }, api.nvim_win_get_position(api.nvim_list_wins()[1]))
local vsplit_pos = math.floor(width / 2)
local split_pos = math.floor(height / 2)
- local win2row, win2col = unpack(meths.nvim_win_get_position(meths.nvim_list_wins()[2]))
- local win3row, win3col = unpack(meths.nvim_win_get_position(meths.nvim_list_wins()[3]))
+ local win2row, win2col = unpack(api.nvim_win_get_position(api.nvim_list_wins()[2]))
+ local win3row, win3col = unpack(api.nvim_win_get_position(api.nvim_list_wins()[3]))
eq(0, win2row)
eq(0, win3col)
ok(vsplit_pos - 1 <= win2col and win2col <= vsplit_pos + 1)
@@ -469,91 +463,91 @@ describe('API/win', function()
it('works', function()
command('tabnew')
command('vsplit')
- eq(meths.nvim_win_get_tabpage(meths.nvim_list_wins()[1]), meths.nvim_list_tabpages()[1])
- eq(meths.nvim_win_get_tabpage(meths.nvim_list_wins()[2]), meths.nvim_list_tabpages()[2])
- eq(meths.nvim_win_get_tabpage(meths.nvim_list_wins()[3]), meths.nvim_list_tabpages()[2])
+ eq(api.nvim_win_get_tabpage(api.nvim_list_wins()[1]), api.nvim_list_tabpages()[1])
+ eq(api.nvim_win_get_tabpage(api.nvim_list_wins()[2]), api.nvim_list_tabpages()[2])
+ eq(api.nvim_win_get_tabpage(api.nvim_list_wins()[3]), api.nvim_list_tabpages()[2])
end)
end)
describe('get_number', function()
it('works', function()
- local wins = meths.nvim_list_wins()
- eq(1, meths.nvim_win_get_number(wins[1]))
+ local wins = api.nvim_list_wins()
+ eq(1, api.nvim_win_get_number(wins[1]))
command('split')
- local win1, win2 = unpack(meths.nvim_list_wins())
- eq(1, meths.nvim_win_get_number(win1))
- eq(2, meths.nvim_win_get_number(win2))
+ local win1, win2 = unpack(api.nvim_list_wins())
+ eq(1, api.nvim_win_get_number(win1))
+ eq(2, api.nvim_win_get_number(win2))
command('wincmd J')
- eq(2, meths.nvim_win_get_number(win1))
- eq(1, meths.nvim_win_get_number(win2))
+ eq(2, api.nvim_win_get_number(win1))
+ eq(1, api.nvim_win_get_number(win2))
command('tabnew')
- local win3 = meths.nvim_list_wins()[3]
+ local win3 = api.nvim_list_wins()[3]
-- First tab page
- eq(2, meths.nvim_win_get_number(win1))
- eq(1, meths.nvim_win_get_number(win2))
+ eq(2, api.nvim_win_get_number(win1))
+ eq(1, api.nvim_win_get_number(win2))
-- Second tab page
- eq(1, meths.nvim_win_get_number(win3))
+ eq(1, api.nvim_win_get_number(win3))
end)
end)
describe('is_valid', function()
it('works', function()
command('split')
- local win = meths.nvim_list_wins()[2]
- meths.nvim_set_current_win(win)
- ok(meths.nvim_win_is_valid(win))
+ local win = api.nvim_list_wins()[2]
+ api.nvim_set_current_win(win)
+ ok(api.nvim_win_is_valid(win))
command('close')
- ok(not meths.nvim_win_is_valid(win))
+ ok(not api.nvim_win_is_valid(win))
end)
end)
describe('close', function()
it('can close current window', function()
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
command('split')
- local newwin = meths.nvim_get_current_win()
- meths.nvim_win_close(newwin, false)
- eq({ oldwin }, meths.nvim_list_wins())
+ local newwin = api.nvim_get_current_win()
+ api.nvim_win_close(newwin, false)
+ eq({ oldwin }, api.nvim_list_wins())
end)
it('can close noncurrent window', function()
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
command('split')
- local newwin = meths.nvim_get_current_win()
- meths.nvim_win_close(oldwin, false)
- eq({ newwin }, meths.nvim_list_wins())
+ local newwin = api.nvim_get_current_win()
+ api.nvim_win_close(oldwin, false)
+ eq({ newwin }, api.nvim_list_wins())
end)
it("handles changed buffer when 'hidden' is unset", function()
command('set nohidden')
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
insert('text')
command('new')
- local newwin = meths.nvim_get_current_win()
+ local newwin = api.nvim_get_current_win()
eq(
'Vim:E37: No write since last change (add ! to override)',
- pcall_err(meths.nvim_win_close, oldwin, false)
+ pcall_err(api.nvim_win_close, oldwin, false)
)
- eq({ newwin, oldwin }, meths.nvim_list_wins())
+ eq({ newwin, oldwin }, api.nvim_list_wins())
end)
it('handles changed buffer with force', function()
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
insert('text')
command('new')
- local newwin = meths.nvim_get_current_win()
- meths.nvim_win_close(oldwin, true)
- eq({ newwin }, meths.nvim_list_wins())
+ local newwin = api.nvim_get_current_win()
+ api.nvim_win_close(oldwin, true)
+ eq({ newwin }, api.nvim_list_wins())
end)
it('in cmdline-window #9767', function()
command('split')
- eq(2, #meths.nvim_list_wins())
- local oldwin = meths.nvim_get_current_win()
- local otherwin = meths.nvim_open_win(0, false, {
+ eq(2, #api.nvim_list_wins())
+ local oldwin = api.nvim_get_current_win()
+ local otherwin = api.nvim_open_win(0, false, {
relative = 'editor',
row = 10,
col = 10,
@@ -562,20 +556,20 @@ describe('API/win', function()
})
-- Open cmdline-window.
feed('q:')
- eq(4, #meths.nvim_list_wins())
- eq(':', funcs.getcmdwintype())
+ eq(4, #api.nvim_list_wins())
+ eq(':', fn.getcmdwintype())
-- Not allowed to close previous window from cmdline-window.
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_win_close, oldwin, true)
+ pcall_err(api.nvim_win_close, oldwin, true)
)
-- Closing other windows is fine.
- meths.nvim_win_close(otherwin, true)
- eq(false, meths.nvim_win_is_valid(otherwin))
+ api.nvim_win_close(otherwin, true)
+ eq(false, api.nvim_win_is_valid(otherwin))
-- Close cmdline-window.
- meths.nvim_win_close(0, true)
- eq(2, #meths.nvim_list_wins())
- eq('', funcs.getcmdwintype())
+ api.nvim_win_close(0, true)
+ eq(2, #api.nvim_list_wins())
+ eq('', fn.getcmdwintype())
end)
it('closing current (float) window of another tabpage #15313', function()
@@ -583,7 +577,7 @@ describe('API/win', function()
command('botright split')
local prevwin = curwin().id
eq(2, eval('tabpagenr()'))
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
relative = 'editor',
row = 10,
col = 10,
@@ -593,67 +587,67 @@ describe('API/win', function()
local tab = eval('tabpagenr()')
command('tabprevious')
eq(1, eval('tabpagenr()'))
- meths.nvim_win_close(win, false)
+ api.nvim_win_close(win, false)
- eq(prevwin, meths.nvim_tabpage_get_win(tab).id)
+ eq(prevwin, api.nvim_tabpage_get_win(tab).id)
assert_alive()
end)
end)
describe('hide', function()
it('can hide current window', function()
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
command('split')
- local newwin = meths.nvim_get_current_win()
- meths.nvim_win_hide(newwin)
- eq({ oldwin }, meths.nvim_list_wins())
+ local newwin = api.nvim_get_current_win()
+ api.nvim_win_hide(newwin)
+ eq({ oldwin }, api.nvim_list_wins())
end)
it('can hide noncurrent window', function()
- local oldwin = meths.nvim_get_current_win()
+ local oldwin = api.nvim_get_current_win()
command('split')
- local newwin = meths.nvim_get_current_win()
- meths.nvim_win_hide(oldwin)
- eq({ newwin }, meths.nvim_list_wins())
+ local newwin = api.nvim_get_current_win()
+ api.nvim_win_hide(oldwin)
+ eq({ newwin }, api.nvim_list_wins())
end)
it('does not close the buffer', function()
- local oldwin = meths.nvim_get_current_win()
- local oldbuf = meths.nvim_get_current_buf()
- local buf = meths.nvim_create_buf(true, false)
- local newwin = meths.nvim_open_win(buf, true, {
+ local oldwin = api.nvim_get_current_win()
+ local oldbuf = api.nvim_get_current_buf()
+ local buf = api.nvim_create_buf(true, false)
+ local newwin = api.nvim_open_win(buf, true, {
relative = 'win',
row = 3,
col = 3,
width = 12,
height = 3,
})
- meths.nvim_win_hide(newwin)
- eq({ oldwin }, meths.nvim_list_wins())
- eq({ oldbuf, buf }, meths.nvim_list_bufs())
+ api.nvim_win_hide(newwin)
+ eq({ oldwin }, api.nvim_list_wins())
+ eq({ oldbuf, buf }, api.nvim_list_bufs())
end)
it('deletes the buffer when bufhidden=wipe', function()
- local oldwin = meths.nvim_get_current_win()
- local oldbuf = meths.nvim_get_current_buf()
- local buf = meths.nvim_create_buf(true, false).id
- local newwin = meths.nvim_open_win(buf, true, {
+ local oldwin = api.nvim_get_current_win()
+ local oldbuf = api.nvim_get_current_buf()
+ local buf = api.nvim_create_buf(true, false).id
+ local newwin = api.nvim_open_win(buf, true, {
relative = 'win',
row = 3,
col = 3,
width = 12,
height = 3,
})
- meths.nvim_set_option_value('bufhidden', 'wipe', { buf = buf })
- meths.nvim_win_hide(newwin)
- eq({ oldwin }, meths.nvim_list_wins())
- eq({ oldbuf }, meths.nvim_list_bufs())
+ api.nvim_set_option_value('bufhidden', 'wipe', { buf = buf })
+ api.nvim_win_hide(newwin)
+ eq({ oldwin }, api.nvim_list_wins())
+ eq({ oldbuf }, api.nvim_list_bufs())
end)
it('in the cmdwin', function()
feed('q:')
-- Can close the cmdwin.
- meths.nvim_win_hide(0)
- eq('', funcs.getcmdwintype())
+ api.nvim_win_hide(0)
+ eq('', fn.getcmdwintype())
- local old_win = meths.nvim_get_current_win()
- local other_win = meths.nvim_open_win(0, false, {
+ local old_win = api.nvim_get_current_win()
+ local other_win = api.nvim_open_win(0, false, {
relative = 'win',
row = 3,
col = 3,
@@ -664,60 +658,60 @@ describe('API/win', function()
-- Cannot close the previous window.
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_win_hide, old_win)
+ pcall_err(api.nvim_win_hide, old_win)
)
-- Can close other windows.
- meths.nvim_win_hide(other_win)
- eq(false, meths.nvim_win_is_valid(other_win))
+ api.nvim_win_hide(other_win)
+ eq(false, api.nvim_win_is_valid(other_win))
end)
end)
describe('text_height', function()
it('validation', function()
- local X = meths.nvim_get_vvar('maxcol')
+ local X = api.nvim_get_vvar('maxcol')
insert([[
aaa
bbb
ccc
ddd
eee]])
- eq('Invalid window id: 23', pcall_err(meths.nvim_win_text_height, 23, {}))
- eq('Line index out of bounds', pcall_err(meths.nvim_win_text_height, 0, { start_row = 5 }))
- eq('Line index out of bounds', pcall_err(meths.nvim_win_text_height, 0, { start_row = -6 }))
- eq('Line index out of bounds', pcall_err(meths.nvim_win_text_height, 0, { end_row = 5 }))
- eq('Line index out of bounds', pcall_err(meths.nvim_win_text_height, 0, { end_row = -6 }))
+ eq('Invalid window id: 23', pcall_err(api.nvim_win_text_height, 23, {}))
+ eq('Line index out of bounds', pcall_err(api.nvim_win_text_height, 0, { start_row = 5 }))
+ eq('Line index out of bounds', pcall_err(api.nvim_win_text_height, 0, { start_row = -6 }))
+ eq('Line index out of bounds', pcall_err(api.nvim_win_text_height, 0, { end_row = 5 }))
+ eq('Line index out of bounds', pcall_err(api.nvim_win_text_height, 0, { end_row = -6 }))
eq(
"'start_row' is higher than 'end_row'",
- pcall_err(meths.nvim_win_text_height, 0, { start_row = 3, end_row = 1 })
+ pcall_err(api.nvim_win_text_height, 0, { start_row = 3, end_row = 1 })
)
eq(
"'start_vcol' specified without 'start_row'",
- pcall_err(meths.nvim_win_text_height, 0, { end_row = 2, start_vcol = 0 })
+ pcall_err(api.nvim_win_text_height, 0, { end_row = 2, start_vcol = 0 })
)
eq(
"'end_vcol' specified without 'end_row'",
- pcall_err(meths.nvim_win_text_height, 0, { start_row = 2, end_vcol = 0 })
+ pcall_err(api.nvim_win_text_height, 0, { start_row = 2, end_vcol = 0 })
)
eq(
"Invalid 'start_vcol': out of range",
- pcall_err(meths.nvim_win_text_height, 0, { start_row = 2, start_vcol = -1 })
+ pcall_err(api.nvim_win_text_height, 0, { start_row = 2, start_vcol = -1 })
)
eq(
"Invalid 'start_vcol': out of range",
- pcall_err(meths.nvim_win_text_height, 0, { start_row = 2, start_vcol = X + 1 })
+ pcall_err(api.nvim_win_text_height, 0, { start_row = 2, start_vcol = X + 1 })
)
eq(
"Invalid 'end_vcol': out of range",
- pcall_err(meths.nvim_win_text_height, 0, { end_row = 2, end_vcol = -1 })
+ pcall_err(api.nvim_win_text_height, 0, { end_row = 2, end_vcol = -1 })
)
eq(
"Invalid 'end_vcol': out of range",
- pcall_err(meths.nvim_win_text_height, 0, { end_row = 2, end_vcol = X + 1 })
+ pcall_err(api.nvim_win_text_height, 0, { end_row = 2, end_vcol = X + 1 })
)
eq(
"'start_vcol' is higher than 'end_vcol'",
pcall_err(
- meths.nvim_win_text_height,
+ api.nvim_win_text_height,
0,
{ start_row = 2, end_row = 2, start_vcol = 10, end_vcol = 5 }
)
@@ -725,7 +719,7 @@ describe('API/win', function()
end)
it('with two diff windows', function()
- local X = meths.nvim_get_vvar('maxcol')
+ local X = api.nvim_get_vvar('maxcol')
local screen = Screen.new(45, 22)
screen:set_default_attr_ids({
[0] = { foreground = Screen.colors.Blue1, bold = true },
@@ -787,80 +781,71 @@ describe('API/win', function()
|
]],
}
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1000, {}))
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1001, {}))
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1000, { start_row = 0 }))
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1001, { start_row = 0 }))
- eq({ all = 15, fill = 0 }, meths.nvim_win_text_height(1000, { end_row = -1 }))
- eq({ all = 15, fill = 0 }, meths.nvim_win_text_height(1000, { end_row = 40 }))
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1001, { end_row = -1 }))
- eq({ all = 20, fill = 5 }, meths.nvim_win_text_height(1001, { end_row = 40 }))
- eq({ all = 10, fill = 5 }, meths.nvim_win_text_height(1000, { start_row = 23 }))
- eq({ all = 13, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 18 }))
- eq({ all = 11, fill = 0 }, meths.nvim_win_text_height(1000, { end_row = 23 }))
- eq({ all = 11, fill = 5 }, meths.nvim_win_text_height(1001, { end_row = 18 }))
- eq({ all = 11, fill = 0 }, meths.nvim_win_text_height(1000, { start_row = 3, end_row = 39 }))
- eq({ all = 11, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 1, end_row = 34 }))
- eq({ all = 9, fill = 0 }, meths.nvim_win_text_height(1000, { start_row = 4, end_row = 38 }))
- eq({ all = 9, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 2, end_row = 33 }))
- eq({ all = 9, fill = 0 }, meths.nvim_win_text_height(1000, { start_row = 5, end_row = 37 }))
- eq({ all = 9, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 3, end_row = 32 }))
- eq({ all = 9, fill = 0 }, meths.nvim_win_text_height(1000, { start_row = 17, end_row = 25 }))
- eq({ all = 9, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 15, end_row = 20 }))
- eq({ all = 7, fill = 0 }, meths.nvim_win_text_height(1000, { start_row = 18, end_row = 24 }))
- eq({ all = 7, fill = 3 }, meths.nvim_win_text_height(1001, { start_row = 16, end_row = 19 }))
- eq({ all = 6, fill = 5 }, meths.nvim_win_text_height(1000, { start_row = -1 }))
- eq(
- { all = 5, fill = 5 },
- meths.nvim_win_text_height(1000, { start_row = -1, start_vcol = X })
- )
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1000, {}))
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1001, {}))
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1000, { start_row = 0 }))
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1001, { start_row = 0 }))
+ eq({ all = 15, fill = 0 }, api.nvim_win_text_height(1000, { end_row = -1 }))
+ eq({ all = 15, fill = 0 }, api.nvim_win_text_height(1000, { end_row = 40 }))
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1001, { end_row = -1 }))
+ eq({ all = 20, fill = 5 }, api.nvim_win_text_height(1001, { end_row = 40 }))
+ eq({ all = 10, fill = 5 }, api.nvim_win_text_height(1000, { start_row = 23 }))
+ eq({ all = 13, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 18 }))
+ eq({ all = 11, fill = 0 }, api.nvim_win_text_height(1000, { end_row = 23 }))
+ eq({ all = 11, fill = 5 }, api.nvim_win_text_height(1001, { end_row = 18 }))
+ eq({ all = 11, fill = 0 }, api.nvim_win_text_height(1000, { start_row = 3, end_row = 39 }))
+ eq({ all = 11, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 1, end_row = 34 }))
+ eq({ all = 9, fill = 0 }, api.nvim_win_text_height(1000, { start_row = 4, end_row = 38 }))
+ eq({ all = 9, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 2, end_row = 33 }))
+ eq({ all = 9, fill = 0 }, api.nvim_win_text_height(1000, { start_row = 5, end_row = 37 }))
+ eq({ all = 9, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 3, end_row = 32 }))
+ eq({ all = 9, fill = 0 }, api.nvim_win_text_height(1000, { start_row = 17, end_row = 25 }))
+ eq({ all = 9, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 15, end_row = 20 }))
+ eq({ all = 7, fill = 0 }, api.nvim_win_text_height(1000, { start_row = 18, end_row = 24 }))
+ eq({ all = 7, fill = 3 }, api.nvim_win_text_height(1001, { start_row = 16, end_row = 19 }))
+ eq({ all = 6, fill = 5 }, api.nvim_win_text_height(1000, { start_row = -1 }))
+ eq({ all = 5, fill = 5 }, api.nvim_win_text_height(1000, { start_row = -1, start_vcol = X }))
eq(
{ all = 0, fill = 0 },
- meths.nvim_win_text_height(1000, { start_row = -1, start_vcol = X, end_row = -1 })
+ api.nvim_win_text_height(1000, { start_row = -1, start_vcol = X, end_row = -1 })
)
eq(
{ all = 0, fill = 0 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
1000,
{ start_row = -1, start_vcol = X, end_row = -1, end_vcol = X }
)
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
1000,
{ start_row = -1, start_vcol = 0, end_row = -1, end_vcol = X }
)
)
- eq({ all = 3, fill = 2 }, meths.nvim_win_text_height(1001, { end_row = 0 }))
- eq({ all = 2, fill = 2 }, meths.nvim_win_text_height(1001, { end_row = 0, end_vcol = 0 }))
+ eq({ all = 3, fill = 2 }, api.nvim_win_text_height(1001, { end_row = 0 }))
+ eq({ all = 2, fill = 2 }, api.nvim_win_text_height(1001, { end_row = 0, end_vcol = 0 }))
eq(
{ all = 2, fill = 2 },
- meths.nvim_win_text_height(1001, { start_row = 0, end_row = 0, end_vcol = 0 })
+ api.nvim_win_text_height(1001, { start_row = 0, end_row = 0, end_vcol = 0 })
)
eq(
{ all = 0, fill = 0 },
- meths.nvim_win_text_height(
- 1001,
- { start_row = 0, start_vcol = 0, end_row = 0, end_vcol = 0 }
- )
+ api.nvim_win_text_height(1001, { start_row = 0, start_vcol = 0, end_row = 0, end_vcol = 0 })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
- 1001,
- { start_row = 0, start_vcol = 0, end_row = 0, end_vcol = X }
- )
+ api.nvim_win_text_height(1001, { start_row = 0, start_vcol = 0, end_row = 0, end_vcol = X })
)
- eq({ all = 11, fill = 5 }, meths.nvim_win_text_height(1001, { end_row = 18 }))
+ eq({ all = 11, fill = 5 }, api.nvim_win_text_height(1001, { end_row = 18 }))
eq(
{ all = 9, fill = 3 },
- meths.nvim_win_text_height(1001, { start_row = 0, start_vcol = 0, end_row = 18 })
+ api.nvim_win_text_height(1001, { start_row = 0, start_vcol = 0, end_row = 18 })
)
- eq({ all = 10, fill = 5 }, meths.nvim_win_text_height(1001, { end_row = 18, end_vcol = 0 }))
+ eq({ all = 10, fill = 5 }, api.nvim_win_text_height(1001, { end_row = 18, end_vcol = 0 }))
eq(
{ all = 8, fill = 3 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
1001,
{ start_row = 0, start_vcol = 0, end_row = 18, end_vcol = 0 }
)
@@ -868,7 +853,7 @@ describe('API/win', function()
end)
it('with wrapped lines', function()
- local X = meths.nvim_get_vvar('maxcol')
+ local X = api.nvim_get_vvar('maxcol')
local screen = Screen.new(45, 22)
screen:set_default_attr_ids({
[0] = { foreground = Screen.colors.Blue1, bold = true },
@@ -880,15 +865,15 @@ describe('API/win', function()
set number cpoptions+=n
call setline(1, repeat([repeat('foobar-', 36)], 3))
]])
- local ns = meths.nvim_create_namespace('')
- meths.nvim_buf_set_extmark(
+ local ns = api.nvim_create_namespace('')
+ api.nvim_buf_set_extmark(
0,
ns,
1,
100,
{ virt_text = { { ('?'):rep(15), 'Search' } }, virt_text_pos = 'inline' }
)
- meths.nvim_buf_set_extmark(
+ api.nvim_buf_set_extmark(
0,
ns,
2,
@@ -928,155 +913,122 @@ describe('API/win', function()
|
]],
}
- eq({ all = 21, fill = 0 }, meths.nvim_win_text_height(0, {}))
- eq({ all = 6, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 0, end_row = 0 }))
- eq({ all = 7, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 1, end_row = 1 }))
- eq({ all = 8, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 2, end_row = 2 }))
+ eq({ all = 21, fill = 0 }, api.nvim_win_text_height(0, {}))
+ eq({ all = 6, fill = 0 }, api.nvim_win_text_height(0, { start_row = 0, end_row = 0 }))
+ eq({ all = 7, fill = 0 }, api.nvim_win_text_height(0, { start_row = 1, end_row = 1 }))
+ eq({ all = 8, fill = 0 }, api.nvim_win_text_height(0, { start_row = 2, end_row = 2 }))
eq(
{ all = 0, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 0 })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 0 })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 41 })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 41 })
)
eq(
{ all = 2, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 42 })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 42 })
)
eq(
{ all = 2, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 86 })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 86 })
)
eq(
{ all = 3, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 87 })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 87 })
)
eq(
{ all = 6, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 266 }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 266 })
)
eq(
{ all = 7, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 267 }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 267 })
)
eq(
{ all = 7, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 311 }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 311 })
)
eq(
{ all = 7, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 312 }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = 312 })
)
eq(
{ all = 7, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = X })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 0, end_row = 1, end_vcol = X })
)
eq(
{ all = 7, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 40, end_row = 1, end_vcol = X })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 40, end_row = 1, end_vcol = X })
)
eq(
{ all = 6, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 41, end_row = 1, end_vcol = X })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 41, end_row = 1, end_vcol = X })
)
eq(
{ all = 6, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 85, end_row = 1, end_vcol = X })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 85, end_row = 1, end_vcol = X })
)
eq(
{ all = 5, fill = 0 },
- meths.nvim_win_text_height(0, { start_row = 1, start_vcol = 86, end_row = 1, end_vcol = X })
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 86, end_row = 1, end_vcol = X })
)
eq(
{ all = 2, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 265, end_row = 1, end_vcol = X }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 265, end_row = 1, end_vcol = X })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 266, end_row = 1, end_vcol = X }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 266, end_row = 1, end_vcol = X })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 310, end_row = 1, end_vcol = X }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 310, end_row = 1, end_vcol = X })
)
eq(
{ all = 0, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 311, end_row = 1, end_vcol = X }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 311, end_row = 1, end_vcol = X })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 1, start_vcol = 86, end_row = 1, end_vcol = 131 }
- )
+ api.nvim_win_text_height(0, { start_row = 1, start_vcol = 86, end_row = 1, end_vcol = 131 })
)
eq(
{ all = 1, fill = 0 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
0,
{ start_row = 1, start_vcol = 221, end_row = 1, end_vcol = 266 }
)
)
- eq({ all = 18, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 0, start_vcol = 131 }))
- eq({ all = 19, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 0, start_vcol = 130 }))
- eq({ all = 20, fill = 0 }, meths.nvim_win_text_height(0, { end_row = 2, end_vcol = 311 }))
- eq({ all = 21, fill = 0 }, meths.nvim_win_text_height(0, { end_row = 2, end_vcol = 312 }))
+ eq({ all = 18, fill = 0 }, api.nvim_win_text_height(0, { start_row = 0, start_vcol = 131 }))
+ eq({ all = 19, fill = 0 }, api.nvim_win_text_height(0, { start_row = 0, start_vcol = 130 }))
+ eq({ all = 20, fill = 0 }, api.nvim_win_text_height(0, { end_row = 2, end_vcol = 311 }))
+ eq({ all = 21, fill = 0 }, api.nvim_win_text_height(0, { end_row = 2, end_vcol = 312 }))
eq(
{ all = 17, fill = 0 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
0,
{ start_row = 0, start_vcol = 131, end_row = 2, end_vcol = 311 }
)
)
eq(
{ all = 19, fill = 0 },
- meths.nvim_win_text_height(
+ api.nvim_win_text_height(
0,
{ start_row = 0, start_vcol = 130, end_row = 2, end_vcol = 312 }
)
)
- eq({ all = 16, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 0, start_vcol = 221 }))
- eq({ all = 17, fill = 0 }, meths.nvim_win_text_height(0, { start_row = 0, start_vcol = 220 }))
- eq({ all = 14, fill = 0 }, meths.nvim_win_text_height(0, { end_row = 2, end_vcol = 41 }))
- eq({ all = 15, fill = 0 }, meths.nvim_win_text_height(0, { end_row = 2, end_vcol = 42 }))
+ eq({ all = 16, fill = 0 }, api.nvim_win_text_height(0, { start_row = 0, start_vcol = 221 }))
+ eq({ all = 17, fill = 0 }, api.nvim_win_text_height(0, { start_row = 0, start_vcol = 220 }))
+ eq({ all = 14, fill = 0 }, api.nvim_win_text_height(0, { end_row = 2, end_vcol = 41 }))
+ eq({ all = 15, fill = 0 }, api.nvim_win_text_height(0, { end_row = 2, end_vcol = 42 }))
eq(
{ all = 9, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 0, start_vcol = 221, end_row = 2, end_vcol = 41 }
- )
+ api.nvim_win_text_height(0, { start_row = 0, start_vcol = 221, end_row = 2, end_vcol = 41 })
)
eq(
{ all = 11, fill = 0 },
- meths.nvim_win_text_height(
- 0,
- { start_row = 0, start_vcol = 220, end_row = 2, end_vcol = 42 }
- )
+ api.nvim_win_text_height(0, { start_row = 0, start_vcol = 220, end_row = 2, end_vcol = 42 })
)
end)
end)
@@ -1084,7 +1036,7 @@ describe('API/win', function()
describe('open_win', function()
it('noautocmd option works', function()
command('autocmd BufEnter,BufLeave,BufWinEnter * let g:fired = 1')
- meths.nvim_open_win(meths.nvim_create_buf(true, true), true, {
+ api.nvim_open_win(api.nvim_create_buf(true, true), true, {
relative = 'win',
row = 3,
col = 3,
@@ -1092,23 +1044,23 @@ describe('API/win', function()
height = 3,
noautocmd = true,
})
- eq(0, funcs.exists('g:fired'))
- meths.nvim_open_win(meths.nvim_create_buf(true, true), true, {
+ eq(0, fn.exists('g:fired'))
+ api.nvim_open_win(api.nvim_create_buf(true, true), true, {
relative = 'win',
row = 3,
col = 3,
width = 12,
height = 3,
})
- eq(1, funcs.exists('g:fired'))
+ eq(1, fn.exists('g:fired'))
end)
it('disallowed in cmdwin if enter=true or buf=curbuf', function()
- local new_buf = meths.nvim_create_buf(true, true)
+ local new_buf = api.nvim_create_buf(true, true)
feed('q:')
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_open_win, new_buf, true, {
+ pcall_err(api.nvim_open_win, new_buf, true, {
relative = 'editor',
row = 5,
col = 5,
@@ -1118,7 +1070,7 @@ describe('API/win', function()
)
eq(
'E11: Invalid in command-line window; <CR> executes, CTRL-C quits',
- pcall_err(meths.nvim_open_win, 0, false, {
+ pcall_err(api.nvim_open_win, 0, false, {
relative = 'editor',
row = 5,
col = 5,
@@ -1129,7 +1081,7 @@ describe('API/win', function()
eq(
new_buf,
- meths.nvim_win_get_buf(meths.nvim_open_win(new_buf, false, {
+ api.nvim_win_get_buf(api.nvim_open_win(new_buf, false, {
relative = 'editor',
row = 5,
col = 5,
@@ -1140,10 +1092,10 @@ describe('API/win', function()
end)
it('aborts if buffer is invalid', function()
- local wins_before = meths.nvim_list_wins()
+ local wins_before = api.nvim_list_wins()
eq(
'Invalid buffer id: 1337',
- pcall_err(meths.nvim_open_win, 1337, false, {
+ pcall_err(api.nvim_open_win, 1337, false, {
relative = 'editor',
row = 5,
col = 5,
@@ -1151,14 +1103,14 @@ describe('API/win', function()
height = 5,
})
)
- eq(wins_before, meths.nvim_list_wins())
+ eq(wins_before, api.nvim_list_wins())
end)
end)
describe('get_config', function()
it('includes border', function()
local b = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h' }
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
relative = 'win',
row = 3,
col = 3,
@@ -1167,7 +1119,7 @@ describe('API/win', function()
border = b,
})
- local cfg = meths.nvim_win_get_config(win)
+ local cfg = api.nvim_win_get_config(win)
eq(b, cfg.border)
end)
@@ -1182,7 +1134,7 @@ describe('API/win', function()
{ 'g', 'Constant' },
{ 'h', 'PreProc' },
}
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
relative = 'win',
row = 3,
col = 3,
@@ -1191,14 +1143,14 @@ describe('API/win', function()
border = b,
})
- local cfg = meths.nvim_win_get_config(win)
+ local cfg = api.nvim_win_get_config(win)
eq(b, cfg.border)
end)
it('includes title and footer', function()
local title = { { 'A', { 'StatusLine', 'TabLine' } }, { 'B' }, { 'C', 'WinBar' } }
local footer = { { 'A', 'WinBar' }, { 'B' }, { 'C', { 'StatusLine', 'TabLine' } } }
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
relative = 'win',
row = 3,
col = 3,
@@ -1209,7 +1161,7 @@ describe('API/win', function()
footer = footer,
})
- local cfg = meths.nvim_win_get_config(win)
+ local cfg = api.nvim_win_get_config(win)
eq(title, cfg.title)
eq(footer, cfg.footer)
end)
@@ -1217,7 +1169,7 @@ describe('API/win', function()
describe('set_config', function()
it('no crash with invalid title', function()
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
width = 10,
height = 10,
relative = 'editor',
@@ -1228,14 +1180,14 @@ describe('API/win', function()
})
eq(
'title/footer cannot be an empty array',
- pcall_err(meths.nvim_win_set_config, win, { title = {} })
+ pcall_err(api.nvim_win_set_config, win, { title = {} })
)
command('redraw!')
assert_alive()
end)
it('no crash with invalid footer', function()
- local win = meths.nvim_open_win(0, true, {
+ local win = api.nvim_open_win(0, true, {
width = 10,
height = 10,
relative = 'editor',
@@ -1246,7 +1198,7 @@ describe('API/win', function()
})
eq(
'title/footer cannot be an empty array',
- pcall_err(meths.nvim_win_set_config, win, { footer = {} })
+ pcall_err(api.nvim_win_set_config, win, { footer = {} })
)
command('redraw!')
assert_alive()