diff --git a/highlighters/brackets/brackets-highlighter.zsh b/highlighters/brackets/brackets-highlighter.zsh index 3875b99..9e94c83 100644 --- a/highlighters/brackets/brackets-highlighter.zsh +++ b/highlighters/brackets/brackets-highlighter.zsh @@ -46,14 +46,13 @@ _zsh_highlight_brackets_highlighter_predicate() # Brackets highlighting function. _zsh_highlight_brackets_highlighter() { - local level=0 pos + local char quotetype style + local -i bracket_color_size=${#ZSH_HIGHLIGHT_STYLES[(I)bracket-level-*]} buflen=${#BUFFER} level=0 pos local -A levelpos lastoflevel matching typepos - integer buflen=${#BUFFER} - region_highlight=() # Find all brackets and remember which one is matching for (( pos = 0; pos < buflen; pos++ )) ; do - local char="$BUFFER[pos+1]" + char="$BUFFER[pos+1]" case $char in ["([{"]) levelpos[$pos]=$((++level)) @@ -68,7 +67,7 @@ _zsh_highlight_brackets_highlighter() ;; ['"'\']) # Skip everything inside quotes - local quotetype=$char + quotetype=$char while (( pos < buflen )) ; do (( pos++ )) [[ $BUFFER[pos+1] == $quotetype ]] && break @@ -80,12 +79,10 @@ _zsh_highlight_brackets_highlighter() # Now highlight all found brackets for pos in ${(k)levelpos}; do if [[ -n $matching[$pos] ]] && [[ $typepos[$pos] == $typepos[$matching[$pos]] ]]; then - local bracket_color_size=${#ZSH_HIGHLIGHT_STYLES[(I)bracket-level-*]} - local bracket_color_level=bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) - local style=$bracket_color_level + style=bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) _zsh_highlight_add_highlight $pos $((pos + 1)) $style else - local style=bracket-error + style=bracket-error _zsh_highlight_add_highlight $pos $((pos + 1)) $style fi done @@ -93,9 +90,8 @@ _zsh_highlight_brackets_highlighter() # If cursor is on a bracket, then highlight corresponding bracket, if any pos=$CURSOR if [[ -n $levelpos[$pos] ]] && [[ -n $matching[$pos] ]]; then - local otherpos=$matching[$pos] - local style=cursor-matchingbracket - _zsh_highlight_add_highlight $otherpos $((otherpos + 1)) $style + local -i otherpos=$matching[$pos] + _zsh_highlight_add_highlight $otherpos $((otherpos + 1)) cursor-matchingbracket fi }