From 7aaca97fc5154bb2f2483237b49e25786a061379 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 12 Oct 2025 14:12:41 +0000 Subject: [PATCH] patch 9.1.1847: No cmdline completion for :echoconsole and :echowindow Problem: No cmdline completion for :echoconsole, :echowindow and second expression after :echoerr. Solution: Set EXPAND_EXPRESSION for :echoconsole and :echowindow, and check for multiple expressions after :echoerr (zeertzjq). closes: #18552 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/cmdexpand.c | 2 ++ src/eval.c | 2 ++ src/testdir/test_cmdline.vim | 7 ++++--- src/version.c | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/cmdexpand.c b/src/cmdexpand.c index 0e24d29da4..104fe08ae8 100644 --- a/src/cmdexpand.c +++ b/src/cmdexpand.c @@ -2482,6 +2482,8 @@ set_context_by_cmdname( case CMD_execute: case CMD_echomsg: case CMD_echoerr: + case CMD_echoconsole: + case CMD_echowindow: case CMD_call: case CMD_return: case CMD_cexpr: diff --git a/src/eval.c b/src/eval.c index 38979b0822..b3bf9d5931 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3113,6 +3113,8 @@ set_context_for_expression( || cmdidx == CMD_echo || cmdidx == CMD_echon || cmdidx == CMD_echomsg + || cmdidx == CMD_echoerr + || cmdidx == CMD_echoconsole || cmdidx == CMD_echowindow) && xp->xp_context == EXPAND_EXPRESSION) { diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim index bdba4abff1..58629b5fdd 100644 --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -1333,11 +1333,12 @@ endfunc func Test_cmdline_complete_expression() let g:SomeVar = 'blah' - for cmd in ['exe', 'echo', 'echon', 'echomsg'] + for cmd in ['exe', 'echo', 'echon', 'echomsg', 'echoerr', + \ 'echoconsole', 'echowindow'] call feedkeys(":" .. cmd .. " SomeV\\\"\", 'tx') - call assert_match('"' .. cmd .. ' SomeVar', @:) + call assert_match('"' .. cmd .. ' SomeVar', @:, cmd) call feedkeys(":" .. cmd .. " foo SomeV\\\"\", 'tx') - call assert_match('"' .. cmd .. ' foo SomeVar', @:) + call assert_match('"' .. cmd .. ' foo SomeVar', @:, cmd) endfor unlet g:SomeVar endfunc diff --git a/src/version.c b/src/version.c index 47d7e9f758..2dd8c9764a 100644 --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1847, /**/ 1846, /**/