mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
screen.lua: dump payload on handler failure
For debugging failures like: test/functional/helpers.lua:240: test/functional/ui/screen.lua:898: bad argument #1 to 'unpack' (table expected, got number) test/functional/helpers.lua:240: test/functional/ui/screen.lua:708: attempt to index local 'item' (a number value) ref #10804
This commit is contained in:
parent
c062149d5b
commit
78ec7981c8
@ -304,7 +304,7 @@ local function nvim_feed(input)
|
||||
local written = module.request('nvim_input', input)
|
||||
if written == nil then
|
||||
module.assert_alive()
|
||||
error('nvim_input returned nil (Nvim process terminated?)')
|
||||
error('crash? (nvim_input returned nil)')
|
||||
end
|
||||
input = input:sub(written + 1)
|
||||
end
|
||||
@ -592,7 +592,7 @@ end
|
||||
|
||||
-- Checks that the Nvim session did not terminate.
|
||||
function module.assert_alive()
|
||||
eq(2, module.eval('1+1'))
|
||||
assert(2 == module.eval('1+1'), 'crash? request failed')
|
||||
end
|
||||
|
||||
local function do_rmdir(path)
|
||||
|
@ -615,7 +615,12 @@ function Screen:_redraw(updates)
|
||||
local handler_name = '_handle_'..method
|
||||
local handler = self[handler_name]
|
||||
if handler ~= nil then
|
||||
handler(self, unpack(update[i]))
|
||||
local status, res = pcall(handler, self, unpack(update[i]))
|
||||
if not status then
|
||||
error(handler_name..' failed'
|
||||
..'\n payload: '..inspect(update)
|
||||
..'\n error: '..tostring(res))
|
||||
end
|
||||
else
|
||||
assert(self._on_event,
|
||||
"Add Screen:"..handler_name.." or call Screen:set_on_event_handler")
|
||||
|
Loading…
Reference in New Issue
Block a user