This commit is contained in:
Eric Freese 2016-01-26 20:51:44 -07:00
commit fc3f368acf
15 changed files with 224 additions and 708 deletions

42
lib/widget/widgets.zsh Normal file
View file

@ -0,0 +1,42 @@
# Buffer was modified, update suggestion
_zsh_autosuggest_widget_modify() {
local suggestion
zle $(_zsh_autosuggest_original_widget $WIDGET) $@
if [ $#BUFFER -gt 0 ]; then
suggestion=$(_zsh_autosuggest_get_suggestion $BUFFER)
fi
if [ -n "$suggestion" ]; then
POSTDISPLAY=${suggestion#$BUFFER}
else
unset POSTDISPLAY
fi
_zsh_autosuggest_highlight
}
# Clear command triggered, hide the suggestion
_zsh_autosuggest_widget_clear() {
unset POSTDISPLAY
_zsh_autosuggest_highlight
zle $(_zsh_autosuggest_original_widget $WIDGET) $@
}
# Suggestion accepted, add it to the buffer
_zsh_autosuggest_widget_accept() {
if [ $CURSOR -eq $#BUFFER ]; then
BUFFER="$BUFFER$POSTDISPLAY"
unset POSTDISPLAY
CURSOR=${#BUFFER}
_zsh_autosuggest_highlight
else
zle $(_zsh_autosuggest_original_widget $WIDGET) $@
fi
}
# Create the widgets
zle -N _zsh_autosuggest_widget_modify
zle -N _zsh_autosuggest_widget_clear
zle -N _zsh_autosuggest_widget_accept