From 6a330f893bf15ecab99f1fc796029c7bdba71139 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 31 Aug 2025 06:44:23 +0800 Subject: [PATCH] fix(lua): report error in Lua Funcref callback properly (#35555) --- src/nvim/lua/executor.c | 2 +- test/functional/lua/luaeval_spec.lua | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/nvim/lua/executor.c b/src/nvim/lua/executor.c index 1fc8e1cd97..0860c753ad 100644 --- a/src/nvim/lua/executor.c +++ b/src/nvim/lua/executor.c @@ -1496,7 +1496,7 @@ int typval_exec_lua_callable(LuaRef lua_cb, int argcount, typval_T *argvars, typ PUSH_ALL_TYPVALS(lstate, argvars, argcount, false); if (nlua_pcall(lstate, argcount, 1)) { - nlua_print(lstate); + nlua_error(lstate, _("Lua callback: %.*s")); return FCERR_OTHER; } diff --git a/test/functional/lua/luaeval_spec.lua b/test/functional/lua/luaeval_spec.lua index a203fc27c5..6e2f5c08cb 100644 --- a/test/functional/lua/luaeval_spec.lua +++ b/test/functional/lua/luaeval_spec.lua @@ -16,6 +16,7 @@ local feed = n.feed local assert_alive = n.assert_alive local NIL = vim.NIL local eq = t.eq +local matches = t.matches before_each(clear) @@ -289,6 +290,8 @@ describe('luaeval()', function() return true ]] ) + -- v:errmsg is set properly #35554 + matches(': dead function\n', api.nvim_get_vvar('errmsg')) end) it('should handle passing functions around', function()