diff options
author | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-31 09:23:28 +0000 |
---|---|---|
committer | Sven Wischnowsky <wischnow@users.sourceforge.net> | 2000-05-31 09:23:28 +0000 |
commit | fe8490dcf0b1c0e51fe053938711d15c38128f20 (patch) | |
tree | 302386e7580faf5baa9eb9174fdc740ad04fa444 /Completion | |
parent | 7bf294f2b8329673ffd0ee55fa2cca872e5448df (diff) | |
download | zsh-fe8490dcf0b1c0e51fe053938711d15c38128f20.tar.gz zsh-fe8490dcf0b1c0e51fe053938711d15c38128f20.tar.xz zsh-fe8490dcf0b1c0e51fe053938711d15c38128f20.zip |
allow using menu-select for compdef -k (i.e.: autoload zsh/complist in such cases) (11686)
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Core/compdump | 5 | ||||
-rw-r--r-- | Completion/Core/compinit | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/Completion/Core/compdump b/Completion/Core/compdump index f427730f0..3f013c938 100644 --- a/Completion/Core/compdump +++ b/Completion/Core/compdump @@ -62,9 +62,14 @@ print >> $_d_file # argument to zle does not begin with a `_'). _d_bks=() +_d_complist= zle -lL | while read -rA _d_line; do if [[ ${_d_line[3]} = _* && ${_d_line[5]} = _* ]]; then + if [[ -z "$_d_complist" && ${_d_line[4]} = .menu-select ]]; then + print 'zmodload -i zsh/complist' + d_complist=yes + fi print -r - ${_d_line} _d_bks=($_d_bks ${_d_line[3]}) fi diff --git a/Completion/Core/compinit b/Completion/Core/compinit index 5efc3d501..fc2bb4fc2 100644 --- a/Completion/Core/compinit +++ b/Completion/Core/compinit @@ -232,6 +232,7 @@ compdef() { fi [[ $1 = _* ]] || 1="_$1" [[ $2 = .* ]] || 2=".$2" + [[ $2 = .menu-select ]] && zmodload -i zsh/complist zle -C "$1" "$2" "$func" if [[ -n $new ]]; then bindkey "$3" | read -A opt @@ -250,8 +251,10 @@ compdef() { # Define the widget. if [[ $1 = .* ]]; then + [[ $1 = .menu-select ]] && zmodload -i zsh/complist zle -C "$func" "$1" "$func" else + [[ $1 = menu-select ]] && zmodload -i zsh/complist zle -C "$func" ".$1" "$func" fi shift |