From a69580306d1cb355d758abaf5e69814d6d47f85f Mon Sep 17 00:00:00 2001 From: Ivar Fatland Date: Sat, 18 Apr 2026 13:06:36 +0200 Subject: [PATCH] file locations only now... --- nvim/.config/nvim/init.lua | 43 ++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 790e39f..0d29d71 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -8,18 +8,43 @@ vim.g.python3_host_prog = get_python_venv_path() -- POPULATE QFLIST ON ERROR {{{1 do - local orig_traceback = debug.traceback - debug.traceback = function(...) - local trace = orig_traceback(...) + local function full_trace() + local lines = {} - -- push full trace to quickfix - vim.fn.setqflist({}, "a", { - title = "Traceback", - lines = vim.split(trace, "\n"), - }) + local level = 2 + while true do + local info = debug.getinfo(level, "Sln") + if not info then break end - return trace + local src = info.source or "?" + local file = src:gsub("^@", "") -- remove @ prefix + + local line = string.format( + "%s:%d: in %s", + file, + info.currentline or 0, + info.name or "?" + ) + + table.insert(lines, line) + level = level + 1 end + + return table.concat(lines, "\n") + end + + local orig = debug.traceback + + debug.traceback = function(...) + local trace = full_trace() + + vim.fn.setqflist({}, "a", { + title = "Traceback", + lines = vim.split(trace, "\n"), + }) + + return trace + end end -- GENERAL SETTINGS {{{1