Go to file
Daniel Shahaf d711563fe1 driver: Make it reentrant.
This fixes an infinite recursion in zsh without zle-line-pre-redraw [≤5.2] in
the following situation:

% source zsh-syntax-highlighting.zsh
% eval "my-self-insert() { zle -M 'foobar'; ${(q)widgets[self-insert]#*:} \"\$@\" }"
% zle -N self-insert my-self-insert
% source zsh-syntax-highlighting.zsh

Fixes #305.
2016-08-12 09:19:36 +00:00
docs docs: Minor tweak. 2016-07-18 04:27:54 +00:00
highlighters Merge remote-tracking branch 'danielsh/m0vie-i288-v2' (revised version of upstream/pr/288) 2016-07-29 21:09:31 +00:00
images Add screenshot. 2015-10-24 10:59:20 +00:00
tests minor: Fix typo in development usage message. 2016-08-12 09:19:36 +00:00
.gitattributes versionstamp: Set up '.revision-hash' file. 2015-10-19 07:21:20 +00:00
.gitignore docs: Create all.md 2015-11-24 00:22:26 -06:00
.revision-hash versionstamp: Set up '.revision-hash' file. 2015-10-19 07:21:20 +00:00
.version Version number bump. 2016-01-27 20:38:38 +00:00
changelog.md changelog: Update for upcoming 0.4.1 release. 2016-01-27 20:48:56 +00:00
COPYING.md Bump copyright years. 2016-04-30 02:11:17 +00:00
HACKING.md dev docs: Document a useful tab completion setting. 2016-06-03 08:46:30 +00:00
INSTALL.md docs: Honour $ZDOTDIR in code examples. 2016-05-12 13:29:10 +00:00
Makefile tests: Add a 'print failures only' mode to 'make test', called 'make quiet-test'. 2016-01-02 21:22:01 +00:00
README.md driver: Don't highlight in isearch 2016-07-29 21:07:48 +00:00
release.md release.md: Add a release checklist line item. 2016-04-05 05:49:18 +00:00
zsh-syntax-highlighting.plugin.zsh driver: Stop requiring function_argzero. 2016-06-10 15:18:46 +00:00
zsh-syntax-highlighting.zsh driver: Make it reentrant. 2016-08-12 09:19:36 +00:00

zsh-syntax-highlighting

Fish shell-like like syntax highlighting for Zsh.

Requirements: zsh 4.3.17+.

This package provides syntax highlighing for the shell zsh. It enables highlighing of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors.

Screenshot

How to install

See INSTALL.md.

FAQ

Why must zsh-syntax-highlighting.zsh be sourced at the end of the .zshrc file?

zsh-syntax-highlighting.zsh wraps ZLE widgets. It must be sourced after all custom widgets have been created (i.e., after all zle -N calls and after running compinit). Widgets created later will work, but will not update the syntax highlighting.

Why does syntax highlighting not work while searching history?

This problem is fixed in zsh 5.3 and newer.

Highlighting the command line during an incremental history search (with the history-incremental-search-backward widget, which is bound by default to Ctrl+R in zsh's emacs keymap) requires zsh 5.3 or newer.

Under zsh 5.2 and older, the zsh-default underlining of the matched portion of the buffer remains available, but zsh-syntax-highlighting's additional highlighting is unavailable. (Those versions of zsh do not provide enough information to allow computing the highlighting correctly.)

See issue #288 for details.

How are new releases announced?

There is currently no "push" announcements channel. However, the following alternatives exist:

How to tweak

Syntax highlighting is done by pluggable highlighter scripts. See the documentation on highlighters for details and configuration settings.