|  | 4 years ago | |
|---|---|---|
| .. | ||
| test-data | 4 years ago | |
| README.md | 4 years ago | |
| main-highlighter.zsh | 4 years ago | |
This is the main highlighter, that highlights:
This highlighter is active by default.
This highlighter defines the following styles:
unknown-token - unknown tokens / errorsreserved-word - shell reserved words (if, for)alias - aliasessuffix-alias - suffix aliases (requires zsh 5.1.1 or newer)global-alias - global aliasesbuiltin - shell builtin commands (shift, pwd, zstyle)function - function namescommand - command namesprecommand - precommand modifiers (e.g., noglob, builtin)commandseparator - command separation tokens (;, &&)hashed-command - hashed commandsautodirectory - a directory name in command position when the AUTO_CD option is setpath - existing filenamespath_pathseparator - path separators in filenames (/); if unset, path is used (default)path_prefix - prefixes of existing filenamespath_prefix_pathseparator - path separators in prefixes of existing filenames (/); if unset, path_prefix is used (default)globbing - globbing expressions (*.txt)history-expansion - history expansion expressions (!foo and ^foo^bar)command-substitution - command substitutions ($(echo foo))command-substitution-unquoted - an unquoted command substitution ($(echo foo))command-substitution-quoted - a quoted command substitution ("$(echo foo)")command-substitution-delimiter - command substitution delimiters ($( and ))command-substitution-delimiter-unquoted - an unquoted command substitution delimiters ($( and ))command-substitution-delimiter-quoted - a quoted command substitution delimiters ("$( and )")process-substitution - process substitutions (<(echo foo))process-substitution-delimiter - process substitution delimiters (<( and ))arithmetic-expansion - arithmetic expansion $(( 42 )))single-hyphen-option - single-hyphen options (-o)double-hyphen-option - double-hyphen options (--option)back-quoted-argument - backtick command substitution (`foo`)back-quoted-argument-unclosed - unclosed backtick command substitution (`foo)back-quoted-argument-delimiter - backtick command substitution delimiters (`)single-quoted-argument - single-quoted arguments ('foo')single-quoted-argument-unclosed - unclosed single-quoted arguments ('foo)double-quoted-argument - double-quoted arguments ("foo")double-quoted-argument-unclosed - unclosed double-quoted arguments ("foo)dollar-quoted-argument - dollar-quoted arguments ($'foo')dollar-quoted-argument-unclosed - unclosed dollar-quoted arguments ($'foo)rc-quote - two single quotes inside single quotes when the RC_QUOTES option is set ('foo''bar')dollar-double-quoted-argument - parameter expansion inside double quotes ($foo inside "")back-double-quoted-argument -  backslash escape sequences inside double-quoted arguments (\" in "foo\"bar")back-dollar-quoted-argument -  backslash escape sequences inside dollar-quoted arguments (\x in $'\x48')assign - parameter assignments (x=foo and x=( ))redirection - redirection operators (<, >, etc)comment - comments, when setopt INTERACTIVE_COMMENTS is in effect (echo # foo)comment - elided parameters in command position ($x ls when $x is unset or empty)named-fd - named file descriptor (the fd in echo foo {fd}>&2)numeric-fd - numeric file descriptor (the 2 in echo foo {fd}>&2)arg0 - a command word other than one of those enumerated above (other than a command, precommand, alias, function, or shell builtin command).default - everything elseTo override one of those styles, change its entry in ZSH_HIGHLIGHT_STYLES,
for example in ~/.zshrc:
# Declare the variable
typeset -A ZSH_HIGHLIGHT_STYLES
# To differentiate aliases from other command types
ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold'
# To have paths colored instead of underlined
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
# To disable highlighting of globbing expressions
ZSH_HIGHLIGHT_STYLES[globbing]='none'
The syntax for values is the same as the syntax of "types of highlighting" of
the zsh builtin $zle_highlight array, which is documented in the zshzle(1)
manual page.
To avoid partial path lookups on a path, add the path to the ZSH_HIGHLIGHT_DIRS_BLACKLIST array.
ZSH_HIGHLIGHT_DIRS_BLACKLIST+=(/mnt/slow_share)
zsh-syntax-highlighting attempts to be forward-compatible with zsh. Specifically, we attempt to facilitate highlighting command word types that had not yet been invented when this version of zsh-syntax-highlighting was released.
A command word is something like a function name, external command name, et
cetera.  (See
Simple Commands & Pipelines in zshmisc(1)
for a formal definition.)
If a new kind of command word is ever added to zsh — something conceptually
different than "function" and "alias" and "external command" — then command words
of that (new) kind will be highlighted by the style arg0_$kind,
where $kind is the output of type -w on the new kind of command word.  If that
style is not defined, then the style arg0 will be used instead.