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

7a5115ce50
This commit is contained in:
zeertzjq
2025-03-20 07:21:17 +08:00
committed by GitHub
parent 51853b82bc
commit 175c09bd66
2 changed files with 15 additions and 1 deletions

View File

@@ -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);