diff options
author | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 10:45:28 +0000 |
---|---|---|
committer | Tanaka Akira <akr@users.sourceforge.net> | 1999-09-13 10:45:28 +0000 |
commit | a4ed24438b36698761634591bb2eb397260ca2c3 (patch) | |
tree | 785c3104e80ad80b01c670e76646d90c1ca6c5f1 /Completion/Core | |
parent | 7eb928e2663197d52898b55cd2ccbe10c3222236 (diff) | |
download | zsh-a4ed24438b36698761634591bb2eb397260ca2c3.tar.gz zsh-a4ed24438b36698761634591bb2eb397260ca2c3.tar.xz zsh-a4ed24438b36698761634591bb2eb397260ca2c3.zip |
zsh-workers/7798
Diffstat (limited to 'Completion/Core')
-rw-r--r-- | Completion/Core/_parameters | 144 |
1 files changed, 81 insertions, 63 deletions
diff --git a/Completion/Core/_parameters b/Completion/Core/_parameters index 0fd6585a2..34a8c3e9b 100644 --- a/Completion/Core/_parameters +++ b/Completion/Core/_parameters @@ -2,76 +2,94 @@ # This should be used to complete parameter names if you need some of the # extra options of compadd. It completes only non-local parameters. + +setopt localoptions extendedglob + +local pars expl + +_description expl parameter + +if zmodload -e parameter; then + pars=( ${(k)parameters[(R)^*local*]} ) +else + pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } ) +fi + +compadd "$expl[@]" "$@" - $pars + + + +# The `-e' option does everything for parameter expansions of us. If +# we wouldn't have it, we would use something like: + # If the first argument is `-s' or `-b' auto_param_slash will be tested # and slashes will be added to parameters containing a directory. `-s' is # for parameter expansions without braces and `-b' is for expansions with # braces. A `-' as the first argument is ignored and in all cases all # other arguments will be given to `compadd'. +# setopt localoptions extendedglob -setopt localoptions extendedglob +# local pars expl slash suf -local pars expl slash suf - -if [[ "$1" = -s ]]; then - slash=normal - suf="$2" - shift 2 -elif [[ "$1" = -b ]]; then - slash=brace - suf="$2" - shift 2 -elif [[ "$1" = - ]]; then - shift -fi +# if [[ "$1" = -s ]]; then +# slash=normal +# suf="$2" +# shift 2 +# elif [[ "$1" = -b ]]; then +# slash=brace +# suf="$2" +# shift 2 +# elif [[ "$1" = - ]]; then +# shift +# fi -_description expl parameter +# _description expl parameter -if [[ -n "$slash" && -o autoparamslash ]]; then - local i dirs nodirs ret=1 - - dirs=() - nodirs=() - - if zmodload -e parameter; then - setopt localoptions extendedglob - nodirs=( ${(k)parameters[(R)undefined]} ) - pars=( ${(k)parameters[(R)^*(local|undefined)*]} ) - else - nodirs=( ${${(M)${(f)"$(typeset +)"}:#undefined *}##* } ) - pars=( ${${${(f)"$(typeset +)"}:#*(local|undefined) *}##* } ) - fi - - for i in $pars; do - if [[ -d "${(P)i}" ]]; then - dirs=( $dirs $i ) - else - nodirs=( $nodirs $i ) - fi - done - - if [[ "$slash" = normal ]]; then - compadd -S "/${suf%% #}" -r ' [/:' "$expl[@]" "$@" - $dirs && ret=0 - compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $nodirs && ret=0 - elif [[ "$slash" = brace ]]; then - compadd -S "}/${suf%% #}" -r '-:?#%+=[/}' "$expl[@]" "$@" - $dirs && ret=0 - compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $nodirs && ret=0 - fi - - return ret -else - if zmodload -e parameter; then - setopt localoptions extendedglob - pars=( ${(k)parameters[(R)^*local*]} ) - else - pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } ) - fi - - if [[ "$slash" = normal ]]; then - compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $pars - elif [[ "$slash" = brace ]]; then - compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $pars - else - compadd "$expl[@]" "$@" - $pars - fi -fi +# if [[ -n "$slash" && -o autoparamslash ]]; then +# local i dirs nodirs ret=1 + +# dirs=() +# nodirs=() + +# if zmodload -e parameter; then +# setopt localoptions extendedglob +# nodirs=( ${(k)parameters[(R)undefined]} ) +# pars=( ${(k)parameters[(R)^*(local|undefined)*]} ) +# else +# nodirs=( ${${(M)${(f)"$(typeset +)"}:#undefined *}##* } ) +# pars=( ${${${(f)"$(typeset +)"}:#*(local|undefined) *}##* } ) +# fi + +# for i in $pars; do +# if [[ -d "${(P)i}" ]]; then +# dirs=( $dirs $i ) +# else +# nodirs=( $nodirs $i ) +# fi +# done + +# if [[ "$slash" = normal ]]; then +# compadd -S "/${suf%% #}" -r ' [/:' "$expl[@]" "$@" - $dirs && ret=0 +# compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $nodirs && ret=0 +# elif [[ "$slash" = brace ]]; then +# compadd -S "}/${suf%% #}" -r '-:?#%+=[/}' "$expl[@]" "$@" - $dirs && ret=0 +# compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $nodirs && ret=0 +# fi + +# return ret +# else +# if zmodload -e parameter; then +# pars=( ${(k)parameters[(R)^*local*]} ) +# else +# pars=( ${${${(f)"$(typeset +)"}:#*local *}##* } ) +# fi + +# if [[ "$slash" = normal ]]; then +# compadd -S "$suf" -r ' [:' "$expl[@]" "$@" - $pars +# elif [[ "$slash" = brace ]]; then +# compadd -S "}$suf" -r '-:?#%+=[/}' "$expl[@]" "$@" - $pars +# else +# compadd "$expl[@]" "$@" - $pars +# fi +# fi |