zsh-syntax-highlighting/highlighters
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Daniel Shahaf 2c5acaefa9 Refactoring, no functional change
The new function will be used in the next commit.
2015-01-27 10:23:58 +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 Refactoring, no functional change 2015-01-27 10:23:58 +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)