|
|
@ -165,21 +165,8 @@ _zsh_autosuggest_feature_detect_zpty_returns_fd() { |
|
|
|
#--------------------------------------------------------------------# |
|
|
|
|
|
|
|
_zsh_autosuggest_incr_bind_count() { |
|
|
|
if ((${+_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]})); then |
|
|
|
((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]++)) |
|
|
|
else |
|
|
|
_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=1 |
|
|
|
fi |
|
|
|
|
|
|
|
typeset -gi bind_count=$_ZSH_AUTOSUGGEST_BIND_COUNTS[$1] |
|
|
|
} |
|
|
|
|
|
|
|
_zsh_autosuggest_get_bind_count() { |
|
|
|
if ((${+_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]})); then |
|
|
|
typeset -gi bind_count=$_ZSH_AUTOSUGGEST_BIND_COUNTS[$1] |
|
|
|
else |
|
|
|
typeset -gi bind_count=0 |
|
|
|
fi |
|
|
|
typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1)) |
|
|
|
_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count |
|
|
|
} |
|
|
|
|
|
|
|
# Bind a single widget to an autosuggest widget, saving a reference to the original widget |
|
|
@ -195,30 +182,30 @@ _zsh_autosuggest_bind_widget() { |
|
|
|
# Save a reference to the original widget |
|
|
|
case $widgets[$widget] in |
|
|
|
# Already bound |
|
|
|
user:_zsh_autosuggest_(bound|orig)_*);; |
|
|
|
user:_zsh_autosuggest_(bound|orig)_*) |
|
|
|
bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget])) |
|
|
|
;; |
|
|
|
|
|
|
|
# User-defined widget |
|
|
|
user:*) |
|
|
|
_zsh_autosuggest_incr_bind_count $widget |
|
|
|
zle -N $prefix${bind_count}-$widget ${widgets[$widget]#*:} |
|
|
|
zle -N $prefix$bind_count-$widget ${widgets[$widget]#*:} |
|
|
|
;; |
|
|
|
|
|
|
|
# Built-in widget |
|
|
|
builtin) |
|
|
|
_zsh_autosuggest_incr_bind_count $widget |
|
|
|
eval "_zsh_autosuggest_orig_${(q)widget}() { zle .${(q)widget} }" |
|
|
|
zle -N $prefix${bind_count}-$widget _zsh_autosuggest_orig_$widget |
|
|
|
zle -N $prefix$bind_count-$widget _zsh_autosuggest_orig_$widget |
|
|
|
;; |
|
|
|
|
|
|
|
# Completion widget |
|
|
|
completion:*) |
|
|
|
_zsh_autosuggest_incr_bind_count $widget |
|
|
|
eval "zle -C $prefix${bind_count}-${(q)widget} ${${(s.:.)widgets[$widget]}[2,3]}" |
|
|
|
eval "zle -C $prefix$bind_count-${(q)widget} ${${(s.:.)widgets[$widget]}[2,3]}" |
|
|
|
;; |
|
|
|
esac |
|
|
|
|
|
|
|
_zsh_autosuggest_get_bind_count $widget |
|
|
|
|
|
|
|
# Pass the original widget's name explicitly into the autosuggest |
|
|
|
# function. Use this passed in widget name to call the original |
|
|
|
# widget instead of relying on the $WIDGET variable being set |
|
|
|