mirror of
https://github.com/neovim/neovim.git
synced 2025-09-18 01:08:20 +00:00
vim-patch:9.0.1520: completion for option name includes all bool options (#23518)
Problem: Completion for option name includes all bool options.
Solution: Do not recognize the "noinv" prefix. Prefix "no" or "inv" when
appropriate.
048d9d2521
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -897,12 +897,27 @@ char *ExpandOne(expand_T *xp, char *str, char *orig, int options, int mode)
|
||||
if (mode == WILD_ALL && xp->xp_numfiles > 0 && !got_int) {
|
||||
size_t len = 0;
|
||||
for (int i = 0; i < xp->xp_numfiles; i++) {
|
||||
if (i > 0) {
|
||||
if (xp->xp_prefix == XP_PREFIX_NO) {
|
||||
len += 2; // prefix "no"
|
||||
} else if (xp->xp_prefix == XP_PREFIX_INV) {
|
||||
len += 3; // prefix "inv"
|
||||
}
|
||||
}
|
||||
len += strlen(xp->xp_files[i]) + 1;
|
||||
}
|
||||
ss = xmalloc(len);
|
||||
*ss = NUL;
|
||||
for (int i = 0; i < xp->xp_numfiles; i++) {
|
||||
if (i > 0) {
|
||||
if (xp->xp_prefix == XP_PREFIX_NO) {
|
||||
STRCAT(ss, "no");
|
||||
} else if (xp->xp_prefix == XP_PREFIX_INV) {
|
||||
STRCAT(ss, "inv");
|
||||
}
|
||||
}
|
||||
STRCAT(ss, xp->xp_files[i]);
|
||||
|
||||
if (i != xp->xp_numfiles - 1) {
|
||||
STRCAT(ss, (options & WILD_USE_NL) ? "\n" : " ");
|
||||
}
|
||||
@@ -927,6 +942,7 @@ void ExpandInit(expand_T *xp)
|
||||
{
|
||||
CLEAR_POINTER(xp);
|
||||
xp->xp_backslash = XP_BS_NONE;
|
||||
xp->xp_prefix = XP_PREFIX_NONE;
|
||||
xp->xp_numfiles = -1;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user