mirror of
https://github.com/neovim/neovim.git
synced 2026-04-21 14:55:33 +00:00
feat(messages): cleanup Lua error messages
"Error" in error messages is redundant. Just provide the context, don't say "Error ...".
This commit is contained in:
@@ -303,76 +303,76 @@ describe('luaeval(vim.api.…)', function()
|
||||
it('errors out correctly when working with API', function()
|
||||
-- Conversion errors
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'obj': Cannot convert given Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'obj': Cannot convert given Lua table]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id({1, foo=42})")]]))
|
||||
)
|
||||
-- Errors in number of arguments
|
||||
eq(
|
||||
'Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Expected 1 argument',
|
||||
'Vim(call):E5108: Lua: [string "luaeval()"]:1: Expected 1 argument',
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id()")]]))
|
||||
)
|
||||
eq(
|
||||
'Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Expected 1 argument',
|
||||
'Vim(call):E5108: Lua: [string "luaeval()"]:1: Expected 1 argument',
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id(1, 2)")]]))
|
||||
)
|
||||
eq(
|
||||
'Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Expected 2 arguments',
|
||||
'Vim(call):E5108: Lua: [string "luaeval()"]:1: Expected 2 arguments',
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_set_var(1, 2, 3)")]]))
|
||||
)
|
||||
-- Error in argument types
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'name': Expected Lua string]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'name': Expected Lua string]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_set_var(1, 2)")]]))
|
||||
)
|
||||
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'start': Expected Lua number]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'start': Expected Lua number]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_buf_get_lines(0, 'test', 1, false)")]]))
|
||||
)
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'start': Number is not integral]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'start': Number is not integral]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_buf_get_lines(0, 1.5, 1, false)")]]))
|
||||
)
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'window': Expected Lua number]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'window': Expected Lua number]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_win_is_valid(nil)")]]))
|
||||
)
|
||||
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'flt': Expected Lua number]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'flt': Expected Lua number]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id_float('test')")]]))
|
||||
)
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'flt': Expected Float-like Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'flt': Expected Float-like Lua table]],
|
||||
remove_trace(
|
||||
exc_exec([[call luaeval("vim.api.nvim__id_float({[vim.type_idx]=vim.types.dictionary})")]])
|
||||
)
|
||||
)
|
||||
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'arr': Expected Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'arr': Expected Lua table]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id_array(1)")]]))
|
||||
)
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'arr': Expected Array-like Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'arr': Expected Array-like Lua table]],
|
||||
remove_trace(
|
||||
exc_exec([[call luaeval("vim.api.nvim__id_array({[vim.type_idx]=vim.types.dictionary})")]])
|
||||
)
|
||||
)
|
||||
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'dct': Expected Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'dct': Expected Lua table]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim__id_dict(1)")]]))
|
||||
)
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Invalid 'dct': Expected Dict-like Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Invalid 'dct': Expected Dict-like Lua table]],
|
||||
remove_trace(
|
||||
exc_exec([[call luaeval("vim.api.nvim__id_dict({[vim.type_idx]=vim.types.array})")]])
|
||||
)
|
||||
)
|
||||
|
||||
eq(
|
||||
[[Vim(call):E5108: Error executing lua [string "luaeval()"]:1: Expected Lua table]],
|
||||
[[Vim(call):E5108: Lua: [string "luaeval()"]:1: Expected Lua table]],
|
||||
remove_trace(exc_exec([[call luaeval("vim.api.nvim_set_keymap('', '', '', '')")]]))
|
||||
)
|
||||
|
||||
|
||||
@@ -59,22 +59,22 @@ describe(':lua', function()
|
||||
it('throws catchable errors', function()
|
||||
eq('Vim(lua):E471: Argument required', pcall_err(command, 'lua'))
|
||||
eq(
|
||||
[[Vim(lua):E5107: Error loading lua [string ":lua"]:0: unexpected symbol near ')']],
|
||||
[[Vim(lua):E5107: Lua: [string ":lua"]:0: unexpected symbol near ')']],
|
||||
pcall_err(command, 'lua ()')
|
||||
)
|
||||
eq(
|
||||
[[Vim(lua):E5108: Error executing lua [string ":lua"]:1: TEST]],
|
||||
[[Vim(lua):E5108: Lua: [string ":lua"]:1: TEST]],
|
||||
remove_trace(exc_exec('lua error("TEST")'))
|
||||
)
|
||||
eq(
|
||||
[[Vim(lua):E5108: Error executing lua [string ":lua"]:1: Invalid buffer id: -10]],
|
||||
[[Vim(lua):E5108: Lua: [string ":lua"]:1: Invalid buffer id: -10]],
|
||||
remove_trace(exc_exec('lua vim.api.nvim_buf_set_lines(-10, 1, 1, false, {"TEST"})'))
|
||||
)
|
||||
eq({ '' }, api.nvim_buf_get_lines(0, 0, 100, false))
|
||||
end)
|
||||
|
||||
it('works with NULL errors', function()
|
||||
eq([=[Vim(lua):E5108: Error executing lua [NULL]]=], exc_exec('lua error(nil)'))
|
||||
eq([=[Vim(lua):E5108: Lua: [NULL]]=], exc_exec('lua error(nil)'))
|
||||
end)
|
||||
|
||||
it('accepts embedded NLs without heredoc', function()
|
||||
@@ -100,7 +100,7 @@ describe(':lua', function()
|
||||
local s = ('x'):rep(100500)
|
||||
|
||||
eq(
|
||||
'Vim(lua):E5107: Error loading lua [string ":lua"]:0: unfinished string near \'<eof>\'',
|
||||
'Vim(lua):E5107: Lua: [string ":lua"]:0: unfinished string near \'<eof>\'',
|
||||
pcall_err(command, ('lua vim.api.nvim_buf_set_lines(1, 1, 2, false, {"%s})'):format(s))
|
||||
)
|
||||
eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, false))
|
||||
@@ -119,11 +119,10 @@ describe(':lua', function()
|
||||
})
|
||||
|
||||
feed(':lua error("fail\\nmuch error\\nsuch details")<cr>')
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{2: }|
|
||||
{3:E5108: Error executing lua [string ":lua}|
|
||||
{3:"]:1: fail} |
|
||||
{3:E5108: Lua: [string ":lua"]:1: fail} |
|
||||
{3:much error} |
|
||||
{3:such details} |
|
||||
{3:stack traceback:} |
|
||||
@@ -131,8 +130,7 @@ describe(':lua', function()
|
||||
{3: [string ":lua"]:1: in main chunk}|
|
||||
|
|
||||
{4:Press ENTER or type command to continue}^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
feed('<cr>')
|
||||
screen:expect {
|
||||
grid = [[
|
||||
@@ -142,22 +140,20 @@ describe(':lua', function()
|
||||
]],
|
||||
}
|
||||
eq(
|
||||
'E5108: Error executing lua [string ":lua"]:1: fail\nmuch error\nsuch details',
|
||||
'E5108: Lua: [string ":lua"]:1: fail\nmuch error\nsuch details',
|
||||
remove_trace(eval('v:errmsg'))
|
||||
)
|
||||
|
||||
local status, err = pcall(command, 'lua error("some error\\nin a\\nAPI command")')
|
||||
local expected =
|
||||
'Vim(lua):E5108: Error executing lua [string ":lua"]:1: some error\nin a\nAPI command'
|
||||
local expected = 'Vim(lua):E5108: Lua: [string ":lua"]:1: some error\nin a\nAPI command'
|
||||
eq(false, status)
|
||||
eq(expected, string.sub(remove_trace(err), -string.len(expected)))
|
||||
|
||||
feed(':messages<cr>')
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{2: }|
|
||||
{3:E5108: Error executing lua [string ":lua}|
|
||||
{3:"]:1: fail} |
|
||||
{3:E5108: Lua: [string ":lua"]:1: fail} |
|
||||
{3:much error} |
|
||||
{3:such details} |
|
||||
{3:stack traceback:} |
|
||||
@@ -165,8 +161,7 @@ describe(':lua', function()
|
||||
{3: [string ":lua"]:1: in main chunk}|
|
||||
|
|
||||
{4:Press ENTER or type command to continue}^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
end)
|
||||
|
||||
it('prints result of =expr', function()
|
||||
@@ -212,7 +207,7 @@ describe(':lua', function()
|
||||
|
||||
-- ":{range}lua" fails on invalid Lua code.
|
||||
eq(
|
||||
[[:{range}lua buffer=1: Vim(lua):E5107: Error loading lua ]]
|
||||
[[:{range}lua buffer=1: Vim(lua):E5107: Lua: ]]
|
||||
.. [[[string ":{range}lua buffer=1"]:0: '=' expected near '<eof>']],
|
||||
pcall_err(command, '1lua')
|
||||
)
|
||||
@@ -279,17 +274,17 @@ describe(':luado command', function()
|
||||
|
||||
it('fails on errors', function()
|
||||
eq(
|
||||
[[Vim(luado):E5109: Error loading lua: [string ":luado"]:0: unexpected symbol near ')']],
|
||||
[[Vim(luado):E5109: Lua: [string ":luado"]:0: unexpected symbol near ')']],
|
||||
pcall_err(command, 'luado ()')
|
||||
)
|
||||
eq(
|
||||
[[Vim(luado):E5111: Error calling lua: [string ":luado"]:0: attempt to perform arithmetic on global 'liness' (a nil value)]],
|
||||
[[Vim(luado):E5111: Lua: [string ":luado"]:0: attempt to perform arithmetic on global 'liness' (a nil value)]],
|
||||
pcall_err(command, 'luado return liness + 1')
|
||||
)
|
||||
end)
|
||||
|
||||
it('works with NULL errors', function()
|
||||
eq([=[Vim(luado):E5111: Error calling lua: [NULL]]=], exc_exec('luado error(nil)'))
|
||||
eq([=[Vim(luado):E5111: Lua: [NULL]]=], exc_exec('luado error(nil)'))
|
||||
end)
|
||||
|
||||
it('fails in sandbox when needed', function()
|
||||
@@ -305,7 +300,7 @@ describe(':luado command', function()
|
||||
local s = ('x'):rep(100500)
|
||||
|
||||
eq(
|
||||
'Vim(luado):E5109: Error loading lua: [string ":luado"]:0: unfinished string near \'<eof>\'',
|
||||
'Vim(luado):E5109: Lua: [string ":luado"]:0: unfinished string near \'<eof>\'',
|
||||
pcall_err(command, ('luado return "%s'):format(s))
|
||||
)
|
||||
eq({ '' }, api.nvim_buf_get_lines(0, 0, -1, false))
|
||||
@@ -338,14 +333,12 @@ describe(':luafile', function()
|
||||
it('correctly errors out', function()
|
||||
write_file(fname, '()')
|
||||
eq(
|
||||
("Vim(luafile):E5112: Error while creating lua chunk: %s:1: unexpected symbol near ')'"):format(
|
||||
fname
|
||||
),
|
||||
("Vim(luafile):E5112: Lua chunk: %s:1: unexpected symbol near ')'"):format(fname),
|
||||
exc_exec('luafile ' .. fname)
|
||||
)
|
||||
write_file(fname, 'vimm.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})')
|
||||
eq(
|
||||
("Vim(luafile):E5113: Error while calling lua chunk: %s:1: attempt to index global 'vimm' (a nil value)"):format(
|
||||
("Vim(luafile):E5113: Lua chunk: %s:1: attempt to index global 'vimm' (a nil value)"):format(
|
||||
fname
|
||||
),
|
||||
remove_trace(exc_exec('luafile ' .. fname))
|
||||
@@ -354,9 +347,6 @@ describe(':luafile', function()
|
||||
|
||||
it('works with NULL errors', function()
|
||||
write_file(fname, 'error(nil)')
|
||||
eq(
|
||||
[=[Vim(luafile):E5113: Error while calling lua chunk: [NULL]]=],
|
||||
exc_exec('luafile ' .. fname)
|
||||
)
|
||||
eq([=[Vim(luafile):E5113: Lua chunk: [NULL]]=], exc_exec('luafile ' .. fname))
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -189,9 +189,9 @@ describe('luaeval()', function()
|
||||
eq("Vim(call):E5100: Cannot convert given Lua table: table should contain either only integer keys or only string keys",
|
||||
exc_exec('call luaeval("{1, foo=2}")'))
|
||||
|
||||
startswith("Vim(call):E5107: Error loading lua [string \"luaeval()\"]:",
|
||||
startswith("Vim(call):E5107: Lua: [string \"luaeval()\"]:",
|
||||
exc_exec('call luaeval("1, 2, 3")'))
|
||||
startswith("Vim(call):E5108: Error executing lua [string \"luaeval()\"]:",
|
||||
startswith("Vim(call):E5108: Lua: [string \"luaeval()\"]:",
|
||||
exc_exec('call luaeval("(nil)()")'))
|
||||
|
||||
end)
|
||||
@@ -428,18 +428,18 @@ describe('luaeval()', function()
|
||||
|
||||
it('errors out correctly when doing incorrect things in lua', function()
|
||||
-- Conversion errors
|
||||
eq('Vim(call):E5108: Error executing lua [string "luaeval()"]:1: attempt to call field \'xxx_nonexistent_key_xxx\' (a nil value)',
|
||||
eq('Vim(call):E5108: Lua: [string "luaeval()"]:1: attempt to call field \'xxx_nonexistent_key_xxx\' (a nil value)',
|
||||
remove_trace(exc_exec([[call luaeval("vim.xxx_nonexistent_key_xxx()")]])))
|
||||
eq('Vim(call):E5108: Error executing lua [string "luaeval()"]:1: ERROR',
|
||||
eq('Vim(call):E5108: Lua: [string "luaeval()"]:1: ERROR',
|
||||
remove_trace(exc_exec([[call luaeval("error('ERROR')")]])))
|
||||
eq('Vim(call):E5108: Error executing lua [NULL]',
|
||||
eq('Vim(call):E5108: Lua: [NULL]',
|
||||
remove_trace(exc_exec([[call luaeval("error(nil)")]])))
|
||||
end)
|
||||
|
||||
it('does not leak memory when called with too long line',
|
||||
function()
|
||||
local s = ('x'):rep(65536)
|
||||
eq('Vim(call):E5107: Error loading lua [string "luaeval()"]:1: unexpected symbol near \')\'',
|
||||
eq('Vim(call):E5107: Lua: [string "luaeval()"]:1: unexpected symbol near \')\'',
|
||||
exc_exec([[call luaeval("(']] .. s ..[[' + )")]]))
|
||||
eq(s, fn.luaeval('"' .. s .. '"'))
|
||||
end)
|
||||
@@ -482,7 +482,7 @@ describe('v:lua', function()
|
||||
eq("string: abc", eval('v:lua.mymod.whatis(0z616263)'))
|
||||
eq("string: ", eval('v:lua.mymod.whatis(v:_null_blob)'))
|
||||
|
||||
eq("Vim:E5108: Error executing lua [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
eq("Vim:E5108: Lua: [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
pcall_err(eval, 'v:lua.mymod.crashy()'))
|
||||
end)
|
||||
|
||||
@@ -497,14 +497,14 @@ describe('v:lua', function()
|
||||
eq("hey there", api.nvim_get_current_line())
|
||||
eq({5, 10, 15, 20}, eval('[[1], [2, 3], [4]]->v:lua.vim.tbl_flatten()->map({_, v -> v * 5})'))
|
||||
|
||||
eq("Vim:E5108: Error executing lua [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
eq("Vim:E5108: Lua: [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
pcall_err(eval, '"huh?"->v:lua.mymod.crashy()'))
|
||||
end)
|
||||
|
||||
it('works in :call', function()
|
||||
command(":call v:lua.mymod.noisy('command')")
|
||||
eq("hey command", api.nvim_get_current_line())
|
||||
eq("Vim(call):E5108: Error executing lua [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
eq("Vim(call):E5108: Lua: [string \"<nvim>\"]:0: attempt to call global 'nonexistent' (a nil value)",
|
||||
pcall_err(command, 'call v:lua.mymod.crashy()'))
|
||||
end)
|
||||
|
||||
|
||||
@@ -57,15 +57,15 @@ describe('print', function()
|
||||
eq('', exec_capture('luafile ' .. fname))
|
||||
-- TODO(bfredl): these look weird, print() should not use "E5114:" style errors..
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua E5114: Error while converting print argument #2: [NULL]',
|
||||
'Vim(lua):E5108: Lua: E5114: Converting print argument #2: [NULL]',
|
||||
pcall_err(command, 'lua print("foo", v_nilerr, "bar")')
|
||||
)
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua E5114: Error while converting print argument #2: Xtest-functional-lua-overrides-luafile:2: abc',
|
||||
'Vim(lua):E5108: Lua: E5114: Converting print argument #2: Xtest-functional-lua-overrides-luafile:2: abc',
|
||||
pcall_err(command, 'lua print("foo", v_abcerr, "bar")')
|
||||
)
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua E5114: Error while converting print argument #2: <Unknown error: lua_tolstring returned NULL for tostring result>',
|
||||
'Vim(lua):E5108: Lua: E5114: Converting print argument #2: <Unknown error: lua_tolstring returned NULL for tostring result>',
|
||||
pcall_err(command, 'lua print("foo", v_tblout, "bar")')
|
||||
)
|
||||
end)
|
||||
@@ -98,20 +98,20 @@ describe('print', function()
|
||||
)
|
||||
eq('', exec_capture('luafile ' .. fname))
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua Xtest-functional-lua-overrides-luafile:1: my mistake',
|
||||
'Vim(lua):E5108: Lua: Xtest-functional-lua-overrides-luafile:1: my mistake',
|
||||
pcall_err(command, 'lua string_error()')
|
||||
)
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua Xtest-functional-lua-overrides-luafile:2: 1234',
|
||||
'Vim(lua):E5108: Lua: Xtest-functional-lua-overrides-luafile:2: 1234',
|
||||
pcall_err(command, 'lua number_error()')
|
||||
)
|
||||
eq('Vim(lua):E5108: Error executing lua [NULL]', pcall_err(command, 'lua nil_error()'))
|
||||
eq('Vim(lua):E5108: Error executing lua [NULL]', pcall_err(command, 'lua table_error()'))
|
||||
eq('Vim(lua):E5108: Lua: [NULL]', pcall_err(command, 'lua nil_error()'))
|
||||
eq('Vim(lua):E5108: Lua: [NULL]', pcall_err(command, 'lua table_error()'))
|
||||
eq(
|
||||
'Vim(lua):E5108: Error executing lua Internal Error [11234] my mistake',
|
||||
'Vim(lua):E5108: Lua: Internal Error [11234] my mistake',
|
||||
pcall_err(command, 'lua custom_error()')
|
||||
)
|
||||
eq('Vim(lua):E5108: Error executing lua [NULL]', pcall_err(command, 'lua bad_custom_error()'))
|
||||
eq('Vim(lua):E5108: Lua: [NULL]', pcall_err(command, 'lua bad_custom_error()'))
|
||||
end)
|
||||
it('prints strings with NULs and NLs correctly', function()
|
||||
api.nvim_set_option_value('more', true, {})
|
||||
@@ -232,8 +232,7 @@ describe('debug.debug', function()
|
||||
lua_debug> ^ |
|
||||
]])
|
||||
feed('<C-c>')
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{0:~ }|*2
|
||||
{1: }|
|
||||
@@ -241,14 +240,13 @@ describe('debug.debug', function()
|
||||
lua_debug> print("TEST") |
|
||||
TEST |
|
||||
|
|
||||
{E:E5108: Error executing lua [string ":lua"]:5: attempt}|
|
||||
{E: to perform arithmetic on local 'a' (a nil value)} |
|
||||
{E:E5108: Lua: [string ":lua"]:5: attempt to perform ari}|
|
||||
{E:thmetic on local 'a' (a nil value)} |
|
||||
{E:stack traceback:} |
|
||||
{E: [string ":lua"]:5: in function 'Test'} |
|
||||
{E: [string ":lua"]:1: in main chunk} |
|
||||
Interrupt: {cr:Press ENTER or type command to continue}^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
feed('<C-l>:lua Test()\n')
|
||||
screen:expect([[
|
||||
|
|
||||
@@ -258,21 +256,19 @@ describe('debug.debug', function()
|
||||
lua_debug> ^ |
|
||||
]])
|
||||
feed('\n')
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{0:~ }|*4
|
||||
{1: }|
|
||||
nil |
|
||||
lua_debug> |
|
||||
{E:E5108: Error executing lua [string ":lua"]:5: attempt}|
|
||||
{E: to perform arithmetic on local 'a' (a nil value)} |
|
||||
{E:E5108: Lua: [string ":lua"]:5: attempt to perform ari}|
|
||||
{E:thmetic on local 'a' (a nil value)} |
|
||||
{E:stack traceback:} |
|
||||
{E: [string ":lua"]:5: in function 'Test'} |
|
||||
{E: [string ":lua"]:1: in main chunk} |
|
||||
{cr:Press ENTER or type command to continue}^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
end)
|
||||
|
||||
it("can be safely exited with 'cont'", function()
|
||||
@@ -287,32 +283,28 @@ describe('debug.debug', function()
|
||||
}
|
||||
|
||||
feed('conttt<cr>') -- misspelled cont; invalid syntax
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{0:~ }|*8
|
||||
{1: }|
|
||||
lua_debug> conttt |
|
||||
{E:E5115: Error while loading debug string: (debug comma}|
|
||||
{E:nd):1: '=' expected near '<eof>'} |
|
||||
{E:E5115: Loading Lua debug string: (debug command):1: '}|
|
||||
{E:=' expected near '<eof>'} |
|
||||
lua_debug> ^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
|
||||
feed('cont<cr>') -- exactly "cont", exit now
|
||||
screen:expect {
|
||||
grid = [[
|
||||
screen:expect([[
|
||||
|
|
||||
{0:~ }|*6
|
||||
{1: }|
|
||||
lua_debug> conttt |
|
||||
{E:E5115: Error while loading debug string: (debug comma}|
|
||||
{E:nd):1: '=' expected near '<eof>'} |
|
||||
{E:E5115: Loading Lua debug string: (debug command):1: '}|
|
||||
{E:=' expected near '<eof>'} |
|
||||
lua_debug> cont |
|
||||
x |
|
||||
{cr:Press ENTER or type command to continue}^ |
|
||||
]],
|
||||
}
|
||||
]])
|
||||
|
||||
feed('<cr>')
|
||||
screen:expect {
|
||||
|
||||
@@ -31,7 +31,7 @@ describe('thread', function()
|
||||
|
|
||||
{1:~ }|*5
|
||||
{3: }|
|
||||
{9:Error in luv thread:} |
|
||||
{9:Luv thread:} |
|
||||
{9:[NULL]} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
@@ -51,7 +51,7 @@ describe('thread', function()
|
||||
|
|
||||
{1:~ }|*5
|
||||
{3: }|
|
||||
{9:Error in luv thread:} |
|
||||
{9:Luv thread:} |
|
||||
{9:[string "<nvim>"]:2: Error in thread entry func} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
@@ -78,7 +78,7 @@ describe('thread', function()
|
||||
|
|
||||
{1:~ }|*5
|
||||
{3: }|
|
||||
{9:Error in luv callback, thread:} |
|
||||
{9:Luv callback, thread:} |
|
||||
{9:[string "<nvim>"]:6: Error in thread callback} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
@@ -286,7 +286,7 @@ describe('threadpool', function()
|
||||
|
|
||||
{1:~ }|*5
|
||||
{3: }|
|
||||
{9:Error in luv thread:} |
|
||||
{9:Luv thread:} |
|
||||
{9:Error: thread arg not support type 'table' at 1} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
|
||||
@@ -427,14 +427,17 @@ describe('vim.ui_attach', function()
|
||||
os.remove(testlog)
|
||||
end)
|
||||
|
||||
it('error in callback is logged', function()
|
||||
it('callback error is logged', function()
|
||||
exec_lua([[
|
||||
local ns = vim.api.nvim_create_namespace('test')
|
||||
vim.ui_attach(ns, { ext_popupmenu = true }, function() error(42) end)
|
||||
]])
|
||||
feed('ifoo<CR>foobar<CR>fo<C-X><C-N>')
|
||||
assert_log('Error in "popupmenu_show" UI event handler %(ns=test%):', testlog, 100)
|
||||
assert_log('Error executing lua: .*: 42', testlog, 100)
|
||||
assert_log(
|
||||
'Error in "popupmenu_show" UI event handler %(ns=test%):[\r\n\t ]+Lua: .*: 42',
|
||||
testlog,
|
||||
100
|
||||
)
|
||||
end)
|
||||
|
||||
it('detaches after excessive errors', function()
|
||||
@@ -464,7 +467,7 @@ describe('vim.ui_attach', function()
|
||||
{
|
||||
content = {
|
||||
{
|
||||
'Error executing callback:\n[string "<nvim>"]:3: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:3: in function <[string "<nvim>"]:1>',
|
||||
'Lua callback:\n[string "<nvim>"]:3: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:3: in function <[string "<nvim>"]:1>',
|
||||
9,
|
||||
6,
|
||||
},
|
||||
@@ -482,11 +485,11 @@ describe('vim.ui_attach', function()
|
||||
feed('<CR>:messages<CR>')
|
||||
screen:expect([[
|
||||
{9:Error in "msg_show" UI event handler (ns=(UNKNOWN PLUGIN)):} |
|
||||
{9:Error executing lua: [string "<nvim>"]:3: attempt to index global 'err' (a nil value)} |
|
||||
{9:Lua: [string "<nvim>"]:3: attempt to index global 'err' (a nil value)} |
|
||||
{9:stack traceback:} |
|
||||
{9: [string "<nvim>"]:3: in function <[string "<nvim>"]:1>} |
|
||||
{9:Error in "msg_clear" UI event handler (ns=(UNKNOWN PLUGIN)):} |
|
||||
{9:Error executing lua: [string "<nvim>"]:3: attempt to index global 'err' (a nil value)} |
|
||||
{9:Lua: [string "<nvim>"]:3: attempt to index global 'err' (a nil value)} |
|
||||
{9:stack traceback:} |
|
||||
{9: [string "<nvim>"]:3: in function <[string "<nvim>"]:1>} |
|
||||
{9:Excessive errors in vim.ui_attach() callback (ns=(UNKNOWN PLUGIN))} |
|
||||
@@ -506,7 +509,7 @@ describe('vim.ui_attach', function()
|
||||
{
|
||||
content = {
|
||||
{
|
||||
'Error executing vim.schedule lua callback: [string "<nvim>"]:2: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:2: in function <[string "<nvim>"]:2>',
|
||||
'vim.schedule callback: [string "<nvim>"]:2: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:2: in function <[string "<nvim>"]:2>',
|
||||
9,
|
||||
6,
|
||||
},
|
||||
@@ -517,7 +520,7 @@ describe('vim.ui_attach', function()
|
||||
{
|
||||
content = {
|
||||
{
|
||||
'Error executing vim.schedule lua callback: [string "<nvim>"]:2: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:2: in function <[string "<nvim>"]:2>',
|
||||
'vim.schedule callback: [string "<nvim>"]:2: attempt to index global \'err\' (a nil value)\nstack traceback:\n\t[string "<nvim>"]:2: in function <[string "<nvim>"]:2>',
|
||||
9,
|
||||
6,
|
||||
},
|
||||
|
||||
@@ -87,7 +87,7 @@ describe('vim.uv', function()
|
||||
screen:expect([[
|
||||
|
|
||||
{2: }|
|
||||
{3:Error executing callback:} |
|
||||
{3:Lua callback:} |
|
||||
{3:[string "<nvim>"]:5: E5560: nvim_set_var must not }|
|
||||
{3:be called in a fast event context} |
|
||||
{3:stack traceback:} |
|
||||
@@ -173,7 +173,7 @@ describe('vim.uv', function()
|
||||
|
|
||||
{1:~ }|*5
|
||||
{3: }|
|
||||
{9:Error executing callback:} |
|
||||
{9:Lua callback:} |
|
||||
{9:[NULL]} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]]
|
||||
@@ -208,7 +208,7 @@ describe('vim.uv', function()
|
||||
|
||||
screen:expect([[
|
||||
{3: }|
|
||||
{9:Error executing callback:} |
|
||||
{9:Lua callback:} |
|
||||
{9:[NULL]} |
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
@@ -232,7 +232,7 @@ describe('vim.uv', function()
|
||||
|
||||
screen:expect([[
|
||||
{3: }|
|
||||
{9:Error executing callback:} |
|
||||
{9:Lua callback:} |
|
||||
{9:uv_idle_t: 0x{MATCH:%w+}}{MATCH: +}|
|
||||
{6:Press ENTER or type command to continue}^ |
|
||||
]])
|
||||
@@ -3376,7 +3376,7 @@ describe('lua stdlib', function()
|
||||
local errmsg = api.nvim_get_vvar('errmsg')
|
||||
matches(
|
||||
[[
|
||||
^Error executing vim%.on%_key%(%) callbacks:.*
|
||||
^vim%.on%_key%(%) callbacks:.*
|
||||
With ns%_id %d+: .*: Dumb Error
|
||||
stack traceback:
|
||||
.*: in function 'error'
|
||||
@@ -3506,19 +3506,13 @@ stack traceback:
|
||||
|
||||
api.nvim_buf_set_lines(0, 0, -1, true, { '54321' })
|
||||
|
||||
local function cleanup_msg(msg)
|
||||
return msg:gsub('^Error .*\nWith ns%_id %d+: ', '')
|
||||
end
|
||||
|
||||
feed('x')
|
||||
eq(1, exec_lua [[ return n_call ]])
|
||||
|
||||
eq(1, exec_lua [[ return vim.on_key(nil, nil) ]])
|
||||
|
||||
eq('', cleanup_msg(eval('v:errmsg')))
|
||||
eq('', eval('v:errmsg'))
|
||||
feed('x')
|
||||
eq(2, exec_lua [[ return n_call ]])
|
||||
eq('return string must be empty', cleanup_msg(eval('v:errmsg')))
|
||||
matches('return string must be empty', eval('v:errmsg'))
|
||||
command('let v:errmsg = ""')
|
||||
|
||||
eq(0, exec_lua [[ return vim.on_key(nil, nil) ]])
|
||||
@@ -3526,7 +3520,7 @@ stack traceback:
|
||||
feed('x')
|
||||
eq(2, exec_lua [[ return n_call ]])
|
||||
expect('21')
|
||||
eq('', cleanup_msg(eval('v:errmsg')))
|
||||
eq('', eval('v:errmsg'))
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -3991,7 +3985,7 @@ stack traceback:
|
||||
pcall_err(exec_lua, [[vim.api.nvim_win_call(0, function() vim.cmd 'fooooo' end)]])
|
||||
)
|
||||
eq(
|
||||
'Error executing lua: [string "<nvim>"]:0: fooooo',
|
||||
'Lua: [string "<nvim>"]:0: fooooo',
|
||||
pcall_err(exec_lua, [[vim.api.nvim_win_call(0, function() error('fooooo') end)]])
|
||||
)
|
||||
end)
|
||||
|
||||
Reference in New Issue
Block a user