This commit is contained in:
Stanislav Seletskiy 2016-05-28 15:50:10 +00:00
commit 42f51367a6
3 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,4 @@
zmodload zsh/datetime
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
# Global Configuration Variables # # Global Configuration Variables #
@ -47,3 +48,10 @@ ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS=(
vi-forward-blank-word vi-forward-blank-word
vi-forward-blank-word-end vi-forward-blank-word-end
) )
# EPOCH of the last changed widget call
ZSH_AUTOSUGGEST_LAST_MODIFY_TIME=$EPOCHREALTIME
# Lower bound for the time between changes that will cause autosuggest
# to suspend suggestions for the current edit.
ZSH_AUTOSUGGEST_CUTOFF_PERIOD=0.05

View File

@ -22,6 +22,14 @@ _zsh_autosuggest_modify() {
_zsh_autosuggest_invoke_original_widget $@ _zsh_autosuggest_invoke_original_widget $@
retval=$? retval=$?
local time_passed=$(($EPOCHREALTIME - $ZSH_AUTOSUGGEST_LAST_MODIFY_TIME))
if (( $time_passed < $ZSH_AUTOSUGGEST_CUTOFF_PERIOD )); then
return 1
fi
ZSH_AUTOSUGGEST_LAST_MODIFY_TIME=$EPOCHREALTIME
# Get a new suggestion if the buffer is not empty after modification # Get a new suggestion if the buffer is not empty after modification
local suggestion local suggestion
if [ $#BUFFER -gt 0 ]; then if [ $#BUFFER -gt 0 ]; then

View File

@ -24,6 +24,7 @@
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE. # OTHER DEALINGS IN THE SOFTWARE.
zmodload zsh/datetime
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
# Global Configuration Variables # # Global Configuration Variables #
@ -74,6 +75,13 @@ ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS=(
vi-forward-blank-word-end vi-forward-blank-word-end
) )
# EPOCH of the last changed widget call
ZSH_AUTOSUGGEST_LAST_MODIFY_TIME=$EPOCHREALTIME
# Lower bound for the time between changes that will cause autosuggest
# to suspend suggestions for the current edit.
ZSH_AUTOSUGGEST_CUTOFF_PERIOD=0.05
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
# Handle Deprecated Variables/Widgets # # Handle Deprecated Variables/Widgets #
#--------------------------------------------------------------------# #--------------------------------------------------------------------#
@ -240,6 +248,14 @@ _zsh_autosuggest_modify() {
_zsh_autosuggest_invoke_original_widget $@ _zsh_autosuggest_invoke_original_widget $@
retval=$? retval=$?
local time_passed=$(($EPOCHREALTIME - $ZSH_AUTOSUGGEST_LAST_MODIFY_TIME))
if (( $time_passed < $ZSH_AUTOSUGGEST_CUTOFF_PERIOD )); then
return 1
fi
ZSH_AUTOSUGGEST_LAST_MODIFY_TIME=$EPOCHREALTIME
# Get a new suggestion if the buffer is not empty after modification # Get a new suggestion if the buffer is not empty after modification
local suggestion local suggestion
if [ $#BUFFER -gt 0 ]; then if [ $#BUFFER -gt 0 ]; then