2011-06-12 16:57:14 -04:00
zsh-syntax-highlighting / highlighters
======================================
Syntax highlighting is done by pluggable highlighters:
2015-11-16 22:00:50 -05:00
* [`main` ](main ) - the base highlighter, and the only one active by default.
* [`brackets` ](brackets ) - matches brackets and parenthesis.
* [`pattern` ](pattern ) - matches user-defined patterns.
* [`cursor` ](cursor ) - matches the cursor position.
* [`root` ](root ) - triggered if the current user is root.
* [`line` ](line ) - applied to the whole command line
2011-06-12 16:57:14 -04:00
How to activate highlighters
----------------------------
To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array in `~/.zshrc` , for example:
2011-07-26 18:13:41 -04:00
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
2011-06-12 16:57:14 -04:00
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
----------------------------------
2015-11-16 22:00:50 -05:00
To create your own `myhighlighter` highlighter:
2011-06-12 17:16:41 -04:00
2015-11-16 22:00:50 -05:00
* Create your script at `highlighters/${myhighlighter}/${myhighlighter}-highlighter.zsh` .
2015-11-16 22:22:14 -05:00
* Implement the `_zsh_highlight_myhighlighter_highlighter_predicate` function. This function must return 0 when the highlighter needs to be called and non-zero otherwise, for example:
2011-06-12 16:57:14 -04:00
_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)