Lots of little async cleanups
This commit is contained in:
@@ -46,13 +46,35 @@ _zsh_autosuggest_modify() {
|
||||
# Get a new suggestion if the buffer is not empty after modification
|
||||
if [ $#BUFFER -gt 0 ]; then
|
||||
if [ -z "$ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" -o $#BUFFER -lt "$ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE" ]; then
|
||||
_zsh_autosuggest_async_fetch_suggestion "$BUFFER"
|
||||
_zsh_autosuggest_fetch
|
||||
fi
|
||||
fi
|
||||
|
||||
return $retval
|
||||
}
|
||||
|
||||
# Fetch a new suggestion based on what's currently in the buffer
|
||||
_zsh_autosuggest_fetch() {
|
||||
if zpty -t "$ZSH_AUTOSUGGEST_PTY_NAME" &>/dev/null; then
|
||||
_zsh_autosuggest_async_request "$BUFFER"
|
||||
else
|
||||
local suggestion
|
||||
_zsh_autosuggest_strategy_$ZSH_AUTOSUGGEST_STRATEGY "$BUFFER"
|
||||
_zsh_autosuggest_suggest "$suggestion"
|
||||
fi
|
||||
}
|
||||
|
||||
# Offer a suggestion
|
||||
_zsh_autosuggest_suggest() {
|
||||
local suggestion="$1"
|
||||
|
||||
if [ -n "$suggestion" ]; then
|
||||
POSTDISPLAY="${suggestion#$BUFFER}"
|
||||
else
|
||||
unset POSTDISPLAY
|
||||
fi
|
||||
}
|
||||
|
||||
# Accept the entire suggestion
|
||||
_zsh_autosuggest_accept() {
|
||||
local -i max_cursor_pos=$#BUFFER
|
||||
@@ -120,7 +142,7 @@ _zsh_autosuggest_partial_accept() {
|
||||
return $retval
|
||||
}
|
||||
|
||||
for action in clear modify accept partial_accept execute; do
|
||||
for action in clear modify fetch suggest accept partial_accept execute; do
|
||||
eval "_zsh_autosuggest_widget_$action() {
|
||||
local -i retval
|
||||
|
||||
@@ -131,28 +153,14 @@ for action in clear modify accept partial_accept execute; do
|
||||
|
||||
_zsh_autosuggest_highlight_apply
|
||||
|
||||
zle -R
|
||||
|
||||
return \$retval
|
||||
}"
|
||||
done
|
||||
|
||||
zle -N autosuggest-fetch _zsh_autosuggest_widget_fetch
|
||||
zle -N autosuggest-suggest _zsh_autosuggest_widget_suggest
|
||||
zle -N autosuggest-accept _zsh_autosuggest_widget_accept
|
||||
zle -N autosuggest-clear _zsh_autosuggest_widget_clear
|
||||
zle -N autosuggest-execute _zsh_autosuggest_widget_execute
|
||||
|
||||
_zsh_autosuggest_show_suggestion() {
|
||||
local suggestion="$1"
|
||||
|
||||
_zsh_autosuggest_highlight_reset
|
||||
|
||||
if [ -n "$suggestion" ]; then
|
||||
POSTDISPLAY="${suggestion#$BUFFER}"
|
||||
else
|
||||
unset POSTDISPLAY
|
||||
fi
|
||||
|
||||
_zsh_autosuggest_highlight_apply
|
||||
|
||||
zle -R
|
||||
}
|
||||
|
||||
zle -N _autosuggest-show-suggestion _zsh_autosuggest_show_suggestion
|
||||
|
||||
Reference in New Issue
Block a user