From f90992ec3170a70a65d11ed9fd2aa4c6baaec3eb Mon Sep 17 00:00:00 2001 From: Sven Wischnowsky Date: Wed, 26 Jul 2000 08:16:39 +0000 Subject: allow _value: functions to override completion for all keys of an assoc (3337) --- Completion/Base/_value | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Completion/Base/_value') diff --git a/Completion/Base/_value b/Completion/Base/_value index 402bab236..15218eb60 100644 --- a/Completion/Base/_value +++ b/Completion/Base/_value @@ -2,10 +2,16 @@ _value () { # You can customize completion for different parameters by writing a - # function `_value:'. + # function `_value:', where is the name of the parameter. + # When completing values of elements of associative arrays, we first + # search for a function `_value:-' and then for + # `_value:', so it's simple to define different functions + # for different keys or one function for a whole association. if (( $+functions[_value:$compstate[parameter]] )); then "_value:$compstate[parameter]" "$@" + elif (( $+functions[_value:${compstate[parameter]%%-*}] )); then + "_value:${compstate[parameter]%%-*}" "$@" elif [[ "$compstate[parameter]" != *-* && "${(Pt)${compstate[parameter]}}" = assoc* ]]; then if (( CURRENT & 1 )); then -- cgit 1.4.1