speed up widget rebinding by removing redundant array subscripts

This commit is contained in:
romkatv 2019-02-25 12:59:31 +01:00
parent 70f36c007d
commit 73cdb1e4bb

View File

@ -143,21 +143,10 @@ _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
local C=${${_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]}:-0}
((++C))
_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$C
typeset -gi bind_count=$C
}
# Bind a single widget to an autosuggest widget, saving a reference to the original widget
@ -173,7 +162,9 @@ _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[$1]}:-0}
;;
# User-defined widget
user:*)
@ -195,8 +186,6 @@ _zsh_autosuggest_bind_widget() {
;;
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