diff --git a/zsh-syntax-highlighting.zsh b/zsh-syntax-highlighting.zsh index ef62139..012ea0b 100644 --- a/zsh-syntax-highlighting.zsh +++ b/zsh-syntax-highlighting.zsh @@ -92,6 +92,37 @@ _zsh_highlight() done + # Re-apply zle_highlight settings + () { + if (( REGION_ACTIVE )) ; then + # zle_highlight[region] defaults to 'standout' if unspecified + local region="${${zle_highlight[(r)region:*]#region:}:-standout}" + integer start end + if (( MARK > CURSOR )) ; then + start=$CURSOR end=$MARK + else + start=$MARK end=$CURSOR + fi + region_highlight+=("$start $end $region") + fi + } + # YANK_ACTIVE is only available in zsh-5.1.1 and newer + (( $+YANK_ACTIVE )) && () { + if (( YANK_ACTIVE )) ; then + # zle_highlight[paste] defaults to 'standout' if unspecified + local paste="${${zle_highlight[(r)paste:*]#paste:}:-standout}" + integer start end + if (( YANK_END > YANK_START )) ; then + start=$YANK_START end=$YANK_END + else + start=$YANK_END end=$YANK_START + fi + region_highlight+=("$start $end $paste") + fi + } + + + } always { _ZSH_HIGHLIGHT_PRIOR_BUFFER=$BUFFER _ZSH_HIGHLIGHT_PRIOR_CURSOR=$CURSOR