zsh-syntax-highlighting/highlighters/main
Daniel Shahaf e9ceb2017e comments: Add XFail tests from issues #163 and #167.
These tests are based on the patches contributed in those issues:

    commit 9d9df4fe80 (upstream/pr/167)
    Author:     Miciah Masters <miciah.masters@gmail.com>
    AuthorDate: Thu Apr 23 20:28:24 2015 -0400
    Commit:     Miciah Dashiel Butler Masters <mmasters@redhat.com>
    CommitDate: Thu Apr 23 20:28:24 2015 -0400

        Highlight comments

    M       highlighters/main/main-highlighter.zsh
    A       highlighters/main/test-data/comments.zsh

    commit d94f1a037f (upstream/pr/163)
    Author:     sonnym <michaud.sonny@gmail.com>
    AuthorDate: Fri Mar 6 18:27:57 2015 -0500
    Commit:     sonnym <michaud.sonny@gmail.com>
    CommitDate: Fri Mar 6 21:16:27 2015 -0500

        highlight comments when interactive_comments is on

    M       highlighters/main/main-highlighter.zsh
    A       highlighters/main/test-data/comment-embedded.zsh
    A       highlighters/main/test-data/comment-leading.zsh

Patch-by: sonnym <michaud.sonny@gmail.com>
Patch-by: Miciah Masters <miciah.masters@gmail.com>
(corrected and refreshed for harness changes by me)
2015-10-29 18:08:30 +02:00
..
test-data comments: Add XFail tests from issues #163 and #167. 2015-10-29 18:08:30 +02:00
main-highlighter.zsh sudo: Flag an error when a required argument is missing. 2015-10-29 12:01:13 +00:00
README.md Remove path_approx. 2015-10-27 04:29:05 +00:00

zsh-syntax-highlighting / highlighters / main

This is the main highlighter, that highlights:

  • Commands
  • Options
  • Arguments
  • Paths
  • Strings

How to activate it

To activate it, add it to ZSH_HIGHLIGHT_HIGHLIGHTERS:

ZSH_HIGHLIGHT_HIGHLIGHTERS=( [...] main)

This highlighter is active by default.

How to tweak it

This highlighter defines the following styles:

  • unknown-token - unknown tokens / errors
  • reserved-word - shell reserved words
  • alias - aliases
  • suffix-alias - suffix aliases (requires zsh 5.1.1 or newer)
  • builtin - shell builtin commands
  • function - functions
  • command - commands
  • precommand - precommands (i.e. exec, builtin, ...)
  • commandseparator - command separation tokens
  • hashed-command - hashed commands
  • path - paths
  • path_prefix - path prefixes
  • globbing - globbing expressions (*.txt)
  • history-expansion - history expansion expressions (!foo and ^foo^bar)
  • single-hyphen-option - single hyphen options (-o)
  • double-hyphen-option - double hyphen options (--option)
  • back-quoted-argument - backquoted expressions (`foo`)
  • single-quoted-argument - single quoted arguments ('foo')
  • double-quoted-argument - double quoted arguments ("foo")
  • dollar-quoted-argument - dollar quoted arguments ($'foo')
  • dollar-double-quoted-argument - dollar double quoted arguments ($foo inside "")
  • back-double-quoted-argument - back double quoted arguments (\x inside "")
  • back-dollar-quoted-argument - back dollar quoted arguments (\x inside $'')
  • assign - variable assignments
  • redirection - redirection operators (<, >, etc)
  • default - parts of the buffer that do not match anything

To 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 declaring styles is documented in the zshzle(1) manual page.