patch 9.1.1182: No cmdline completion for 'completefuzzycollect'
Commit:
https://github.com/vim/vim/commit/53d59ecc1d93ce3a3f6d0182479d825852018ceb
Author: zeertzjq <[email protected]>
Date: Fri Mar 7 19:09:09 2025 +0100
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 <[email protected]>
Signed-off-by: Christian Brabandt <[email protected]>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 6afe32f1e..588daf643 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -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
@@ -2135,10 +2135,10 @@ A jump table for the options with a short description
can be found at |Q_op|.
fuzzy Enable |fuzzy-matching| for completion candidates. This
allows for more flexible and intuitive matching, where
characters can be skipped and matches can be found even
- if the exact sequence is not typed. Note: This option
+ if the exact sequence is not typed. Note: This option
does not affect the collection of candidate list, it only
controls how completion candidates are reduced from the
- list of alternatives. If you want to use |fuzzy-matching|
+ list of alternatives. If you want to use |fuzzy-matching|
to gather more alternatives for your candidate list,
see |'completefuzzycollect'|.
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 2c28ee1fc..9d8ac7645 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: The Vim Project <https://github.com/vim/vim>
-" Last Change: 2025 Feb 08
+" Last Change: 2025 Mar 07
" Former Maintainer: Bram Moolenaar <[email protected]>
" 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 append("$", " " .. s:local_to_buffer)
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>AddOption("completeopt", gettext("whether to use a popup menu for
Insert mode completion"))
call <SID>OptionL("cot")
diff --git a/src/optiondefs.h b/src/optiondefs.h
index a8d7972d3..38e871c88 100644
--- a/src/optiondefs.h
+++ b/src/optiondefs.h
@@ -656,7 +656,7 @@ static struct vimoption options[] =
#endif
SCTX_INIT},
{"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}
SCTX_INIT},
{"completeitemalign", "cia", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP,
diff --git a/src/optionstr.c b/src/optionstr.c
index 5b863bcc9..517a8358c 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -1659,6 +1659,20 @@ did_set_completefuzzycollect(optset_T *args UNUSED)
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.
*/
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index 6fd26bab0..c52dbe932 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -44,6 +44,7 @@ char *did_set_completeopt(optset_T *args);
int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u
***matches);
char *did_set_completeitemalign(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_completeslash(optset_T *args);
int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u
***matches);
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 84a0035b9..6a561ac74 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -501,6 +501,7 @@ func Test_set_completion_string_values()
endif
call assert_equal('.', getcompletion('set complete=', 'cmdline')[1])
call assert_equal('menu', getcompletion('set completeopt=', 'cmdline')[1])
+ call assert_equal('keyword', getcompletion('set completefuzzycollect=',
'cmdline')[0])
if exists('+completeslash')
call assert_equal('backslash', getcompletion('set completeslash=',
'cmdline')[1])
endif
diff --git a/src/version.c b/src/version.c
index ad0cbcc73..671ac25ad 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1182,
/**/
1181,
/**/
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1tqcDx-00EGTb-Qj%40256bit.org.