Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH v2] _compdef: Change and add sources for completed completion function names.



Use ${(v)_comps} instead of going through $fpath again.  Use
${functions} as well to find more legitimate matches, such as various
__git_foo() helpers defined in ${^fpath}/_git.
---
 Completion/Zsh/Command/_compdef | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/Completion/Zsh/Command/_compdef b/Completion/Zsh/Command/_compdef
index 7a64da835..22af7f561 100644
--- a/Completion/Zsh/Command/_compdef
+++ b/Completion/Zsh/Command/_compdef
@@ -1,6 +1,6 @@
 #compdef compdef
 
-local state line expl list disp curcontext="$curcontext" pat normal ret=1
+local state line expl disp curcontext="$curcontext" pat normal ret=1
 local args1 args2
 typeset -A opt_args
 
@@ -57,7 +57,8 @@ case $state in
     _wanted commands expl 'completed command' compadd -k _comps && ret=0
   ;;
   cfun)
-    list=( ${^fpath:/.}/_(|*[^~])(:t) )
+    typeset -aU list=( ${(v)_comps} ${(k)functions[(I)_*]} )
+    (( ${+list[1]} )) || list+=( ${^fpath:/.}/_(|*[^~])(:t) )
     if zstyle -T ":completion:${curcontext}:functions" prefix-hidden; then
       disp=( ${list[@]#_} )
       _wanted functions expl 'completion function' \



Messages sorted by: Reverse Date, Date, Thread, Author