To: vim_dev@googlegroups.com Subject: Patch 8.2.4917 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.4917 Problem: Fuzzy expansion of option names is not right. Solution: Pass the fuzzy flag down the call chain. (Christian Brabandt, closes #10380, closes #10318) Files: src/cmdexpand.c, src/option.c, src/proto/option.pro, src/testdir/test_options.vim *** ../vim-8.2.4916/src/cmdexpand.c 2022-05-07 12:48:24.074194794 +0100 --- src/cmdexpand.c 2022-05-08 21:07:43.262062820 +0100 *************** *** 2787,2793 **** if (xp->xp_context == EXPAND_SETTINGS || xp->xp_context == EXPAND_BOOL_SETTINGS) ! ret = ExpandSettings(xp, ®match, pat, numMatches, matches); else if (xp->xp_context == EXPAND_MAPPINGS) ret = ExpandMappings(pat, ®match, numMatches, matches); # if defined(FEAT_EVAL) --- 2787,2793 ---- if (xp->xp_context == EXPAND_SETTINGS || xp->xp_context == EXPAND_BOOL_SETTINGS) ! ret = ExpandSettings(xp, ®match, pat, numMatches, matches, fuzzy); else if (xp->xp_context == EXPAND_MAPPINGS) ret = ExpandMappings(pat, ®match, numMatches, matches); # if defined(FEAT_EVAL) *** ../vim-8.2.4916/src/option.c 2022-05-07 20:01:10.062731687 +0100 --- src/option.c 2022-05-08 21:07:43.262062820 +0100 *************** *** 6511,6517 **** regmatch_T *regmatch, char_u *fuzzystr, int *numMatches, ! char_u ***matches) { int num_normal = 0; // Nr of matching non-term-code settings int num_term = 0; // Nr of matching terminal code settings --- 6511,6518 ---- regmatch_T *regmatch, char_u *fuzzystr, int *numMatches, ! char_u ***matches, ! int can_fuzzy) { int num_normal = 0; // Nr of matching non-term-code settings int num_term = 0; // Nr of matching terminal code settings *************** *** 6527,6533 **** int fuzzy; fuzmatch_str_T *fuzmatch = NULL; ! fuzzy = cmdline_fuzzy_complete(fuzzystr); // do this loop twice: // loop == 0: count the number of matching options --- 6528,6534 ---- int fuzzy; fuzmatch_str_T *fuzmatch = NULL; ! fuzzy = can_fuzzy && cmdline_fuzzy_complete(fuzzystr); // do this loop twice: // loop == 0: count the number of matching options *** ../vim-8.2.4916/src/proto/option.pro 2022-04-15 13:53:30.040708711 +0100 --- src/proto/option.pro 2022-05-08 21:07:43.262062820 +0100 *************** *** 64,70 **** void set_iminsert_global(void); void set_imsearch_global(void); void set_context_in_set_cmd(expand_T *xp, char_u *arg, int opt_flags); ! int ExpandSettings(expand_T *xp, regmatch_T *regmatch, char_u *fuzzystr, int *numMatches, char_u ***matches); int ExpandOldSetting(int *num_file, char_u ***file); int shortmess(int x); void vimrc_found(char_u *fname, char_u *envname); --- 64,70 ---- void set_iminsert_global(void); void set_imsearch_global(void); void set_context_in_set_cmd(expand_T *xp, char_u *arg, int opt_flags); ! int ExpandSettings(expand_T *xp, regmatch_T *regmatch, char_u *fuzzystr, int *numMatches, char_u ***matches, int do_fuzzy); int ExpandOldSetting(int *num_file, char_u ***file); int shortmess(int x); void vimrc_found(char_u *fname, char_u *envname); *** ../vim-8.2.4916/src/testdir/test_options.vim 2022-04-15 13:17:54.386867455 +0100 --- src/testdir/test_options.vim 2022-05-08 21:07:43.262062820 +0100 *************** *** 1257,1260 **** --- 1257,1282 ---- set cdhome& endfunc + func Test_set_completion_2() + CheckOption termguicolors + + " Test default option completion + set wildoptions= + call feedkeys(":set termg\\\"\", 'tx') + call assert_equal('"set termguicolors', @:) + + call feedkeys(":set notermg\\\"\", 'tx') + call assert_equal('"set notermguicolors', @:) + + " Test fuzzy option completion + set wildoptions=fuzzy + call feedkeys(":set termg\\\"\", 'tx') + call assert_equal('"set termguicolors termencoding', @:) + + call feedkeys(":set notermg\\\"\", 'tx') + call assert_equal('"set notermguicolors', @:) + + set wildoptions= + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.4916/src/version.c 2022-05-08 20:38:03.068550496 +0100 --- src/version.c 2022-05-08 21:09:53.573949587 +0100 *************** *** 748,749 **** --- 748,751 ---- { /* Add new patch number below this line */ + /**/ + 4917, /**/ -- hundred-and-one symptoms of being an internet addict: 139. You down your lunch in five minutes, at your desk, so you can spend the rest of the hour surfing the Net. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///