speed up widget rebinding by removing redundant array subscripts

This commit is contained in:
romkatv 2019-02-25 12:59:31 +01:00 committed by Eric Freese
parent f76472272e
commit 4a82ff1ead
2 changed files with 10 additions and 36 deletions

View file

@ -4,21 +4,8 @@
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
_zsh_autosuggest_incr_bind_count() { _zsh_autosuggest_incr_bind_count() {
if ((${+_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]})); then typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1))
((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]++)) _ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count
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
} }
# Bind a single widget to an autosuggest widget, saving a reference to the original widget # Bind a single widget to an autosuggest widget, saving a reference to the original widget
@ -34,7 +21,9 @@ _zsh_autosuggest_bind_widget() {
# Save a reference to the original widget # Save a reference to the original widget
case $widgets[$widget] in case $widgets[$widget] in
# Already bound # Already bound
user:_zsh_autosuggest_(bound|orig)_*);; user:_zsh_autosuggest_(bound|orig)_*)
bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget]))
;;
# User-defined widget # User-defined widget
user:*) user:*)
@ -56,8 +45,6 @@ _zsh_autosuggest_bind_widget() {
;; ;;
esac esac
_zsh_autosuggest_get_bind_count $widget
# Pass the original widget's name explicitly into the autosuggest # Pass the original widget's name explicitly into the autosuggest
# function. Use this passed in widget name to call the original # function. Use this passed in widget name to call the original
# widget instead of relying on the $WIDGET variable being set # widget instead of relying on the $WIDGET variable being set

View file

@ -165,21 +165,8 @@ _zsh_autosuggest_feature_detect_zpty_returns_fd() {
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
_zsh_autosuggest_incr_bind_count() { _zsh_autosuggest_incr_bind_count() {
if ((${+_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]})); then typeset -gi bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]+1))
((_ZSH_AUTOSUGGEST_BIND_COUNTS[$1]++)) _ZSH_AUTOSUGGEST_BIND_COUNTS[$1]=$bind_count
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
} }
# Bind a single widget to an autosuggest widget, saving a reference to the original widget # Bind a single widget to an autosuggest widget, saving a reference to the original widget
@ -195,7 +182,9 @@ _zsh_autosuggest_bind_widget() {
# Save a reference to the original widget # Save a reference to the original widget
case $widgets[$widget] in case $widgets[$widget] in
# Already bound # Already bound
user:_zsh_autosuggest_(bound|orig)_*);; user:_zsh_autosuggest_(bound|orig)_*)
bind_count=$((_ZSH_AUTOSUGGEST_BIND_COUNTS[$widget]))
;;
# User-defined widget # User-defined widget
user:*) user:*)
@ -217,8 +206,6 @@ _zsh_autosuggest_bind_widget() {
;; ;;
esac esac
_zsh_autosuggest_get_bind_count $widget
# Pass the original widget's name explicitly into the autosuggest # Pass the original widget's name explicitly into the autosuggest
# function. Use this passed in widget name to call the original # function. Use this passed in widget name to call the original
# widget instead of relying on the $WIDGET variable being set # widget instead of relying on the $WIDGET variable being set