diff --git a/.editorconfig b/.editorconfig
index cda541d..0f7ae82 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -7,9 +7,3 @@ end_of_line = lf
tab_width = 2
indent_size = 2
indent_style = space
-
-[Makefile]
-tab_width = 8
-indent_size = 8
-indent_style = tab
-
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index cd50b8a..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,75 +0,0 @@
----
-name: Tests
-on:
- push:
- paths-ignore:
- - '**.md'
- - '**.png'
- pull_request:
- paths-ignore:
- - '**.md'
- - '**.png'
- schedule:
- - cron: '29 7 * * 1'
-
-jobs:
- test:
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- version:
- - master
- - 5.9
- - 5.8.1
- - 5.8
- - 5.7.1
- - 5.7
- - 5.6.2
- - 5.6.1
- - 5.6
- - 5.5.1
- - 5.5
- - 5.4.2
- - 5.4.1
- - 5.4
- - 5.3.1
- - 5.3
- - 5.2
- - 5.1.1
- - 5.1
- - 5.0.8
- - 5.0.7
- - 5.0.6
- - 5.0.5
- - 5.0.4
- - 5.0.3
- - 5.0.2
- - 5.0.1
- - 5.0.0
- - 4.3.17
- - 4.3.16
- - 4.3.15
- - 4.3.14
- - 4.3.13
- - 4.3.12
- - 4.3.11
- container:
- image: ghcr.io/zsh-users/zsh:${{ matrix.version }}
- steps:
- - uses: actions/checkout@v4
- - run: install_packages bsdmainutils make procps
- - run: make test
-
- notify:
- runs-on: ubuntu-latest
- needs: test
- if: failure() && (github.repository_owner == 'zsh-users')
- steps:
- -
- name: Notify IRC
- uses: Gottox/irc-message-action@v2
- with:
- channel: '#zsh-syntax-highlighting'
- nickname: zsyh-gh-bot
- message: '${{ github.ref }} failed tests: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}'
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..39040f8
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,55 @@
+language: generic
+sudo: required
+
+env:
+ - ZSH=master
+ - ZSH=5.7.1
+ - ZSH=5.7
+ - ZSH=5.6.2
+ - ZSH=5.6.1
+ - ZSH=5.6
+ - ZSH=5.5.1
+ - ZSH=5.5
+ - ZSH=5.4.2
+ - ZSH=5.4.1
+ - ZSH=5.4
+ - ZSH=5.3.1
+ - ZSH=5.3
+ - ZSH=5.2
+ - ZSH=5.1.1
+ - ZSH=5.1
+ - ZSH=5.0.8
+ - ZSH=5.0.7
+ - ZSH=5.0.6
+ - ZSH=5.0.5
+ - ZSH=5.0.4
+ - ZSH=5.0.3
+ - ZSH=5.0.2
+ - ZSH=5.0.1
+ - ZSH=5.0.0
+ - ZSH=4.3.17
+ - ZSH=4.3.16
+ - ZSH=4.3.15
+ - ZSH=4.3.14
+ - ZSH=4.3.13
+ - ZSH=4.3.12
+ - ZSH=4.3.11
+
+script: docker run -v $PWD:/work -w /work zshusers/zsh:${ZSH} /bin/sh -c 'install_packages make procps && make test'
+
+notifications:
+ webhooks:
+ urls:
+ - https://webhooks.gitter.im/e/367e241cdea60cb2070b
+ on_success: change
+ on_failure: always
+ on_start: never
+ irc:
+ channels:
+ - "chat.freenode.net#zsh-syntax-highlighting"
+ on_success: change
+ on_failure: always
+ on_start: never
+ use_notice: true
+ template:
+ - "%{repository}/%{branch}#%{build_number}: %{message} Changes : %{compare_url} | Build : %{build_url}"
diff --git a/.version b/.version
index d182dc9..39e898a 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-0.8.1-dev
+0.7.1
diff --git a/HACKING.md b/HACKING.md
index ddd39a4..71d8a2e 100644
--- a/HACKING.md
+++ b/HACKING.md
@@ -67,22 +67,6 @@ expected_region_highlight=(
)
```
-Memos and commas
-----------------
-
-We append to `region_highlight` as follows:
-
-
-```zsh
-region_highlight+=("$start $end $spec, memo=zsh-syntax-highlighting")
-```
-
-That comma is required to cause zsh 5.8 and older to ignore the memo without
-ignoring the `$spec`. It's a hack, but given that no further 5.8.x patch
-releases are planned, it's been deemed acceptable. See issue #418 and the
-cross-referenced issues.
-
-
Miscellany
----------
@@ -95,5 +79,5 @@ zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-hi
IRC channel
-----------
-We're on #zsh-syntax-highlighting on Libera.Chat.
+We're on #zsh-syntax-highlighting on freenode.
diff --git a/INSTALL.md b/INSTALL.md
index 2e1286d..23acdf5 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -3,67 +3,31 @@ How to install
### Using packages
-First, install the package:
-
* Arch Linux: [community/zsh-syntax-highlighting][arch-package] / [AUR/zsh-syntax-highlighting-git][AUR-package]
* Debian: `zsh-syntax-highlighting` package [in `stretch`][debian-package] (or in [OBS repository][obs-repository])
* Fedora: [zsh-syntax-highlighting package][fedora-package-alt] in Fedora 24+ (or in [OBS repository][obs-repository])
* FreeBSD: `pkg install zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][freebsd-port])
-* Gentoo: [app-shells/zsh-syntax-highlighting][gentoo-repository]
-* Mac OS X / Homebrew: `brew install zsh-syntax-highlighting` ([formula][brew-package])
-* NetBSD: `pkg_add zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][netbsd-port])
-* OpenBSD: `pkg_add zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][openbsd-port])
-* openSUSE / SLE: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
-* RHEL / CentOS / Scientific Linux: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
+* Gentoo: [mv overlay][gentoo-overlay]
+* Mac OS X / Homebrew: [brew install zsh-syntax-highlighting][brew-package]
* Ubuntu: `zsh-syntax-highlighting` package [in Xenial][ubuntu-package] (or in [OBS repository][obs-repository])
+* RHEL / CentOS / Scientific Linux: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
+* openSUSE / SLE: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
* Void Linux: `zsh-syntax-highlighting package` [in XBPS][void-package]
[arch-package]: https://www.archlinux.org/packages/zsh-syntax-highlighting
[AUR-package]: https://aur.archlinux.org/packages/zsh-syntax-highlighting-git
-[brew-package]: https://github.com/Homebrew/homebrew-core/blob/master/Formula/z/zsh-syntax-highlighting.rb
[debian-package]: https://packages.debian.org/zsh-syntax-highlighting
+[freebsd-port]: http://www.freshports.org/textproc/zsh-syntax-highlighting/
+[gentoo-overlay]: http://gpo.zugaina.org/app-shells/zsh-syntax-highlighting
+[brew-package]: https://github.com/Homebrew/homebrew-core/blob/master/Formula/zsh-syntax-highlighting.rb
+[ubuntu-package]: https://launchpad.net/ubuntu/+source/zsh-syntax-highlighting
[fedora-package]: https://apps.fedoraproject.org/packages/zsh-syntax-highlighting
[fedora-package-alt]: https://bodhi.fedoraproject.org/updates/?packages=zsh-syntax-highlighting
-[freebsd-port]: https://www.freshports.org/textproc/zsh-syntax-highlighting/
-[gentoo-repository]: https://packages.gentoo.org/packages/app-shells/zsh-syntax-highlighting
-[netbsd-port]: http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/shells/zsh-syntax-highlighting/
-[obs-repository]: https://software.opensuse.org/download.html?project=shells%3Azsh-users%3Azsh-syntax-highlighting&package=zsh-syntax-highlighting
-[openbsd-port]: https://cvsweb.openbsd.org/ports/shells/zsh-syntax-highlighting/
-[ubuntu-package]: https://launchpad.net/ubuntu/+source/zsh-syntax-highlighting
+[obs-repository]: https://software.opensuse.org//download.html?project=shells%3Azsh-users%3Azsh-syntax-highlighting&package=zsh-syntax-highlighting
[void-package]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/zsh-syntax-highlighting
See also [repology's cross-distro index](https://repology.org/metapackage/zsh-syntax-highlighting/versions)
-Second, enable zsh-syntax-highlighting by sourcing the script. Running this command on the terminal will add the source line to the end of your .zshrc:
-
-* On most Linux distributions (except perhaps NixOS):
-
- ```zsh
- echo "source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
- ```
-
-* NetBSD and OpenBSD:
-
- ```zsh
- echo "source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
- ```
-
-* Mac OS X / Homebrew:
-
- ```zsh
- echo "source $(brew --prefix)/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc
- ```
-
-Then restart zsh (such as by opening a new instance of your terminal emulator).
-
- Alternatively, add the `source` command manually **at the end** of your `.zshrc`:
-
-* On most Linux distributions (except perhaps NixOS):
-`source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh`
-* NetBSD and OpenBSD:
-`source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh`
-
-Then restart zsh.
### In your ~/.zshrc
@@ -107,12 +71,6 @@ This list is incomplete as there are too many
Add `antigen bundle zsh-users/zsh-syntax-highlighting` as the last bundle in
your `.zshrc`.
-#### [Fig](https://fig.io)
-
-Click the `Install Plugin` button on the [Fig plugin page][fig-plugin].
-
-[fig-plugin]: https://fig.io/plugins/other/zsh-syntax-highlighting
-
#### [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
1. Clone this repository in oh-my-zsh's plugins directory:
@@ -140,15 +98,15 @@ Zsh-syntax-highlighting is included with Prezto. See the
Add `zgen load zsh-users/zsh-syntax-highlighting` to the end of your `.zshrc`.
-#### [zinit](https://github.com/zdharma-continuum/zinit)
-
-Add `zinit light zsh-users/zsh-syntax-highlighting` to the end of your
-`.zshrc`.
-
#### [zplug](https://github.com/zplug/zplug)
Add `zplug "zsh-users/zsh-syntax-highlighting", defer:2` to your `.zshrc`.
+#### [zplugin](https://github.com/psprint/zplugin)
+
+Add `zplugin load zsh-users/zsh-syntax-highlighting` to the end of your
+`.zshrc`.
+
### System-wide installation
diff --git a/Makefile b/Makefile
index bbc1d43..6cc2648 100644
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,7 @@ test:
for test in highlighters/*; do \
if [ -d $$test/test-data ]; then \
echo "Running test $${test##*/}"; \
- env -i QUIET=$$QUIET $${TERM:+"TERM=$$TERM"} $(ZSH) -f tests/test-highlighting.zsh "$${test##*/}"; \
+ $(ZSH) -f tests/test-highlighting.zsh "$${test##*/}"; \
: $$(( result |= $$? )); \
fi \
done; \
diff --git a/README.md b/README.md
index 4768b3d..08af2b6 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
-zsh-syntax-highlighting [![Build Status][build-status-image]][build-status]
+zsh-syntax-highlighting [![Build Status][build-status-image]][build-status-travis]
=======================
**[Fish shell][fish]-like syntax highlighting for [Zsh][zsh].**
*Requirements: zsh 4.3.11+.*
-[fish]: https://fishshell.com/
-[zsh]: https://www.zsh.org/
+[fish]: http://www.fishshell.com/
+[zsh]: http://www.zsh.org/
This package provides syntax highlighting for the shell zsh. It enables
highlighting of commands whilst they are typed at a zsh prompt into an
@@ -27,11 +27,6 @@ Before: [](images/before3.png)
After: [](images/after3.png)
-Before: [](images/before4-smaller.png)
-
-After: [](images/after4-smaller.png)
-
-
How to install
--------------
@@ -44,23 +39,11 @@ FAQ
### Why must `zsh-syntax-highlighting.zsh` be sourced at the end of the `.zshrc` file?
-zsh-syntax-highlighting works by hooking into the Zsh Line Editor (ZLE) and
-computing syntax highlighting for the command-line buffer as it stands at the
-time z-sy-h's hook is invoked.
-
-In zsh 5.2 and older,
-`zsh-syntax-highlighting.zsh` hooks into ZLE by wrapping ZLE widgets. It must
-be sourced after all custom widgets have been created (i.e., after all `zle -N`
-calls and after running `compinit`) in order to be able to wrap all of them.
-Widgets created after z-sy-h is sourced will work, but will not update the
+`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.
-In zsh newer than 5.8 (not including 5.8 itself),
-zsh-syntax-highlighting uses the `add-zle-hook-widget` facility to install
-a `zle-line-pre-redraw` hook. Hooks are run in order of registration,
-therefore, z-sy-h must be sourced (and register its hook) after anything else
-that adds hooks that modify the command-line buffer.
-
### Does syntax highlighting work during incremental history search?
Highlighting the command line during an incremental history search (by default bound to
@@ -73,7 +56,7 @@ enough information to allow computing the highlighting correctly.)
See issues [#288][i288] and [#415][i415] for details.
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
[i288]: https://github.com/zsh-users/zsh-syntax-highlighting/pull/288
[i415]: https://github.com/zsh-users/zsh-syntax-highlighting/pull/415
@@ -93,5 +76,5 @@ Syntax highlighting is done by pluggable highlighter scripts. See the
[documentation on highlighters](docs/highlighters.md) for details and
configuration settings.
-[build-status]: https://github.com/zsh-users/zsh-syntax-highlighting/actions
-[build-status-image]: https://github.com/zsh-users/zsh-syntax-highlighting/workflows/Tests/badge.svg
+[build-status-image]: https://travis-ci.org/zsh-users/zsh-syntax-highlighting.svg?branch=master
+[build-status-travis]: https://travis-ci.org/zsh-users/zsh-syntax-highlighting
diff --git a/changelog.md b/changelog.md
index 8ee5088..9779223 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,242 +1,7 @@
-# Changes in HEAD
-
-
-- Highlight `&>` `>&|` `>&!` `&>|` and `&>!` as redirection.
- [#942]
-
-
-# Changes in 0.8.0
-
-This is a stable bugfix and feature release. Major new features and changes include:
-
-
-## Changes fixed as part of the switch to zle-line-pre-redraw
-
-The changes in this section were fixed by switching to a `zle-line-pre-redraw`-based
-implementation.
-
-Note: The new implementation will only be used on future zsh releases,
-numbered 5.8.1.1 and newer, due to interoperability issues with other plugins
-(issues #418 and #579). The underlying zsh feature has been available since
-zsh 5.3.
-
-Whilst under development, the new implementation was known as the
-"feature/redrawhook" topic branch.
-
-- Fixed: Highlighting not triggered after popping a buffer from the buffer stack
- (using the `push-line` widget, default binding: `M-q`)
- [#40]
-
-- Fixed: Invoking completion when there were no matches removed highlighting
- [#90, #470]
-
-- Fixed: Two successive deletes followed by a yank only yanked the latest
- delete, rather than both of them
- [#150, #151, #160; cf. #183]
-
-- Presumed fixed: Completing `$(xsel)` results in an error message from `xsel`,
- with pre-2017 versions of `xsel`. (For 2017 vintage and newer, see the issue
- for details.)
- [#154]
-
-- Fixed: When the standard `bracketed-paste-magic` widget is in use, pastes were slow
- [#295]
-
-- Fixed: No way to prevent a widget from being wrapped
- [#324]
-
-- Fixed: No highlighting while cycling menu completion
- [#375]
-
-- Fixed: Does not coexist with the `IGNORE_EOF` option
- [#377]
-
-- Fixed: The `undefined-key` widget was wrapped
- [#421]
-
-- Fixed: Does not coexist with the standard `surround` family of widgets
- [#520]
-
-- Fixed: First completed filename doesn't get `path` highlighting
- [#632]
-
-
-## Other changes
-
-- Add issue #712 to the previous release's changelog (hereinafter).
-
-- Fix highlighting when using an alias twice inside another alias
- [#769, #775]
-
-- Remove lint warning for `env` followed by a pipe
- [#797]
-
-- Recognize `proxychains` as a precommand
- [#814, #914]
-
-- Honor shwordsplit when expanding parameters
- [#687, #818]
-
-- Skip highlighting when keys are still pending in more cases
- [#835]
-
-- Recognize `grc` as a precommand
-
-- Recognize `torsocks` and `torift` as precommands
- [#898]
-
-- Recognize `cpulimit` as a precommand
- [#897]
-
-- Recognize `ktrace` as a precommand
-
-
-# Changes in 0.8.0-alpha1-pre-redrawhook
-
-## Notice about an improbable-but-not-impossible forward incompatibility
-
-Everyone can probably skip this section.
-
-The `master` branch of zsh-syntax-highlighting uses a zsh feature that has not
-yet appeared in a zsh release: the `memo=` feature, added to zsh in commit
-zsh-5.8-172-gdd6e702ee (after zsh 5.8, before zsh 5.9). In the unlikely event
-that this zsh feature should change in an incompatible way before the next
-stable zsh release, set `zsh_highlight__memo_feature=0` in your .zshrc files to
-disable use of the new feature.
-
-z-sy-h dogfoods the new, unreleased zsh feature because that feature was
-added to zsh at z-sy-h's initiative. The new feature is used in the fix
-to issue #418.
-
-
-## Incompatible changes:
-
-- An unsuccessful completion (a ⮀ Tab press that doesn't change the
- command line) no longer causes highlighting to be lost. Visual feedback can
- alternatively be achieved by setting the `format` zstyle under the `warnings`
- tag, for example,
-
- zstyle ':completion:*:warnings' format '%F{red}No matches%f'
-
- Refer to the [description of the `format` style in `zshcompsys(1)`]
- [zshcompsys-Standard-Styles-format].
-
- (#90, part of #245 (feature/redrawhook))
-
-[zshcompsys-Standard-Styles]: https://zsh.sourceforge.io/Doc/Release/Completion-System.html#Standard-Styles
-[zshcompsys-Standard-Styles-format]: https://zsh.sourceforge.io/Doc/Release/Completion-System.html#index-format_002c-completion-style
-
-
-
-## Other changes:
-
-- Document `$ZSH_HIGHLIGHT_MAXLENGTH`.
- [#698]
-
-- Optimize highlighting unquoted words (words that are not in single quotes, double quotes, backticks, or dollar-single-quotes)
- [#730]
-
-- Redirection operators (e.g., `<` and `>`) are now highlighted by default
- [#646]
-
-- Propertly terminate `noglob` scope in try/always blocks
- [#577]
-
-- Don't error out when `KSH_ARRAYS` is set in the calling scope
- [#622, #689]
-
-- Literal semicolons in array assignments (`foo=( bar ; baz )`) are now
- highlighted as errors.
- [3ca93f864fb6]
-
-- Command separators in array assignments (`foo=( bar | baz )`) are now
- highlighted as errors.
- [#651, 81267ca3130c]
-
-- Support parameter elision in command position (e.g., `$foo ls` where `$foo` is unset or empty)
- [#667]
-
-- Don't consider the filename in `sudo -e /path/to/file` to be a command position
- [#678]
-
-- Don't look up absolute directory names in $cdpath
- [2cc2583f8f12, part of #669]
-
-- Fix `exec 2>&1;` being highlighted as an error.
- [#676]
-
-- Fix `: $(<*)` being highlighted as globbing.
- [#582]
-
-- Fix `cat < *` being highlighting as globbing when the `MULTIOS` option is unset.
- [#583]
-
-- Fix `echo >&2` highlighting the `2` as a filename if a file by that name happened to exist
- [#694, part of #645]
-
-- Fix `echo >&-` highlighting the `-` as a filename if a file by that name happened to exist
- [part of #645]
-
-- Fix `echo >&p` highlighting the `p` as a filename if a file by that name happened to exist
- [part of #645]
-
-- Fix wrong highlighting of unquoted parameter expansions under zsh 5.2 and older
- [e165f18c758e]
-
-- Highlight global aliases
- [#700]
-
-- Highlight `: =nosuchcommand' as an error (when the `EQUALS` option hasn't been unset).
- [#430]
-
-- Highlight reserved word after assignments as errors (e.g., `foo=bar (ls;)`)
- [#461]
-
-- Correctly highlight `[[ foo && bar || baz ]]`.
-
-- Highlight non-executable files in command position correctly (e.g., `% /etc/passwd`)
- [#202, #669]
-
-- Highlight directories in command position correctly, including `AUTO_CD` support
- [#669]
-
-- Recognize `env` as a precommand (e.g., `env FOO=bar ls`)
-
-- Recognize `ionice` as a precommand
-
-- Recognize `strace` as a precommand
-
-- Fix an error message on stderr before every prompt when the `WARN_NESTED_VAR` zsh option is set:
- `_zsh_highlight_main__precmd_hook:1: array parameter _zsh_highlight_main__command_type_cache set in enclosing scope in function _zsh_highlight_main__precmd_hook`
- [#727, #731, #732, #733]
-
-- Fix highlighting of alias whose definitions use a simple command terminator
- (such as `;`, `|`, `&&`) before a newline
- [#677; had regressed in 0.7.0]
-
-- Highlight arithmetic expansions (e.g., `$(( 42 ))`)
- [#607 #649 #704]
-
-- Highlight the parentheses of array assignments as reserved words (`foo=( bar )`).
- The `assign` style remains supported and has precedence.
- [#585]
-
-- Fix interoperability issue with other plugins that use highlighting. The fix
- requires zsh 5.8.0.3 or newer. (zsh 5.8.0.2-dev from the `master` branch,
- revision zsh-5.8-172-gdd6e702ee or newer is also fine.)
- [#418, https://github.com/okapia/zsh-viexchange/issues/1]
-
-- Improve performance of the `brackets` highlighter.
-
-- Fix highlighting of pre-command redirections (e.g., the `$fn` in `<$fn cat`)
- [#712]
-
-
# Changes in version 0.7.1
- Remove out-of-date information from the 0.7.0 changelog.
-
# Changes in version 0.7.0
This is a stable bugfix and feature release. Major new features and changes include:
@@ -269,7 +34,7 @@ This is a stable bugfix and feature release. Major new features and changes inc
- Highlight numeric globs (e.g., `echo /lib<->`)
-- Assorted improvements to aliases highlighting
+- Assorted improvement to aliases highlighting
(e.g.,
`alias sudo_u='sudo -u'; sudo_u jrandom ls`,
`alias x=y y=z z=nosuchcommand; x`,
@@ -307,7 +72,6 @@ Known issues include:
before a newline will incorrectly be highlighted as an error. See issue #677
for examples and workarounds.
[#677]
- [UPDATE: Fixed in 0.8.0]
# Changes in version 0.6.0
@@ -325,7 +89,7 @@ This is a stable release, featuring bugfixes and minor improvements.
- The `isearch` and `suffix` [`$zle_highlight` settings][zshzle-Character-Highlighting].
(79e4d3d12405, 15db71abd0cc, b56ee542d619; requires zsh 5.3 for `$ISEARCHMATCH_ACTIVE` / `$SUFFIX_ACTIVE` support)
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
- Possible history expansions in double-quoted strings.
(76ea9e1df316)
@@ -771,7 +535,7 @@ in this area.
## Developer-visible changes:
-- Test harness converted to [TAP](https://testanything.org/tap-specification.html) format
+- Test harness converted to [TAP](http://testanything.org/tap-specification.html) format
(d99aa58aaaef, et seq)
- Run each test in a separate subprocess, isolating them from each other
diff --git a/docs/highlighters.md b/docs/highlighters.md
index fb64c3a..d0c9332 100644
--- a/docs/highlighters.md
+++ b/docs/highlighters.md
@@ -3,51 +3,34 @@ zsh-syntax-highlighting / highlighters
Syntax highlighting is done by pluggable highlighters:
-* `main` - the base highlighter, and the only one [active by default][main].
-* `brackets` - [matches brackets][brackets] and parenthesis.
-* `pattern` - matches [user-defined patterns][pattern].
-* `regexp` - matches [user-defined regular expressions][regexp].
-* `cursor` - matches [the cursor position][cursor].
-* `root` - highlights the whole command line [if the current user is root][root].
-* `line` - applied to [the whole command line][line].
+* `main` - the base highlighter, and the only one [active by default][1].
+* `brackets` - [matches brackets][2] and parenthesis.
+* `pattern` - matches [user-defined patterns][3].
+* `cursor` - matches [the cursor position][4].
+* `root` - highlights the whole command line [if the current user is root][5].
+* `line` - applied to [the whole command line][6].
-[main]: highlighters/main.md
-[brackets]: highlighters/brackets.md
-[pattern]: highlighters/pattern.md
-[regexp]: highlighters/regexp.md
-[cursor]: highlighters/cursor.md
-[root]: highlighters/root.md
-[line]: highlighters/line.md
-
-
-Highlighter-independent settings
---------------------------------
-
-By default, all command lines are highlighted. However, it is possible to
-prevent command lines longer than a fixed number of characters from being
-highlighted by setting the variable `${ZSH_HIGHLIGHT_MAXLENGTH}` to the maximum
-length (in characters) of command lines to be highlighter. This is useful when
-editing very long command lines (for example, with the [`fned`][fned] utility
-function). Example:
-
-[fned]: https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#index-zed
-
-```zsh
-ZSH_HIGHLIGHT_MAXLENGTH=512
-```
+[1]: highlighters/main.md
+[2]: highlighters/brackets.md
+[3]: highlighters/pattern.md
+[4]: highlighters/cursor.md
+[5]: highlighters/root.md
+[6]: highlighters/line.md
How to activate highlighters
----------------------------
-To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array.
-By default `ZSH_HIGHLIGHT_HIGHLIGHTERS` is `(main)`. For example to activate
-`brackets`, `pattern`, and `cursor` highlighters, in `~/.zshrc` do:
+To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array in
+`~/.zshrc`, for example:
```zsh
-ZSH_HIGHLIGHT_HIGHLIGHTERS+=(brackets pattern cursor)
+ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
```
+By default, `$ZSH_HIGHLIGHT_HIGHLIGHTERS` is unset and only the `main`
+highlighter is active.
+
How to tweak highlighters
-------------------------
@@ -59,7 +42,7 @@ same as the syntax of "types of highlighting" of the zsh builtin
`$zle_highlight` array, which is documented in [the `zshzle(1)` manual
page][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
Some highlighters support additional configuration parameters; see each
highlighter's documentation for details and examples.
diff --git a/docs/highlighters/brackets.md b/docs/highlighters/brackets.md
index 0101699..8410135 100644
--- a/docs/highlighters/brackets.md
+++ b/docs/highlighters/brackets.md
@@ -28,4 +28,4 @@ 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][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/docs/highlighters/cursor.md b/docs/highlighters/cursor.md
index 3f87d42..c4f22b8 100644
--- a/docs/highlighters/cursor.md
+++ b/docs/highlighters/cursor.md
@@ -21,4 +21,4 @@ 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][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/docs/highlighters/line.md b/docs/highlighters/line.md
index f76639e..1081fe1 100644
--- a/docs/highlighters/line.md
+++ b/docs/highlighters/line.md
@@ -21,4 +21,4 @@ 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][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/docs/highlighters/main.md b/docs/highlighters/main.md
index 4a27653..43f6082 100644
--- a/docs/highlighters/main.md
+++ b/docs/highlighters/main.md
@@ -20,14 +20,12 @@ This highlighter defines the following styles:
* `reserved-word` - shell reserved words (`if`, `for`)
* `alias` - aliases
* `suffix-alias` - suffix aliases (requires zsh 5.1.1 or newer)
-* `global-alias` - global aliases
* `builtin` - shell builtin commands (`shift`, `pwd`, `zstyle`)
* `function` - function names
* `command` - command names
* `precommand` - precommand modifiers (e.g., `noglob`, `builtin`)
* `commandseparator` - command separation tokens (`;`, `&&`)
* `hashed-command` - hashed commands
-* `autodirectory` - a directory name in command position when the `AUTO_CD` option is set
* `path` - existing filenames
* `path_pathseparator` - path separators in filenames (`/`); if unset, `path` is used (default)
* `path_prefix` - prefixes of existing filenames
@@ -42,7 +40,6 @@ This highlighter defines the following styles:
* `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` ``)
@@ -61,9 +58,7 @@ This highlighter defines the following styles:
* `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`)
+* `named-fd` - named file descriptor (`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 else
@@ -116,6 +111,6 @@ 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.
-[zshmisc-Simple-Commands-And-Pipelines]: https://zsh.sourceforge.io/Doc/Release/Shell-Grammar.html#Simple-Commands-_0026-Pipelines
+[zshmisc-Simple-Commands-And-Pipelines]: http://zsh.sourceforge.net/Doc/Release/Shell-Grammar.html#Simple-Commands-_0026-Pipelines
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/docs/highlighters/pattern.md b/docs/highlighters/pattern.md
index ecaa6a7..e67d79f 100644
--- a/docs/highlighters/pattern.md
+++ b/docs/highlighters/pattern.md
@@ -21,4 +21,4 @@ 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][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/docs/highlighters/regexp.md b/docs/highlighters/regexp.md
index 8c711a3..06b21ac 100644
--- a/docs/highlighters/regexp.md
+++ b/docs/highlighters/regexp.md
@@ -11,45 +11,12 @@ To use this highlighter, associate regular expressions with styles in the
`ZSH_HIGHLIGHT_REGEXP` associative array, for example in `~/.zshrc`:
```zsh
-typeset -A ZSH_HIGHLIGHT_REGEXP
-ZSH_HIGHLIGHT_REGEXP+=('^rm .*' fg=red,bold)
+typeset -A ZSH_HIGHLIGHT_PATTERNS
+ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' fg=123,bold)
```
-This will highlight lines that start with a call to the `rm` command.
-
-The regular expressions flavour used is [PCRE][pcresyntax] when the
-`RE_MATCH_PCRE` option is set and POSIX Extended Regular Expressions (ERE),
-as implemented by the platform's C library, otherwise. For details on the
-latter, see [the `zsh/regex` module's documentation][MAN_ZSH_REGEX] and the
-`regcomp(3)` and `re_format(7)` manual pages on your system.
-
-For instance, to highlight `sudo` only as a complete word, i.e., `sudo cmd`,
-but not `sudoedit`, one might use:
-
-* When the `RE_MATCH_PCRE` is set:
-
- ```zsh
- typeset -A ZSH_HIGHLIGHT_REGEXP
- ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' fg=123,bold)
- ```
-
-* When the `RE_MATCH_PCRE` is unset, on platforms with GNU `libc` (e.g., many GNU/Linux distributions):
-
- ```zsh
- typeset -A ZSH_HIGHLIGHT_REGEXP
- ZSH_HIGHLIGHT_REGEXP+=('\' fg=123,bold)
- ```
-
-* When the `RE_MATCH_PCRE` is unset, on BSD-based platforms (e.g., macOS):
-
- ```zsh
- typeset -A ZSH_HIGHLIGHT_REGEXP
- ZSH_HIGHLIGHT_REGEXP+=('[[:<:]]sudo[[:>:]]' fg=123,bold)
- ```
-
-Note, however, that PCRE and POSIX ERE have a large common subset:
-for instance, the regular expressions `[abc]`, `a*`, and `(a|b)` have the same
-meaning in both flavours.
+This will highlight "sudo" only as a complete word, i.e., "sudo cmd", but not
+"sudoedit"
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)`
@@ -58,8 +25,6 @@ manual page][zshzle-Character-Highlighting].
See also: [regular expressions tutorial][perlretut], zsh regexp operator `=~`
in [the `zshmisc(1)` manual page][zshmisc-Conditional-Expressions]
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
-[perlretut]: https://perldoc.perl.org/perlretut
-[zshmisc-Conditional-Expressions]: https://zsh.sourceforge.io/Doc/Release/Conditional-Expressions.html#Conditional-Expressions
-[MAN_ZSH_REGEX]: https://zsh.sourceforge.io/Doc/Release/Zsh-Modules.html#The-zsh_002fregex-Module
-[pcresyntax]: https://www.pcre.org/original/doc/html/pcresyntax.html
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[perlretut]: http://perldoc.perl.org/perlretut.html
+[zshmisc-Conditional-Expressions]: http://zsh.sourceforge.net/Doc/Release/Conditional-Expressions.html#Conditional-Expressions
diff --git a/docs/highlighters/root.md b/docs/highlighters/root.md
index 8197e4b..d120d20 100644
--- a/docs/highlighters/root.md
+++ b/docs/highlighters/root.md
@@ -22,4 +22,4 @@ 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][zshzle-Character-Highlighting].
-[zshzle-Character-Highlighting]: https://zsh.sourceforge.io/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/highlighters/brackets/brackets-highlighter.zsh b/highlighters/brackets/brackets-highlighter.zsh
index bc388fd..fc71f2a 100644
--- a/highlighters/brackets/brackets-highlighter.zsh
+++ b/highlighters/brackets/brackets-highlighter.zsh
@@ -51,9 +51,8 @@ _zsh_highlight_highlighter_brackets_paint()
local -A levelpos lastoflevel matching
# Find all brackets and remember which one is matching
- pos=0
- for char in ${(s..)BUFFER} ; do
- (( ++pos ))
+ for (( pos = 1; pos <= buflen; pos++ )) ; do
+ char=$BUFFER[pos]
case $char in
["([{"])
levelpos[$pos]=$((++level))
diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh
index 3ec96d9..9a48222 100644
--- a/highlighters/main/main-highlighter.zsh
+++ b/highlighters/main/main-highlighter.zsh
@@ -33,10 +33,8 @@
: ${ZSH_HIGHLIGHT_STYLES[unknown-token]:=fg=red,bold}
: ${ZSH_HIGHLIGHT_STYLES[reserved-word]:=fg=yellow}
: ${ZSH_HIGHLIGHT_STYLES[suffix-alias]:=fg=green,underline}
-: ${ZSH_HIGHLIGHT_STYLES[global-alias]:=fg=cyan}
: ${ZSH_HIGHLIGHT_STYLES[precommand]:=fg=green,underline}
: ${ZSH_HIGHLIGHT_STYLES[commandseparator]:=none}
-: ${ZSH_HIGHLIGHT_STYLES[autodirectory]:=fg=green,underline}
: ${ZSH_HIGHLIGHT_STYLES[path]:=underline}
: ${ZSH_HIGHLIGHT_STYLES[path_pathseparator]:=}
: ${ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]:=}
@@ -58,10 +56,9 @@
: ${ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]:=fg=cyan}
: ${ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]:=fg=cyan}
: ${ZSH_HIGHLIGHT_STYLES[assign]:=none}
-: ${ZSH_HIGHLIGHT_STYLES[redirection]:=fg=yellow}
+: ${ZSH_HIGHLIGHT_STYLES[redirection]:=none}
: ${ZSH_HIGHLIGHT_STYLES[comment]:=fg=black,bold}
: ${ZSH_HIGHLIGHT_STYLES[named-fd]:=none}
-: ${ZSH_HIGHLIGHT_STYLES[numeric-fd]:=none}
: ${ZSH_HIGHLIGHT_STYLES[arg0]:=fg=green}
# Whether the highlighter should be called or not.
@@ -76,7 +73,7 @@ _zsh_highlight_main_add_region_highlight() {
integer start=$1 end=$2
shift 2
- if (( $#in_alias )); then
+ if (( in_alias )); then
[[ $1 == unknown-token ]] && alias_style=unknown-token
return
fi
@@ -108,19 +105,13 @@ _zsh_highlight_main_calculate_fallback() {
local -A fallback_of; fallback_of=(
alias arg0
suffix-alias arg0
- global-alias dollar-double-quoted-argument
builtin arg0
function arg0
command arg0
precommand arg0
hashed-command arg0
- autodirectory arg0
arg0_\* arg0
- # TODO: Maybe these? —
- # named-fd file-descriptor
- # numeric-fd file-descriptor
-
path_prefix path
# The path separator fallback won't ever be used, due to the optimisation
# in _zsh_highlight_main_highlighter_highlight_path_separators().
@@ -182,9 +173,7 @@ _zsh_highlight_main__type() {
if (( $+aliases[(e)$1] )); then
may_cache=0
fi
- if (( ${+galiases[(e)$1]} )) && (( aliases_allowed )); then
- REPLY='global alias'
- elif (( $+aliases[(e)$1] )) && (( aliases_allowed )); then
+ if (( $+aliases[(e)$1] )) && (( aliases_allowed )); then
REPLY=alias
elif [[ $1 == *.* && -n ${1%.*} ]] && (( $+saliases[(e)${1##*.}] )); then
REPLY='suffix alias'
@@ -254,9 +243,10 @@ _zsh_highlight_main__is_runnable() {
_zsh_highlight_main__is_redirection() {
# A redirection operator token:
# - starts with an optional single-digit number;
- # - is one of the tokens listed in zshmisc(1)
- # - however (z) normalizes ! to |
- [[ ${1#[0-9]} == (\<|\<\>|(\>|\>\>)(|\|)|\<\<(|-)|\<\<\<|\<\&|\&\<|(\>|\>\>)\&(|\|)|\&(\>|\>\>)(|\||\!)) ]]
+ # - then, has a '<' or '>' character;
+ # - is not a process substitution [<(...) or >(...)].
+ # - is not a numeric glob <->
+ [[ $1 == (<0-9>|)(\<|\>)* ]] && [[ $1 != (\<|\>)$'\x28'* ]] && [[ $1 != *'<'*'-'*'>'* ]]
}
# Resolve alias.
@@ -272,18 +262,6 @@ _zsh_highlight_main__resolve_alias() {
fi
}
-# Return true iff $1 is a global alias
-_zsh_highlight_main__is_global_alias() {
- if zmodload -e zsh/parameter; then
- (( ${+galiases[$arg]} ))
- elif [[ $arg == '='* ]]; then
- # avoid running into «alias -L '=foo'» erroring out with 'bad assignment'
- return 1
- else
- alias -L -g -- "$1" >/dev/null
- fi
-}
-
# Check that the top of $braces_stack has the expected value. If it does, set
# the style according to $2; otherwise, set style=unknown-token.
#
@@ -328,13 +306,9 @@ _zsh_highlight_highlighter_main_paint()
# $flags_sans_argument is a set of letters, corresponding to the option letters
# that wouldn't be followed by a colon in a getopts specification.
local flags_sans_argument
- # $flags_solo is a set of letters, corresponding to option letters that, if
- # present, mean the precommand will not be acting as a precommand, i.e., will
- # not be followed by a :start: word.
- local flags_solo
- # $precommand_options maps precommand name to values of $flags_with_argument,
- # $flags_sans_argument, and flags_solo for that precommand, joined by a
- # colon. (The value is NOT a getopt(3) spec, although it resembles one.)
+ # $precommand_options maps precommand name to values of $flags_with_argument and
+ # $flags_sans_argument for that precommand, joined by a colon. (The value is NOT
+ # a getopt(3) spec, although it resembles one.)
#
# Currently, setting $flags_sans_argument is only important for commands that
# have a non-empty $flags_with_argument; see test-data/precommand4.zsh.
@@ -348,35 +322,30 @@ _zsh_highlight_highlighter_main_paint()
'noglob' ''
# 'time' and 'nocorrect' shouldn't be added here; they're reserved words, not precommands.
- # miscellaneous commands
'doas' aCu:Lns # as of OpenBSD's doas(1) dated September 4, 2016
'nice' n: # as of current POSIX spec
'pkexec' '' # doesn't take short options; immune to #121 because it's usually not passed --option flags
- # Not listed: -h, which has two different meanings.
- 'sudo' Cgprtu:AEHPSbilns:eKkVv # as of sudo 1.8.21p2
+ # Argumentless flags that can't be followed by a command: -e -h -K -k -V -v
+ 'sudo' Cgprtu:AEHPSbilns # as of sudo 1.8.21p2
'stdbuf' ioe:
'eatmydata' ''
'catchsegv' ''
'nohup' ''
'setsid' :wc
- 'env' u:i
- 'ionice' cn:t:pPu # util-linux 2.33.1-0.1
- 'strace' IbeaosXPpEuOS:ACdfhikqrtTvVxyDc # strace 4.26-0.2
- 'proxychains' f:q # proxychains 4.4.0
- 'torsocks' idq:upaP # Torsocks 2.3.0
- 'torify' idq:upaP # Torsocks 2.3.0
- 'ssh-agent' aEPt:csDd:k # As of OpenSSH 8.1p1
- 'tabbed' gnprtTuU:cdfhs:v # suckless-tools v44
- 'chronic' :ev # moreutils 0.62-1
- 'ifne' :n # moreutils 0.62-1
- 'grc' :se # grc - a "generic colouriser" (that's their spelling, not mine)
- 'cpulimit' elp:ivz # cpulimit 0.2
- 'ktrace' fgpt:aBCcdiT
+ # As of OpenSSH 8.1p1; -k is deliberately left out since it may not be followed by a command
+ 'ssh-agent' aEPt:csDd
+ # suckless-tools v44
+ # Argumentless flags that can't be followed by a command: -v
+ 'tabbed' gnprtTuU:cdfhs
+
+ # moreutils 0.62-1
+ 'chronic' :ev
+ 'ifne' :n
+
)
# Commands that would need to skip one positional argument:
# flock
# ssh
- # _wanted (skip two)
if [[ $zsyh_user_options[ignorebraces] == on || ${zsyh_user_options[ignoreclosebraces]:-off} == on ]]; then
local right_brace_is_recognised_everywhere=false
@@ -390,7 +359,6 @@ _zsh_highlight_highlighter_main_paint()
ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR=(
'|' '||' ';' '&' '&&'
- $'\n' # ${(z)} returns ';' but we convert it to $'\n'
'|&'
'&!' '&|'
# ### 'case' syntax, but followed by a pattern, not by a command
@@ -434,63 +402,6 @@ _zsh_highlight_highlighter_main_paint()
done
}
-# Try to expand $1, if it's possible to do so safely.
-#
-# Uses two parameters from the caller: $parameter_name_pattern and $res.
-#
-# If expansion was done, set $reply to the expansion and return true.
-# Otherwise, return false.
-_zsh_highlight_main_highlighter__try_expand_parameter()
-{
- local arg="$1"
- unset reply
- {
- # ### For now, expand just '$foo' or '${foo}', possibly with braces, but with
- # ### no other features of the parameter expansion syntax. (No ${(x)foo},
- # ### no ${foo[x]}, no ${foo:-x}.)
- {
- local -a match mbegin mend
- local MATCH; integer MBEGIN MEND
- local parameter_name
- local -a words
- if [[ $arg[1] != '$' ]]; then
- return 1
- fi
- if [[ ${arg[2]} == '{' ]] && [[ ${arg[-1]} == '}' ]]; then
- parameter_name=${${arg:2}%?}
- else
- parameter_name=${arg:1}
- fi
- if [[ $res == none ]] &&
- [[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] &&
- [[ ${(tP)MATCH} != *special* ]]
- then
- # Set $arg and update $res.
- case ${(tP)MATCH} in
- (*array*|*assoc*)
- words=( ${(P)MATCH} )
- ;;
- ("")
- # not set
- words=( )
- ;;
- (*)
- # scalar, presumably
- if [[ $zsyh_user_options[shwordsplit] == on ]]; then
- words=( ${(P)=MATCH} )
- else
- words=( ${(P)MATCH} )
- fi
- ;;
- esac
- reply=( "${words[@]}" )
- else
- return 1
- fi
- }
- }
-}
-
# $1 is the offset of $4 from the parent buffer. Added to the returned highlights.
# $2 is the initial braces_stack (for a closing paren).
# $3 is 1 if $4 contains the end of $BUFFER, else 0.
@@ -502,18 +413,17 @@ _zsh_highlight_main_highlighter__try_expand_parameter()
_zsh_highlight_main_highlighter_highlight_list()
{
integer start_pos end_pos=0 buf_offset=$1 has_end=$3
- # alias_style is the style to apply to an alias once $#in_alias == 0
+ # alias_style is the style to apply to an alias once in_alias=0
# Usually 'alias' but set to 'unknown-token' if any word expanded from
# the alias would be highlighted as unknown-token
# param_style is analogous for parameter expansions
- local alias_style param_style last_arg arg buf=$4 highlight_glob=true saw_assignment=false style
+ local alias_style param_style arg buf=$4 highlight_glob=true style
local in_array_assignment=false # true between 'a=(' and the matching ')'
- # in_alias is an array of integers with each element equal to the number
- # of shifts needed until arg=args[1] pops an arg from the next level up
- # alias or from BUFFER.
+ # in_alias is equal to the number of shifts needed until arg=args[1] pops an
+ # arg from BUFFER and not added by an alias.
# in_param is analogous for parameter expansions
- integer in_param=0 len=$#buf
- local -a in_alias match mbegin mend list_highlights
+ integer in_alias=0 in_param=0 len=$#buf
+ local -a match mbegin mend list_highlights
# seen_alias is a map of aliases already seen to avoid loops like alias a=b b=a
local -A seen_alias
# Pattern for parameter names
@@ -524,7 +434,7 @@ _zsh_highlight_main_highlighter_highlight_list()
# "Q" for square
# "Y" for curly
# "T" for [[ ]]
- # "S" for $( ), =( ), <( ), >( )
+ # "S" for $( )
# "D" for do/done
# "$" for 'end' (matches 'foreach' always; also used with cshjunkiequotes in repeat/while)
# "?" for 'if'/'fi'; also checked by 'elif'/'else'
@@ -542,9 +452,6 @@ _zsh_highlight_main_highlighter_highlight_list()
# - :sudo_arg: The argument to a precommand's leading-dash option,
# when given as a separate word; i.e., "foo" in "-u foo" (two
# words) but not in "-ufoo" (one word).
- # Note: :sudo_opt: and :sudo_arg: are used for any precommand
- # declared in ${precommand_options}, not just for sudo(8).
- # The naming is historical.
# - :regular: "Not a command word", and command delimiters are permitted.
# Mainly used to detect premature termination of commands.
# - :always: The word 'always' in the «{ foo } always { bar }» syntax.
@@ -573,13 +480,6 @@ _zsh_highlight_main_highlighter_highlight_list()
# $in_redirection. The value of $next_word from the iteration that processed
# the operator is discarded.
#
- # $in_redirection is currently used for:
- # - comments
- # - aliases
- # - redirections
- # - parameter elision in command position
- # - 'repeat' loops
- #
local this_word next_word=':start::start_of_pipeline:'
integer in_redirection
# Processing buffer
@@ -590,34 +490,15 @@ _zsh_highlight_main_highlighter_highlight_list()
else
args=(${(z)buf})
fi
-
- # Special case: $(<*) isn't globbing.
- if [[ $braces_stack == 'S' ]] && (( $+args[3] && ! $+args[4] )) && [[ $args[3] == $'\x29' ]] &&
- [[ $args[1] == *'<'* ]] && _zsh_highlight_main__is_redirection $args[1]; then
- highlight_glob=false
- fi
-
while (( $#args )); do
- last_arg=$arg
arg=$args[1]
shift args
- if (( $#in_alias )); then
- (( in_alias[1]-- ))
- # Remove leading 0 entries
- in_alias=($in_alias[$in_alias[(i)<1->],-1])
- if (( $#in_alias == 0 )); then
+ if (( in_alias )); then
+ (( in_alias-- ))
+ if (( in_alias == 0 )); then
seen_alias=()
# start_pos and end_pos are of the alias (previous $arg) here
_zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style
- else
- # We can't unset keys that contain special characters (] \ and some others).
- # More details: https://www.zsh.org/workers/43269
- (){
- local alias_name
- for alias_name in ${(k)seen_alias[(R)<$#in_alias->]}; do
- seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}")
- done
- }
fi
fi
if (( in_param )); then
@@ -633,7 +514,7 @@ _zsh_highlight_main_highlighter_highlight_list()
if (( in_redirection == 0 )); then
this_word=$next_word
next_word=':regular:'
- elif (( !in_param )); then
+ else
# Stall $next_word.
(( --in_redirection ))
fi
@@ -643,7 +524,6 @@ _zsh_highlight_main_highlighter_highlight_list()
# $style how to highlight $arg
# $in_array_assignment boolean flag for "between '(' and ')' of array assignment"
# $highlight_glob boolean flag for "'noglob' is in effect"
- # $saw_assignment boolean flag for "was preceded by an assignment"
#
style=unknown-token
if [[ $this_word == *':start:'* ]]; then
@@ -653,19 +533,14 @@ _zsh_highlight_main_highlighter_highlight_list()
fi
fi
- if (( $#in_alias == 0 && in_param == 0 )); then
+ if (( in_alias == 0 && in_param == 0 )); then
# Compute the new $start_pos and $end_pos, skipping over whitespace in $buf.
- [[ "$proc_buf" = (#b)(#s)(''([ $'\t']|[\\]$'\n')#)(?|)* ]]
+ [[ "$proc_buf" = (#b)(#s)(([ $'\t']|\\$'\n')#)* ]]
# The first, outer parenthesis
integer offset="${#match[1]}"
(( start_pos = end_pos + offset ))
(( end_pos = start_pos + $#arg ))
- # The zsh lexer considers ';' and newline to be the same token, so
- # ${(z)} converts all newlines to semicolons. Convert them back here to
- # make later processing simpler.
- [[ $arg == ';' && ${match[3]} == $'\n' ]] && arg=$'\n'
-
# Compute the new $proc_buf. We advance it
# (chop off characters from the beginning)
# beyond what end_pos points to, by skipping
@@ -709,10 +584,11 @@ _zsh_highlight_main_highlighter_highlight_list()
if [[ $res == "alias" ]]; then
# Mark insane aliases as unknown-token (cf. #263).
if [[ $arg == ?*=* ]]; then
+ (( in_alias == 0 )) && in_alias=1
_zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token
continue
fi
- seen_alias[$arg]=$#in_alias
+ seen_alias[$arg]=1
_zsh_highlight_main__resolve_alias $arg
local -a alias_args
# Elision is desired in case alias x=''
@@ -722,15 +598,15 @@ _zsh_highlight_main_highlighter_highlight_list()
alias_args=(${(z)REPLY})
fi
args=( $alias_args $args )
- if (( $#in_alias == 0 )); then
+ if (( in_alias == 0 )); then
alias_style=alias
+ # Add one because we will in_alias-- on the next loop iteration so
+ # this iteration should be considered in in_alias as well
+ (( in_alias += $#alias_args + 1 ))
else
- # Transfer the count of this arg to the new element about to be appended.
- (( in_alias[1]-- ))
+ # This arg is already included in the count, so no need to + 1.
+ (( in_alias += $#alias_args ))
fi
- # Add one because we will in_alias[1]-- on the next loop iteration so
- # this iteration should be considered in in_alias as well
- in_alias=( $(($#alias_args + 1)) $in_alias )
(( in_redirection++ )) # Stall this arg
continue
else
@@ -743,7 +619,7 @@ _zsh_highlight_main_highlighter_highlight_list()
# Analyse the current word.
if _zsh_highlight_main__is_redirection $arg ; then
if (( in_redirection == 1 )); then
- # Two consecutive redirection operators is an error.
+ # The condition excludes the case that BUFFER='{foo}>&2' and we're on the '>&'.
_zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token
else
in_redirection=2
@@ -758,50 +634,58 @@ _zsh_highlight_main_highlighter_highlight_list()
fi
# Expand parameters.
- if (( ! in_param )) && _zsh_highlight_main_highlighter__try_expand_parameter "$arg"; then
+ #
+ # ### For now, expand just '$foo' or '${foo}', possibly with braces, but with
+ # ### no other features of the parameter expansion syntax. (No ${(x)foo},
+ # ### no ${foo[x]}, no ${foo:-x}.)
+ () {
# That's not entirely correct --- if the parameter's value happens to be a reserved
# word, the parameter expansion will be highlighted as a reserved word --- but that
# incorrectness is outweighed by the usability improvement of permitting the use of
# parameters that refer to commands, functions, and builtins.
- () {
- local -a words; words=( "${reply[@]}" )
- if (( $#words == 0 )) && (( ! in_redirection )); then
- # Parameter elision is happening
- (( ++in_redirection ))
- _zsh_highlight_main_add_region_highlight $start_pos $end_pos comment
- continue
- else
- (( in_param = 1 + $#words ))
- args=( $words $args )
- arg=$args[1]
- _zsh_highlight_main__type "$arg" 0
- res=$REPLY
- fi
- }
- fi
+ local -a match mbegin mend
+ local MATCH; integer MBEGIN MEND
+ local parameter_name
+ local -a words
+ if [[ $arg[1] == '$' ]] && [[ ${arg[2]} == '{' ]] && [[ ${arg[-1]} == '}' ]]; then
+ parameter_name=${${arg:2}%?}
+ elif [[ $arg[1] == '$' ]]; then
+ parameter_name=${arg:1}
+ fi
+ if [[ $res == none ]] && zmodload -e zsh/parameter &&
+ [[ ${parameter_name} =~ ^${~parameter_name_pattern}$ ]] &&
+ (( ${+parameters[(e)${MATCH}]} )) && [[ ${parameters[(e)$MATCH]} != *special* ]]
+ then
+ # Set $arg.
+ case ${(tP)MATCH} in
+ (*array*|*assoc*)
+ words=( ${(P)MATCH} )
+ ;;
+ (*)
+ # scalar, presumably
+ words=( ${(P)MATCH} )
+ ;;
+ esac
+ (( in_param = 1 + $#words ))
+ args=( $words $args )
+ arg=$args[1]
+ _zsh_highlight_main__type "$arg" 0
+ res=$REPLY
+ fi
+ }
# Parse the sudo command line
if (( ! in_redirection )); then
if [[ $this_word == *':sudo_opt:'* ]]; then
if [[ -n $flags_with_argument ]] &&
- {
- # Trenary
- if [[ -n $flags_sans_argument ]]
- then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument] ]]
- else [[ $arg == '-'[$flags_with_argument] ]]
- fi
- } then
+ { [[ -n $flags_sans_argument ]] && [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument] ]] ||
+ [[ $arg == '-'[$flags_with_argument] ]] }; then
# Flag that requires an argument
this_word=${this_word//:start:/}
next_word=':sudo_arg:'
elif [[ -n $flags_with_argument ]] &&
- {
- # Trenary
- if [[ -n $flags_sans_argument ]]
- then [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument]* ]]
- else [[ $arg == '-'[$flags_with_argument]* ]]
- fi
- } then
+ { [[ -n $flags_sans_argument ]] && [[ $arg == '-'[$flags_sans_argument]#[$flags_with_argument]* ]] ||
+ [[ $arg == '-'[$flags_with_argument]* ]] }; then
# Argument attached in the same word
this_word=${this_word//:start:/}
next_word+=':start:'
@@ -812,17 +696,6 @@ _zsh_highlight_main_highlighter_highlight_list()
this_word=':sudo_opt:'
next_word+=':start:'
next_word+=':sudo_opt:'
- elif [[ -n $flags_solo ]] &&
- {
- # Trenary
- if [[ -n $flags_sans_argument ]]
- then [[ $arg == '-'[$flags_sans_argument]#[$flags_solo]* ]]
- else [[ $arg == '-'[$flags_solo]* ]]
- fi
- } then
- # Solo flags
- this_word=':sudo_opt:'
- next_word=':regular:' # no :start:, nor :sudo_opt: since we don't know whether the solo flag takes an argument or not
elif [[ $arg == '-'* ]]; then
# Unknown flag. We don't know whether it takes an argument or not,
# so modify $next_word as we do for flags that require no argument.
@@ -844,94 +717,45 @@ _zsh_highlight_main_highlighter_highlight_list()
next_word+=':sudo_opt:'
next_word+=':start:'
fi
- fi
+ fi
- # The Great Fork: is this a command word? Is this a non-command word?
- if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]] &&
- [[ $braces_stack != *T* || $arg != ('||'|'&&') ]]; then
-
- # First, determine the style of the command separator itself.
- if _zsh_highlight_main__stack_pop T || _zsh_highlight_main__stack_pop Q; then
- # Missing closing square bracket(s)
- style=unknown-token
- elif $in_array_assignment; then
- case $arg in
- # Literal newlines are just fine.
- ($'\n') style=commandseparator;;
- # Semicolons are parsed the same way as literal newlines. Nevertheless,
- # highlight them as errors since they're probably unintended. Compare
- # issue #691.
- (';') style=unknown-token;;
- # Other command separators aren't allowed.
- (*) style=unknown-token;;
- esac
- elif [[ $this_word == *':regular:'* ]]; then
- style=commandseparator
- elif [[ $this_word == *':start:'* ]] && [[ $arg == $'\n' ]]; then
- style=commandseparator
- elif [[ $this_word == *':start:'* ]] && [[ $arg == ';' ]] && (( $#in_alias )); then
- style=commandseparator
- else
- # Empty commands (semicolon follows nothing) are valid syntax.
- # However, in interactive use they are likely to be erroneous;
- # therefore, we highlight them as errors.
- #
- # Alias definitions are exempted from this check to allow multiline aliases
- # with explicit (redundant) semicolons: «alias foo=$'bar;\nbaz'» (issue #677).
- #
- # See also #691 about possibly changing the style used here.
- style=unknown-token
- fi
-
- # Second, determine the style of next_word.
- if [[ $arg == $'\n' ]] && $in_array_assignment; then
- # literal newline inside an array assignment
- next_word=':regular:'
- elif [[ $arg == ';' ]] && $in_array_assignment; then
- # literal semicolon inside an array assignment
- next_word=':regular:'
- else
- next_word=':start:'
- highlight_glob=true
- saw_assignment=false
- (){
- local alias_name
- for alias_name in ${(k)seen_alias[(R)<$#in_alias->]}; do
- # We can't unset keys that contain special characters (] \ and some others).
- # More details: https://www.zsh.org/workers/43269
- seen_alias=("${(@kv)seen_alias[(I)^$alias_name]}")
- done
- }
- if [[ $arg != '|' && $arg != '|&' ]]; then
- next_word+=':start_of_pipeline:'
- fi
- fi
-
- elif ! (( in_redirection)) && [[ $this_word == *':always:'* && $arg == 'always' ]]; then
- # try-always construct
- style=reserved-word # de facto a reserved word, although not de jure
- highlight_glob=true
- saw_assignment=false
- next_word=':start::start_of_pipeline:' # only left brace is allowed, apparently
- elif ! (( in_redirection)) && [[ $this_word == *':start:'* ]]; then # $arg is the command word
- if (( ${+precommand_options[$arg]} )) && _zsh_highlight_main__is_runnable $arg; then
- style=precommand
- () {
- set -- "${(@s.:.)precommand_options[$arg]}"
- flags_with_argument=$1
- flags_sans_argument=$2
- flags_solo=$3
- }
- next_word=${next_word//:regular:/}
- next_word+=':sudo_opt:'
- next_word+=':start:'
- if [[ $arg == 'exec' || $arg == 'env' ]]; then
- # To allow "exec 2>&1;" and "env | grep" where there's no command word
- next_word+=':regular:'
- fi
- else
- case $res in
- (reserved) # reserved word
+ # The Great Fork: is this a command word? Is this a non-command word?
+ if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then
+ if _zsh_highlight_main__stack_pop T || _zsh_highlight_main__stack_pop Q; then
+ # Missing closing square bracket(s)
+ style=unknown-token
+ elif [[ $this_word == *':regular:'* ]]; then
+ # This highlights empty commands (semicolon follows nothing) as an error.
+ # Zsh accepts them, though.
+ style=commandseparator
+ else
+ style=unknown-token
+ fi
+ if [[ $arg == ';' ]] && $in_array_assignment; then
+ # literal newline inside an array assignment
+ next_word=':regular:'
+ else
+ next_word=':start:'
+ highlight_glob=true
+ if [[ $arg != '|' && $arg != '|&' ]]; then
+ next_word+=':start_of_pipeline:'
+ fi
+ fi
+ elif ! (( in_redirection)) && [[ $this_word == *':always:'* && $arg == 'always' ]]; then
+ # try-always construct
+ style=reserved-word # de facto a reserved word, although not de jure
+ next_word=':start:' # only left brace is allowed, apparently
+ elif ! (( in_redirection)) && [[ $this_word == *':start:'* ]]; then # $arg is the command word
+ if (( ${+precommand_options[$arg]} )) && _zsh_highlight_main__is_runnable $arg; then
+ style=precommand
+ flags_with_argument=${precommand_options[$arg]%:*}
+ flags_sans_argument=${precommand_options[$arg]#*:}
+ next_word=${next_word//:regular:/}
+ next_word+=':sudo_opt:'
+ next_word+=':start:'
+ else
+ case $res in
+ reserved) # reserved word
style=reserved-word
# Match braces and handle special cases.
case $arg in
@@ -1007,30 +831,20 @@ _zsh_highlight_main_highlighter_highlight_list()
fi
;;
esac
- if $saw_assignment && [[ $style != unknown-token ]]; then
- style=unknown-token
- fi
;;
- ('suffix alias')
- style=suffix-alias
- ;;
- ('global alias')
- style=global-alias
- ;;
- (alias) :;;
- (builtin) style=builtin
+ 'suffix alias') style=suffix-alias;;
+ alias) :;;
+ builtin) style=builtin
[[ $arg == $'\x5b' ]] && braces_stack='Q'"$braces_stack"
;;
- (function) style=function;;
- (command) style=command;;
- (hashed) style=hashed-command;;
- (none) if (( ! in_param )) && _zsh_highlight_main_highlighter_check_assign; then
+ function) style=function;;
+ command) style=command;;
+ hashed) style=hashed-command;;
+ none) if (( ! in_param )) && _zsh_highlight_main_highlighter_check_assign; then
_zsh_highlight_main_add_region_highlight $start_pos $end_pos assign
local i=$(( arg[(i)=] + 1 ))
- saw_assignment=true
if [[ $arg[i] == '(' ]]; then
in_array_assignment=true
- _zsh_highlight_main_add_region_highlight start_pos+i-1 start_pos+i reserved-word
else
# assignment to a scalar parameter.
# (For array assignments, the command doesn't start until the ")" token.)
@@ -1054,7 +868,6 @@ _zsh_highlight_main_highlighter_highlight_list()
[[ $arg[0,1] == $histchars[2,2] ]]; then
style=history-expansion
elif (( ! in_param )) &&
- ! $saw_assignment &&
[[ $arg[1,2] == '((' ]]; then
# Arithmetic evaluation.
#
@@ -1075,7 +888,6 @@ _zsh_highlight_main_highlighter_highlight_list()
# anonymous function
style=reserved-word
elif (( ! in_param )) &&
- ! $saw_assignment &&
[[ $arg == $'\x28' ]]; then
# subshell
style=reserved-word
@@ -1090,86 +902,79 @@ _zsh_highlight_main_highlighter_highlight_list()
fi
_zsh_highlight_main__stack_pop 'R' reserved-word
else
- if _zsh_highlight_main_highlighter_check_path $arg 1; then
+ if _zsh_highlight_main_highlighter_check_path $arg; then
style=$REPLY
else
style=unknown-token
fi
fi
;;
- (*) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res
+ *) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res
continue
;;
- esac
- fi
- if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]]; then
- next_word=':start::start_of_pipeline:'
- fi
- elif _zsh_highlight_main__is_global_alias "$arg"; then # $arg is a global alias that isn't in command position
- style=global-alias
- else # $arg is a non-command word
+ esac
+ fi
+ if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} ]]; then
+ next_word=':start::start_of_pipeline:'
+ fi
+ else # $arg is a non-command word
case $arg in
- ($'\x29')
- # subshell or end of array assignment
- if $in_array_assignment; then
- _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign
- _zsh_highlight_main_add_region_highlight $start_pos $end_pos reserved-word
- in_array_assignment=false
- next_word+=':start:'
- continue
- elif (( in_redirection )); then
- style=unknown-token
- else
- if _zsh_highlight_main__stack_pop 'S'; then
- REPLY=$start_pos
- reply=($list_highlights)
- return 0
- fi
- _zsh_highlight_main__stack_pop 'R' reserved-word
- fi
- ;;
- ($'\x28\x29')
- # possibly a function definition
- if (( in_redirection )) || $in_array_assignment; then
- style=unknown-token
- else
- if [[ $zsyh_user_options[multifuncdef] == on ]] || false # TODO: or if the previous word was a command word
- then
- next_word+=':start::start_of_pipeline:'
- fi
- style=reserved-word
- fi
- ;;
- (*) if false; then
- elif [[ $arg = $'\x7d' ]] && $right_brace_is_recognised_everywhere; then
- # Parsing rule: {
- #
- # Additionally, `tt(})' is recognized in any position if neither the
- # tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set.
- if (( in_redirection )) || $in_array_assignment; then
- style=unknown-token
- else
- _zsh_highlight_main__stack_pop 'Y' reserved-word
- if [[ $style == reserved-word ]]; then
- next_word+=':always:'
- fi
- fi
- elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then
- style=history-expansion
- elif [[ $arg == $'\x5d\x5d' ]] && _zsh_highlight_main__stack_pop 'T' reserved-word; then
- :
- elif [[ $arg == $'\x5d' ]] && _zsh_highlight_main__stack_pop 'Q' builtin; then
- :
- else
- _zsh_highlight_main_highlighter_highlight_argument 1 $(( 1 != in_redirection ))
- continue
- fi
- ;;
+ $'\x29') # subshell or end of array assignment
+ if $in_array_assignment; then
+ style=assign
+ in_array_assignment=false
+ next_word+=':start:'
+ elif (( in_redirection )); then
+ style=unknown-token
+ else
+ if _zsh_highlight_main__stack_pop 'S'; then
+ REPLY=$start_pos
+ reply=($list_highlights)
+ return 0
+ fi
+ _zsh_highlight_main__stack_pop 'R' reserved-word
+ fi;;
+ $'\x28\x29') # possibly a function definition
+ if (( in_redirection )) || $in_array_assignment; then
+ style=unknown-token
+ else
+ if [[ $zsyh_user_options[multifuncdef] == on ]] || false # TODO: or if the previous word was a command word
+ then
+ next_word+=':start::start_of_pipeline:'
+ fi
+ style=reserved-word
+ fi
+ ;;
+ *) if false; then
+ elif [[ $arg = $'\x7d' ]] && $right_brace_is_recognised_everywhere; then
+ # Parsing rule: {
+ #
+ # Additionally, `tt(})' is recognized in any position if neither the
+ # tt(IGNORE_BRACES) option nor the tt(IGNORE_CLOSE_BRACES) option is set.
+ if (( in_redirection )) || $in_array_assignment; then
+ style=unknown-token
+ else
+ _zsh_highlight_main__stack_pop 'Y' reserved-word
+ if [[ $style == reserved-word ]]; then
+ next_word+=':always:'
+ fi
+ fi
+ elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then
+ style=history-expansion
+ elif [[ $arg == $'\x5d\x5d' ]] && _zsh_highlight_main__stack_pop 'T' reserved-word; then
+ :
+ elif [[ $arg == $'\x5d' ]] && _zsh_highlight_main__stack_pop 'Q' builtin; then
+ :
+ else
+ _zsh_highlight_main_highlighter_highlight_argument 1 $(( 1 != in_redirection ))
+ continue
+ fi
+ ;;
esac
fi
_zsh_highlight_main_add_region_highlight $start_pos $end_pos $style
done
- (( $#in_alias )) && in_alias=() _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style
+ (( in_alias == 1 )) && in_alias=0 _zsh_highlight_main_add_region_highlight $start_pos $end_pos $alias_style
(( in_param == 1 )) && in_param=0 _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style
[[ "$proc_buf" = (#b)(#s)(([[:space:]]|\\$'\n')#) ]]
REPLY=$(( end_pos + ${#match[1]} - 1 ))
@@ -1201,32 +1006,12 @@ _zsh_highlight_main_highlighter_highlight_path_separators()
# Check if $1 is a path.
# If yes, return 0 and in $REPLY the style to use.
# Else, return non-zero (and the contents of $REPLY is undefined).
-#
-# $2 should be non-zero iff we're in command position.
_zsh_highlight_main_highlighter_check_path()
{
_zsh_highlight_main_highlighter_expand_path "$1"
local expanded_path="$REPLY" tmp_path
- integer in_command_position=$2
- if [[ $zsyh_user_options[autocd] == on ]]; then
- integer autocd=1
- else
- integer autocd=0
- fi
-
- if (( in_command_position )); then
- # ### Currently, this value is never returned: either it's overwritten
- # ### below, or the return code is non-zero
- REPLY=arg0
- else
- REPLY=path
- fi
-
- if [[ ${1[1]} == '=' && $1 == ??* && ${1[2]} != $'\x28' && $zsyh_user_options[equals] == 'on' && $expanded_path[1] != '/' ]]; then
- REPLY=unknown-token # will error out if executed
- return 0
- fi
+ REPLY=path
[[ -z $expanded_path ]] && return 1
@@ -1243,56 +1028,24 @@ _zsh_highlight_main_highlighter_check_path()
tmp_path=$tmp_path:h
done
- if (( in_command_position )); then
- if [[ -x $expanded_path ]]; then
- if (( autocd )); then
- if [[ -d $expanded_path ]]; then
- REPLY=autodirectory
- fi
- return 0
- elif [[ ! -d $expanded_path ]]; then
- # ### This seems unreachable for the current callers
- return 0
- fi
- fi
- else
- if [[ -L $expanded_path || -e $expanded_path ]]; then
- return 0
- fi
- fi
+ [[ -L $expanded_path ]] && return 0
+ [[ -e $expanded_path ]] && return 0
# Search the path in CDPATH
- if [[ $expanded_path != /* ]] && (( autocd || ! in_command_position )); then
- # TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
- local cdpath_dir
- for cdpath_dir in $cdpath ; do
- if [[ -d "$cdpath_dir/$expanded_path" && -x "$cdpath_dir/$expanded_path" ]]; then
- if (( in_command_position && autocd )); then
- REPLY=autodirectory
- fi
- return 0
- fi
- done
- fi
+ local cdpath_dir
+ for cdpath_dir in $cdpath ; do
+ [[ -e "$cdpath_dir/$expanded_path" ]] && return 0
+ done
# If dirname($1) doesn't exist, neither does $1.
[[ ! -d ${expanded_path:h} ]] && return 1
# If this word ends the buffer, check if it's the prefix of a valid path.
if (( has_end && (len == end_pos) )) &&
- (( ! $#in_alias )) &&
[[ $WIDGET != zle-line-finish ]]; then
- # TODO: When we've dropped support for pre-5.0.6 zsh, use the *(Y1) glob qualifier here.
local -a tmp
- if (( in_command_position )); then
- # We include directories even when autocd is enabled, because those
- # directories might contain executable files: e.g., BUFFER="/bi" en route
- # to typing "/bin/sh".
- tmp=( ${expanded_path}*(N-*,N-/) )
- else
- tmp=( ${expanded_path}*(N) )
- fi
- (( ${+tmp[1]} )) && REPLY=path_prefix && return 0
+ tmp=( ${expanded_path}*(N) )
+ (( $#tmp > 0 )) && REPLY=path_prefix && return 0
fi
# It's not a path.
@@ -1302,8 +1055,6 @@ _zsh_highlight_main_highlighter_check_path()
# Highlight an argument and possibly special chars in quotes starting at $1 in $arg
# This command will at least highlight $1 to end_pos with the default style
# If $2 is set to 0, the argument cannot be highlighted as an option.
-#
-# This function currently assumes it's never called for the command word.
_zsh_highlight_main_highlighter_highlight_argument()
{
local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style
@@ -1345,12 +1096,8 @@ _zsh_highlight_main_highlighter_highlight_argument()
fi
esac
- # This loop is a hot path. Keep it fast!
- (( --i ))
- while (( ++i <= $#arg )); do
- i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]}
+ for (( ; i <= $#arg ; i += 1 )); do
case "$arg[$i]" in
- "") break;;
"\\") (( i += 1 )); continue;;
"'")
_zsh_highlight_main_highlighter_highlight_single_quote $i
@@ -1376,13 +1123,7 @@ _zsh_highlight_main_highlighter_highlight_argument()
(( i = REPLY ))
highlights+=($reply)
continue
- elif [[ $arg[i+1] == $'\x28' ]]; then
- if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then
- # Arithmetic expansion
- (( i = REPLY ))
- highlights+=($reply)
- continue
- fi
+ elif [[ $arg[i+1] == $'\x28' ]]; then
start=$i
(( i += 2 ))
_zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1]
@@ -1398,7 +1139,7 @@ _zsh_highlight_main_highlighter_highlight_argument()
fi
continue
fi
- while [[ $arg[i+1] == [=~#+'^'] ]]; do
+ while [[ $arg[i+1] == [\^=~#+] ]]; do
(( i += 1 ))
done
if [[ $arg[i+1] == [*@#?$!-] ]]; then
@@ -1423,9 +1164,7 @@ _zsh_highlight_main_highlighter_highlight_argument()
fi
;|
*)
- if $highlight_glob &&
- [[ $zsyh_user_options[multios] == on || $in_redirection -eq 0 ]] &&
- [[ ${arg[$i]} =~ ^[*?] || ${arg:$i-1} =~ ^\<[0-9]*-[0-9]*\> ]]; then
+ if $highlight_glob && [[ ${arg[$i]} =~ ^[*?] || ${arg:$i-1} =~ ^\<[0-9]*-[0-9]*\> ]]; then
highlights+=($(( start_pos + i - 1 )) $(( start_pos + i + $#MATCH - 1)) globbing)
(( i += $#MATCH - 1 ))
path_eligible=0
@@ -1436,19 +1175,10 @@ _zsh_highlight_main_highlighter_highlight_argument()
esac
done
- if (( path_eligible )); then
- if (( in_redirection )) && [[ $last_arg == *['<>']['&'] && $arg[$1,-1] == (<0->|p|-) ]]; then
- if [[ $arg[$1,-1] == (p|-) ]]; then
- base_style=redirection
- else
- base_style=numeric-fd
- fi
- # This function is currently never called for the command word, so $2 is hard-coded as 0.
- elif _zsh_highlight_main_highlighter_check_path $arg[$1,-1] 0; then
- base_style=$REPLY
- _zsh_highlight_main_highlighter_highlight_path_separators $base_style
- highlights+=($reply)
- fi
+ if (( path_eligible )) && _zsh_highlight_main_highlighter_check_path $arg[$1,-1]; then
+ base_style=$REPLY
+ _zsh_highlight_main_highlighter_highlight_path_separators $base_style
+ highlights+=($reply)
fi
highlights=($(( start_pos + $1 - 1 )) $end_pos $base_style $highlights)
@@ -1501,14 +1231,14 @@ _zsh_highlight_main_highlighter_highlight_double_quote()
(( j = i + start_pos - 1 ))
(( k = j + 1 ))
case "$arg[$i]" in
- ('"') break;;
- ('`') saved_reply=($reply)
- _zsh_highlight_main_highlighter_highlight_backtick $i
- (( i = REPLY ))
- reply=($saved_reply $reply)
- continue
- ;;
- ('$') style=dollar-double-quoted-argument
+ '"') break;;
+ '`') saved_reply=($reply)
+ _zsh_highlight_main_highlighter_highlight_backtick $i
+ (( i = REPLY ))
+ reply=($saved_reply $reply)
+ continue
+ ;;
+ '$' ) style=dollar-double-quoted-argument
# Look for an alphanumeric parameter name.
if [[ ${arg:$i} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+) ]] ; then
(( k += $#MATCH )) # highlight the parameter name
@@ -1525,16 +1255,9 @@ _zsh_highlight_main_highlighter_highlight_double_quote()
(( k += 1 )) # highlight both dollar signs
(( i += 1 )) # don't consider the second one as introducing another parameter expansion
elif [[ $arg[i+1] == $'\x28' ]]; then
- saved_reply=($reply)
- if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then
- # Arithmetic expansion
- (( i = REPLY ))
- reply=($saved_reply $reply)
- continue
- fi
-
breaks+=( $last_break $(( start_pos + i - 1 )) )
(( i += 2 ))
+ saved_reply=($reply)
_zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1]
ret=$?
(( i += REPLY ))
@@ -1715,96 +1438,6 @@ _zsh_highlight_main_highlighter_highlight_backtick()
REPLY=$i
}
-# Highlight special chars inside arithmetic expansions
-_zsh_highlight_main_highlighter_highlight_arithmetic()
-{
- local -a saved_reply
- local style
- integer i j k paren_depth ret
- reply=()
-
- for (( i = $1 + 3 ; i <= end_pos - start_pos ; i += 1 )) ; do
- (( j = i + start_pos - 1 ))
- (( k = j + 1 ))
- case "$arg[$i]" in
- [\'\"\\@{}])
- style=unknown-token
- ;;
- '(')
- (( paren_depth++ ))
- continue
- ;;
- ')')
- if (( paren_depth )); then
- (( paren_depth-- ))
- continue
- fi
- [[ $arg[i+1] == ')' ]] && { (( i++ )); break; }
- # Special case ) at the end of the buffer to avoid flashing command substitution for a character
- (( has_end && (len == k) )) && break
- # This is a single paren and there are no open parens, so this isn't an arithmetic expansion
- return 1
- ;;
- '`')
- saved_reply=($reply)
- _zsh_highlight_main_highlighter_highlight_backtick $i
- (( i = REPLY ))
- reply=($saved_reply $reply)
- continue
- ;;
- '$' )
- if [[ $arg[i+1] == $'\x28' ]]; then
- saved_reply=($reply)
- if [[ $arg[i+2] == $'\x28' ]] && _zsh_highlight_main_highlighter_highlight_arithmetic $i; then
- # Arithmetic expansion
- (( i = REPLY ))
- reply=($saved_reply $reply)
- continue
- fi
-
- (( i += 2 ))
- _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,end_pos]
- ret=$?
- (( i += REPLY ))
- reply=(
- $saved_reply
- $j $(( start_pos + i )) command-substitution-quoted
- $j $(( j + 2 )) command-substitution-delimiter-quoted
- $reply
- )
- if (( ret == 0 )); then
- reply+=($(( start_pos + i - 1 )) $(( start_pos + i )) command-substitution-delimiter)
- fi
- continue
- else
- continue
- fi
- ;;
- ($histchars[1]) # ! - may be a history expansion
- if [[ $arg[i+1] != ('='|$'\x28'|$'\x7b'|[[:blank:]]) ]]; then
- style=history-expansion
- else
- continue
- fi
- ;;
- *)
- continue
- ;;
-
- esac
- reply+=($j $k $style)
- done
-
- if [[ $arg[i] != ')' ]]; then
- # If unclosed, i points past the end
- (( i-- ))
- fi
- style=arithmetic-expansion
- reply=($(( start_pos + $1 - 1)) $(( start_pos + i )) arithmetic-expansion $reply)
- REPLY=$i
-}
-
-
# Called with a single positional argument.
# Perform filename expansion (tilde expansion) on the argument and set $REPLY to the expanded value.
#
@@ -1824,13 +1457,6 @@ _zsh_highlight_main_highlighter_expand_path()
# -------------------------------------------------------------------------------------------------
_zsh_highlight_main__precmd_hook() {
- # Unset the WARN_NESTED_VAR option, taking care not to error if the option
- # doesn't exist (zsh older than zsh-5.3.1-test-2).
- setopt localoptions
- if eval '[[ -o warnnestedvar ]]' 2>/dev/null; then
- unsetopt warnnestedvar
- fi
-
_zsh_highlight_main__command_type_cache=()
}
diff --git a/highlighters/main/test-data/abspath-in-command-position1.zsh b/highlighters/main/test-data/abspath-in-command-position1.zsh
index cfc12a5..75140d2 100644
--- a/highlighters/main/test-data/abspath-in-command-position1.zsh
+++ b/highlighters/main/test-data/abspath-in-command-position1.zsh
@@ -31,5 +31,5 @@
BUFFER=$'/'
expected_region_highlight=(
- '1 1 path_prefix' # /
+ '1 1 path' # /
)
diff --git a/highlighters/main/test-data/abspath-in-command-position1b.zsh b/highlighters/main/test-data/abspath-in-command-position1b.zsh
deleted file mode 100644
index 88fe60c..0000000
--- a/highlighters/main/test-data/abspath-in-command-position1b.zsh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt autocd
-BUFFER=$'/'
-
-expected_region_highlight=(
- '1 1 autodirectory' # /
-)
diff --git a/highlighters/main/test-data/abspath-in-command-position3.zsh b/highlighters/main/test-data/abspath-in-command-position3.zsh
index 415e316..9323ed7 100644
--- a/highlighters/main/test-data/abspath-in-command-position3.zsh
+++ b/highlighters/main/test-data/abspath-in-command-position3.zsh
@@ -28,10 +28,8 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-BUFFER=$'/bin; /bin'
+BUFFER=$'/bin'
expected_region_highlight=(
- '1 4 unknown-token' # /bin (in middle)
- '5 5 commandseparator' # ;
- '7 10 path_prefix' # /bin (at end)
+ '1 4 path' # /bin
)
diff --git a/highlighters/main/test-data/abspath-in-command-position3b.zsh b/highlighters/main/test-data/abspath-in-command-position3b.zsh
deleted file mode 100644
index 0e65c98..0000000
--- a/highlighters/main/test-data/abspath-in-command-position3b.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt autocd
-BUFFER=$'/bin; /bin'
-
-expected_region_highlight=(
- '1 4 autodirectory' # /bin (in middle)
- '5 5 commandseparator' # ;
- '7 10 autodirectory' # /bin (at end)
-)
diff --git a/highlighters/main/test-data/alias-brackets.zsh b/highlighters/main/test-data/alias-brackets.zsh
deleted file mode 100644
index ede6c9a..0000000
--- a/highlighters/main/test-data/alias-brackets.zsh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2021 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# Have to use cat here as it must be a command that exists.
-# Otherwise, the test would fail with the first token being recognized
-# as an "unknown-token".
-alias ]=cat
-
-BUFFER='] /'
-
-expected_region_highlight=(
- '1 1 alias' # ]
- '3 3 path' # /
-)
diff --git a/highlighters/main/test-data/alias-comment1.zsh b/highlighters/main/test-data/alias-comment1.zsh
index bae7ef6..dd5068f 100644
--- a/highlighters/main/test-data/alias-comment1.zsh
+++ b/highlighters/main/test-data/alias-comment1.zsh
@@ -27,11 +27,11 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-# see alias-comment2.zsh and comment-followed.zsh
+# see alias-comment2.zsh
setopt interactivecomments
alias x=$'# foo\npwd'
BUFFER='x'
expected_region_highlight=(
- '1 1 alias' # x
+ '1 1 alias "issue #616"' # x
)
diff --git a/highlighters/main/test-data/alias-in-cmdsubst.zsh b/highlighters/main/test-data/alias-in-cmdsubst.zsh
deleted file mode 100644
index b3cf777..0000000
--- a/highlighters/main/test-data/alias-in-cmdsubst.zsh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias p='print -r --'
-
-BUFFER=$'s=$(p foo)'
-
-expected_region_highlight=(
- '1 10 assign' # s=$(p foo)
- '3 10 default' # $(p foo)
- '3 10 command-substitution-unquoted' # $(p foo)
- '3 4 command-substitution-delimiter-unquoted' # $(
- '5 5 alias' # p
- '7 9 default' # foo
- '10 10 command-substitution-delimiter-unquoted' # )
-)
diff --git a/highlighters/main/test-data/alias-loop.zsh b/highlighters/main/test-data/alias-loop.zsh
index 83992db..baa122b 100644
--- a/highlighters/main/test-data/alias-loop.zsh
+++ b/highlighters/main/test-data/alias-loop.zsh
@@ -28,16 +28,12 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-function b() {} # beware of ALIAS_FUNC_DEF
alias a=b b=c c=b
BUFFER='a foo; :'
expected_region_highlight=(
- # An alias is ineligible for expansion whilst it's being expanded.
- # Therefore, the "b" in the expansion of the alias "c" is not considered
- # as an alias.
- '1 1 alias' # a
+ '1 1 unknown-token' # a (invalid alias loop)
'3 5 default' # foo
'6 6 commandseparator' # ;
'8 8 builtin' # :
diff --git a/highlighters/main/test-data/alias-reuse1.zsh b/highlighters/main/test-data/alias-reuse1.zsh
deleted file mode 100644
index 1fd61a0..0000000
--- a/highlighters/main/test-data/alias-reuse1.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias a=: b='a | a'
-
-BUFFER='b | b'
-
-expected_region_highlight=(
- '1 1 alias' # b
- '3 3 commandseparator' # |
- '5 5 alias' # b
-)
diff --git a/highlighters/main/test-data/alias-reuse2.zsh b/highlighters/main/test-data/alias-reuse2.zsh
deleted file mode 100644
index 37251fb..0000000
--- a/highlighters/main/test-data/alias-reuse2.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias a=: b='a && a'
-
-BUFFER='b && b'
-
-expected_region_highlight=(
- '1 1 alias' # b
- '3 4 commandseparator' # &&
- '6 6 alias' # b
-)
diff --git a/highlighters/main/test-data/alias-reuse3.zsh b/highlighters/main/test-data/alias-reuse3.zsh
deleted file mode 100644
index 5d7150a..0000000
--- a/highlighters/main/test-data/alias-reuse3.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias a=: b='a; a'
-
-BUFFER='b; b'
-
-expected_region_highlight=(
- '1 1 alias' # b
- '2 2 commandseparator' # ;
- '4 4 alias' # b
-)
diff --git a/highlighters/main/test-data/alias-reuse4.zsh b/highlighters/main/test-data/alias-reuse4.zsh
deleted file mode 100644
index 7ad7038..0000000
--- a/highlighters/main/test-data/alias-reuse4.zsh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias a=: b='a $(a)'
-
-BUFFER='b $(b)'
-
-expected_region_highlight=(
- '1 1 alias' # b
- '3 6 default' # $(b)
- '3 6 command-substitution-unquoted' # $(b)
- '3 4 command-substitution-delimiter-unquoted' # $(
- '5 5 alias' # b
- '6 6 command-substitution-delimiter-unquoted' # )
-)
diff --git a/highlighters/main/test-data/alias-reuse5.zsh b/highlighters/main/test-data/alias-reuse5.zsh
deleted file mode 100644
index 881401b..0000000
--- a/highlighters/main/test-data/alias-reuse5.zsh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias a=: b='a < <(a)'
-
-BUFFER='b < <(b)'
-
-expected_region_highlight=(
- '1 1 alias' # b
- '3 3 redirection' # <
- '5 8 default' # <(b)
- '5 8 process-substitution' # <(b)
- '5 6 process-substitution-delimiter' # <(
- '7 7 alias' # b
- '8 8 process-substitution-delimiter' # )
-)
diff --git a/highlighters/main/test-data/alias-self2.zsh b/highlighters/main/test-data/alias-self2.zsh
deleted file mode 100644
index fd6ae03..0000000
--- a/highlighters/main/test-data/alias-self2.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias cat='cat | cat'
-
-BUFFER='cat'
-
-expected_region_highlight=(
- '1 3 alias' # cat
-)
diff --git a/highlighters/main/test-data/alias-to-dir.zsh b/highlighters/main/test-data/alias-to-dir.zsh
index 30390d4..bfa6e07 100644
--- a/highlighters/main/test-data/alias-to-dir.zsh
+++ b/highlighters/main/test-data/alias-to-dir.zsh
@@ -32,5 +32,5 @@ alias x=/
BUFFER=$'x'
expected_region_highlight=(
- '1 1 unknown-token' # x (/)
+ '1 1 unknown-token "issue #668"' # x (/)
)
diff --git a/highlighters/main/test-data/alias-to-dir1b.zsh b/highlighters/main/test-data/alias-to-dir1b.zsh
deleted file mode 100644
index 62ec521..0000000
--- a/highlighters/main/test-data/alias-to-dir1b.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt autocd
-alias x=/
-BUFFER=$'x'
-
-expected_region_highlight=(
- '1 1 alias' # x
-)
diff --git a/highlighters/main/test-data/always2.zsh b/highlighters/main/test-data/always2.zsh
index 991137c..f5852c6 100644
--- a/highlighters/main/test-data/always2.zsh
+++ b/highlighters/main/test-data/always2.zsh
@@ -32,7 +32,7 @@ BUFFER=$'{\nls\n} always { pwd }'
expected_region_highlight=(
'1 1 reserved-word' # {
- '2 2 commandseparator' # \n
+ '2 2 unknown-token' # \n
'3 4 command' # ls
'5 5 commandseparator' # \n
'6 6 reserved-word' # }
diff --git a/highlighters/main/test-data/arith-cmdsubst-mess.zsh b/highlighters/main/test-data/arith-cmdsubst-mess.zsh
deleted file mode 100644
index 82268ac..0000000
--- a/highlighters/main/test-data/arith-cmdsubst-mess.zsh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $((ls); (ls))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 15 default' # $((ls); (ls))
- '3 15 command-substitution-unquoted' # $((ls); (ls))
- '3 4 command-substitution-delimiter-unquoted' # $(
- '5 5 reserved-word' # (
- '6 7 command' # ls
- '8 8 reserved-word' # )
- '9 9 commandseparator' # ;
- '11 11 reserved-word' # (
- '12 13 command' # ls
- '14 14 reserved-word' # )
- '15 15 command-substitution-delimiter-unquoted' # )
-)
diff --git a/highlighters/main/test-data/arith1.zsh b/highlighters/main/test-data/arith1.zsh
deleted file mode 100644
index 0462f73..0000000
--- a/highlighters/main/test-data/arith1.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( 6 * 9 ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 14 default' # $(( 6 * 9 ))
- '3 14 arithmetic-expansion' # $(( 6 * 9 ))
-)
diff --git a/highlighters/main/test-data/arith2.zsh b/highlighters/main/test-data/arith2.zsh
deleted file mode 100644
index af981d7..0000000
--- a/highlighters/main/test-data/arith2.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': "$(( 6 * 9 ))"'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 16 default' # "$(( 6 * 9 ))"
- '3 16 double-quoted-argument' # "$(( 6 * 9 ))"
- '4 15 arithmetic-expansion' # $(( 6 * 9 ))
-)
diff --git a/highlighters/main/test-data/arithmetic-command-substitution.zsh b/highlighters/main/test-data/arithmetic-command-substitution.zsh
deleted file mode 100644
index 07db0fb..0000000
--- a/highlighters/main/test-data/arithmetic-command-substitution.zsh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( $(echo 2) + 2 ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 22 default' # $(( $(echo 2) + 2 ))
- '3 22 arithmetic-expansion' # $(( $(echo 2) + 2 ))
- '7 15 command-substitution-quoted' # $(echo 2)
- '7 8 command-substitution-delimiter-quoted' # $(
- '9 12 builtin' # echo
- '14 14 default' # 2
- '15 15 command-substitution-delimiter' # )
-)
diff --git a/highlighters/main/test-data/arithmetic-doubled-parens.zsh b/highlighters/main/test-data/arithmetic-doubled-parens.zsh
deleted file mode 100644
index d582d67..0000000
--- a/highlighters/main/test-data/arithmetic-doubled-parens.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( ((42)) ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 15 default' # $(( ((42)) ))
- '3 15 arithmetic-expansion' # $(( ((42)) ))
-)
diff --git a/highlighters/main/test-data/arithmetic-empty.zsh b/highlighters/main/test-data/arithmetic-empty.zsh
deleted file mode 100644
index bd75996..0000000
--- a/highlighters/main/test-data/arithmetic-empty.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': "foo"$(())"bar"'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 17 default' # "foo"$(())"bar"
- '3 7 double-quoted-argument' # "foo"
- '8 12 arithmetic-expansion' # $(())
- '13 17 double-quoted-argument' # "bar"
-)
diff --git a/highlighters/main/test-data/arithmetic-hist-expn.zsh b/highlighters/main/test-data/arithmetic-hist-expn.zsh
deleted file mode 100644
index 79af723..0000000
--- a/highlighters/main/test-data/arithmetic-hist-expn.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( \!\! ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 11 default' # $(( !! ))
- '3 11 arithmetic-expansion' # $(( !! ))
- '7 8 history-expansion "issue #713"' # !!
-)
diff --git a/highlighters/main/test-data/arithmetic-invalid-chars.zsh b/highlighters/main/test-data/arithmetic-invalid-chars.zsh
deleted file mode 100644
index 9ace438..0000000
--- a/highlighters/main/test-data/arithmetic-invalid-chars.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( 0 * 1\'\'000 ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 19 default' # $(( 0 * 1\'\'000 ))
- '3 19 arithmetic-expansion' # $(( 0 * 1\'\'000 ))
- '12 12 unknown-token' # \'
- '13 13 unknown-token' # \'
-)
diff --git a/highlighters/main/test-data/arithmetic-multiplication.zsh b/highlighters/main/test-data/arithmetic-multiplication.zsh
deleted file mode 100644
index 65df0c9..0000000
--- a/highlighters/main/test-data/arithmetic-multiplication.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': foo*$(( 42 * 1729 ))*bar'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 26 default' # foo*$(( 42 * 1729 ))*bar
- '6 6 globbing' # *
- '7 22 arithmetic-expansion' # $(( 42 * 1729 ))
- '23 23 globbing' # *
-)
diff --git a/highlighters/main/test-data/arithmetic-nested.zsh b/highlighters/main/test-data/arithmetic-nested.zsh
deleted file mode 100644
index d734cd3..0000000
--- a/highlighters/main/test-data/arithmetic-nested.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( $(( 1 + 2 )) * 3 ))'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 25 default' # $(( $(( 1 + 2 )) * 3 ))
- '3 25 arithmetic-expansion' # $(( $(( 1 + 2 )) * 3 ))
- '7 18 arithmetic-expansion' # $(( 1 + 2 ))
-)
diff --git a/highlighters/main/test-data/arithmetic-quoted.zsh b/highlighters/main/test-data/arithmetic-quoted.zsh
deleted file mode 100644
index 917ddf7..0000000
--- a/highlighters/main/test-data/arithmetic-quoted.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': "$(( 1 + 1 ))"'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 16 default' # "$(( 1 + 1 ))"
- '3 16 double-quoted-argument' # "$(( 1 + 1 ))"
- '4 15 arithmetic-expansion' # $(( 1 + 1 ))
-)
diff --git a/highlighters/main/test-data/arithmetic-unclosed.zsh b/highlighters/main/test-data/arithmetic-unclosed.zsh
deleted file mode 100644
index aa4eac7..0000000
--- a/highlighters/main/test-data/arithmetic-unclosed.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( 1'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 7 default' # $(( 1
- '3 7 arithmetic-expansion' # $(( 1
-)
diff --git a/highlighters/main/test-data/arithmetic-unfinished.zsh b/highlighters/main/test-data/arithmetic-unfinished.zsh
deleted file mode 100644
index 916c3da..0000000
--- a/highlighters/main/test-data/arithmetic-unfinished.zsh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(( 1729 )'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 12 default' # $(( 1729 )
- '3 12 arithmetic-expansion' # $(( 1729 )
-)
-
-if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug
- expected_region_highlight[2]='3 13 default' # $(( 1729 )
-fi
diff --git a/highlighters/main/test-data/array-cmdsep1.zsh b/highlighters/main/test-data/array-cmdsep1.zsh
deleted file mode 100644
index 2fd55c0..0000000
--- a/highlighters/main/test-data/array-cmdsep1.zsh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'a=( foo | bar )'
-bar(){}
-
-expected_region_highlight=(
- '1 3 assign' # a=(
- '3 3 reserved-word' # (
- '5 7 default' # foo
- '9 9 unknown-token' # |
- # zsh reports a parse error at this point. Nevertheless, we test how we
- # highlight the remainder of $BUFFER. Currently we recover by treating the pipe
- # as a command separator. That's not the only reasonable behaviour, though; if
- # we change the behaviour, we should adjust the following expectations accordingly.
- '11 13 function' # bar
- '15 15 unknown-token' # )
-)
diff --git a/highlighters/main/test-data/array-cmdsep2.zsh b/highlighters/main/test-data/array-cmdsep2.zsh
deleted file mode 100644
index 0bda676..0000000
--- a/highlighters/main/test-data/array-cmdsep2.zsh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'a=( foo ; bar )'
-
-expected_region_highlight=(
- '1 3 assign' # a=(
- '3 3 reserved-word' # (
- '5 7 default' # foo
- '9 9 unknown-token' # ; (not commandseparator; see highlighter source code)
- '11 13 default' # bar
- '15 15 assign' # )
- '15 15 reserved-word' # )
-)
diff --git a/highlighters/main/test-data/array-cmdsep3.zsh b/highlighters/main/test-data/array-cmdsep3.zsh
deleted file mode 100644
index b4b3687..0000000
--- a/highlighters/main/test-data/array-cmdsep3.zsh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'a=( foo \n bar )'
-
-expected_region_highlight=(
- '1 3 assign' # a=(
- '3 3 reserved-word' # (
- '5 7 default' # foo
- '9 9 commandseparator' # \n
- '11 13 default' # bar
- '15 15 assign' # )
- '15 15 reserved-word' # )
-)
diff --git a/highlighters/main/test-data/assign-append.zsh b/highlighters/main/test-data/assign-append.zsh
index feb68e5..eb9fbbd 100644
--- a/highlighters/main/test-data/assign-append.zsh
+++ b/highlighters/main/test-data/assign-append.zsh
@@ -31,9 +31,7 @@ BUFFER='a+=(lorem ipsum)'
expected_region_highlight=(
"1 4 assign" # a+=(
- "4 4 reserved-word" # (
"5 9 default" # lorem
"11 15 default" # ipsum
"16 16 assign" # )
- "16 16 reserved-word" # )
)
diff --git a/highlighters/main/test-data/assign-array.zsh b/highlighters/main/test-data/assign-array.zsh
index ef0a666..0624f9b 100644
--- a/highlighters/main/test-data/assign-array.zsh
+++ b/highlighters/main/test-data/assign-array.zsh
@@ -32,10 +32,8 @@ BUFFER='(A=(hello world))'
expected_region_highlight=(
"1 1 reserved-word" # (
"2 4 assign" # A=(
- "4 4 reserved-word" # (
"5 9 default" # hello
"11 15 default" # world
"16 16 assign" # )
- "16 16 reserved-word" # )
"17 17 reserved-word" # )
)
diff --git a/highlighters/main/test-data/assign-array2.zsh b/highlighters/main/test-data/assign-array2.zsh
index 2d48721..cdc9e63 100644
--- a/highlighters/main/test-data/assign-array2.zsh
+++ b/highlighters/main/test-data/assign-array2.zsh
@@ -31,10 +31,8 @@ BUFFER='A=(hello world) ls'
expected_region_highlight=(
"1 3 assign" # A=(
- "3 3 reserved-word" # (
"4 8 default" # hello
"10 14 default" # world
"15 15 assign" # )
- "15 15 reserved-word" # )
"17 18 command" # ls
)
diff --git a/highlighters/main/test-data/assign-array3.zsh b/highlighters/main/test-data/assign-array3.zsh
index 5eb645e..986d71f 100644
--- a/highlighters/main/test-data/assign-array3.zsh
+++ b/highlighters/main/test-data/assign-array3.zsh
@@ -31,11 +31,9 @@ BUFFER='A=(hello world) b=42'
expected_region_highlight=(
"1 3 assign" # A=(
- "3 3 reserved-word" # (
"4 8 default" # hello
"10 14 default" # world
"15 15 assign" # )
- "15 15 reserved-word" # )
"17 20 assign" # b=42
"19 20 default" # 42
)
diff --git a/highlighters/main/test-data/assign-invalid-command.zsh b/highlighters/main/test-data/assign-invalid-command.zsh
deleted file mode 100644
index 557327e..0000000
--- a/highlighters/main/test-data/assign-invalid-command.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'x=y nosuchcommand'
-
-expected_region_highlight=(
- '1 3 assign' # x=y
- '3 3 default' # y
- '5 17 unknown-token' # nosuchcommand
-)
diff --git a/highlighters/main/test-data/assign-quoted-cmdsubst.zsh b/highlighters/main/test-data/assign-quoted-cmdsubst.zsh
deleted file mode 100644
index d4a62df..0000000
--- a/highlighters/main/test-data/assign-quoted-cmdsubst.zsh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2018 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'x="$(ls x y z)"'
-
-expected_region_highlight=(
- '1 15 assign' # x="$(ls x y z)"
- '3 15 default' # "$(ls x y z)"
- '3 3 double-quoted-argument' # "
- '15 15 double-quoted-argument' # "
- '4 14 command-substitution-quoted' # $(ls x y z)
- '4 5 command-substitution-delimiter-quoted' # $(
- '6 7 command' # ls
- '9 9 default' # x
- '11 11 default' # y
- '13 13 default' # z
- '14 14 command-substitution-delimiter-quoted' # )
-)
diff --git a/highlighters/main/test-data/assign.zsh b/highlighters/main/test-data/assign.zsh
index c6e8532..6e797ac 100644
--- a/highlighters/main/test-data/assign.zsh
+++ b/highlighters/main/test-data/assign.zsh
@@ -33,10 +33,8 @@ expected_region_highlight=(
"1 3 assign" # A=1
"3 3 default" # 1
"5 7 assign" # b=(
- "7 7 reserved-word" # (
"8 12 default" # "foo"
"8 12 double-quoted-argument" # "foo"
"14 16 default" # bar
"17 17 assign" # )
- "17 17 reserved-word" # )
)
diff --git a/highlighters/main/test-data/assignment-before-resword1.zsh b/highlighters/main/test-data/assignment-before-resword1.zsh
deleted file mode 100644
index b271d4a..0000000
--- a/highlighters/main/test-data/assignment-before-resword1.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2017 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'foo=bar { :; }'
-
-expected_region_highlight=(
- '1 7 assign' # foo=bar
- '5 7 default' # bar
- '9 9 unknown-token' # {
- '11 11 builtin' # :
- '12 12 commandseparator' # ;
- '14 14 reserved-word' # }
-)
diff --git a/highlighters/main/test-data/assignment-before-resword2.zsh b/highlighters/main/test-data/assignment-before-resword2.zsh
deleted file mode 100644
index 247e41e..0000000
--- a/highlighters/main/test-data/assignment-before-resword2.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2017 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'foo=bar ( :; )'
-
-expected_region_highlight=(
- '1 7 assign' # foo=bar
- '5 7 default' # bar
- '9 9 unknown-token' # (
- '11 11 builtin' # :
- '12 12 commandseparator' # ;
- '14 14 unknown-token' # )
-)
diff --git a/highlighters/main/test-data/assignment-before-resword3.zsh b/highlighters/main/test-data/assignment-before-resword3.zsh
deleted file mode 100644
index 5204189..0000000
--- a/highlighters/main/test-data/assignment-before-resword3.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2017 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'foo=bar (( foo ))'
-
-expected_region_highlight=(
- '1 7 assign' # foo=bar
- '5 7 default' # bar
- '9 17 unknown-token' # (( foo ))
-)
diff --git a/highlighters/main/test-data/assignment-before-resword4.zsh b/highlighters/main/test-data/assignment-before-resword4.zsh
deleted file mode 100644
index cc3d523..0000000
--- a/highlighters/main/test-data/assignment-before-resword4.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2017 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'foo=bar [[ -n foo ]]'
-
-expected_region_highlight=(
- '1 7 assign' # foo=bar
- '5 7 default' # bar
- '9 10 unknown-token' # [[
- '12 13 single-hyphen-option' # -n
- '15 17 default' # foo
- '19 20 reserved-word' # ]]
-)
diff --git a/highlighters/main/test-data/assignment-before-resword5.zsh b/highlighters/main/test-data/assignment-before-resword5.zsh
deleted file mode 100644
index 33f1ed1..0000000
--- a/highlighters/main/test-data/assignment-before-resword5.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2017 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'foo=bar \! :'
-
-expected_region_highlight=(
- '1 7 assign' # foo=bar
- '5 7 default' # bar
- '9 9 unknown-token' # \!
- '11 11 builtin' # :
-)
diff --git a/highlighters/main/test-data/backslash-continuation2.zsh b/highlighters/main/test-data/backslash-continuation2.zsh
deleted file mode 100644
index 9e2ca62..0000000
--- a/highlighters/main/test-data/backslash-continuation2.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'echo foo\\\nbar"baz"'
-
-expected_region_highlight=(
- '1 4 builtin' # echo
- '6 18 default "issue #705"' # foo\\\nbar"baz"
- '14 18 double-quoted-argument "issue #705"' # "baz"
-)
diff --git a/highlighters/main/test-data/bang-assign-array.zsh b/highlighters/main/test-data/bang-assign-array.zsh
index a54cf2d..77b57e6 100644
--- a/highlighters/main/test-data/bang-assign-array.zsh
+++ b/highlighters/main/test-data/bang-assign-array.zsh
@@ -32,11 +32,9 @@ BUFFER=$'foo=(bar abaz) \! ls'
expected_region_highlight=(
'1 5 assign' # foo=(
- '5 5 reserved-word' # (
'6 8 default' # bar
'10 13 default' # abaz
'14 14 assign' # )
- '14 14 reserved-word' # )
'16 16 unknown-token' # \!
'18 19 command' # ls
)
diff --git a/highlighters/main/test-data/block-assignment-no-command.zsh b/highlighters/main/test-data/block-assignment-no-command.zsh
deleted file mode 100644
index ec52c98..0000000
--- a/highlighters/main/test-data/block-assignment-no-command.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2022 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'{ a=42 }'
-
-expected_region_highlight=(
- '1 1 reserved-word' # {
- '3 6 assign' # a=42
- '5 6 default' # 42
- '8 8 reserved word "issue #854"' # }
-)
diff --git a/highlighters/main/test-data/cdpath-abspath.zsh b/highlighters/main/test-data/cdpath-abspath.zsh
deleted file mode 100644
index 64707b2..0000000
--- a/highlighters/main/test-data/cdpath-abspath.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-cdpath=( $PWD )
-mkdir foo foo/bar
-
-BUFFER="/foo"
-
-expected_region_highlight=(
- '1 4 unknown-token' # x (/)
-)
diff --git a/highlighters/main/test-data/comment-followed.zsh b/highlighters/main/test-data/comment-followed.zsh
index 044f283..8c7e42c 100644
--- a/highlighters/main/test-data/comment-followed.zsh
+++ b/highlighters/main/test-data/comment-followed.zsh
@@ -28,12 +28,11 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-# see alias-comment1.zsh
setopt interactivecomments
BUFFER=$'# foo\ntrue'
expected_region_highlight=(
'1 5 comment' # # foo
- '6 6 commandseparator' # \n
+ '6 6 commandseparator "issue #501"' # \n
'7 10 builtin' # true
)
diff --git a/highlighters/main/test-data/dinbrack1.zsh b/highlighters/main/test-data/dinbrack1.zsh
deleted file mode 100644
index e2279d6..0000000
--- a/highlighters/main/test-data/dinbrack1.zsh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'[[ foo && bar || baz ]]'
-
-expected_region_highlight=(
- '1 2 reserved-word' # [[
- '4 6 default' # foo
- '8 9 default' # &&
- '11 13 default' # bar
- '15 16 default' # ||
- '18 20 default' # baz
- '22 23 reserved-word' # ]]
-)
diff --git a/highlighters/main/test-data/empty-command-newline.zsh b/highlighters/main/test-data/empty-command-newline.zsh
index 4b7b35c..783f4b6 100644
--- a/highlighters/main/test-data/empty-command-newline.zsh
+++ b/highlighters/main/test-data/empty-command-newline.zsh
@@ -34,6 +34,6 @@ BUFFER=$':;\n:'
expected_region_highlight=(
'1 1 builtin' # :
'2 2 commandseparator' # ;
- '3 3 commandseparator' # \n
+ '3 3 commandseparator "issue #616"' # \n
'4 4 builtin' # :
)
diff --git a/highlighters/main/test-data/equals1.zsh b/highlighters/main/test-data/equals1.zsh
deleted file mode 100644
index 77f46e8..0000000
--- a/highlighters/main/test-data/equals1.zsh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': =ls'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 5 path' # =ls
-)
diff --git a/highlighters/main/test-data/equals2.zsh b/highlighters/main/test-data/equals2.zsh
deleted file mode 100644
index bd59ff7..0000000
--- a/highlighters/main/test-data/equals2.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-unsetopt equals
-
-BUFFER=$': =nosuchcommand'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 16 default' # =nosuchcommand
-)
diff --git a/highlighters/main/test-data/equals3.zsh b/highlighters/main/test-data/equals3.zsh
deleted file mode 100644
index 8c10789..0000000
--- a/highlighters/main/test-data/equals3.zsh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': =nosuchcommand'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 16 unknown-token' # =nosuchcommand
-)
diff --git a/highlighters/main/test-data/equals4.zsh b/highlighters/main/test-data/equals4.zsh
deleted file mode 100644
index 28bc214..0000000
--- a/highlighters/main/test-data/equals4.zsh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': ='
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 3 default' # =
-)
diff --git a/highlighters/main/test-data/fd-target-not-filename.zsh b/highlighters/main/test-data/fd-target-not-filename.zsh
deleted file mode 100644
index 5c3cd08..0000000
--- a/highlighters/main/test-data/fd-target-not-filename.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-touch 2
-
-BUFFER=$'echo foo>&2'
-
-expected_region_highlight=(
- '1 4 builtin' # echo
- '6 8 default' # foo
- '9 10 redirection' # >&
- '11 11 numeric-fd' # 2 (not path)
-)
diff --git a/highlighters/main/test-data/global-alias1.zsh b/highlighters/main/test-data/global-alias1.zsh
deleted file mode 100644
index 0022de3..0000000
--- a/highlighters/main/test-data/global-alias1.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-alias -g foo=bar
-
-BUFFER=$'foo foo'
-
-expected_region_highlight=(
- '1 3 global-alias' # foo
- '5 7 global-alias' # foo
-)
diff --git a/highlighters/main/test-data/history-double-quoted-followed.zsh b/highlighters/main/test-data/history-double-quoted-followed.zsh
deleted file mode 100644
index 6421ced..0000000
--- a/highlighters/main/test-data/history-double-quoted-followed.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=': !!= "!!="'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 4 history-expansion "issue #713"' # !!
- '7 11 default' # "!!="
- '7 11 double-quoted-argument' # "!!="
- '8 9 history-expansion "issue #713' # !!
-)
diff --git a/highlighters/main/test-data/meta-no-eval1.zsh b/highlighters/main/test-data/meta-no-eval1.zsh
deleted file mode 100644
index bb04077..0000000
--- a/highlighters/main/test-data/meta-no-eval1.zsh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': $(kill -9 $$) ${:-$(kill -9 $$)}'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 15 default' # $(kill -9 $$)
- '3 15 command-substitution-unquoted' # $(kill -9 $$)
- '3 4 command-substitution-delimiter-unquoted' # $(
- '5 8 builtin' # kill
- '10 11 single-hyphen-option' # -9
- '13 14 default' # $$
- '15 15 command-substitution-delimiter-unquoted' # )
- '17 34 default' # ${:-$(kill -9 $$)}
- '21 33 command-substitution-unquoted' # $(kill -9 $$)
- '21 22 command-substitution-delimiter-unquoted' # $(
- '23 26 builtin' # kill
- '28 29 single-hyphen-option' # -9
- '31 32 default' # $$
- '33 33 command-substitution-delimiter-unquoted' # )
-)
diff --git a/highlighters/main/test-data/meta-no-eval2.zsh b/highlighters/main/test-data/meta-no-eval2.zsh
deleted file mode 100644
index 61ef089..0000000
--- a/highlighters/main/test-data/meta-no-eval2.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# We aren't testing how this is highlighted; we're testing that it's not
-# evaluated. If it gets evaluated, the test suite will die.
-BUFFER=$': /(e*exit 42*)'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 15 default' # /(e*exit 42*)
- '6 6 globbing' # *
- '14 14 globbing' # *
-)
diff --git a/highlighters/main/test-data/multiline-array-assignment1.zsh b/highlighters/main/test-data/multiline-array-assignment1.zsh
index 8906cfd..3734c7a 100644
--- a/highlighters/main/test-data/multiline-array-assignment1.zsh
+++ b/highlighters/main/test-data/multiline-array-assignment1.zsh
@@ -32,10 +32,8 @@ BUFFER=$'foo=(\nbar) env'
expected_region_highlight=(
'1 5 assign' # foo=(
- '5 5 reserved-word' # (
'6 6 commandseparator' # \n
'7 9 default' # bar
'10 10 assign' # )
- '10 10 reserved-word' # )
- '12 14 precommand' # env
+ '12 14 command' # env
)
diff --git a/highlighters/main/test-data/multios-negates-globbing.zsh b/highlighters/main/test-data/multios-negates-globbing.zsh
deleted file mode 100644
index 7ece670..0000000
--- a/highlighters/main/test-data/multios-negates-globbing.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2018 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-unsetopt multios
-
-BUFFER=$'cat < *'
-
-expected_region_highlight=(
- '1 3 command' # cat
- '5 5 redirection' # <
- '7 7 default' # * - not globbing
-)
diff --git a/highlighters/main/test-data/multios-negates-globbing2.zsh b/highlighters/main/test-data/multios-negates-globbing2.zsh
deleted file mode 100644
index b6db983..0000000
--- a/highlighters/main/test-data/multios-negates-globbing2.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2018 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'cat < *'
-
-expected_region_highlight=(
- '1 3 command' # cat
- '5 5 redirection' # <
- '7 7 default' # *
- '7 7 globbing' # *
-)
diff --git a/highlighters/main/test-data/multiple-redirections.zsh b/highlighters/main/test-data/multiple-redirections.zsh
index 1545c1b..778e712 100644
--- a/highlighters/main/test-data/multiple-redirections.zsh
+++ b/highlighters/main/test-data/multiple-redirections.zsh
@@ -27,7 +27,7 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-BUFFER='id bob | grep java | sort | uniq | tail | head'
+BUFFER='ps aux | grep java | sort | uniq | tail | head'
expected_region_highlight=(
"1 2 command" # ps
diff --git a/highlighters/main/test-data/noglob-always.zsh b/highlighters/main/test-data/noglob-always.zsh
index 6d55048..481722f 100644
--- a/highlighters/main/test-data/noglob-always.zsh
+++ b/highlighters/main/test-data/noglob-always.zsh
@@ -39,7 +39,6 @@ expected_region_highlight=(
'19 24 reserved-word' # always
'26 26 reserved-word' # {
'28 31 builtin' # echo
- '33 33 default' # *
- '33 33 globbing' # *
+ '33 33 globbing "issue #577"' # *
'35 35 reserved-word' # }
)
diff --git a/highlighters/main/test-data/null-exec.zsh b/highlighters/main/test-data/null-exec.zsh
index be1e306..ab73717 100644
--- a/highlighters/main/test-data/null-exec.zsh
+++ b/highlighters/main/test-data/null-exec.zsh
@@ -34,5 +34,5 @@ expected_region_highlight=(
'1 4 precommand' # exec
'6 6 redirection' # >
'7 15 path' # /dev/null
- '16 16 commandseparator' # ;
+ '16 16 commandseparator "issue #676"' # ;
)
diff --git a/highlighters/main/test-data/null-exec2-printenv.zsh b/highlighters/main/test-data/null-exec2-printenv.zsh
deleted file mode 100644
index 59a2cef..0000000
--- a/highlighters/main/test-data/null-exec2-printenv.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2021 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'env | grep $needle'
-
-expected_region_highlight=(
- '1 3 precommand' # env
- '5 5 commandseparator' # |
- '7 10 command' # grep
- '12 18 default' # $needle
-)
diff --git a/highlighters/main/test-data/opt-shwordsplit1.zsh b/highlighters/main/test-data/opt-shwordsplit1.zsh
deleted file mode 100644
index 4a7689b..0000000
--- a/highlighters/main/test-data/opt-shwordsplit1.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt shwordsplit
-local EDITOR='ed -s'
-
-ed() { command ed "$@" }
-
-BUFFER=$'$EDITOR'
-
-expected_region_highlight=(
- '1 7 function' # $EDITOR
-)
diff --git a/highlighters/main/test-data/optimized-cmdsubst-input.zsh b/highlighters/main/test-data/optimized-cmdsubst-input.zsh
deleted file mode 100644
index ca55ef8..0000000
--- a/highlighters/main/test-data/optimized-cmdsubst-input.zsh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2018 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# See getoutput() and getoutputfile() in zsh's C source code.
-
-BUFFER=$': $(<*)'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 7 default' # $(<*)
- '3 7 command-substitution-unquoted' # $(<*)
- '3 4 command-substitution-delimiter-unquoted' # $(
- '5 5 redirection' # <
- '6 6 default' # * - not globbing!
- '7 7 command-substitution-delimiter-unquoted' # )
-)
diff --git a/highlighters/main/test-data/param-positional-in-array-append.zsh b/highlighters/main/test-data/param-positional-in-array-append.zsh
deleted file mode 100644
index bd39e02..0000000
--- a/highlighters/main/test-data/param-positional-in-array-append.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# This used to be an infinite loop.
-
-BUFFER=$'l+=( $1'
-
-expected_region_highlight=(
- '1 4 assign' # l+=(
- '4 4 reserved-word' # (
- '6 7 default' # $1
-)
diff --git a/highlighters/main/test-data/parameter-elision-command-word.zsh b/highlighters/main/test-data/parameter-elision-command-word.zsh
deleted file mode 100644
index 25f649a..0000000
--- a/highlighters/main/test-data/parameter-elision-command-word.zsh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER='$x ls'
-
-expected_region_highlight=(
- '1 2 comment' # $x
- '4 5 command' # ls
-)
diff --git a/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh b/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh
deleted file mode 100644
index 0bf6f4c..0000000
--- a/highlighters/main/test-data/parameter-expansion-shwordsplit.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2021 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt sh_word_split
-local foo='echo foo'
-
-BUFFER='$foo'
-
-expected_region_highlight=(
- '1 4 builtin' # $foo
-)
diff --git a/highlighters/main/test-data/parameter-to-global-alias.zsh b/highlighters/main/test-data/parameter-to-global-alias.zsh
deleted file mode 100644
index 63f95da..0000000
--- a/highlighters/main/test-data/parameter-to-global-alias.zsh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-if type global_alias >/dev/null; then
- skip_test="Test is written on the assumption that 'global_alias' is not a valid command name, but that assumption does not hold"
- return 0
-fi
-alias -g global_alias=y
-local s=global_alias
-
-BUFFER=$'$s'
-
-expected_region_highlight=(
- '1 2 unknown-token' # $s
-)
diff --git a/highlighters/main/test-data/path-dollared-word3.zsh b/highlighters/main/test-data/path-dollared-word3.zsh
index ec981b1..6921cba 100644
--- a/highlighters/main/test-data/path-dollared-word3.zsh
+++ b/highlighters/main/test-data/path-dollared-word3.zsh
@@ -34,7 +34,7 @@
BUFFER='$PWD; ${PWD}'
expected_region_highlight=(
- "1 4 unknown-token" # $PWD (without AUTO_CD)
+ "1 4 path" # $PWD
"5 5 commandseparator" # ;
- "7 12 path_prefix" # ${PWD}
+ "7 12 path" # ${PWD}
)
diff --git a/highlighters/main/test-data/path-dollared-word3b.zsh b/highlighters/main/test-data/path-dollared-word3b.zsh
deleted file mode 100644
index 72a2f7c..0000000
--- a/highlighters/main/test-data/path-dollared-word3b.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-setopt autocd
-BUFFER=$'$PWD; ${PWD}'
-
-expected_region_highlight=(
- '1 4 autodirectory' # $PWD
- '5 5 commandseparator' # ;
- '7 12 autodirectory' # ${PWD}
-)
diff --git a/highlighters/main/test-data/path-mixed-quoting.zsh b/highlighters/main/test-data/path-mixed-quoting.zsh
deleted file mode 100644
index cbd0b38..0000000
--- a/highlighters/main/test-data/path-mixed-quoting.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-touch foo
-
-BUFFER=$': \'f\'oo'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 7 path' # \'f\'oo
- '3 5 single-quoted-argument' # \'f\'
-)
diff --git a/highlighters/main/test-data/path_prefix3.zsh b/highlighters/main/test-data/path_prefix3.zsh
index 9f34f94..f4a0189 100644
--- a/highlighters/main/test-data/path_prefix3.zsh
+++ b/highlighters/main/test-data/path_prefix3.zsh
@@ -30,7 +30,7 @@
# Assumes that '/bin/sh' exists and '/bin/s' does not exist.
# Related to path_prefix.zsh
-PREBUFFER=$'ls \\\n'
+PREBUFFER='ls \'
BUFFER='/bin/s'
expected_region_highlight=(
diff --git a/highlighters/main/test-data/plain-file-in-command-position.zsh b/highlighters/main/test-data/plain-file-in-command-position.zsh
deleted file mode 100644
index 141ffac..0000000
--- a/highlighters/main/test-data/plain-file-in-command-position.zsh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-touch foo
-chmod -x foo
-BUFFER=$'./foo; ./foo'
-
-expected_region_highlight=(
- '1 5 unknown-token' # ./foo (in middle)
- '6 6 commandseparator' # ;
- '8 12 unknown-token' # ./foo (at end)
-)
diff --git a/highlighters/main/test-data/precommand-killing1.zsh b/highlighters/main/test-data/precommand-killing1.zsh
index 7598346..80d279b 100644
--- a/highlighters/main/test-data/precommand-killing1.zsh
+++ b/highlighters/main/test-data/precommand-killing1.zsh
@@ -29,12 +29,11 @@
# -------------------------------------------------------------------------------------------------
hash sudo=false
-touch foo
-BUFFER='sudo -e ./foo'
+BUFFER='sudo -e /etc/passwd'
expected_region_highlight=(
'1 4 precommand' # sudo
'6 7 single-hyphen-option' # -e
- '9 13 path' # ./foo
+ '9 19 path' # /etc/passwd
)
diff --git a/highlighters/main/test-data/precommand-killing2.zsh b/highlighters/main/test-data/precommand-killing2.zsh
index bc6fc86..2e332ae 100644
--- a/highlighters/main/test-data/precommand-killing2.zsh
+++ b/highlighters/main/test-data/precommand-killing2.zsh
@@ -35,5 +35,5 @@ BUFFER='sudo -e /does/not/exist'
expected_region_highlight=(
'1 4 precommand' # sudo
'6 7 single-hyphen-option' # -e
- '9 23 default' # /does/not/exist
+ '9 23 normal "issue #678"' # /does/not/exist
)
diff --git a/highlighters/main/test-data/precommand-then-assignment.zsh b/highlighters/main/test-data/precommand-then-assignment.zsh
deleted file mode 100644
index f0bb75f..0000000
--- a/highlighters/main/test-data/precommand-then-assignment.zsh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'nice x=y ls'
-
-expected_region_highlight=(
- '1 4 precommand' # nice
- '6 8 unknown-token "issue #641.5"' # x=y
- '10 11 default "issue #641.5 (fallout)"' # ls
-)
diff --git a/highlighters/main/test-data/precommand-uninstalled.zsh b/highlighters/main/test-data/precommand-uninstalled.zsh
deleted file mode 100644
index 03c8a75..0000000
--- a/highlighters/main/test-data/precommand-uninstalled.zsh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# Simulate sudo not being installed.
-#
-# The 'hash' step is because, if sudo _really_ isn't installed, 'unhash sudo'
-# would error out and break the test.
-hash sudo=/usr/bin/env && unhash sudo
-
-local PATH
-
-BUFFER=$'sudo ls'
-
-expected_region_highlight=(
- '1 4 unknown-token' # sudo
- '6 7 default' # ls - not 'command', since sudo isn't installed
-)
diff --git a/highlighters/main/test-data/redirection-all.zsh b/highlighters/main/test-data/redirection-all.zsh
deleted file mode 100644
index e8ffb5d..0000000
--- a/highlighters/main/test-data/redirection-all.zsh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2024 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$': foo 9<>foo >foo 9>foo >|foo >\!foo >>foo >>|foo >>\!foo <<&9 <&- >&- <&p >&p >&foo &>foo >&|foo >&\!foo &>|foo &>\!foo >>&foo &>>foo >>&|foo >>&\!foo &>>|foo &>>\!foo'
-
-expected_region_highlight=(
- '1 1 builtin' # :
- '3 3 redirection' # <
- '4 6 default' # foo
- '8 9 redirection' # 9<
- '10 12 default' # foo
- '14 15 redirection' # <>
- '16 18 default' # foo
- '20 22 redirection' # 9<>
- '23 25 default' # foo
- '27 27 redirection' # >
- '28 30 default' # foo
- '32 33 redirection' # 9>
- '34 36 default' # foo
- '38 39 redirection' # >|
- '40 42 default' # foo
- '44 45 redirection' # >\!
- '46 48 default' # foo
- '50 51 redirection' # >>
- '52 54 default' # foo
- '56 58 redirection' # >>|
- '59 61 default' # foo
- '63 65 redirection' # >>\!
- '66 68 default' # foo
- '70 72 redirection' # <<<
- '73 75 default' # foo
- '77 78 redirection' # <&
- '79 79 numeric-fd' # 9
- '81 82 redirection' # >&
- '83 83 numeric-fd' # 9
- '85 86 redirection' # <&
- '87 87 redirection' # -
- '89 90 redirection' # >&
- '91 91 redirection' # -
- '93 94 redirection' # <&
- '95 95 redirection' # p
- '97 98 redirection' # >&
- '99 99 redirection' # p
- '101 102 redirection' # >&
- '103 105 default' # foo
- '107 108 redirection' # &>
- '109 111 default' # foo
- '113 115 redirection' # >&|
- '116 118 default' # foo
- '120 122 redirection' # >&\!
- '123 125 default' # foo
- '127 129 redirection' # &>|
- '130 132 default' # foo
- '134 136 redirection' # &>\!
- '137 139 default' # foo
- '141 143 redirection' # >>&
- '144 146 default' # foo
- '148 150 redirection' # &>>
- '151 153 default' # foo
- '155 158 redirection' # >>&|
- '159 161 default' # foo
- '163 166 redirection' # >>&\!
- '167 169 default' # foo
- '171 174 redirection' # &>>|
- '175 177 default' # foo
- '179 182 redirection' # &>>\!
- '183 185 default' # foo
-)
diff --git a/highlighters/main/test-data/redirection-from-param.zsh b/highlighters/main/test-data/redirection-from-param.zsh
deleted file mode 100644
index 42ae638..0000000
--- a/highlighters/main/test-data/redirection-from-param.zsh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-touch file
-local fn=$PWD/file
-
-BUFFER=$'<$fn cat'
-
-expected_region_highlight=(
- '1 1 redirection' # <
- '2 4 path' # $fn
- '6 8 command' # cat
-)
diff --git a/highlighters/main/test-data/redirection-inhibits-elision.zsh b/highlighters/main/test-data/redirection-inhibits-elision.zsh
deleted file mode 100644
index c0ca267..0000000
--- a/highlighters/main/test-data/redirection-inhibits-elision.zsh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2020 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-BUFFER=$'<$foo cat cat'
-
-expected_region_highlight=(
- '1 1 redirection' # <
- '2 5 default' # $foo
- '7 9 command' # cat
- '11 13 default' # cat
-)
diff --git a/highlighters/main/test-data/redirection-special-cases.zsh b/highlighters/main/test-data/redirection-special-cases.zsh
deleted file mode 100644
index 733cf6b..0000000
--- a/highlighters/main/test-data/redirection-special-cases.zsh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2019 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# See xpandredir() in the zsh source.
-
-BUFFER=$'cat <&p; exec {myfd}>&-'
-
-expected_region_highlight=(
- '1 3 command' # cat
- '5 6 redirection' # <&
- '7 7 redirection' # p
- '8 8 commandseparator' # ;
- '10 13 precommand' # exec
- '15 20 named-fd' # {myfd}
- '21 22 redirection' # >&
- '23 23 redirection' # -
-)
diff --git a/highlighters/main/test-data/simple-redirection.zsh b/highlighters/main/test-data/simple-redirection.zsh
index fb06f19..e8c25e5 100644
--- a/highlighters/main/test-data/simple-redirection.zsh
+++ b/highlighters/main/test-data/simple-redirection.zsh
@@ -27,7 +27,7 @@
# vim: ft=zsh sw=2 ts=2 et
# -------------------------------------------------------------------------------------------------
-BUFFER='id bob | grep java'
+BUFFER='ps aux | grep java'
expected_region_highlight=(
"1 2 command" # ps
diff --git a/highlighters/pattern/pattern-highlighter.zsh b/highlighters/pattern/pattern-highlighter.zsh
index e0422d0..054eff7 100644
--- a/highlighters/pattern/pattern-highlighter.zsh
+++ b/highlighters/pattern/pattern-highlighter.zsh
@@ -54,7 +54,7 @@ _zsh_highlight_pattern_highlighter_loop()
local -a match mbegin mend
local MATCH; integer MBEGIN MEND
if [[ "$buf" == (#b)(*)(${~pat})* ]]; then
- region_highlight+=("$((mbegin[2] - 1)) $mend[2] $ZSH_HIGHLIGHT_PATTERNS[$pat], memo=zsh-syntax-highlighting")
+ region_highlight+=("$((mbegin[2] - 1)) $mend[2] $ZSH_HIGHLIGHT_PATTERNS[$pat]")
"$0" "$match[1]" "$pat"; return $?
fi
}
diff --git a/highlighters/regexp/regexp-highlighter.zsh b/highlighters/regexp/regexp-highlighter.zsh
index 0d43aac..26f9da3 100644
--- a/highlighters/regexp/regexp-highlighter.zsh
+++ b/highlighters/regexp/regexp-highlighter.zsh
@@ -55,7 +55,7 @@ _zsh_highlight_regexp_highlighter_loop()
local -a match mbegin mend
while true; do
[[ "$buf" =~ "$pat" ]] || return;
- region_highlight+=("$((MBEGIN - 1 + OFFSET)) $((MEND + OFFSET)) $ZSH_HIGHLIGHT_REGEXP[$pat], memo=zsh-syntax-highlighting")
+ region_highlight+=("$((MBEGIN - 1 + OFFSET)) $((MEND + OFFSET)) $ZSH_HIGHLIGHT_REGEXP[$pat]")
buf="$buf[$(($MEND+1)),-1]"
OFFSET=$((MEND+OFFSET));
done
diff --git a/images/after4-smaller.png b/images/after4-smaller.png
deleted file mode 100644
index fc946cf..0000000
Binary files a/images/after4-smaller.png and /dev/null differ
diff --git a/images/before4-smaller.png b/images/before4-smaller.png
deleted file mode 100644
index 2dbd058..0000000
Binary files a/images/before4-smaller.png and /dev/null differ
diff --git a/release.md b/release.md
index f8565e8..8df4b9c 100644
--- a/release.md
+++ b/release.md
@@ -1,12 +1,11 @@
# Release procedure (for developers):
-- Ensure every `is-at-least` invocation passes a stable zsh release's version number as the first argument
- For minor (A.B.0) releases:
- Check whether the release uses any not-yet-released zsh features
- Check open issues and outstanding pull requests
- Confirm `make test` passes
- check with multiple zsh versions
- (easiest to check GitHub Actions: https://github.com/zsh-users/zsh-syntax-highlighting/actions)
+ (easiest to check travis: https://travis-ci.org/zsh-users/zsh-syntax-highlighting/)
- Update changelog.md
`tig --abbrev=12 --abbrev-commit 0.4.1..upstream/master`
- Make sure there are no local commits and that `git status` is clean;
diff --git a/tests/README.md b/tests/README.md
index eefeb54..89aef14 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -7,9 +7,6 @@ The tests harness expects the highlighter directory to contain a `test-data`
directory with test data files.
See the [main highlighter](../highlighters/main/test-data) for examples.
-Tests should set the following variables:
-
-1.
Each test should define the string `$BUFFER` that is to be highlighted and the
array parameter `$expected_region_highlight`.
The value of that parameter is a list of strings of the form `"$i $j $style"`.
@@ -19,26 +16,15 @@ that is, `$i` and `$j` specify a range, 1-indexed, inclusive of both endpoints.
`$style` is a key of `$ZSH_HIGHLIGHT_STYLES`.
If `$todo` exists, the test point is marked as TODO (the failure of that test
point will not fail the test), and `$todo` is used as the explanation.
-
-2.
If a test sets `$skip_test` to a non-empty string, the test will be skipped
with the provided string as the reason.
-
-3.
-If a test sets `$fail_test` to a non-empty string, the test will be skipped
-with the provided string as the reason.
-
-4.
If a test sets `unsorted=1` the order of highlights in `$expected_region_highlight`
need not match the order in `$region_highlight`.
-5.
Normally, tests fail if `$expected_region_highlight` and `$region_highlight`
-have different numbers of elements. To mark this check as expected to fail,
-tests may set `$expected_mismatch` to an explanation string (like `$todo`);
-this is useful when the only difference between actual and expected is that actual
-has some additional, superfluous elements. This check is skipped if the
-`$todo` component is present in any regular test point.
+have different numbers of elements. Tests may set `$expected_mismatch` to an
+explanation string (like `$todo`) to avoid this and mark the cardinality check
+as todo.
**Note**: `$region_highlight` uses the same `"$i $j $style"` syntax but
interprets the indexes differently.
@@ -104,7 +90,7 @@ By default, the results of all tests will be printed; to show only "interesting"
results (tests that failed but were expected to succeed, or vice-versa), run
`make quiet-test` (or `make test QUIET=y`).
-[TAP]: https://testanything.org/
+[TAP]: http://testanything.org/
Performance test
diff --git a/tests/edit-failed-tests b/tests/edit-failed-tests
index e3a7668..9112c2a 100755
--- a/tests/edit-failed-tests
+++ b/tests/edit-failed-tests
@@ -32,7 +32,7 @@ type perl sponge >/dev/null || { print -ru2 -- "$0: This script requires perl(1)
local editor=( "${(@Q)${(z)${VISUAL:-${EDITOR:-vi}}}}" )
() {
- > "$2" perl -nE '$highlighter = $1 if /^Running test (\S*)/; say "highlighters/${highlighter}/test-data/$1.zsh" if /^## (\S*)/' "$1"
+ > "$2" perl -nE '$highlighter = $1 if /^Running test (\S*)/; say "highlighters/${highlighter}/test-data/$1.zsh" if /^# (\S*)/' "$1"
>>"$2" echo ""
>>"$2" cat <"$1"
"${editor[@]}" -- "$2"
diff --git a/tests/generate.zsh b/tests/generate.zsh
index 5696020..8b16073 100755
--- a/tests/generate.zsh
+++ b/tests/generate.zsh
@@ -31,9 +31,6 @@
emulate -LR zsh
setopt localoptions extendedglob
-# Required for add-zle-hook-widget.
-zmodload zsh/zle
-
# Argument parsing.
if (( $# * $# - 7 * $# + 12 )) || [[ $1 == -* ]]; then
print -r -- >&2 "$0: usage: $0 BUFFER HIGHLIGHTER BASENAME [PREAMBLE]"
diff --git a/tests/test-highlighting.zsh b/tests/test-highlighting.zsh
index 8b564a8..ab5f2d5 100755
--- a/tests/test-highlighting.zsh
+++ b/tests/test-highlighting.zsh
@@ -31,9 +31,6 @@
setopt NO_UNSET WARN_CREATE_GLOBAL
-# Required for add-zle-hook-widget.
-zmodload zsh/zle
-
local -r root=${0:h:h}
local -a anon_argv; anon_argv=("$@")
@@ -98,9 +95,9 @@ ZSH_HIGHLIGHT_HIGHLIGHTERS=($1)
typeset_p() {
for 1 ; do
if [[ ${(tP)1} == *array* ]]; then
- print -r -- "$1=( ${(@qqqqP)1} )"
+ print -r -- "$1=( ${(@q-P)1} )"
else
- print -r -- "$1=${(qqqqP)1}"
+ print -r -- "$1=${(q-P)1}"
fi
done
}
@@ -108,7 +105,7 @@ typeset_p() {
# Escape # as ♯ and newline as ↵ they are illegal in the 'description' part of TAP output
# The string to escape is «"$@"»; the result is returned in $REPLY.
tap_escape() {
- local s="${(j. .)@}"
+ local s="$@"
REPLY="${${s//'#'/♯}//$'\n'/↵}"
}
@@ -121,44 +118,24 @@ run_test_internal() {
builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! On ${(qq)1}: cd failed: $?"; return 1 }
# Load the data and prepare checking it.
- local BUFFER CURSOR MARK PENDING PREBUFFER REGION_ACTIVE WIDGET REPLY skip_test fail_test unsorted=0
+ local BUFFER CURSOR MARK PENDING PREBUFFER REGION_ACTIVE WIDGET REPLY skip_test unsorted=0
local expected_mismatch
- local skip_mismatch
local -a expected_region_highlight region_highlight
- local ARG="$1"
- local RETURN=""
- () {
- setopt localoptions
+ . "$srcdir"/"$1"
- # WARNING: The remainder of this anonymous function will run with the test's options in effect
- if { ! . "$srcdir"/"$ARG" } || (( $#fail_test )); then
- print -r -- "1..1"
- print -r -- "## ${ARG:t:r}"
- tap_escape $fail_test; fail_test=$REPLY
- print -r -- "not ok 1 - failed setup: $fail_test"
- return ${RETURN:=0}
- fi
+ (( $#skip_test )) && { print -r -- "1..0 # SKIP $skip_test"; return; }
- (( $#skip_test )) && {
- print -r -- "1..0 # SKIP $skip_test"
- print -r -- "## ${ARG:t:r}"
- return ${RETURN:=0}
- }
+ # Check the data declares $PREBUFFER or $BUFFER.
+ [[ -z $PREBUFFER && -z $BUFFER ]] && { echo >&2 "Bail out! On ${(qq)1}: Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank"; return 1; }
+ # Check the data declares $expected_region_highlight.
+ (( $+expected_region_highlight == 0 )) && { echo >&2 "Bail out! On ${(qq)1}: 'expected_region_highlight' is not declared."; return 1; }
- # Check the data declares $PREBUFFER or $BUFFER.
- [[ -z $PREBUFFER && -z $BUFFER ]] && { echo >&2 "Bail out! On ${(qq)ARG}: Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank"; return ${RETURN:=1}; }
- [[ $PREBUFFER == (''|*$'\n') ]] || { echo >&2 "Bail out! On ${(qq)ARG}: PREBUFFER=${(qqqq)PREBUFFER} doesn't end with a newline"; return ${RETURN:=1}; }
+ # Set sane defaults for ZLE variables
+ : ${CURSOR=$#BUFFER} ${PENDING=0} ${WIDGET=z-sy-h-test-harness-test-widget}
- # Set sane defaults for ZLE variables
- : ${CURSOR=$#BUFFER} ${PENDING=0} ${WIDGET=z-sy-h-test-harness-test-widget}
-
- # Process the data.
- _zsh_highlight
- }; [[ -z $RETURN ]] || return $RETURN
- unset ARG
-
- integer print_expected_and_actual=0
+ # Process the data.
+ _zsh_highlight
if (( unsorted )); then
region_highlight=("${(@n)region_highlight}")
@@ -167,7 +144,7 @@ run_test_internal() {
# Print the plan line, and some comments for human readers
echo "1..$(( $#expected_region_highlight + 1))"
- echo "## ${1:t:r}" # note: tests/edit-failed-tests looks for the "##" emitted by this line
+ echo "## ${1:t:r}"
[[ -n $PREBUFFER ]] && printf '# %s\n' "$(typeset_p PREBUFFER)"
[[ -n $BUFFER ]] && printf '# %s\n' "$(typeset_p BUFFER)"
@@ -176,14 +153,9 @@ run_test_internal() {
local -a expected_highlight_zone; expected_highlight_zone=( ${(z)expected_region_highlight[i]} )
integer exp_start=$expected_highlight_zone[1] exp_end=$expected_highlight_zone[2]
local todo=
- if (( $+expected_highlight_zone[4] )); then
- todo="# TODO $expected_highlight_zone[4]"
- skip_mismatch="cardinality check disabled whilst regular test points are expected to fail"
- fi
+ (( $+expected_highlight_zone[4] )) && todo="# TODO $expected_highlight_zone[4]"
if ! (( $+region_highlight[i] )); then
- print -r -- "not ok $i - unmatched expectation ($exp_start $exp_end $expected_highlight_zone[3])" \
- "${skip_mismatch:+"# TODO ${(qqq)skip_mismatch}"}"
- if [[ -z $skip_mismatch ]]; then (( ++print_expected_and_actual )); fi
+ print -r -- "not ok $i - unmatched expectation ($exp_start $exp_end $expected_highlight_zone[3])"
continue
fi
local -a highlight_zone; highlight_zone=( ${(z)region_highlight[i]} )
@@ -193,10 +165,9 @@ run_test_internal() {
if
[[ $start != $exp_start ]] ||
[[ $end != $exp_end ]] ||
- [[ ${highlight_zone[3]%,} != ${expected_highlight_zone[3]} ]] # remove the comma that's before the memo field
+ [[ $highlight_zone[3] != $expected_highlight_zone[3] ]]
then
print -r -- "not ok $i - $desc - expected ($exp_start $exp_end ${(qqq)expected_highlight_zone[3]}), observed ($start $end ${(qqq)highlight_zone[3]}). $todo"
- if [[ -z $todo ]]; then (( ++print_expected_and_actual )); fi
else
print -r -- "ok $i - $desc${todo:+ - }$todo"
fi
@@ -208,43 +179,14 @@ run_test_internal() {
unset desc
done
- # If both $skip_mismatch and $expected_mismatch are set, that means the test
- # has some XFail test points, _and_ explicitly sets $expected_mismatch as
- # well. Explicit settings should have priority, so we ignore $skip_mismatch
- # if $expected_mismatch is set.
- if [[ -n $skip_mismatch && -z $expected_mismatch ]]; then
- tap_escape $skip_mismatch; skip_mismatch=$REPLY
- print "ok $i - cardinality check" "# SKIP $skip_mismatch"
+ if (( $#expected_region_highlight == $#region_highlight )); then
+ print -r -- "ok $i - cardinality check" "${expected_mismatch:+"# TODO ${(qqq)expected_mismatch}"}"
else
- local todo
- if [[ -n $expected_mismatch ]]; then
- tap_escape $expected_mismatch; expected_mismatch=$REPLY
- todo="# TODO $expected_mismatch"
- fi
- if (( $#expected_region_highlight == $#region_highlight )); then
- print -r -- "ok $i - cardinality check${todo:+ - }$todo"
- else
- local details
- details+="have $#expected_region_highlight expectations and $#region_highlight region_highlight entries: "
- details+="«$(typeset_p expected_region_highlight)» «$(typeset_p region_highlight)»"
- tap_escape $details; details=$REPLY
- print -r -- "not ok $i - cardinality check - $details${todo:+ - }$todo"
- if [[ -z $todo ]]; then (( ++print_expected_and_actual )); fi
- fi
- fi
- if (( print_expected_and_actual )); then
- () {
- local -a left_column right_column
- left_column=( "expected_region_highlight" "${(qq)expected_region_highlight[@]}" )
- right_column=( "region_highlight" "${(qq)region_highlight[@]}" )
- integer difference=$(( $#right_column - $#left_column ))
- repeat $difference do left_column+=(.); done
- paste \
- =(print -rC1 -- $left_column) \
- =(print -rC1 -- $right_column) \
- | if type column >/dev/null; then column -t -s $'\t'; else cat; fi \
- | sed 's/^/# /'
- }
+ local details
+ details+="have $#expected_region_highlight expectations and $#region_highlight region_highlight entries: "
+ details+="«$(typeset_p expected_region_highlight)» «$(typeset_p region_highlight)»"
+ tap_escape $details; details=$REPLY
+ print -r -- "not ok $i - $details" "${expected_mismatch:+"# TODO ${(qqq)expected_mismatch}"}"
fi
}
diff --git a/tests/test-perfs.zsh b/tests/test-perfs.zsh
index aa139aa..a032978 100755
--- a/tests/test-perfs.zsh
+++ b/tests/test-perfs.zsh
@@ -29,9 +29,6 @@
# -------------------------------------------------------------------------------------------------
-# Required for add-zle-hook-widget.
-zmodload zsh/zle
-
# Check an highlighter was given as argument.
[[ -n "$1" ]] || {
echo >&2 "Bail out! You must provide the name of a valid highlighter as argument."
@@ -51,7 +48,6 @@ zmodload zsh/zle
}
# Load the main script.
-typeset -a region_highlight
. ${0:h:h}/zsh-syntax-highlighting.zsh
# Activate the highlighter.
@@ -66,6 +62,8 @@ run_test_internal() {
local srcdir="$PWD"
builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! cd failed: $?"; return 1 }
+ echo -n "# ${1:t:r}: "
+
# Load the data and prepare checking it.
PREBUFFER= BUFFER= ;
. "$srcdir"/"$1"
@@ -73,8 +71,9 @@ run_test_internal() {
# Check the data declares $PREBUFFER or $BUFFER.
[[ -z $PREBUFFER && -z $BUFFER ]] && { echo >&2 "Bail out! Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank"; return 1; }
- # Set $? for _zsh_highlight
- true && _zsh_highlight
+ # Measure the time taken by _zsh_highlight.
+ TIMEFMT="%*Es"
+ time (BUFFER="$BUFFER" && _zsh_highlight)
}
run_test() {
@@ -94,10 +93,9 @@ run_test() {
# Process each test data file in test data directory.
local data_file
-TIMEFMT="%*Es"
-{ time (for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do
+for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do
run_test "$data_file"
(( $pipestatus[1] )) && exit 2
-done) } 2>&1 || exit $?
+done
exit 0
diff --git a/tests/test-zprof.zsh b/tests/test-zprof.zsh
deleted file mode 100755
index ada1618..0000000
--- a/tests/test-zprof.zsh
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env zsh
-# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2010-2015 zsh-syntax-highlighting contributors
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without modification, are permitted
-# provided that the following conditions are met:
-#
-# * Redistributions of source code must retain the above copyright notice, this list of conditions
-# and the following disclaimer.
-# * Redistributions in binary form must reproduce the above copyright notice, this list of
-# conditions and the following disclaimer in the documentation and/or other materials provided
-# with the distribution.
-# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
-# may be used to endorse or promote products derived from this software without specific prior
-# written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
-# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# -------------------------------------------------------------------------------------------------
-# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
-# vim: ft=zsh sw=2 ts=2 et
-# -------------------------------------------------------------------------------------------------
-
-# Load the main script.
-typeset -a region_highlight
-. ${0:h:h}/zsh-syntax-highlighting.zsh
-
-# Activate the highlighter.
-ZSH_HIGHLIGHT_HIGHLIGHTERS=(main)
-
-source_file=0.7.1:highlighters/$1/$1-highlighter.zsh
-
-# Runs a highlighting test
-# $1: data file
-run_test_internal() {
- setopt interactivecomments
-
- local -a highlight_zone
-
- local tests_tempdir="$1"; shift
- local srcdir="$PWD"
- builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! cd failed: $?"; return 1 }
-
- # Load the data and prepare checking it.
- PREBUFFER=
- BUFFER=$(cd -- "$srcdir" && git cat-file blob $source_file)
- expected_region_highlight=()
-
- zmodload zsh/zprof
- zprof -c
- # Set $? for _zsh_highlight
- true && _zsh_highlight
- zprof
-}
-
-run_test() {
- # Do not combine the declaration and initialization: «local x="$(false)"» does not set $?.
- local __tests_tempdir
- __tests_tempdir="$(mktemp -d)" && [[ -d $__tests_tempdir ]] || {
- echo >&2 "Bail out! mktemp failed"; return 1
- }
- typeset -r __tests_tempdir # don't allow tests to override the variable that we will 'rm -rf' later on
-
- {
- (run_test_internal "$__tests_tempdir" "$@")
- } always {
- rm -rf -- "$__tests_tempdir"
- }
-}
-
-run_test
diff --git a/zsh-syntax-highlighting.zsh b/zsh-syntax-highlighting.zsh
index 4295c93..fd2a7c6 100644
--- a/zsh-syntax-highlighting.zsh
+++ b/zsh-syntax-highlighting.zsh
@@ -1,5 +1,5 @@
# -------------------------------------------------------------------------------------------------
-# Copyright (c) 2010-2020 zsh-syntax-highlighting contributors
+# Copyright (c) 2010-2016 zsh-syntax-highlighting contributors
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are permitted
@@ -29,8 +29,8 @@
# First of all, ensure predictable parsing.
typeset zsh_highlight__aliases="$(builtin alias -Lm '[^+]*')"
-# In zsh <= 5.2, aliases that begin with a plus sign ('alias -- +foo=42')
-# are emitted by `alias -L` without a '--' guard, so they don't round trip.
+# In zsh <= 5.2, `alias -L` emits aliases that begin with a plus sign ('alias -- +foo=42')
+# them without a '--' guard, so they don't round trip.
#
# Hence, we exclude them from unaliasing:
builtin unalias -m '[^+]*'
@@ -49,58 +49,12 @@ if true; then
fi
fi
-# This function takes a single argument F and returns True iff F is an autoload stub.
-_zsh_highlight__function_is_autoload_stub_p() {
- if zmodload -e zsh/parameter; then
- #(( ${+functions[$1]} )) &&
- [[ "$functions[$1]" == *"builtin autoload -X"* ]]
- else
- #[[ $(type -wa -- "$1") == *'function'* ]] &&
- [[ "${${(@f)"$(which -- "$1")"}[2]}" == $'\t'$histchars[3]' undefined' ]]
- fi
- # Do nothing here: return the exit code of the if.
-}
-
-# Return True iff the argument denotes a function name.
-_zsh_highlight__is_function_p() {
- if zmodload -e zsh/parameter; then
- (( ${+functions[$1]} ))
- else
- [[ $(type -wa -- "$1") == *'function'* ]]
- fi
-}
-
-# This function takes a single argument F and returns True iff F denotes the
-# name of a callable function. A function is callable if it is fully defined
-# or if it is marked for autoloading and autoloading it at the first call to it
-# will succeed. In particular, if F has been marked for autoloading
-# but is not available in $fpath, then calling this function on F will return False.
-#
-# See users/21671 https://www.zsh.org/cgi-bin/mla/redirect?USERNUMBER=21671
-_zsh_highlight__function_callable_p() {
- if _zsh_highlight__is_function_p "$1" &&
- ! _zsh_highlight__function_is_autoload_stub_p "$1"
- then
- # Already fully loaded.
- return 0 # true
- else
- # "$1" is either an autoload stub, or not a function at all.
- #
- # Use a subshell to avoid affecting the calling shell.
- #
- # We expect 'autoload +X' to return non-zero if it fails to fully load
- # the function.
- ( autoload -U +X -- "$1" 2>/dev/null )
- return $?
- fi
-}
-
# -------------------------------------------------------------------------------------------------
# Core highlighting update system
# -------------------------------------------------------------------------------------------------
# Use workaround for bug in ZSH?
-# zsh-users/zsh@48cadf4 https://www.zsh.org/mla/workers/2017/msg00034.html
+# zsh-users/zsh@48cadf4 http://www.zsh.org/mla/workers//2017/msg00034.html
autoload -Uz is-at-least
if is-at-least 5.4; then
typeset -g zsh_highlight__pat_static_bug=false
@@ -119,85 +73,29 @@ _zsh_highlight()
{
# Store the previous command return code to restore it whatever happens.
local ret=$?
- # Make it read-only. Can't combine this with the previous line when POSIX_BUILTINS may be set.
- typeset -r ret
-
- # $region_highlight should be predefined, either by zle or by the test suite's mock (non-special) array.
- (( ${+region_highlight[@]} )) || {
- echo >&2 'zsh-syntax-highlighting: error: $region_highlight is not defined'
- echo >&2 'zsh-syntax-highlighting: (Check whether zsh-syntax-highlighting was installed according to the instructions.)'
- return $ret
- }
-
- # Probe the memo= feature, once.
- (( ${+zsh_highlight__memo_feature} )) || {
- region_highlight+=( " 0 0 fg=red, memo=zsh-syntax-highlighting" )
- case ${region_highlight[-1]} in
- ("0 0 fg=red")
- # zsh 5.8 or earlier
- integer -gr zsh_highlight__memo_feature=0
- ;;
- ("0 0 fg=red memo=zsh-syntax-highlighting")
- # zsh 5.9 or later
- integer -gr zsh_highlight__memo_feature=1
- ;;
- (" 0 0 fg=red, memo=zsh-syntax-highlighting") ;&
- (*)
- # We can get here in two ways:
- #
- # 1. When not running as a widget. In that case, $region_highlight is
- # not a special variable (= one with custom getter/setter functions
- # written in C) but an ordinary one, so the third case pattern matches
- # and we fall through to this block. (The test suite uses this codepath.)
- #
- # 2. When running under a future version of zsh that will have changed
- # the serialization of $region_highlight elements from their underlying
- # C structs, so that none of the previous case patterns will match.
- #
- # In either case, fall back to a version check.
- if is-at-least 5.9; then
- integer -gr zsh_highlight__memo_feature=1
- else
- integer -gr zsh_highlight__memo_feature=0
- fi
- ;;
- esac
- region_highlight[-1]=()
- }
-
- # Reset region_highlight to build it from scratch
- if (( zsh_highlight__memo_feature )); then
- region_highlight=( "${(@)region_highlight:#*memo=zsh-syntax-highlighting*}" )
- else
- # Legacy codepath. Not very interoperable with other plugins (issue #418).
- region_highlight=()
- fi
# Remove all highlighting in isearch, so that only the underlining done by zsh itself remains.
# For details see FAQ entry 'Why does syntax highlighting not work while searching history?'.
# This disables highlighting during isearch (for reasons explained in README.md) unless zsh is new enough
# and doesn't have the pattern matching bug
if [[ $WIDGET == zle-isearch-update ]] && { $zsh_highlight__pat_static_bug || ! (( $+ISEARCHMATCH_ACTIVE )) }; then
+ region_highlight=()
return $ret
fi
# Before we 'emulate -L', save the user's options
local -A zsyh_user_options
if zmodload -e zsh/parameter; then
- zsyh_user_options=("${(kv)options[@]}")
+ zsyh_user_options=("${(@kv)options}")
else
local canonical_options onoff option raw_options
raw_options=(${(f)"$(emulate -R zsh; set -o)"})
canonical_options=(${${${(M)raw_options:#*off}%% *}#no} ${${(M)raw_options:#*on}%% *})
- for option in "${canonical_options[@]}"; do
+ for option in $canonical_options; do
[[ -o $option ]]
- case $? in
- (0) zsyh_user_options+=($option on);;
- (1) zsyh_user_options+=($option off);;
- (*) # Can't happen, surely?
- echo "zsh-syntax-highlighting: warning: '[[ -o $option ]]' returned $?"
- ;;
- esac
+ # This variable cannot be eliminated c.f. workers/42101.
+ onoff=${${=:-off on}[2-$?]}
+ zsyh_user_options+=($option $onoff)
done
fi
typeset -r zsyh_user_options
@@ -211,8 +109,11 @@ _zsh_highlight()
[[ -n ${ZSH_HIGHLIGHT_MAXLENGTH:-} ]] && [[ $#BUFFER -gt $ZSH_HIGHLIGHT_MAXLENGTH ]] && return $ret
# Do not highlight if there are pending inputs (copy/paste).
- (( KEYS_QUEUED_COUNT > 0 )) && return $ret
- (( PENDING > 0 )) && return $ret
+ [[ $PENDING -gt 0 ]] && return $ret
+
+ # Reset region highlight to build it from scratch
+ typeset -ga region_highlight
+ region_highlight=();
{
local cache_place
@@ -332,7 +233,7 @@ _zsh_highlight_apply_zle_highlight() {
else
start=$second end=$first
fi
- region_highlight+=("$start $end $region, memo=zsh-syntax-highlighting")
+ region_highlight+=("$start $end $region")
}
@@ -372,7 +273,7 @@ _zsh_highlight_add_highlight()
shift 2
for highlight; do
if (( $+ZSH_HIGHLIGHT_STYLES[$highlight] )); then
- region_highlight+=("$start $end $ZSH_HIGHLIGHT_STYLES[$highlight], memo=zsh-syntax-highlighting")
+ region_highlight+=("$start $end $ZSH_HIGHLIGHT_STYLES[$highlight]")
break
fi
done
@@ -386,117 +287,76 @@ _zsh_highlight_add_highlight()
# $1 is name of widget to call
_zsh_highlight_call_widget()
{
- builtin zle "$@" &&
+ builtin zle "$@" &&
_zsh_highlight
}
-# Decide whether to use the zle-line-pre-redraw codepath (colloquially known as
-# "feature/redrawhook", after the topic branch's name) or the legacy "bind all
-# widgets" codepath.
-#
-# We use the new codepath under two conditions:
-#
-# 1. If it's available, which we check by testing for add-zle-hook-widget's availability.
-#
-# 2. If zsh has the memo= feature, which is required for interoperability reasons.
-# See issues #579 and #735, and the issues referenced from them.
-#
-# We check this with a plain version number check, since a functional check,
-# as done by _zsh_highlight, can only be done from inside a widget
-# function — a catch-22.
-if is-at-least 5.9 && _zsh_highlight__function_callable_p add-zle-hook-widget
-then
- autoload -U add-zle-hook-widget
- _zsh_highlight__zle-line-finish() {
- # Reset $WIDGET since the 'main' highlighter depends on it.
- #
- # Since $WIDGET is declared by zle as read-only in this function's scope,
- # a nested function is required in order to shadow its built-in value;
- # see "User-defined widgets" in zshall.
- () {
- local -h -r WIDGET=zle-line-finish
- _zsh_highlight
- }
+# Rebind all ZLE widgets to make them invoke _zsh_highlights.
+_zsh_highlight_bind_widgets()
+{
+ setopt localoptions noksharrays
+ typeset -F SECONDS
+ local prefix=orig-s$SECONDS-r$RANDOM # unique each time, in case we're sourced more than once
+
+ # Load ZSH module zsh/zleparameter, needed to override user defined widgets.
+ zmodload zsh/zleparameter 2>/dev/null || {
+ print -r -- >&2 'zsh-syntax-highlighting: failed loading zsh/zleparameter.'
+ return 1
}
- _zsh_highlight__zle-line-pre-redraw() {
- # Set $? to 0 for _zsh_highlight. Without this, subsequent
- # zle-line-pre-redraw hooks won't run, since add-zle-hook-widget happens to
- # call us with $? == 1 in the common case.
- true && _zsh_highlight "$@"
- }
- _zsh_highlight_bind_widgets(){}
- if [[ -o zle ]]; then
- add-zle-hook-widget zle-line-pre-redraw _zsh_highlight__zle-line-pre-redraw
- add-zle-hook-widget zle-line-finish _zsh_highlight__zle-line-finish
- fi
-else
- # Rebind all ZLE widgets to make them invoke _zsh_highlights.
- _zsh_highlight_bind_widgets()
- {
- setopt localoptions noksharrays
- typeset -F SECONDS
- local prefix=orig-s$SECONDS-r$RANDOM # unique each time, in case we're sourced more than once
- # Load ZSH module zsh/zleparameter, needed to override user defined widgets.
- zmodload zsh/zleparameter 2>/dev/null || {
- print -r -- >&2 'zsh-syntax-highlighting: failed loading zsh/zleparameter.'
- return 1
- }
+ # Override ZLE widgets to make them invoke _zsh_highlight.
+ local -U widgets_to_bind
+ widgets_to_bind=(${${(k)widgets}:#(.*|run-help|which-command|beep|set-local-history|yank|yank-pop)})
- # Override ZLE widgets to make them invoke _zsh_highlight.
- local -U widgets_to_bind
- widgets_to_bind=(${${(k)widgets}:#(.*|run-help|which-command|beep|set-local-history|yank|yank-pop)})
+ # Always wrap special zle-line-finish widget. This is needed to decide if the
+ # current line ends and special highlighting logic needs to be applied.
+ # E.g. remove cursor imprint, don't highlight partial paths, ...
+ widgets_to_bind+=(zle-line-finish)
- # Always wrap special zle-line-finish widget. This is needed to decide if the
- # current line ends and special highlighting logic needs to be applied.
- # E.g. remove cursor imprint, don't highlight partial paths, ...
- widgets_to_bind+=(zle-line-finish)
+ # Always wrap special zle-isearch-update widget to be notified of updates in isearch.
+ # This is needed because we need to disable highlighting in that case.
+ widgets_to_bind+=(zle-isearch-update)
- # Always wrap special zle-isearch-update widget to be notified of updates in isearch.
- # This is needed because we need to disable highlighting in that case.
- widgets_to_bind+=(zle-isearch-update)
+ local cur_widget
+ for cur_widget in $widgets_to_bind; do
+ case ${widgets[$cur_widget]:-""} in
- local cur_widget
- for cur_widget in $widgets_to_bind; do
- case ${widgets[$cur_widget]:-""} in
+ # Already rebound event: do nothing.
+ user:_zsh_highlight_widget_*);;
- # Already rebound event: do nothing.
- user:_zsh_highlight_widget_*);;
+ # The "eval"'s are required to make $cur_widget a closure: the value of the parameter at function
+ # definition time is used.
+ #
+ # We can't use ${0/_zsh_highlight_widget_} because these widgets are always invoked with
+ # NO_function_argzero, regardless of the option's setting here.
- # The "eval"'s are required to make $cur_widget a closure: the value of the parameter at function
- # definition time is used.
- #
- # We can't use ${0/_zsh_highlight_widget_} because these widgets are always invoked with
- # NO_function_argzero, regardless of the option's setting here.
+ # User defined widget: override and rebind old one with prefix "orig-".
+ user:*) zle -N $prefix-$cur_widget ${widgets[$cur_widget]#*:}
+ eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }"
+ zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
- # User defined widget: override and rebind old one with prefix "orig-".
- user:*) zle -N $prefix-$cur_widget ${widgets[$cur_widget]#*:}
- eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }"
- zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
+ # Completion widget: override and rebind old one with prefix "orig-".
+ completion:*) zle -C $prefix-$cur_widget ${${(s.:.)widgets[$cur_widget]}[2,3]}
+ eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }"
+ zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
- # Completion widget: override and rebind old one with prefix "orig-".
- completion:*) zle -C $prefix-$cur_widget ${${(s.:.)widgets[$cur_widget]}[2,3]}
- eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget ${(q)prefix}-${(q)cur_widget} -- \"\$@\" }"
- zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
+ # Builtin widget: override and make it call the builtin ".widget".
+ builtin) eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget .${(q)cur_widget} -- \"\$@\" }"
+ zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
- # Builtin widget: override and make it call the builtin ".widget".
- builtin) eval "_zsh_highlight_widget_${(q)prefix}-${(q)cur_widget}() { _zsh_highlight_call_widget .${(q)cur_widget} -- \"\$@\" }"
- zle -N $cur_widget _zsh_highlight_widget_$prefix-$cur_widget;;
-
- # Incomplete or nonexistent widget: Bind to z-sy-h directly.
- *)
- if [[ $cur_widget == zle-* ]] && (( ! ${+widgets[$cur_widget]} )); then
- _zsh_highlight_widget_${cur_widget}() { :; _zsh_highlight }
- zle -N $cur_widget _zsh_highlight_widget_$cur_widget
- else
- # Default: unhandled case.
- print -r -- >&2 "zsh-syntax-highlighting: unhandled ZLE widget ${(qq)cur_widget}"
- print -r -- >&2 "zsh-syntax-highlighting: (This is sometimes caused by doing \`bindkey ${(q-)cur_widget}\` without creating the ${(qq)cur_widget} widget with \`zle -N\` or \`zle -C\`.)"
- fi
- esac
- done
- }
-fi
+ # Incomplete or nonexistent widget: Bind to z-sy-h directly.
+ *)
+ if [[ $cur_widget == zle-* ]] && (( ! ${+widgets[$cur_widget]} )); then
+ _zsh_highlight_widget_${cur_widget}() { :; _zsh_highlight }
+ zle -N $cur_widget _zsh_highlight_widget_$cur_widget
+ else
+ # Default: unhandled case.
+ print -r -- >&2 "zsh-syntax-highlighting: unhandled ZLE widget ${(qq)cur_widget}"
+ print -r -- >&2 "zsh-syntax-highlighting: (This is sometimes caused by doing \`bindkey ${(q-)cur_widget}\` without creating the ${(qq)cur_widget} widget with \`zle -N\` or \`zle -C\`.)"
+ fi
+ esac
+ done
+}
# Load highlighters from directory.
#