From d5308637bf1aac2b97fccf73a0ffdef304eaa1d6 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 3 Jan 2025 20:12:15 +0800 Subject: vim-patch:9.1.0984: exception handling can be improved Problem: exception handling can be improved Solution: add v:stacktrace and getstacktrace() closes: vim/vim#16360 https://github.com/vim/vim/commit/663d18d6102f40d14e36096ec590445e61026ed6 Co-authored-by: ichizok Co-authored-by: Naruhiko Nishino --- src/nvim/eval.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/nvim/eval.lua') diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index c650dee306..5901ed5766 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -4670,6 +4670,25 @@ M.funcs = { returns = 'vim.fn.getscriptinfo.ret[]', signature = 'getscriptinfo([{opts}])', }, + getstacktrace = { + args = 0, + desc = [=[ + Returns the current stack trace of Vim scripts. + Stack trace is a |List|, of which each item is a |Dictionary| + with the following items: + funcref The funcref if the stack is at the function, + otherwise this item is not exist. + event The string of the event description if the + stack is at autocmd event, otherwise this item + is not exist. + lnum The line number of the script on the stack. + filepath The file path of the script on the stack. + ]=], + name = 'getstacktrace', + params = {}, + returns = 'table[]', + signature = 'getstacktrace()', + }, gettabinfo = { args = { 0, 1 }, base = 1, -- cgit From 8fa4306eb910028ee8df8685ae9b1649608c2608 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Tue, 7 Jan 2025 09:05:52 +0800 Subject: vim-patch:9.1.0991: v:stacktrace has wrong type in Vim9 script Problem: v:stacktrace has wrong type in Vim9 script. Solution: Change the type to t_list_dict_any. Fix grammar in docs. (zeertzjq) closes: vim/vim#16390 https://github.com/vim/vim/commit/6655bef33047b826e0ccb8c686f3f57e47161b1c --- src/nvim/eval.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/nvim/eval.lua') diff --git a/src/nvim/eval.lua b/src/nvim/eval.lua index 5901ed5766..4ce1960dcf 100644 --- a/src/nvim/eval.lua +++ b/src/nvim/eval.lua @@ -4676,12 +4676,12 @@ M.funcs = { Returns the current stack trace of Vim scripts. Stack trace is a |List|, of which each item is a |Dictionary| with the following items: - funcref The funcref if the stack is at the function, - otherwise this item is not exist. + funcref The funcref if the stack is at a function, + otherwise this item is omitted. event The string of the event description if the - stack is at autocmd event, otherwise this item - is not exist. - lnum The line number of the script on the stack. + stack is at an autocmd event, otherwise this + item is omitted. + lnum The line number in the script on the stack. filepath The file path of the script on the stack. ]=], name = 'getstacktrace', -- cgit