diff options
Diffstat (limited to 'Completion/Base/_brace_parameter')
-rw-r--r-- | Completion/Base/_brace_parameter | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/Completion/Base/_brace_parameter b/Completion/Base/_brace_parameter index 4a91dde73..2bf7b6a6d 100644 --- a/Completion/Base/_brace_parameter +++ b/Completion/Base/_brace_parameter @@ -1,25 +1,31 @@ #compdef -brace-parameter- -setopt localoptions extendedglob +_parameters -e -local lp ls n q -if [[ "$SUFFIX" = *\}* ]]; then - ISUFFIX="${SUFFIX#*\}}$ISUFFIX" - SUFFIX="${SUFFIX%%\}*}" - suf=() -elif [[ "$LBUFFER" = *\$\{[^}]#\$\{[^}]#$PREFIX || - "$compstate[insert]" = *menu* ]]; then - suf=(-b '') -else - suf=(-b ' ') -fi +# Without the `-e' option, we would use the following (see the file +# Core/_parameters for more enlightenment). -lp="$LBUFFER[1,-${#PREFIX}-1]" -ls="$RBUFFER[${#SUFFIX}+1,-1]" -n=${(M)#ls##\"#} -q=${(M)lp%%\"#} +# setopt localoptions extendedglob -[[ n -gt 0 ]] && suf='' +# local lp ls n q -_parameters "$suf[@]" -Qs "${q[1,-n-1]}" -r '-:?#%+=[/}' +# if [[ "$SUFFIX" = *\}* ]]; then +# ISUFFIX="${SUFFIX#*\}}$ISUFFIX" +# SUFFIX="${SUFFIX%%\}*}" +# suf=() +# elif [[ "$LBUFFER" = *\$\{[^}]#\$\{[^}]#$PREFIX || +# "$compstate[insert]" = *menu* ]]; then +# suf=(-b '') +# else +# suf=(-b ' ') +# fi + +# lp="$LBUFFER[1,-${#PREFIX}-1]" +# ls="$RBUFFER[${#SUFFIX}+1,-1]" +# n=${(M)#ls##\"#} +# q=${(M)lp%%\"#} + +# [[ n -gt 0 ]] && suf='' + +# _parameters "$suf[@]" -Qs "${q[1,-n-1]}" -r '-:?#%+=[/}' |