patch 9.1.1699: Fuzzy completion disabled for 'findfunc' and customlist

Commit: 
https://github.com/vim/vim/commit/cadba053293a7294d69b2336dbea50a77b3ee206
Author: Maxim Kim <haba...@gmail.com>
Date:   Wed Aug 27 18:09:14 2025 +0200

    patch 9.1.1699: Fuzzy completion disabled for 'findfunc' and customlist
    
    Problem:  Fuzzy completion disabled for 'findfunc' and customlist
    Solution: Remove those cases from cmdline_fuzzy_completion_supported()
              because it is supported (Maxim Kim).
    
    fixes: #18117
    closes: #18122
    
    Signed-off-by: Maxim Kim <haba...@gmail.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index f4feec94b..8b42d7ab1 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -58,7 +58,6 @@ cmdline_fuzzy_completion_supported(expand_T *xp)
     case EXPAND_FILES_IN_PATH:
     case EXPAND_FILETYPE:
     case EXPAND_FILETYPECMD:
-    case EXPAND_FINDFUNC:
     case EXPAND_HELP:
     case EXPAND_KEYMAP:
     case EXPAND_OLD_SETTING:
@@ -71,7 +70,6 @@ cmdline_fuzzy_completion_supported(expand_T *xp)
     case EXPAND_SHELLCMDLINE:
     case EXPAND_TAGS:
     case EXPAND_TAGS_LISTFILES:
-    case EXPAND_USER_LIST:
        return FALSE;
 
     default:
diff --git a/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_1.dump 
b/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_1.dump
new file mode 100644
index 000000000..8d8bdb27c
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_1.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@49
+|~+0#4040ff13&| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @3| +0#0000001#e0e0e08|h+1&&|e|l+0&&@1|o|/|w+1&&|o|r+0&&|l|d| @4| 
+0#4040ff13#ffffff0@27
+|~| @3| +0#0000001#ffd7ff255|h+1&&|e|l+0&&@1|o|/|w+1&&|o|n+0&&|d|e|r|f|u|l| | 
+0#4040ff13#ffffff0@27
+|:+0#0000000&|f|i|n|d| |h|e|l@1|o|/|w|o|r|l|d> @32
diff --git a/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_2.dump 
b/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_2.dump
new file mode 100644
index 000000000..ecbc06ddd
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_hl_match_find_2.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@49
+|~+0#4040ff13&| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @3| +0#0000001#e0e0e08|h|e|l@1|o|/|w|o|r|l|d| @4| +0#4040ff13#ffffff0@27
+|~| @3| +0#0000001#ffd7ff255|h|e|l@1|o|/|w|o|n|d|e|r|f|u|l| | 
+0#4040ff13#ffffff0@27
+|:+0#0000000&|f|i|n|d| |h|e|l@1|o|/|w|o|r|l|d> @32
diff --git a/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_1.dump 
b/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_1.dump
new file mode 100644
index 000000000..ce9948d23
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_1.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@49
+|~+0#4040ff13&| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @4| +0#0000001#e0e0e08|h+1&&|e|l+0&&@1|o|/|w+1&&|o|r+0&&|l|d| @4| 
+0#4040ff13#ffffff0@26
+|~| @4| +0#0000001#ffd7ff255|h+1&&|e|l+0&&@1|o|/|w+1&&|o|n+0&&|d|e|r|f|u|l| | 
+0#4040ff13#ffffff0@26
+|:+0#0000000&|L|i|s|t|T| |h|e|l@1|o|/|w|o|r|l|d> @31
diff --git a/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_2.dump 
b/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_2.dump
new file mode 100644
index 000000000..0f26c5a45
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_hl_match_list_2.dump
@@ -0,0 +1,10 @@
+| +0&#ffffff0@49
+|~+0#4040ff13&| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @48
+|~| @4| +0#0000001#e0e0e08|h|e|l@1|o|/|w|o|r|l|d| @4| +0#4040ff13#ffffff0@26
+|~| @4| +0#0000001#ffd7ff255|h|e|l@1|o|/|w|o|n|d|e|r|f|u|l| | 
+0#4040ff13#ffffff0@26
+|:+0#0000000&|L|i|s|t|T| |h|e|l@1|o|/|w|o|r|l|d> @31
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 01198e4bc..d09faed79 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -3120,6 +3120,62 @@ func Test_wildmenu_pum_hl_match()
   call StopVimInTerminal(buf)
 endfunc
 
+" Test highlighting of matched text in cmdline completion popup menu provided
+" by a command completed with customlist.
+func Test_wildmenu_pum_hl_match_list()
+  CheckScreendump
+
+  let lines =<< trim END
+    set wildoptions=pum,fuzzy
+    hi PmenuMatchSel  cterm=reverse
+    hi PmenuMatch     cterm=reverse
+    command -nargs=1 -complete=customlist,ListComplete ListT echo <q-args>
+    func ListComplete(A, B, C)
+      return ['hello/world', 'hello/wonderful']->matchfuzzy(a:A)
+    endfunc
+  END
+  call writefile(lines, 'Xwildmenu_pum_hl', 'D')
+  let buf = RunVimInTerminal('-S Xwildmenu_pum_hl', #{rows: 10, cols: 50})
+
+  call term_sendkeys(buf, ":ListT hewo\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_list_1', {})
+  call term_sendkeys(buf, "\<Esc>:set wildoptions-=fuzzy\<CR>")
+  call TermWait(buf)
+  call term_sendkeys(buf, ":ListT hewo\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_list_2', {})
+  call term_sendkeys(buf, "\<Esc>")
+
+  call StopVimInTerminal(buf)
+endfunc
+
+" Test highlighting of matched text in cmdline completion popup menu provided
+" by a custom 'findfunc'
+func Test_wildmenu_pum_hl_match_findfunc()
+  CheckScreendump
+
+  let lines =<< trim END
+    set wildoptions=pum,fuzzy
+    hi PmenuMatchSel  cterm=reverse
+    hi PmenuMatch     cterm=reverse
+    func FindComplete(cmdarg, cmdcomplete)
+      return ['hello/world', 'hello/wonderful']->matchfuzzy(a:cmdarg)
+    endfunc
+    set findfunc=FindComplete
+  END
+  call writefile(lines, 'Xwildmenu_pum_hl', 'D')
+  let buf = RunVimInTerminal('-S Xwildmenu_pum_hl', #{rows: 10, cols: 50})
+
+  call term_sendkeys(buf, ":find hewo\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_find_1', {})
+  call term_sendkeys(buf, "\<Esc>:set wildoptions-=fuzzy\<CR>")
+  call TermWait(buf)
+  call term_sendkeys(buf, ":find hewo\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_pum_hl_match_find_2', {})
+  call term_sendkeys(buf, "\<Esc>")
+
+  call StopVimInTerminal(buf)
+endfunc
+
 " Test for completion after a :substitute command followed by a pipe (|)
 " character
 func Test_cmdline_complete_substitute()
diff --git a/src/version.c b/src/version.c
index 9d0d4e83a..0bcd55691 100644
--- a/src/version.c
+++ b/src/version.c
@@ -724,6 +724,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1699,
 /**/
     1698,
 /**/

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1urInl-005Y7n-9h%40256bit.org.

Raspunde prin e-mail lui