@ -209,13 +209,13 @@ _zsh_autosuggest_bind_widgets() {
# Find every widget we might want to bind and bind it appropriately
for widget in ${ ${ (f) " $( builtin zle -la) " } : # ${ (j : | : )~ignore_widgets } } ; do
if [ ${ ZSH_AUTOSUGGEST_CLEAR_WIDGETS [(r) $widget ] } ] ; then
if [ [ -n ${ ZSH_AUTOSUGGEST_CLEAR_WIDGETS [(r) $widget ] } ] ] ; then
_zsh_autosuggest_bind_widget $widget clear
elif [ ${ ZSH_AUTOSUGGEST_ACCEPT_WIDGETS [(r) $widget ] } ] ; then
elif [ [ -n ${ ZSH_AUTOSUGGEST_ACCEPT_WIDGETS [(r) $widget ] } ] ] ; then
_zsh_autosuggest_bind_widget $widget accept
elif [ ${ ZSH_AUTOSUGGEST_EXECUTE_WIDGETS [(r) $widget ] } ] ; then
elif [ [ -n ${ ZSH_AUTOSUGGEST_EXECUTE_WIDGETS [(r) $widget ] } ] ] ; then
_zsh_autosuggest_bind_widget $widget execute
elif [ ${ ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS [(r) $widget ] } ] ; then
elif [ [ -n ${ ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS [(r) $widget ] } ] ] ; then
_zsh_autosuggest_bind_widget $widget partial_accept
else
# Assume any unspecified widget might modify the buffer
@ -227,13 +227,13 @@ _zsh_autosuggest_bind_widgets() {
# Given the name of an original widget and args, invoke it, if it exists
_zsh_autosuggest_invoke_original_widget( ) {
# Do nothing unless called with at least one arg
[ $# -gt 0 ] || return
( ( $# ) ) || return
local original_widget_name = " $1 "
shift
if [ $widgets [ $original_widget_name ] ] ; then
if ( ( ${ +widgets[ $original_widget_name ] } ) ) ; then
zle $original_widget_name -- $@
fi
}
@ -246,7 +246,7 @@ _zsh_autosuggest_invoke_original_widget() {
_zsh_autosuggest_highlight_reset( ) {
typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT
if [ -n " $_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT " ] ; then
if [ [ -n " $_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT " ] ] ; then
region_highlight = ( " ${ (@)region_highlight : # $_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT } " )
unset _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT
fi
@ -256,7 +256,7 @@ _zsh_autosuggest_highlight_reset() {
_zsh_autosuggest_highlight_apply( ) {
typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT
if [ $# POSTDISPLAY -gt 0 ] ; then
if ( ( $# POSTDISPLAY ) ) ; then
typeset -g _ZSH_AUTOSUGGEST_LAST_HIGHLIGHT = " $# BUFFER $(( $# BUFFER + $# POSTDISPLAY)) $ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE "
region_highlight += ( " $_ZSH_AUTOSUGGEST_LAST_HIGHLIGHT " )
else
@ -278,14 +278,14 @@ _zsh_autosuggest_disable() {
_zsh_autosuggest_enable( ) {
unset _ZSH_AUTOSUGGEST_DISABLED
if [ $# BUFFER -gt 0 ] ; then
if ( ( $# BUFFER ) ) ; then
_zsh_autosuggest_fetch
fi
}
# Toggle suggestions (enable/disable)
_zsh_autosuggest_toggle( ) {
if [ -n " ${ _ZSH_AUTOSUGGEST_DISABLED +x } " ] ; then
if [ [ -n " ${ _ZSH_AUTOSUGGEST_DISABLED +x } " ] ] ; then
_zsh_autosuggest_enable
else
_zsh_autosuggest_disable
@ -319,35 +319,35 @@ _zsh_autosuggest_modify() {
retval = $?
# Don't fetch a new suggestion if there's more input to be read immediately
if [ [ $PENDING > 0 ] ] || [ [ $KEYS_QUEUED_COUNT > 0 ] ] ; then
if ( ( $PENDING > 0 ) ) || ( ( $KEYS_QUEUED_COUNT > 0 ) ) ; then
return $retval
fi
# Optimize if manually typing in the suggestion
if [ $# BUFFER -gt $# orig_buffer ] ; then
if ( ( $# BUFFER > $# 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
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
if [ " $BUFFER " = " $orig_buffer " ] ; then
if [ [ " $BUFFER " = " $orig_buffer " ] ] ; then
POSTDISPLAY = " $orig_postdisplay "
return $retval
fi
# Bail out if suggestions are disabled
if [ -n " ${ _ZSH_AUTOSUGGEST_DISABLED +x } " ] ; then
if [ [ -n " ${ _ZSH_AUTOSUGGEST_DISABLED +x } " ] ] ; then
return $?
fi
# 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 -le " $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE " ] ; then
if ( ( $# BUFFER > 0 ) ) ; then
if [ [ -z " $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE " ] ] || ( ( $# BUFFER <= $ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE ) ) ; then
_zsh_autosuggest_fetch
fi
fi
@ -370,7 +370,7 @@ _zsh_autosuggest_fetch() {
_zsh_autosuggest_suggest( ) {
local suggestion = " $1 "
if [ -n " $suggestion " ] && [ $# BUFFER -gt 0 ] ; then
if [ [ -n " $suggestion " ] ] && ( ( $# BUFFER ) ) ; then
POSTDISPLAY = " ${ suggestion # $BUFFER } "
else
unset POSTDISPLAY
@ -383,12 +383,12 @@ _zsh_autosuggest_accept() {
# When vicmd keymap is active, the cursor can't move all the way
# to the end of the buffer
if [ " $KEYMAP " = "vicmd" ] ; then
if [ [ " $KEYMAP " = "vicmd" ] ] ; then
max_cursor_pos = $(( max_cursor_pos - 1 ))
fi
# Only accept if the cursor is at the end of the buffer
if [ $CURSOR -eq $max_cursor_pos ] ; then
if [ [ $CURSOR = $max_cursor_pos ] ] ; then
# Add the suggestion to the buffer
BUFFER = " $BUFFER $POSTDISPLAY "
@ -430,7 +430,7 @@ _zsh_autosuggest_partial_accept() {
retval = $?
# If we've moved past the end of the original buffer
if [ $CURSOR -gt $# original_buffer ] ; then
if ( ( $CURSOR > $# original_buffer ) ) ; then
# Set POSTDISPLAY to text right of the cursor
POSTDISPLAY = " $RBUFFER "
@ -601,7 +601,7 @@ _zsh_autosuggest_async_pty_create() {
typeset -h REPLY
# If we won't get a fd back from zpty, try to guess it
if [ $_ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD -eq 0 ] ; then
if ( ( ! $_ZSH_AUTOSUGGEST_ZPTY_RETURNS_FD ) ) ; then
integer -l zptyfd
exec { zptyfd} >& 1 # Open a new file descriptor (above 10).
exec { zptyfd} >& - # Close it so it's free to be used by zpty.
@ -662,7 +662,7 @@ _zsh_autosuggest_start() {
# to the widget list variables to take effect on the next precmd.
add-zsh-hook precmd _zsh_autosuggest_bind_widgets
if [ -n " ${ ZSH_AUTOSUGGEST_USE_ASYNC +x } " ] ; then
if [ [ -n " ${ ZSH_AUTOSUGGEST_USE_ASYNC +x } " ] ] ; then
_zsh_autosuggest_async_start
fi
}