0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 9.1.1182: No cmdline completion for 'completefuzzycollect'

Problem:  No cmdline completion for the 'completefuzzycollect' option
          (after v9.1.1178)
Solution: Add cmdline completion for the 'completefuzzycollect' option,
          improve its description in optwin.vim (zeertzjq).

closes: #16813

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq
2025-03-07 19:09:09 +01:00
committed by Christian Brabandt
parent 4422de6316
commit 53d59ecc1d
7 changed files with 24 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
*options.txt* For Vim version 9.1. Last change: 2025 Mar 06 *options.txt* For Vim version 9.1. Last change: 2025 Mar 07
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar

View File

@@ -1,7 +1,7 @@
" These commands create the option window. " These commands create the option window.
" "
" Maintainer: The Vim Project <https://github.com/vim/vim> " Maintainer: The Vim Project <https://github.com/vim/vim>
" Last Change: 2025 Feb 08 " Last Change: 2025 Mar 07
" Former Maintainer: Bram Moolenaar <Bram@vim.org> " Former Maintainer: Bram Moolenaar <Bram@vim.org>
" If there already is an option window, jump to that one. " If there already is an option window, jump to that one.
@@ -849,7 +849,7 @@ if has("insert_expand")
call <SID>AddOption("complete", gettext("specifies how Insert mode completion works for CTRL-N and CTRL-P")) call <SID>AddOption("complete", gettext("specifies how Insert mode completion works for CTRL-N and CTRL-P"))
call append("$", "\t" .. s:local_to_buffer) call append("$", "\t" .. s:local_to_buffer)
call <SID>OptionL("cfc") call <SID>OptionL("cfc")
call <SID>AddOption("completefuzzycollect", gettext("using fuzzy collect for defaule completion mode")) call <SID>AddOption("completefuzzycollect", gettext("use fuzzy collection for specific completion modes"))
call <SID>OptionL("cpt") call <SID>OptionL("cpt")
call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion")) call <SID>AddOption("completeopt", gettext("whether to use a popup menu for Insert mode completion"))
call <SID>OptionL("cot") call <SID>OptionL("cot")

View File

@@ -656,7 +656,7 @@ static struct vimoption options[] =
#endif #endif
SCTX_INIT}, SCTX_INIT},
{"completefuzzycollect", "cfc", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, {"completefuzzycollect", "cfc", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
(char_u *)&p_cfc, PV_NONE, did_set_completefuzzycollect, NULL, (char_u *)&p_cfc, PV_NONE, did_set_completefuzzycollect, expand_set_completefuzzycollect,
{(char_u *)"", (char_u *)0L} {(char_u *)"", (char_u *)0L}
SCTX_INIT}, SCTX_INIT},
{"completeitemalign", "cia", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, {"completeitemalign", "cia", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,

View File

@@ -1659,6 +1659,20 @@ did_set_completefuzzycollect(optset_T *args UNUSED)
return NULL; return NULL;
} }
int
expand_set_completefuzzycollect(
optexpand_T *args,
int *numMatches,
char_u ***matches)
{
return expand_set_opt_string(
args,
p_cfc_values,
ARRAY_LENGTH(p_cfc_values) - 1,
numMatches,
matches);
}
/* /*
* The 'completeitemalign' option is changed. * The 'completeitemalign' option is changed.
*/ */

View File

@@ -44,6 +44,7 @@ char *did_set_completeopt(optset_T *args);
int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u ***matches); int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u ***matches);
char *did_set_completeitemalign(optset_T *args); char *did_set_completeitemalign(optset_T *args);
char *did_set_completefuzzycollect(optset_T *args); char *did_set_completefuzzycollect(optset_T *args);
int expand_set_completefuzzycollect(optexpand_T *args, int *numMatches, char_u ***matches);
char *did_set_completepopup(optset_T *args); char *did_set_completepopup(optset_T *args);
char *did_set_completeslash(optset_T *args); char *did_set_completeslash(optset_T *args);
int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u ***matches); int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u ***matches);

View File

@@ -501,6 +501,7 @@ func Test_set_completion_string_values()
endif endif
call assert_equal('.', getcompletion('set complete=', 'cmdline')[1]) call assert_equal('.', getcompletion('set complete=', 'cmdline')[1])
call assert_equal('menu', getcompletion('set completeopt=', 'cmdline')[1]) call assert_equal('menu', getcompletion('set completeopt=', 'cmdline')[1])
call assert_equal('keyword', getcompletion('set completefuzzycollect=', 'cmdline')[0])
if exists('+completeslash') if exists('+completeslash')
call assert_equal('backslash', getcompletion('set completeslash=', 'cmdline')[1]) call assert_equal('backslash', getcompletion('set completeslash=', 'cmdline')[1])
endif endif

View File

@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1182,
/**/ /**/
1181, 1181,
/**/ /**/