mirror of
https://github.com/zsh-users/zsh-syntax-highlighting.git
synced 2025-02-13 10:05:31 +08:00
Proposal of text pasting performance issue solution
This commit is contained in:
parent
3dc5741900
commit
3a0ad239db
@ -33,6 +33,9 @@
|
|||||||
# Core highlighting update system
|
# Core highlighting update system
|
||||||
# -------------------------------------------------------------------------------------------------
|
# -------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Load datetime Zsh module for measuring time delta between keystrokes
|
||||||
|
zmodload zsh/datetime
|
||||||
|
|
||||||
# Array declaring active highlighters names.
|
# Array declaring active highlighters names.
|
||||||
typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS
|
typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS
|
||||||
|
|
||||||
@ -54,6 +57,11 @@ _zsh_highlight()
|
|||||||
# Do not highlight if there are pending inputs (copy/paste).
|
# Do not highlight if there are pending inputs (copy/paste).
|
||||||
[[ $PENDING -gt 0 ]] && return $ret
|
[[ $PENDING -gt 0 ]] && return $ret
|
||||||
|
|
||||||
|
# Do not highlight if the time delta from previous keystroke is less than 200 ms
|
||||||
|
[[ -z "$LAST_INVOKE_EPOCH" ]] && typeset -g LAST_INVOKE_EPOCH=$EPOCHREALTIME
|
||||||
|
[[ $(( $EPOCHREALTIME - $LAST_INVOKE_EPOCH )) -lt 0.2 ]] && return $ret
|
||||||
|
typeset -g LAST_INVOKE_EPOCH=$EPOCHREALTIME
|
||||||
|
|
||||||
# Reset region highlight to build it from scratch
|
# Reset region highlight to build it from scratch
|
||||||
region_highlight=();
|
region_highlight=();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user