From b39a102262ff4810a75bf6b7595ee5195d13939e Mon Sep 17 00:00:00 2001 From: Daniel Shahaf Date: Mon, 3 Sep 2018 13:44:36 +0000 Subject: 43366: _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. --- ChangeLog | 5 +++++ Completion/Zsh/Command/_compdef | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d2b5dad3..262a36a63 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2018-09-06 Daniel Shahaf + + * 43366: Completion/Zsh/Command/_compdef: Change and add sources + for completed completion function names. + 2018-09-05 dana * 43372: Completion/Linux/Command/_e2label: Add completion for 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' \ -- cgit 1.4.1