Optimize case where manually typing in a suggestion

This commit is contained in:
Eric Freese 2017-01-25 00:00:13 -07:00
parent 21d9eda5dd
commit 54e1eee924
2 changed files with 22 additions and 0 deletions

View file

@ -26,6 +26,17 @@ _zsh_autosuggest_modify() {
_zsh_autosuggest_invoke_original_widget $@ _zsh_autosuggest_invoke_original_widget $@
retval=$? retval=$?
# Optimize if manually typing in the suggestion
if [ $#BUFFER -gt $#orig_buffer ]; then
local added=${BUFFER#$orig_buffer}
# If the string added matches the beginning of the postdisplay
if [ "$added" = "${orig_postdisplay:0:$#added}" ]; then
POSTDISPLAY="${orig_postdisplay:$#added}"
return $retval
fi
fi
# Don't fetch a new suggestion if the buffer hasn't changed # Don't fetch a new suggestion if the buffer hasn't changed
if [ "$BUFFER" = "$orig_buffer" ]; then if [ "$BUFFER" = "$orig_buffer" ]; then
POSTDISPLAY="$orig_postdisplay" POSTDISPLAY="$orig_postdisplay"

View file

@ -291,6 +291,17 @@ _zsh_autosuggest_modify() {
_zsh_autosuggest_invoke_original_widget $@ _zsh_autosuggest_invoke_original_widget $@
retval=$? retval=$?
# Optimize if manually typing in the suggestion
if [ $#BUFFER -gt $#orig_buffer ]; then
local added=${BUFFER#$orig_buffer}
# If the string added matches the beginning of the postdisplay
if [ "$added" = "${orig_postdisplay:0:$#added}" ]; then
POSTDISPLAY="${orig_postdisplay:$#added}"
return $retval
fi
fi
# Don't fetch a new suggestion if the buffer hasn't changed # Don't fetch a new suggestion if the buffer hasn't changed
if [ "$BUFFER" = "$orig_buffer" ]; then if [ "$BUFFER" = "$orig_buffer" ]; then
POSTDISPLAY="$orig_postdisplay" POSTDISPLAY="$orig_postdisplay"