feat(api): show more exception info

This commit is contained in:
erw7
2022-11-05 19:40:02 +09:00
committed by zeertzjq
parent 307efe4906
commit ce66f158b5
2 changed files with 13 additions and 2 deletions

View File

@@ -150,7 +150,18 @@ bool try_end(Error *err)
xfree(msg); xfree(msg);
} }
} else if (did_throw) { } else if (did_throw) {
api_set_error(err, kErrorTypeException, "%s", current_exception->value); if (*current_exception->throw_name != NUL) {
if (current_exception->throw_lnum != 0) {
api_set_error(err, kErrorTypeException, "%s, line %" PRIdLINENR ": %s",
current_exception->throw_name, current_exception->throw_lnum,
current_exception->value);
} else {
api_set_error(err, kErrorTypeException, "%s: %s",
current_exception->throw_name, current_exception->value);
}
} else {
api_set_error(err, kErrorTypeException, "%s", current_exception->value);
}
discard_current_exception(); discard_current_exception();
} }

View File

@@ -24,7 +24,7 @@ describe('autocmd TermClose', function()
local function test_termclose_delete_own_buf() local function test_termclose_delete_own_buf()
command('autocmd TermClose * bdelete!') command('autocmd TermClose * bdelete!')
command('terminal') command('terminal')
matches('^Vim%(bdelete%):E937: Attempt to delete a buffer that is in use: term://', matches('^TermClose Autocommands for "%*": Vim%(bdelete%):E937: Attempt to delete a buffer that is in use: term://',
pcall_err(command, 'bdelete!')) pcall_err(command, 'bdelete!'))
assert_alive() assert_alive()
end end