diff --git a/src/start.zsh b/src/start.zsh index c5ac120..2304fb3 100644 --- a/src/start.zsh +++ b/src/start.zsh @@ -5,9 +5,17 @@ # Start the autosuggestion widgets _zsh_autosuggest_start() { + add-zsh-hook -d precmd _zsh_autosuggest_start + _zsh_autosuggest_feature_detect _zsh_autosuggest_bind_widgets + # Re-bind widgets on every precmd to ensure we wrap other wrappers. + # Specifically, highlighting breaks if our widgets are wrapped by + # zsh-syntax-highlighting widgets. This also allows modifications + # 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 _zsh_autosuggest_async_start fi diff --git a/zsh-autosuggestions.zsh b/zsh-autosuggestions.zsh index 4018b0f..2726661 100644 --- a/zsh-autosuggestions.zsh +++ b/zsh-autosuggestions.zsh @@ -609,9 +609,17 @@ _zsh_autosuggest_async_start() { # Start the autosuggestion widgets _zsh_autosuggest_start() { + add-zsh-hook -d precmd _zsh_autosuggest_start + _zsh_autosuggest_feature_detect _zsh_autosuggest_bind_widgets + # Re-bind widgets on every precmd to ensure we wrap other wrappers. + # Specifically, highlighting breaks if our widgets are wrapped by + # zsh-syntax-highlighting widgets. This also allows modifications + # 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 _zsh_autosuggest_async_start fi