aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-05-05 19:33:06 +0800
committerGitHub <noreply@github.com>2023-05-05 19:33:06 +0800
commitd9f0d2da4d29847542072099f103e7248fcacaab (patch)
tree8f659e7b0380b57885b04782e01fb04a31918ef8
parent648f777931d49b8013146f69d7e2776f69c52900 (diff)
parent3a1e17e3a1767b4ff8a082150f7f9d6bda50cc8f (diff)
downloadrneovim-d9f0d2da4d29847542072099f103e7248fcacaab.tar.gz
rneovim-d9f0d2da4d29847542072099f103e7248fcacaab.tar.bz2
rneovim-d9f0d2da4d29847542072099f103e7248fcacaab.zip
Merge pull request #23482 from zeertzjq/do-cmdline-verbose
fix(excmd): append original command to error message
-rw-r--r--src/nvim/ex_docmd.c5
-rw-r--r--test/functional/api/vim_spec.lua6
-rw-r--r--test/functional/ex_cmds/excmd_spec.lua16
-rw-r--r--test/functional/lua/commands_spec.lua2
-rw-r--r--test/functional/ui/inccommand_spec.lua2
-rw-r--r--test/functional/vimscript/execute_spec.lua9
6 files changed, 30 insertions, 10 deletions
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index bccd554095..28f7b27c2f 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -288,7 +288,7 @@ static void msg_verbose_cmd(linenr_T lnum, char *cmd)
/// Execute a simple command line. Used for translated commands like "*".
int do_cmdline_cmd(const char *cmd)
{
- return do_cmdline((char *)cmd, NULL, NULL, DOCMD_NOWAIT|DOCMD_KEYTYPED);
+ return do_cmdline((char *)cmd, NULL, NULL, DOCMD_VERBOSE|DOCMD_NOWAIT|DOCMD_KEYTYPED);
}
/// do_cmdline(): execute one Ex command line
@@ -1862,7 +1862,8 @@ static bool skip_cmd(const exarg_T *eap)
/// Execute one Ex command.
///
-/// If 'sourcing' is true, the command will be included in the error message.
+/// If "flags" has DOCMD_VERBOSE, the command will be included in the error
+/// message.
///
/// 1. skip comment lines and leading space
/// 2. handle command modifiers
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index af6fbf092a..c81b6e90cc 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -361,6 +361,12 @@ describe('API', function()
eq('', eval('v:errmsg')) -- v:errmsg was not updated.
eq('', eval('v:exception'))
end)
+
+ it('gives E493 instead of prompting on backwards range', function()
+ command('split')
+ eq('Vim(windo):E493: Backwards range given: 2,1windo echo',
+ pcall_err(command, '2,1windo echo'))
+ end)
end)
describe('nvim_command_output', function()
diff --git a/test/functional/ex_cmds/excmd_spec.lua b/test/functional/ex_cmds/excmd_spec.lua
index 14cc2b8387..a92329ede5 100644
--- a/test/functional/ex_cmds/excmd_spec.lua
+++ b/test/functional/ex_cmds/excmd_spec.lua
@@ -11,20 +11,24 @@ describe('Ex cmds', function()
clear()
end)
+ local function check_excmd_err(cmd, err)
+ eq(err .. ': ' .. cmd, pcall_err(command, cmd))
+ end
+
it('handle integer overflow from user-input #5555', function()
command(':9999999999999999999999999999999999999999')
command(':later 9999999999999999999999999999999999999999')
command(':echo expand("#<9999999999999999999999999999999999999999")')
command(':lockvar 9999999999999999999999999999999999999999')
command(':winsize 9999999999999999999999999999999999999999 9999999999999999999999999999999999999999')
- eq('Vim(tabnext):E475: Invalid argument: 9999999999999999999999999999999999999999',
- pcall_err(command, ':tabnext 9999999999999999999999999999999999999999'))
- eq('Vim(Next):E939: Positive count required',
- pcall_err(command, ':N 9999999999999999999999999999999999999999'))
+ check_excmd_err(':tabnext 9999999999999999999999999999999999999999',
+ 'Vim(tabnext):E475: Invalid argument: 9999999999999999999999999999999999999999')
+ check_excmd_err(':N 9999999999999999999999999999999999999999',
+ 'Vim(Next):E939: Positive count required')
+ check_excmd_err(':bdelete 9999999999999999999999999999999999999999',
+ 'Vim(bdelete):E939: Positive count required')
eq('Vim(menu):E329: No menu "9999999999999999999999999999999999999999"',
pcall_err(command, ':menu 9999999999999999999999999999999999999999'))
- eq('Vim(bdelete):E939: Positive count required',
- pcall_err(command, ':bdelete 9999999999999999999999999999999999999999'))
assert_alive()
end)
diff --git a/test/functional/lua/commands_spec.lua b/test/functional/lua/commands_spec.lua
index 9a8d5efa5d..fca619348d 100644
--- a/test/functional/lua/commands_spec.lua
+++ b/test/functional/lua/commands_spec.lua
@@ -214,7 +214,7 @@ describe(':luado command', function()
end)
it('fails in sandbox when needed', function()
curbufmeths.set_lines(0, 1, false, {"ABC", "def", "gHi"})
- eq('Vim(luado):E48: Not allowed in sandbox',
+ eq('Vim(luado):E48: Not allowed in sandbox: sandbox luado runs = (runs or 0) + 1',
pcall_err(command, 'sandbox luado runs = (runs or 0) + 1'))
eq(NIL, funcs.luaeval('runs'))
end)
diff --git a/test/functional/ui/inccommand_spec.lua b/test/functional/ui/inccommand_spec.lua
index a67db78cbe..28f489783b 100644
--- a/test/functional/ui/inccommand_spec.lua
+++ b/test/functional/ui/inccommand_spec.lua
@@ -1720,7 +1720,7 @@ describe("'inccommand' and :cnoremap", function()
local function refresh(case, visual)
clear()
- screen = visual and Screen.new(50,10) or nil
+ screen = visual and Screen.new(80,10) or nil
common_setup(screen, case, default_text)
end
diff --git a/test/functional/vimscript/execute_spec.lua b/test/functional/vimscript/execute_spec.lua
index 17edf5c93e..a9a4ad4811 100644
--- a/test/functional/vimscript/execute_spec.lua
+++ b/test/functional/vimscript/execute_spec.lua
@@ -4,6 +4,7 @@ local eval = helpers.eval
local clear = helpers.clear
local source = helpers.source
local exc_exec = helpers.exc_exec
+local pcall_err = helpers.pcall_err
local funcs = helpers.funcs
local Screen = require('test.functional.ui.screen')
local command = helpers.command
@@ -284,6 +285,14 @@ describe('execute()', function()
eq('42', eval('g:mes'))
end)
+ it('gives E493 instead of prompting on backwards range for ""', function()
+ command('split')
+ eq('Vim(windo):E493: Backwards range given: 2,1windo echo',
+ pcall_err(funcs.execute, '2,1windo echo', ''))
+ eq('Vim(windo):E493: Backwards range given: 2,1windo echo',
+ pcall_err(funcs.execute, {'2,1windo echo'}, ''))
+ end)
+
it('captures but does not display output for "silent"', function()
local screen = Screen.new(40, 5)
screen:attach()