From f2cdf73afc7307fc65ab21134bcc4549ac34b2d4 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 2 Apr 2026 07:05:47 +0800 Subject: fix(api): avoid error when parsing invalid expr after :echo (#38695) Problem: Parsing :echo followed by invalid expression leads to error. Solution: Suppress error when skipping over expression. --- test/functional/api/vim_spec.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test/functional/api/vim_spec.lua') diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index f9227d9cea..d625d2667c 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -4828,6 +4828,16 @@ describe('API', function() eq('execute', result.cmd) eq('edit foo', result.nextcmd) end) + it('parses expr-arg commands with invalid expr #38689', function() + for _, arg in ipairs({ '&', '[', '{', '"', "'" }) do + local result = api.nvim_parse_cmd('echo ' .. arg, {}) + eq({ arg }, result.args) + eq('echo', result.cmd) + eq('', result.nextcmd) + end + -- v:errmsg shouldn't be set + eq('', api.nvim_get_vvar('errmsg')) + end) it('parses :map commands with space in RHS', function() eq({ addr = 'none', -- cgit