diff options
author | Oliver Kiddle <opk@users.sourceforge.net> | 2001-10-12 10:49:19 +0000 |
---|---|---|
committer | Oliver Kiddle <opk@users.sourceforge.net> | 2001-10-12 10:49:19 +0000 |
commit | 3b9e0363689b06b61ef0533c6afe2b9287381bb4 (patch) | |
tree | 9c2e431ba9aeea589bb7687484e3bf080ec5b358 /Completion/Zsh/Context | |
parent | 0c71c4fa7744754b1b730e37bcc2fcdb49e5f6a7 (diff) | |
download | zsh-3b9e0363689b06b61ef0533c6afe2b9287381bb4.tar.gz zsh-3b9e0363689b06b61ef0533c6afe2b9287381bb4.tar.xz zsh-3b9e0363689b06b61ef0533c6afe2b9287381bb4.zip |
use _x_display when setting $DISPLAY and fix bug in enable completion (15594)
Diffstat (limited to 'Completion/Zsh/Context')
-rw-r--r-- | Completion/Zsh/Context/_value | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Completion/Zsh/Context/_value b/Completion/Zsh/Context/_value new file mode 100644 index 000000000..cb2675c0e --- /dev/null +++ b/Completion/Zsh/Context/_value @@ -0,0 +1,63 @@ +#compdef -value- -array-value- + +_value () { + # You can customize completion for different parameters by writing a + # function `_value:<name>', where <name> is the name of the parameter. + # When completing values of elements of associative arrays, we first + # search for a function `_value:<assoc>-<key>' and then for + # `_value:<assoc>', 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 + _wanted association-keys expl 'association key' \ + compadd -k "$compstate[parameter]" + else + compstate[parameter]="${compstate[parameter]}-${words[CURRENT-1]}" + _value "$@" + fi + else + local pats + + if { zstyle -a ":completion:${curcontext}:" assign-list pats && + [[ "$compstate[parameter]" = (${(j:|:)~pats}) ]] } || + [[ "$PREFIX$SUFFIX" = *:* ]]; then + compset -P '*:' + compset -S ':*' + _default -r '\-\n\t /:' "$@" + else + _default "$@" + fi + fi +} + +_value:CPPFLAGS () { + compset -q + if compset -P '-I'; then + _files -/ "$@" + else + _default "$@" + fi +} + +_value:LDFLAGS () { + compset -q + if compset -P '-L'; then + _files -/ "$@" + elif compset -P '-R'; then + compset -P '*:' + compset -S ':*' + _files -/ -S/ -r '\n\t\- /:' "$@" + else + _default "$@" + fi +} + +_value:DISPLAY() { _x_display "$@" } + +_value "$@" |