zsh-syntax-highlighting/highlighters
2014-10-04 00:36:01 +00:00
..
brackets Resolves slow performance in brackets highlighter 2014-03-24 08:45:34 +02:00
cursor Add cursor highlighter 2011-07-27 00:13:41 +02:00
line Add 'line' highlighter for the whole buffer 2014-06-08 00:04:00 +02:00
main Defined predicate_switcher function in order to be able to use main highlighter when cursor has moved. Normally turning on this feature for the whole main highlighter is not advisable, however it is still helpful in edge cases and solves the problem with highlighting the prefix of the path and file. To prevent slowdown the predicate_switcher is defined in such a way that it activates main highlighter with respect to cursor movement just for one call, and after that returns automatically to the default mode, i.e. highlighting only after buffer is modified. 2014-10-04 00:36:01 +00:00
pattern make $pattern local to _zsh_highlight_pattern_highlighter #97 2012-12-09 10:43:00 +09:00
root Issue #92 Eliminates system bell errors on osx. 2013-07-25 11:39:21 -07:00
README.md Add 'line' highlighter for the whole buffer 2014-06-08 00:04:00 +02:00

zsh-syntax-highlighting / highlighters

Syntax highlighting is done by pluggable highlighters:

  • main - the base highlighter, and the only one active by default.
  • brackets - matches brackets and parenthesis.
  • pattern - matches user-defined patterns.
  • cursor - matches the cursor position.
  • root - triggered if the current user is root.
  • line - applied to the whole command line

How to activate highlighters

To activate an highlighter, add it to the ZSH_HIGHLIGHT_HIGHLIGHTERS array in ~/.zshrc, for example:

ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)

How to tweak highlighters

Highlighters look up styles from the ZSH_HIGHLIGHT_STYLES array. Navigate into each highlighter directory to see what styles it defines and how to configure it.

How to implement a new highlighter

To create your own myhighlighter highlighter:

  • Create your script at highlighters/myhighlighter/myhighlighter-highlighter.zsh.

  • Implement the _zsh_highlight_myhighlighter_highlighter_predicate function. This function must return 0 when the highlighter needs to be called, for example:

      _zsh_highlight_myhighlighter_highlighter_predicate() {
        # Call this highlighter in SVN repositories
        [[ -d .svn ]]
      }
    
  • Implement the _zsh_highlight_myhighlighter_highlighter function. This function does the actual syntax highlighting, by modifying region_highlight, for example:

      _zsh_highlight_myhighlighter_highlighter() {
        # Colorize the whole buffer with blue background
        region_highlight+=(0 $#BUFFER bg=blue)
      }
    
  • Activate your highlighter in ~/.zshrc:

      ZSH_HIGHLIGHT_HIGHLIGHTERS+=(myhighlighter)