Parcourir la source

Disable autosuggest if buffer is too large

Make buffer max size configurable, defaulted to infinity
pull/178/head
Lorenzo Bolla il y a 8 ans
Parent
révision
7b81eb79b8
3 fichiers modifiés avec 36 ajouts et 2 suppressions
  1. +3
    -1
      src/widgets.zsh
  2. +30
    -0
      test/widgets/modify_test.zsh
  3. +3
    -1
      zsh-autosuggestions.zsh

+ 3
- 1
src/widgets.zsh Voir le fichier

@ -25,7 +25,9 @@ _zsh_autosuggest_modify() {
# Get a new suggestion if the buffer is not empty after modification
local suggestion
if [ $#BUFFER -gt 0 ]; then
suggestion="$(_zsh_autosuggest_suggestion "$BUFFER")"
if [ -z "$ZSH_BUFFER_MAX_SIZE" -o $#BUFFER -lt "$ZSH_BUFFER_MAX_SIZE" ]; then
suggestion="$(_zsh_autosuggest_suggestion "$BUFFER")"
fi
fi
# Add the suggestion to the POSTDISPLAY

+ 30
- 0
test/widgets/modify_test.zsh Voir le fichier

@ -9,6 +9,7 @@ oneTimeSetUp() {
setUp() {
BUFFER=''
POSTDISPLAY=''
ZSH_BUFFER_MAX_SIZE=''
}
tearDown() {
@ -42,6 +43,35 @@ testModify() {
"$POSTDISPLAY"
}
testModifyBufferTooLarge() {
ZSH_BUFFER_MAX_SIZE='20'
stub_and_eval \
_zsh_autosuggest_invoke_original_widget \
'BUFFER+="012345678901234567890"'
stub_and_echo \
_zsh_autosuggest_suggestion \
'012345678901234567890123456789'
_zsh_autosuggest_modify 'original-widget'
assertTrue \
'original widget not invoked' \
'stub_called _zsh_autosuggest_invoke_original_widget'
assertEquals \
'BUFFER was not modified' \
'012345678901234567890' \
"$BUFFER"
assertEquals \
'POSTDISPLAY does not contain suggestion' \
'' \
"$POSTDISPLAY"
}
testRetval() {
stub_and_eval \
_zsh_autosuggest_invoke_original_widget \

+ 3
- 1
zsh-autosuggestions.zsh Voir le fichier

@ -243,7 +243,9 @@ _zsh_autosuggest_modify() {
# Get a new suggestion if the buffer is not empty after modification
local suggestion
if [ $#BUFFER -gt 0 ]; then
suggestion="$(_zsh_autosuggest_suggestion "$BUFFER")"
if [ -z "$ZSH_BUFFER_MAX_SIZE" -o $#BUFFER -lt "$ZSH_BUFFER_MAX_SIZE" ]; then
suggestion="$(_zsh_autosuggest_suggestion "$BUFFER")"
fi
fi
# Add the suggestion to the POSTDISPLAY

Chargement…
Annuler
Enregistrer