mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-06-22 22:58:03 +02:00
zsh-workers:6188
This commit is contained in:
parent
f330bdf21e
commit
f0159dac34
1 changed files with 26 additions and 15 deletions
|
@ -180,9 +180,15 @@ compdef() {
|
||||||
*)
|
*)
|
||||||
# For commands store the function name in the `_comps'
|
# For commands store the function name in the `_comps'
|
||||||
# associative array, command names as keys.
|
# associative array, command names as keys.
|
||||||
for i; do
|
if [[ -z "$new" ]]; then
|
||||||
[[ -z "$new" || "${+_comps[$i]}" -eq 0 ]] && _comps[$i]="$func"
|
for i; do
|
||||||
done
|
_comps[$i]="$func"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
for i; do
|
||||||
|
[[ "${+_comps[$i]}" -eq 0 ]] && _comps[$i]="$func"
|
||||||
|
done
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
|
@ -286,31 +292,36 @@ if [[ -z "$_i_done" ]]; then
|
||||||
read -rA _i_line < $_i_file
|
read -rA _i_line < $_i_file
|
||||||
_i_tag=$_i_line[1]
|
_i_tag=$_i_line[1]
|
||||||
shift _i_line
|
shift _i_line
|
||||||
if [[ $_i_tag = '#compdef' ]]; then
|
case $_i_tag in
|
||||||
|
(\#compdef)
|
||||||
if [[ $_i_line[1] = -[pk] ]]; then
|
if [[ $_i_line[1] = -[pk] ]]; then
|
||||||
compdef ${_i_line[1]}a "${_i_file:t}" "${(@)_i_line[2,-1]}"
|
compdef ${_i_line[1]}a "${_i_file:t}" "${(@)_i_line[2,-1]}"
|
||||||
else
|
else
|
||||||
compdef -na "${_i_file:t}" "${_i_line[@]}"
|
compdef -na "${_i_file:t}" "${_i_line[@]}"
|
||||||
fi
|
fi
|
||||||
elif [[ $_i_tag = '#autoload' ]]; then
|
;;
|
||||||
|
(\#autoload)
|
||||||
autoload ${_i_file:t}
|
autoload ${_i_file:t}
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
bindkey |
|
bindkey |
|
||||||
while read -rA _i_line; do
|
while read -rA _i_line; do
|
||||||
if [[ "$_i_line[2]" = complete-word ||
|
case "$_i_line[2]" in
|
||||||
"$_i_line[2]" = delete-char-or-list ||
|
(complete-word) ;&
|
||||||
"$_i_line[2]" = expand-or-complete ||
|
(delete-char-or-list) ;&
|
||||||
"$_i_line[2]" = expand-or-complete-prefix ||
|
(expand-or-complete) ;&
|
||||||
"$_i_line[2]" = list-choices ||
|
(expand-or-complete-prefix) ;&
|
||||||
"$_i_line[2]" = menu-complete ||
|
(list-choices) ;&
|
||||||
"$_i_line[2]" = menu-expand-or-complete ||
|
(menu-complete) ;&
|
||||||
"$_i_line[2]" = reverse-menu-complete ]]; then
|
(menu-expand-or-complete) ;&
|
||||||
|
(reverse-menu-complete)
|
||||||
zle -C _complete_$_i_line[2] $_i_line[2] _main_complete
|
zle -C _complete_$_i_line[2] $_i_line[2] _main_complete
|
||||||
bindkey "${_i_line[1][2,-2]}" _complete_$_i_line[2]
|
bindkey "${_i_line[1][2,-2]}" _complete_$_i_line[2]
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
unset _i_dir _i_line _i_file _i_tag
|
unset _i_dir _i_line _i_file _i_tag
|
||||||
|
|
Loading…
Reference in a new issue