From 175c09bd660d0cea62288e74cea925a9b15bee55 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 20 Mar 2025 07:21:17 +0800 Subject: vim-patch:9.1.1226: "shellcmdline" completion doesn't work with input() (#32998) Problem: "shellcmdline" completion doesn't work with input(). Solution: Use set_context_for_wildcard_arg(). Fix indent in nextwild() (zeertzjq). There are some other inconsistencies for input() completion (ref vim/vim#948), but since "shellcmdline" currently doesn't work at all, it makse sense to at least make it work. fixes: vim/vim#16932 closes: vim/vim#16934 https://github.com/vim/vim/commit/7a5115ce50c622caf91503f9d7fe09c3749b928b --- src/nvim/cmdexpand.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/nvim/cmdexpand.c b/src/nvim/cmdexpand.c index fcfeda5482..28cc70ff5a 100644 --- a/src/nvim/cmdexpand.c +++ b/src/nvim/cmdexpand.c @@ -2407,6 +2407,10 @@ void set_cmd_context(expand_T *xp, char *str, int len, int col, int use_ccline) xp->xp_context = ccline->xp_context; xp->xp_pattern = ccline->cmdbuff; xp->xp_arg = ccline->xp_arg; + if (xp->xp_context == EXPAND_SHELLCMDLINE) { + int context = xp->xp_context; + set_context_for_wildcard_arg(NULL, xp->xp_pattern, false, xp, &context); + } } else { while (nextcomm != NULL) { nextcomm = set_one_cmd_context(xp, nextcomm); -- cgit