diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index cda541d..0000000 --- a/.editorconfig +++ /dev/null @@ -1,15 +0,0 @@ -# Top-most editorconfig file - -root = true - -[*] -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/.version b/.version index d182dc9..8f0916f 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -0.8.1-dev +0.5.0 diff --git a/COPYING.md b/COPYING.md index cacbcbe..3d6b811 100644 --- a/COPYING.md +++ b/COPYING.md @@ -1,4 +1,4 @@ -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 diff --git a/HACKING.md b/HACKING.md index ddd39a4..39d82fa 100644 --- a/HACKING.md +++ b/HACKING.md @@ -11,18 +11,16 @@ The `main` highlighter The following function `pz` is useful when working on the `main` highlighting: -```zsh -pq() { - (( $#argv )) || return 0 - print -r -l -- ${(qqqq)argv} -} -pz() { - local arg - for arg; do - pq ${(z)arg} - done -} -``` + pq() { + (( $#argv )) || return 0 + print -r -l -- ${(qqqq)argv} + } + pz() { + local arg + for arg; do + pq ${(z)arg} + done + } It prints, for each argument, its token breakdown, similar to how the main loop of the `main` highlighter sees it. @@ -34,66 +32,44 @@ Since the test harness empties `ZSH_HIGHLIGHT_STYLES` and the `brackets` highlighter interrogates `ZSH_HIGHLIGHT_STYLES` to determine how to highlight, tests must set the `bracket-level-#` keys themselves. For example: -```zsh -ZSH_HIGHLIGHT_STYLES[bracket-level-1]= -ZSH_HIGHLIGHT_STYLES[bracket-level-2]= + ZSH_HIGHLIGHT_STYLES[bracket-level-1]= + ZSH_HIGHLIGHT_STYLES[bracket-level-2]= -BUFFER='echo ({x})' + BUFFER='echo ({x})' -expected_region_highlight=( - "6 6 bracket-level-1" # ( - "7 7 bracket-level-2" # { - "9 9 bracket-level-2" # } - "10 10 bracket-level-1" # ) -) -``` + expected_region_highlight=( + "6 6 bracket-level-1" # ( + "7 7 bracket-level-2" # { + "9 9 bracket-level-2" # } + "10 10 bracket-level-1" # ) + ) -Testing the `pattern` and `regexp` highlighters ------------------------------------------------ +Testing the `pattern` highlighter +--------------------------------- -Because the `pattern` and `regexp` highlighters modifies `region_highlight` -directly instead of using `_zsh_highlight_add_highlight`, the test harness -cannot get the `ZSH_HIGHLIGHT_STYLES` keys. Therefore, when writing tests, use -the style itself as third word (cf. the -[documentation for `expected_region_highlight`](docs/highlighters.md)). For example: +Because the `pattern` highlighter modifies `region_highlight` directly instead +of using `_zsh_highlight_add_highlight`, the test harness cannot get the +`ZSH_HIGHLIGHT_STYLES` keys. Therefore, when writing tests, use the style +itself as third word (cf. the [documentation for `expected_region_highlight`] +(docs/highlighters.md)). For example: -```zsh -ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') + ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') -BUFFER='rm -rf /' - -expected_region_highlight=( - "1 8 fg=white,bold,bg=red" # rm -rf / -) -``` - -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. + BUFFER='rm -rf /' + expected_region_highlight=( + "1 8 fg=white,bold,bg=red" # rm -rf / + ) Miscellany ---------- If you work on the driver (`zsh-syntax-highlighting.zsh`), you may find the following zstyle useful: -```zsh -zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-highlighting.plugin.zsh -``` + zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-highlighting.plugin.zsh 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..8f322e1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -3,89 +3,35 @@ 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] -* Ubuntu: `zsh-syntax-highlighting` package [in Xenial][ubuntu-package] (or in [OBS repository][obs-repository]) -* Void Linux: `zsh-syntax-highlighting package` [in XBPS][void-package] +* Debian: `zsh-syntax-highlighting` package [in `stretch`][debian-package] +* 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] [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 -[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/ +[gentoo-overlay]: http://gpo.zugaina.org/app-shells/zsh-syntax-highlighting +[brew-package]: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/zsh-syntax-highlighting.rb [ubuntu-package]: https://launchpad.net/ubuntu/+source/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 Simply clone this repository and source the script: -```zsh -git clone https://github.com/zsh-users/zsh-syntax-highlighting.git -echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc -``` + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git + echo "source ${(q-)PWD}/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ${ZDOTDIR:-$HOME}/.zshrc Then, enable syntax highlighting in the current interactive shell: -```zsh -source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -``` + source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh If `git` is not installed, download and extract a snapshot of the latest development tree from: -``` -https://github.com/zsh-users/zsh-syntax-highlighting/archive/master.tar.gz -``` + https://github.com/zsh-users/zsh-syntax-highlighting/archive/master.tar.gz Note the `source` command must be **at the end** of `~/.zshrc`. @@ -97,57 +43,47 @@ Note that `zsh-syntax-highlighting` must be the last plugin sourced. The zsh-syntax-highlighting authors recommend manual installation over the use of a framework or plugin manager. -This list is incomplete as there are too many -[frameworks / plugin managers][framework-list] to list them all here. - -[framework-list]: https://github.com/unixorn/awesome-zsh-plugins#frameworks +This list is incomplete as there are too many [frameworks / plugin managers] +(https://github.com/unixorn/awesome-zsh-plugins#frameworks) to list them all +here. #### [Antigen](https://github.com/zsh-users/antigen) 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: - ```zsh - git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting - ``` + git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting 2. Activate the plugin in `~/.zshrc`: - ```zsh - plugins=( [plugins...] zsh-syntax-highlighting) - ``` + plugins=( [plugins...] zsh-syntax-highlighting) -3. Restart zsh (such as by opening a new instance of your terminal emulator). +3. Source `~/.zshrc` to take changes into account: + + source ~/.zshrc #### [Prezto](https://github.com/sorin-ionescu/prezto) -Zsh-syntax-highlighting is included with Prezto. See the -[Prezto documentation][prezto-docs] to enable and configure highlighters. - -[prezto-docs]: https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting +Zsh-syntax-highlighting is included with Prezto. See the [Prezto documentation] +(https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting) +to enable and configure highlighters. #### [zgen](https://github.com/tarjoilija/zgen) 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`. +Add `zplug "zsh-users/zsh-syntax-highlighting", nice:10` 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 @@ -156,14 +92,10 @@ Any of the above methods is suitable for a single-user installation, which requires no special privileges. If, however, you desire to install zsh-syntax-highlighting system-wide, you may do so by running -```zsh -make install -``` + make install and directing your users to add -```zsh -source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -``` + source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh to their `.zshrc`s. diff --git a/Makefile b/Makefile index bbc1d43..f454324 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,6 @@ install: all $(INSTALL) -d $(DOC_DIR) cp .version zsh-syntax-highlighting.zsh $(SHARE_DIR) cp COPYING.md README.md changelog.md $(DOC_DIR) - sed -e '1s/ .*//' -e '/^\[build-status-[a-z]*\]: /d' < README.md > $(DOC_DIR)/README.md if [ x"true" = x"`git rev-parse --is-inside-work-tree 2>/dev/null`" ]; then \ git rev-parse HEAD; \ else \ @@ -36,12 +35,11 @@ clean: rm -f docs/all.md test: - @$(ZSH) -fc 'echo ZSH_PATCHLEVEL=$$ZSH_PATCHLEVEL' @result=0; \ 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..2c2b6d6 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -zsh-syntax-highlighting [![Build Status][build-status-image]][build-status] +zsh-syntax-highlighting ======================= -**[Fish shell][fish]-like syntax highlighting for [Zsh][zsh].** +**[Fish shell][fish]-like like syntax highlighting for [Zsh][zsh].** -*Requirements: zsh 4.3.11+.* +*Requirements: zsh 4.3.17+.* -[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 +This package provides syntax highlighing for the shell zsh. It enables +highlighing of commands whilst they are typed at a zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors. @@ -27,11 +27,6 @@ Before: [![Screenshot #3.1](images/before3-smaller.png)](images/before3.png)
After:  [![Screenshot #3.2](images/after3-smaller.png)](images/after3.png) -Before: [![Screenshot #4.1](images/before4-smaller.png)](images/before4-smaller.png) -
-After:  [![Screenshot #4.2](images/after4-smaller.png)](images/after4-smaller.png) - - How to install -------------- @@ -44,38 +39,27 @@ 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 -to Ctrl+R in zsh's emacs keymap) requires zsh 5.4 or newer. +Highlighting the command line during an incremental history search +(with the `history-incremental-search-backward` widget, which is +bound by default to Ctrl+R in zsh's emacs keymap) requires zsh 5.3 +or newer. -Under zsh versions older than 5.4, the zsh-default [underlining][zshzle-Character-Highlighting] +Under zsh 5.2 and older, the zsh-default [underlining][zshzle-Character-Highlighting] of the matched portion of the buffer remains available, but zsh-syntax-highlighting's additional highlighting is unavailable. (Those versions of zsh do not provide enough information to allow computing the highlighting correctly.) -See issues [#288][i288] and [#415][i415] for details. +See [issue #288][i288] 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 ### How are new releases announced? @@ -92,6 +76,3 @@ How to tweak 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 diff --git a/changelog.md b/changelog.md index 8ee5088..c25aaec 100644 --- a/changelog.md +++ b/changelog.md @@ -1,389 +1,3 @@ -# 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: - -- Add `ZSH_HIGHLIGHT_DIRS_BLACKLIST` to disable "path" and "path prefix" - highlighting for specific directories - [#379] - -- Add the "regexp" highlighter, modelled after the pattern highlighter - [4e6f60063f1c] - -- When a word uses globbing, only the globbing metacharacters will be highlighted as globbing: - in `: foo*bar`, only the `*` will be blue. - [e48af357532c] - -- Highlight pasted quotes (e.g., `: foo"bar"`) - [dc1b2f6fa4bb] - -- Highlight command substitutions (`` : `ls` ``, `: $(ls)`) - [c0e64fe13178 and parents, e86f75a840e7, et al] - -- Highlight process substitutions (`: >(nl)`, `: <(pwd)`, `: =(git diff)`) - [c0e64fe13178 and parents, e86f75a840e7, et al] - -- Highlight command substitutions inside double quotes (``: "`foo`"``) - [f16e858f0c83] - -- Highlight many precommands (e.g., `nice`, `stdbuf`, `eatmydata`; - see `$precommand_options` in the source) - -- Highlight numeric globs (e.g., `echo /lib<->`) - -- Assorted improvements to aliases highlighting - (e.g., - `alias sudo_u='sudo -u'; sudo_u jrandom ls`, - `alias x=y y=z z=nosuchcommand; x`, - `alias ls='ls -l'; \ls`) - [f3410c5862fc, 57386f30aec8, #544, and many others] - -- Highlight some more syntax errors - [dea05e44e671, 298ef6a2fa30] - -- New styles: named file descriptors, `RC_QUOTES`, and unclosed quotes (e.g., `echo "foo`) - [38c794a978cd, 25ae1c01216c, 967335dfc5fd] - -- The 'brackets' highlighting no longer treats quotes specially. - [ecdda36ef56f] - - -Selected bugfixes include: - -- Highlight `sudo` correctly when it's not installed - [26a82113b08b] - -- Handle some non-default options being set in zshrc - [b07ada1255b7, a2a899b41b8, 972ad197c13d, b3f66fc8748f] - -- Fix off-by-one highlighting in vi "visual" mode (vicmd keymap) - [be3882aeb054] - -- The 'yank-pop' widget is not wrapped - [#183] - - -Known issues include: - -- A multiline alias that uses a simple command terminator (such as `;`, `|`, `&&`) - 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 - -This is a stable release, featuring bugfixes and minor improvements. - - -## Performance improvements: - -(none) - - -## Added highlighting of: - -- 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 - -- Possible history expansions in double-quoted strings. - (76ea9e1df316) - -- Mismatched `if`/`then`/`elif`/`else`/`fi`. - (73cb83270262) - - -## Fixed highlighting of: - -- A comment line followed by a non-comment line. - (#385, 9396ad5c5f9c) - -- An unquoted `$*` (expands to the positional parameters). - (237f89ad629f) - -- history-incremental-pattern-search-backward under zsh 5.3.1. - (#407, #415, 462779629a0c) - - -## API changes (for highlighter authors): - -(none) - - -## Developer-visible changes: - -- tests: Set the `ALIAS_FUNC_DEF` option for zsh 5.4 compatibility. - (9523d6d49cb3) - - -## Other changes: - -- docs: Added before/after screenshots. - (cd9ec14a65ec..b7e277106b49) - -- docs: Link Fedora package. - (3d74aa47e4a7, 5feed23962df) - -- docs: Link FreeBSD port. - (626c034c68d7) - -- docs: Link OpenSUSE Build Service packages - (#419, dea1fedc7358) - -- Prevent user-defined aliases from taking effect in z-sy-h's own code. - (#390, 2dce602727d7, 8d5afe47f774; and #392, #395, b8fa1b9dc954) - -- docs: Update zplug installation instructions. - (#399, 4f49c4a35f17) - -- Improve "unhandled ZLE widget 'foo'" error message. - (#409, be083d7f3710) - -- Fix printing of "failed loading highlighters" error message. - (#426, ad522a091429) - - # Changes in version 0.5.0 @@ -621,66 +235,50 @@ in this area. - incomplete sudo commands (a3047a912100, 2f05620b19ae) - ```zsh - sudo; - sudo -u; - ``` + sudo; + sudo -u; - command words following reserved words (#207, #222, b397b12ac139 et seq, 6fbd2aa9579b et seq, 8b4adbd991b0) - ```zsh - if ls; then ls; else ls; fi - repeat 10 do ls; done - ``` + if ls; then ls; else ls; fi + repeat 10 do ls; done (The `ls` are now highlighted as a command.) - comments (when `INTERACTIVE_COMMENTS` is set) (#163, #167, 693de99a9030) - ```zsh - echo Hello # comment - ``` + echo Hello # comment - closing brackets of arithmetic expansion, subshells, and blocks (#226, a59f442d2d34, et seq) - ```zsh - (( foo )) - ( foo ) - { foo } - ``` + (( foo )) + ( foo ) + { foo } - command names enabled by the `PATH_DIRS` option (#228, 96ee5116b182) - ```zsh - # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH, - # and 'setopt PATH_DIRS' is in effect - foo/bar - ``` + # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH, + # and 'setopt PATH_DIRS' is in effect + foo/bar - parameter expansions with braces inside double quotes (#186, 6e3720f39d84) - ```zsh - echo "${foo}" - ``` + echo "${foo}" - parameter expansions in command word (#101, 4fcfb15913a2) - ```zsh - x=/bin/ls - $x -l - ``` + x=/bin/ls + $x -l -- the command separators '\|&', '&!', '&\|' +- the command separators '|&', '&!', '&|' - ```zsh - view file.pdf &! ls - ``` + view file.pdf &! ls ## Fixed highlighting of: @@ -688,31 +286,23 @@ in this area. - precommand modifiers at non-command-word position (#209, 2c9f8c8c95fa) - ```zsh - ls command foo - ``` + ls command foo - sudo commands with infix redirections (#221, be006aded590, 86e924970911) - ```zsh - sudo -u >/tmp/foo.out user ls - ``` + sudo -u >/tmp/foo.out user ls - subshells; anonymous functions (#166, #194, 0d1bfbcbfa67, 9e178f9f3948) - ```zsh - (true) - () { true } - ``` + (true) + () { true } - parameter assignment statements with no command (#205, 01d7eeb3c713) - ```zsh - A=1; - ``` + A=1; (The semicolon used to be highlighted as a mistake) @@ -771,7 +361,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 @@ -803,95 +393,69 @@ in this area. - suffix aliases (requires zsh 5.1.1 or newer): - ```zsh - alias -s png=display - foo.png - ``` + alias -s png=display + foo.png - prefix redirections: - ```zsh - foo.txt - ``` + echo > foo.txt - arithmetic evaluations: - ```zsh - (( 42 )) - ``` + (( 42 )) - $'' strings, including \x/\octal/\u/\U escapes - ```zsh - : $'foo\u0040bar' - ``` + : $'foo\u0040bar' - multiline strings: - ```zsh - % echo "line 1 - line 2" - ``` + % echo "line 1 + line 2" - string literals that haven't been finished: - ```zsh - % echo "Hello, world - ``` + % echo "Hello, world + - command words that involve tilde expansion: - ```zsh - % ~/bin/foo - ``` + % ~/bin/foo + ## Fixed highlighting of: - quoted command words: - ```zsh - % \ls - ``` + % \ls - backslash escapes in "" strings: - ```zsh - % echo "\x41" - ``` + % echo "\x41" - noglob after command separator: - ```zsh - % :; noglob echo * - ``` + % :; noglob echo * - glob after command separator, when the first command starts with 'noglob': - ```zsh - % noglob true; echo * - ``` + % noglob true; echo * - the region (vi visual mode / set-mark-command) (issue #165) - redirection and command separators that would be highlighted as `path_approx` - ```zsh - % echo foo;‸ - % echo <‸ - ``` + % echo foo;‸ + % echo <‸ (where `‸` represents the cursor location) - escaped globbing (outside quotes) - ```zsh - % echo \* - ``` + % echo \* ## Other changes: diff --git a/docs/highlighters.md b/docs/highlighters.md index fb64c3a..c0f79bc 100644 --- a/docs/highlighters.md +++ b/docs/highlighters.md @@ -3,50 +3,31 @@ 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 +40,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. @@ -77,12 +58,10 @@ To create your own `acme` highlighter: This function must return 0 when the highlighter needs to be called and non-zero otherwise, for example: - ```zsh - _zsh_highlight_highlighter_acme_predicate() { - # Call this highlighter in SVN working copies - [[ -d .svn ]] - } - ``` + _zsh_highlight_highlighter_acme_predicate() { + # Call this highlighter in SVN working copies + [[ -d .svn ]] + } * Implement the `_zsh_highlight_highlighter_acme_paint` function. This function does the actual syntax highlighting, by calling @@ -92,24 +71,12 @@ To create your own `acme` highlighter: `: ${ZSH_HIGHLIGHT_STYLES[key]:=value}`, being sure to prefix the key with your highlighter name and a colon. For example: - ```zsh - : ${ZSH_HIGHLIGHT_STYLES[acme:aurora]:=fg=green} + : ${ZSH_HIGHLIGHT_STYLES[acme:aurora]:=fg=green} - _zsh_highlight_highlighter_acme_paint() { - # Colorize the whole buffer with the 'aurora' style - _zsh_highlight_add_highlight 0 $#BUFFER acme:aurora - } - ``` - - If you need to test which options the user has set, test `zsyh_user_options` - with a sensible default if the option is not present in supported zsh - versions. For example: - - ```zsh - [[ ${zsyh_user_options[ignoreclosebraces]:-off} == on ]] - ``` - - The option name must be all lowercase with no underscores and not an alias. + _zsh_highlight_highlighter_acme_paint() { + # Colorize the whole buffer with the 'aurora' style + _zsh_highlight_add_highlight 0 $#BUFFER acme:aurora + } * Name your own functions and global variables `_zsh_highlight_acme_*`. @@ -121,12 +88,10 @@ To create your own `acme` highlighter: `_zsh_highlight_highlighter_acme_paint` respectively. These names are still supported for backwards compatibility; - however, support for them will be removed in a future major or minor release (v0.x.0 or v1.0.0). + however, support for them will be removed in a a future major or minor release (v0.x.0 or v1.0.0). * Activate your highlighter in `~/.zshrc`: - ```zsh - ZSH_HIGHLIGHT_HIGHLIGHTERS+=(acme) - ``` + ZSH_HIGHLIGHT_HIGHLIGHTERS+=(acme) * [Write tests](../tests/README.md). diff --git a/docs/highlighters/brackets.md b/docs/highlighters/brackets.md index 0101699..9001074 100644 --- a/docs/highlighters/brackets.md +++ b/docs/highlighters/brackets.md @@ -16,16 +16,14 @@ This highlighter defines the following styles: To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`: -```zsh -# To define styles for nested brackets up to level 4 -ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold' -ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold' -ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold' -ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold' -``` + # To define styles for nested brackets up to level 4 + ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold' + ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold' + ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold' + ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,bold' 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..7295fd1 100644 --- a/docs/highlighters/cursor.md +++ b/docs/highlighters/cursor.md @@ -13,12 +13,10 @@ This highlighter defines the following styles: To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`: -```zsh -ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue' -``` + ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue' 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..4ba14e9 100644 --- a/docs/highlighters/line.md +++ b/docs/highlighters/line.md @@ -13,12 +13,10 @@ This highlighter defines the following styles: To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`: -```zsh -ZSH_HIGHLIGHT_STYLES[line]='bold' -``` + ZSH_HIGHLIGHT_STYLES[line]='bold' 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..bf83820 100644 --- a/docs/highlighters/main.md +++ b/docs/highlighters/main.md @@ -20,82 +20,52 @@ 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 * `path_prefix_pathseparator` - path separators in prefixes of existing filenames (`/`); if unset, `path_prefix` is used (default) * `globbing` - globbing expressions (`*.txt`) * `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`) -* `command-substitution` - command substitutions (`$(echo foo)`) -* `command-substitution-unquoted` - an unquoted command substitution (`$(echo foo)`) -* `command-substitution-quoted` - a quoted command substitution (`"$(echo foo)"`) -* `command-substitution-delimiter` - command substitution delimiters (`$(` and `)`) -* `command-substitution-delimiter-unquoted` - an unquoted command substitution delimiters (`$(` and `)`) -* `command-substitution-delimiter-quoted` - a quoted command substitution delimiters (`"$(` and `)"`) -* `process-substitution` - process substitutions (`<(echo foo)`) -* `process-substitution-delimiter` - process substitution delimiters (`<(` and `)`) -* `arithmetic-expansion` - arithmetic expansion `$(( 42 ))`) -* `single-hyphen-option` - single-hyphen options (`-o`) -* `double-hyphen-option` - double-hyphen options (`--option`) -* `back-quoted-argument` - backtick command substitution (`` `foo` ``) -* `back-quoted-argument-unclosed` - unclosed backtick command substitution (`` `foo ``) -* `back-quoted-argument-delimiter` - backtick command substitution delimiters (`` ` ``) -* `single-quoted-argument` - single-quoted arguments (`` 'foo' ``) -* `single-quoted-argument-unclosed` - unclosed single-quoted arguments (`` 'foo ``) -* `double-quoted-argument` - double-quoted arguments (`` "foo" ``) -* `double-quoted-argument-unclosed` - unclosed double-quoted arguments (`` "foo ``) -* `dollar-quoted-argument` - dollar-quoted arguments (`` $'foo' ``) -* `dollar-quoted-argument-unclosed` - unclosed dollar-quoted arguments (`` $'foo ``) -* `rc-quote` - two single quotes inside single quotes when the `RC_QUOTES` option is set (`` 'foo''bar' ``) +* `single-hyphen-option` - single hyphen options (`-o`) +* `double-hyphen-option` - double hyphen options (`--option`) +* `back-quoted-argument` - backquoted expressions (`` `foo` ``) +* `single-quoted-argument` - single quoted arguments (`` 'foo' ``) +* `double-quoted-argument` - double quoted arguments (`` "foo" ``) +* `dollar-quoted-argument` - dollar quoted arguments (`` $'foo' ``) * `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`) -* `back-double-quoted-argument` - backslash escape sequences inside double-quoted arguments (`\"` in `"foo\"bar"`) -* `back-dollar-quoted-argument` - backslash escape sequences inside dollar-quoted arguments (`\x` in `$'\x48'`) -* `assign` - parameter assignments (`x=foo` and `x=( )`) +* `back-double-quoted-argument` - back double quoted arguments (`\x` inside `""`) +* `back-dollar-quoted-argument` - back dollar quoted arguments (`\x` inside `$''`) +* `assign` - parameter assignments * `redirection` - redirection operators (`<`, `>`, etc) * `comment` - comments, when `setopt INTERACTIVE_COMMENTS` is in effect (`echo # foo`) -* `comment` - elided parameters in command position (`$x ls` when `$x` is unset or empty) -* `named-fd` - named file descriptor (the `fd` in `echo foo {fd}>&2`) -* `numeric-fd` - numeric file descriptor (the `2` in `echo foo {fd}>&2`) -* `arg0` - a command word other than one of those enumerated above (other than a command, precommand, alias, function, or shell builtin command). +* `arg0` - a command word other than one of those enumrated above (other than a command, precommand, alias, function, or shell builtin command). * `default` - everything else To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`: -```zsh -# Declare the variable -typeset -A ZSH_HIGHLIGHT_STYLES + # Declare the variable + typeset -A ZSH_HIGHLIGHT_STYLES -# To differentiate aliases from other command types -ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' - -# To have paths colored instead of underlined -ZSH_HIGHLIGHT_STYLES[path]='fg=cyan' - -# To disable highlighting of globbing expressions -ZSH_HIGHLIGHT_STYLES[globbing]='none' -``` + # To differentiate aliases from other command types + ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' + + # To have paths colored instead of underlined + ZSH_HIGHLIGHT_STYLES[path]='fg=cyan' + + # To disable highlighting of globbing expressions + ZSH_HIGHLIGHT_STYLES[globbing]='none' The syntax for values is the same as the syntax of "types of highlighting" of the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)` manual page][zshzle-Character-Highlighting]. -#### Parameters - -To avoid partial path lookups on a path, add the path to the `ZSH_HIGHLIGHT_DIRS_BLACKLIST` array. - -```zsh -ZSH_HIGHLIGHT_DIRS_BLACKLIST+=(/mnt/slow_share) -``` - ### Useless trivia #### Forward compatibility. @@ -116,6 +86,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..3ad5f24 100644 --- a/docs/highlighters/pattern.md +++ b/docs/highlighters/pattern.md @@ -9,16 +9,11 @@ This is the `pattern` highlighter, that highlights user-defined patterns. To use this highlighter, associate patterns with styles in the `ZSH_HIGHLIGHT_PATTERNS` associative array, for example in `~/.zshrc`: -```zsh -# Declare the variable -typeset -A ZSH_HIGHLIGHT_PATTERNS - -# To have commands starting with `rm -rf` in red: -ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') -``` + # To have commands starting with `rm -rf` in red: + ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') 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 deleted file mode 100644 index 8c711a3..0000000 --- a/docs/highlighters/regexp.md +++ /dev/null @@ -1,65 +0,0 @@ -zsh-syntax-highlighting / highlighters / regexp ------------------------------------------------- - -This is the `regexp` highlighter, that highlights user-defined regular -expressions. It's similar to the `pattern` highlighter, but allows more complex -patterns. - -### How to tweak it - -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) -``` - -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. - -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]. - -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 diff --git a/docs/highlighters/root.md b/docs/highlighters/root.md index 8197e4b..0b0d41f 100644 --- a/docs/highlighters/root.md +++ b/docs/highlighters/root.md @@ -14,12 +14,10 @@ This highlighter defines the following styles: To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, for example in `~/.zshrc`: -```zsh -ZSH_HIGHLIGHT_STYLES[root]='bg=red' -``` + ZSH_HIGHLIGHT_STYLES[root]='bg=red' 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..1bdd1f9 100644 --- a/highlighters/brackets/brackets-highlighter.zsh +++ b/highlighters/brackets/brackets-highlighter.zsh @@ -1,5 +1,5 @@ # ------------------------------------------------------------------------------------------------- -# Copyright (c) 2010-2017 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 @@ -51,26 +51,25 @@ _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)) lastoflevel[$level]=$pos ;; [")]}"]) - if (( level > 0 )); then - matchingpos=$lastoflevel[$level] - levelpos[$pos]=$((level--)) - if _zsh_highlight_brackets_match $matchingpos $pos; then - matching[$matchingpos]=$pos - matching[$pos]=$matchingpos - fi - else - levelpos[$pos]=-1 + matchingpos=$lastoflevel[$level] + levelpos[$pos]=$((level--)) + if _zsh_highlight_brackets_match $matchingpos $pos; then + matching[$matchingpos]=$pos + matching[$pos]=$matchingpos fi ;; + ['"'\']) + # Skip everything inside quotes + pos=$BUFFER[(ib:pos+1:)$char] + ;; esac done @@ -78,17 +77,18 @@ _zsh_highlight_highlighter_brackets_paint() for pos in ${(k)levelpos}; do if (( $+matching[$pos] )); then if (( bracket_color_size )); then - _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) + style=bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) fi else - _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-error + style=bracket-error fi + _zsh_highlight_add_highlight $((pos - 1)) $pos $style done # If cursor is on a bracket, then highlight corresponding bracket, if any. if [[ $WIDGET != zle-line-finish ]]; then pos=$((CURSOR + 1)) - if (( $+levelpos[$pos] )) && (( $+matching[$pos] )); then + if [[ -n $levelpos[$pos] ]] && [[ -n $matching[$pos] ]]; then local -i otherpos=$matching[$pos] _zsh_highlight_add_highlight $((otherpos - 1)) $otherpos cursor-matchingbracket fi diff --git a/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh b/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh index b2acd31..23b317b 100644 --- a/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh +++ b/highlighters/brackets/test-data/cursor-matchingbracket-line-finish.zsh @@ -33,4 +33,5 @@ BUFFER=': $foo[bar]' CURSOR=6 # cursor is zero-based expected_region_highlight=( + "11 11 NONE" ) diff --git a/highlighters/brackets/test-data/cursor-matchingbracket.zsh b/highlighters/brackets/test-data/cursor-matchingbracket.zsh index e05b4e9..5e9cf62 100644 --- a/highlighters/brackets/test-data/cursor-matchingbracket.zsh +++ b/highlighters/brackets/test-data/cursor-matchingbracket.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]= @@ -37,11 +35,5 @@ BUFFER=': ((( )))' CURSOR=2 # cursor is zero-based expected_region_highlight=( - "3 3 bracket-level-1" - "4 4 bracket-level-2" - "5 5 bracket-level-3" - "7 7 bracket-level-3" - "8 8 bracket-level-2" - "9 9 bracket-level-1" "9 9 cursor-matchingbracket" ) diff --git a/highlighters/brackets/test-data/empty-styles.zsh b/highlighters/brackets/test-data/empty-styles.zsh index e60657b..2de1b20 100644 --- a/highlighters/brackets/test-data/empty-styles.zsh +++ b/highlighters/brackets/test-data/empty-styles.zsh @@ -30,4 +30,5 @@ BUFFER=': (x)' expected_region_highlight=( + "1 5 NONE" ) diff --git a/highlighters/brackets/test-data/loop-styles.zsh b/highlighters/brackets/test-data/loop-styles.zsh index e5cfcdf..a5be21d 100644 --- a/highlighters/brackets/test-data/loop-styles.zsh +++ b/highlighters/brackets/test-data/loop-styles.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]= diff --git a/highlighters/brackets/test-data/mismatch-patentheses.zsh b/highlighters/brackets/test-data/mismatch-patentheses.zsh index 5cc588f..f40226f 100644 --- a/highlighters/brackets/test-data/mismatch-patentheses.zsh +++ b/highlighters/brackets/test-data/mismatch-patentheses.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= diff --git a/highlighters/brackets/test-data/near-quotes.zsh b/highlighters/brackets/test-data/near-quotes.zsh index 49f002b..b7cc2cb 100644 --- a/highlighters/brackets/test-data/near-quotes.zsh +++ b/highlighters/brackets/test-data/near-quotes.zsh @@ -27,16 +27,12 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= -ZSH_HIGHLIGHT_STYLES[bracket-level-2]= BUFFER=': {"{x}"}' expected_region_highlight=( "3 3 bracket-level-1" - "5 5 bracket-level-2" - "7 7 bracket-level-2" + "4 8 NONE" "9 9 bracket-level-1" ) diff --git a/highlighters/brackets/test-data/nested-parentheses.zsh b/highlighters/brackets/test-data/nested-parentheses.zsh index 21a20fb..413394f 100644 --- a/highlighters/brackets/test-data/nested-parentheses.zsh +++ b/highlighters/brackets/test-data/nested-parentheses.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]= diff --git a/highlighters/main/test-data/path-tilde-home3.zsh b/highlighters/brackets/test-data/nested-quote.zsh similarity index 96% rename from highlighters/main/test-data/path-tilde-home3.zsh rename to highlighters/brackets/test-data/nested-quote.zsh index 5c076e8..8febae8 100644 --- a/highlighters/main/test-data/path-tilde-home3.zsh +++ b/highlighters/brackets/test-data/nested-quote.zsh @@ -27,10 +27,10 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -HOME="." -BUFFER='ls \~' +ZSH_HIGHLIGHT_STYLES[bracket-level-1]= + +BUFFER=': "\"{x"' expected_region_highlight=( - "1 2 command" # ls - "4 5 default" # \~ + "3 9 NONE 'issue #303'" ) diff --git a/highlighters/brackets/test-data/only-error.zsh b/highlighters/brackets/test-data/only-error.zsh deleted file mode 100644 index 00fe557..0000000 --- a/highlighters/brackets/test-data/only-error.zsh +++ /dev/null @@ -1,34 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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=': x)' - -expected_region_highlight=( - "4 4 bracket-error" # ) -) diff --git a/highlighters/brackets/test-data/quoted-patentheses.zsh b/highlighters/brackets/test-data/quoted-patentheses.zsh index 81ee04f..5c3dcea 100644 --- a/highlighters/brackets/test-data/quoted-patentheses.zsh +++ b/highlighters/brackets/test-data/quoted-patentheses.zsh @@ -30,5 +30,5 @@ BUFFER='echo "foo ( bar"' expected_region_highlight=( -"11 11 bracket-error" +"1 16 NONE" # We expect the brackets highlighter to do nothing ) diff --git a/highlighters/brackets/test-data/simple-parentheses.zsh b/highlighters/brackets/test-data/simple-parentheses.zsh index 2ccfbab..186d0b9 100644 --- a/highlighters/brackets/test-data/simple-parentheses.zsh +++ b/highlighters/brackets/test-data/simple-parentheses.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= diff --git a/highlighters/brackets/test-data/unclosed-patentheses.zsh b/highlighters/brackets/test-data/unclosed-patentheses.zsh index d3f6560..941d092 100644 --- a/highlighters/brackets/test-data/unclosed-patentheses.zsh +++ b/highlighters/brackets/test-data/unclosed-patentheses.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]= diff --git a/highlighters/brackets/test-data/unclosed-patentheses2.zsh b/highlighters/brackets/test-data/unclosed-patentheses2.zsh index 2c489c3..41b6836 100644 --- a/highlighters/brackets/test-data/unclosed-patentheses2.zsh +++ b/highlighters/brackets/test-data/unclosed-patentheses2.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -unsorted=1 - ZSH_HIGHLIGHT_STYLES[bracket-level-1]= BUFFER='echo {x})' diff --git a/highlighters/main/main-highlighter.zsh b/highlighters/main/main-highlighter.zsh index 3ec96d9..d7d292d 100644 --- a/highlighters/main/main-highlighter.zsh +++ b/highlighters/main/main-highlighter.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 @@ -33,35 +33,25 @@ : ${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]:=} : ${ZSH_HIGHLIGHT_STYLES[globbing]:=fg=blue} : ${ZSH_HIGHLIGHT_STYLES[history-expansion]:=fg=blue} -: ${ZSH_HIGHLIGHT_STYLES[command-substitution]:=none} -: ${ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]:=fg=magenta} -: ${ZSH_HIGHLIGHT_STYLES[process-substitution]:=none} -: ${ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]:=fg=magenta} : ${ZSH_HIGHLIGHT_STYLES[single-hyphen-option]:=none} : ${ZSH_HIGHLIGHT_STYLES[double-hyphen-option]:=none} : ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument]:=none} -: ${ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]:=fg=magenta} : ${ZSH_HIGHLIGHT_STYLES[single-quoted-argument]:=fg=yellow} : ${ZSH_HIGHLIGHT_STYLES[double-quoted-argument]:=fg=yellow} : ${ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]:=fg=yellow} -: ${ZSH_HIGHLIGHT_STYLES[rc-quote]:=fg=cyan} : ${ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]:=fg=cyan} : ${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,76 +66,41 @@ _zsh_highlight_main_add_region_highlight() { integer start=$1 end=$2 shift 2 - if (( $#in_alias )); then - [[ $1 == unknown-token ]] && alias_style=unknown-token - return - fi - if (( in_param )); then - if [[ $1 == unknown-token ]]; then - param_style=unknown-token - fi - if [[ -n $param_style ]]; then - return - fi - param_style=$1 - return + if (( $+argv[2] )); then + # Caller specified inheritance explicitly. + else + # Automate inheritance. + typeset -A fallback_of; fallback_of=( + alias arg0 + suffix-alias arg0 + builtin arg0 + function arg0 + command arg0 + precommand arg0 + hashed-command arg0 + + path_prefix path + # The path separator fallback won't ever be used, due to the optimisation + # in _zsh_highlight_main_highlighter_highlight_path_separators(). + path_pathseparator path + path_prefix_pathseparator path_prefix + ) + local needle=$1 value + while [[ -n ${value::=$fallback_of[$needle]} ]]; do + unset "fallback_of[$needle]" # paranoia against infinite loops + argv+=($value) + needle=$value + done fi - # The calculation was relative to $buf but region_highlight is relative to $BUFFER. - (( start += buf_offset )) - (( end += buf_offset )) + # The calculation was relative to $PREBUFFER$BUFFER, but region_highlight is + # relative to $BUFFER. + (( start -= $#PREBUFFER )) + (( end -= $#PREBUFFER )) - list_highlights+=($start $end $1) -} - -_zsh_highlight_main_add_many_region_highlights() { - for 1 2 3; do - _zsh_highlight_main_add_region_highlight $1 $2 $3 - done -} - -_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(). - path_pathseparator path - path_prefix_pathseparator path_prefix - - single-quoted-argument{-unclosed,} - double-quoted-argument{-unclosed,} - dollar-quoted-argument{-unclosed,} - back-quoted-argument{-unclosed,} - - command-substitution{-quoted,,-unquoted,} - command-substitution-delimiter{-quoted,,-unquoted,} - - command-substitution{-delimiter,} - process-substitution{-delimiter,} - back-quoted-argument{-delimiter,} - ) - local needle=$1 value - reply=($1) - while [[ -n ${value::=$fallback_of[(k)$needle]} ]]; do - unset "fallback_of[$needle]" # paranoia against infinite loops - reply+=($value) - needle=$value - done + (( end < 0 )) && return # having end<0 would be a bug + (( start < 0 )) && start=0 # having start<0 is normal with e.g. multiline strings + _zsh_highlight_add_highlight $start $end "$@" } # Get the type of a command. @@ -153,40 +108,24 @@ _zsh_highlight_main_calculate_fallback() { # Uses the zsh/parameter module if available to avoid forks, and a # wrapper around 'type -w' as fallback. # -# If $2 is 0, do not consider aliases. +# Takes a single argument. # # The result will be stored in REPLY. _zsh_highlight_main__type() { - integer -r aliases_allowed=${2-1} - # We won't cache replies of anything that exists as an alias at all, to - # ensure the cached value is correct regardless of $aliases_allowed. - # - # ### We probably _should_ cache them in a cache that's keyed on the value of - # ### $aliases_allowed, on the assumption that aliases are the common case. - integer may_cache=1 - - # Cache lookup if (( $+_zsh_highlight_main__command_type_cache )); then REPLY=$_zsh_highlight_main__command_type_cache[(e)$1] if [[ -n "$REPLY" ]]; then return fi fi - - # Main logic if (( $#options_to_set )); then setopt localoptions $options_to_set; fi unset REPLY if zmodload -e zsh/parameter; then 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 REPLY=alias - elif [[ $1 == *.* && -n ${1%.*} ]] && (( $+saliases[(e)${1##*.}] )); then + elif (( $+saliases[(e)${1##*.}] )); then REPLY='suffix alias' elif (( $reswords[(Ie)$1] )); then REPLY=reserved @@ -196,10 +135,6 @@ _zsh_highlight_main__type() { REPLY=builtin elif (( $+commands[(e)$1] )); then REPLY=command - # None of the special hashes had a match, so fall back to 'type -w', for - # forward compatibility with future versions of zsh that may add new command - # types. - # # zsh 5.2 and older have a bug whereby running 'type -w ./sudo' implicitly # runs 'hash ./sudo=/usr/local/bin/./sudo' (assuming /usr/local/bin/sudo # exists and is in $PATH). Avoid triggering the bug, at the expense of @@ -207,46 +142,16 @@ _zsh_highlight_main__type() { # # The first disjunct mimics the isrelative() C call from the zsh bug. elif { [[ $1 != */* ]] || is-at-least 5.3 } && - # Add a subshell to avoid a zsh upstream bug; see issue #606. - # ### Remove the subshell when we stop supporting zsh 5.7.1 (I assume 5.8 will have the bugfix). - ! (builtin type -w -- "$1") >/dev/null 2>&1; then + ! builtin type -w -- $1 >/dev/null 2>&1; then REPLY=none fi fi if ! (( $+REPLY )); then - # zsh/parameter not available or had no matches. - # - # Note that 'type -w' will run 'rehash' implicitly. - # - # We 'unalias' in a subshell, so the parent shell is not affected. - # - # The colon command is there just to avoid a command substitution that - # starts with an arithmetic expression [«((…))» as the first thing inside - # «$(…)»], which is area that has had some parsing bugs before 5.6 - # (approximately). - REPLY="${$(:; (( aliases_allowed )) || unalias -- "$1" 2>/dev/null; LC_ALL=C builtin type -w -- "$1" 2>/dev/null)##*: }" - if [[ $REPLY == 'alias' ]]; then - may_cache=0 - fi + REPLY="${$(LC_ALL=C builtin type -w -- $1 2>/dev/null)#*: }" fi - - # Cache population - if (( may_cache )) && (( $+_zsh_highlight_main__command_type_cache )); then + if (( $+_zsh_highlight_main__command_type_cache )); then _zsh_highlight_main__command_type_cache[(e)$1]=$REPLY fi - [[ -n $REPLY ]] - return $? -} - -# Checks whether $1 is something that can be run. -# -# Return 0 if runnable, 1 if not runnable, 2 if trouble. -_zsh_highlight_main__is_runnable() { - if _zsh_highlight_main__type "$1"; then - [[ $REPLY != none ]] - else - return 2 - fi } # Check whether the first argument is a redirection operator token. @@ -254,9 +159,9 @@ _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 >(...)]. + [[ $1 == (<0-9>|)(\<|\>)* ]] && [[ $1 != (\<|\>)$'\x28'* ]] } # Resolve alias. @@ -272,41 +177,44 @@ _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. # # $1: character expected to be at the top of $braces_stack -# $2: optional assignment to style it if matches -# return value is 0 if there is a match else 1 +# $2: assignment to execute it if matches _zsh_highlight_main__stack_pop() { if [[ $braces_stack[1] == $1 ]]; then braces_stack=${braces_stack:1} - if (( $+2 )); then - style=$2 - fi - return 0 + eval "$2" else style=unknown-token - return 1 fi } # Main syntax highlighting function. _zsh_highlight_highlighter_main_paint() { - setopt localoptions extendedglob + ## Before we even 'emulate -L', we must test a few options that would reset. + if [[ -o interactive_comments ]]; then + local interactive_comments= # set to empty + fi + if [[ -o ignore_braces ]] || eval '[[ -o ignore_close_braces ]] 2>/dev/null'; then + local right_brace_is_recognised_everywhere=false + else + local right_brace_is_recognised_everywhere=true + fi + if [[ -o path_dirs ]]; then + integer path_dirs_was_set=1 + else + integer path_dirs_was_set=0 + fi + if [[ -o multi_func_def ]]; then + integer multi_func_def=1 + else + integer multi_func_def=0 + fi + emulate -L zsh + setopt localoptions extendedglob bareglobqual # At the PS3 prompt and in vared, highlight nothing. # @@ -317,85 +225,40 @@ _zsh_highlight_highlighter_main_paint() return fi + ## Variable declarations and initializations + local start_pos=0 end_pos highlight_glob=true arg style + local in_array_assignment=false # true between 'a=(' and the matching ')' typeset -a ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR + typeset -a ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS typeset -a ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW - local -a options_to_set reply # used in callees - local REPLY + local -a options_to_set # used in callees + local buf="$PREBUFFER$BUFFER" + integer len="${#buf}" + integer pure_buf_len=$(( len - ${#PREBUFFER} )) # == $#BUFFER, used e.g. in *_check_path - # $flags_with_argument is a set of letters, corresponding to the option letters - # that would be followed by a colon in a getopts specification. - local flags_with_argument - # $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.) - # - # Currently, setting $flags_sans_argument is only important for commands that - # have a non-empty $flags_with_argument; see test-data/precommand4.zsh. - local -A precommand_options - precommand_options=( - # Precommand modifiers as of zsh 5.6.2 cf. zshmisc(1). - '-' '' - 'builtin' '' - 'command' :pvV - 'exec' a:cl - 'noglob' '' - # 'time' and 'nocorrect' shouldn't be added here; they're reserved words, not precommands. + # "R" for round + # "Q" for square + # "Y" for curly + # "D" for do/done + # "$" for 'end' (matches 'foreach' always; also used with cshjunkiequotes in repeat/while) + local braces_stack - # 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 - '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 - ) - # 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 - else - local right_brace_is_recognised_everywhere=true - fi - - if [[ $zsyh_user_options[pathdirs] == on ]]; then + if (( path_dirs_was_set )); then options_to_set+=( PATH_DIRS ) fi + unset path_dirs_was_set ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR=( '|' '||' ';' '&' '&&' - $'\n' # ${(z)} returns ';' but we convert it to $'\n' '|&' '&!' '&|' # ### 'case' syntax, but followed by a pattern, not by a command # ';;' ';&' ';|' ) + ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS=( + 'builtin' 'command' 'exec' 'nocorrect' 'noglob' + 'pkexec' # immune to #121 because it's usually not passed --option flags + ) # Tokens that, at (naively-determined) "command position", are followed by # a de jure command position. All of these are reserved words. @@ -415,148 +278,28 @@ _zsh_highlight_highlighter_main_paint() '!' # reserved word; unrelated to $histchars[1] ) - if (( $+X_ZSH_HIGHLIGHT_DIRS_BLACKLIST )); then - print >&2 'zsh-syntax-highlighting: X_ZSH_HIGHLIGHT_DIRS_BLACKLIST is deprecated. Please use ZSH_HIGHLIGHT_DIRS_BLACKLIST.' - ZSH_HIGHLIGHT_DIRS_BLACKLIST=($X_ZSH_HIGHLIGHT_DIRS_BLACKLIST) - unset X_ZSH_HIGHLIGHT_DIRS_BLACKLIST - fi - - _zsh_highlight_main_highlighter_highlight_list -$#PREBUFFER '' 1 "$PREBUFFER$BUFFER" - - # end is a reserved word - local start end_ style - for start end_ style in $reply; do - (( start >= end_ )) && { print -r -- >&2 "zsh-syntax-highlighting: BUG: _zsh_highlight_highlighter_main_paint: start($start) >= end($end_)"; return } - (( end_ <= 0 )) && continue - (( start < 0 )) && start=0 # having start<0 is normal with e.g. multiline strings - _zsh_highlight_main_calculate_fallback $style - _zsh_highlight_add_highlight $start $end_ $reply - 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. -# $4 is the buffer to highlight. -# Returns: -# $REPLY: $buf[REPLY] is the last character parsed. -# $reply is an array of region_highlight additions. -# exit code is 0 if the braces_stack is empty, 1 otherwise. -_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 - # 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 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_param is analogous for parameter expansions - integer in_param=0 len=$#buf - local -a in_alias 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 - readonly parameter_name_pattern='([A-Za-z_][A-Za-z0-9_]*|[0-9]+)' - list_highlights=() - - # "R" for round - # "Q" for square - # "Y" for curly - # "T" 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' - # ":" for 'then' - local braces_stack=$2 + local -a match mbegin mend # State machine # # The states are: # - :start: Command word - # - :start_of_pipeline: Start of a 'pipeline' as defined in zshmisc(1). - # Only valid when :start: is present - # - :sudo_opt: A leading-dash option to a precommand, whether it takes an - # argument or not. (Example: sudo's "-u" or "-i".) - # - :sudo_arg: The argument to a precommand's leading-dash option, + # - :sudo_opt: A leading-dash option to sudo (such as "-u" or "-i") + # - :sudo_arg: The argument to a sudo leading-dash option that takes one, # 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. # # When the kind of a word is not yet known, $this_word / $next_word may contain # multiple states. For example, after "sudo -i", the next word may be either - # another --flag or a command name, hence the state would include both ':start:' - # and ':sudo_opt:'. + # another --flag or a command name, hence the state would include both :start: + # and :sudo_opt:. # # The tokens are always added with both leading and trailing colons to serve as - # word delimiters (an improvised array); [[ $x == *':foo:'* ]] and x=${x//:foo:/} - # will DTRT regardless of how many elements or repetitions $x has. + # word delimiters (an improvised array); [[ $x == *:foo:* ]] and x=${x//:foo:/} + # will DTRT regardless of how many elements or repetitions $x has.. # # Handling of redirections: upon seeing a redirection token, we must stall # the current state --- that is, the value of $this_word --- for two iterations @@ -573,78 +316,35 @@ _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:' + local this_word=':start:' next_word integer in_redirection # Processing buffer local proc_buf="$buf" - local -a args - if [[ $zsyh_user_options[interactivecomments] == on ]]; then - args=(${(zZ+c+)buf}) - 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 - 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 - (( in_param-- )) - if (( in_param == 0 )); then - # start_pos and end_pos are of the '$foo' word (previous $arg) here - _zsh_highlight_main_add_region_highlight $start_pos $end_pos $param_style - param_style="" - fi - fi - - # Initialize this_word and next_word. - if (( in_redirection == 0 )); then - this_word=$next_word - next_word=':regular:' - elif (( !in_param )); then - # Stall $next_word. + for arg in ${interactive_comments-${(z)buf}} \ + ${interactive_comments+${(zZ+c+)buf}}; do + # Initialize $next_word. + if (( in_redirection )); then (( --in_redirection )) fi + if (( in_redirection == 0 )); then + # Initialize $next_word to its default value. + next_word=':regular:' + else + # Stall $next_word. + fi # Initialize per-"simple command" [zshmisc(1)] variables: # + # $already_added (see next paragraph) # $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" # + # $already_added is set to 1 to disable adding an entry to region_highlight + # for this iteration. Currently, that is done for "" and $'' strings, + # which add the entry early so escape sequences within the string override + # the string's color. + integer already_added=0 style=unknown-token if [[ $this_word == *':start:'* ]]; then in_array_assignment=false @@ -653,409 +353,222 @@ _zsh_highlight_main_highlighter_highlight_list() fi fi - 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')#)(?|)* ]] - # The first, outer parenthesis - integer offset="${#match[1]}" - (( start_pos = end_pos + offset )) + # Compute the new $start_pos and $end_pos, skipping over whitespace in $buf. + if [[ $arg == ';' ]] ; then + # We're looking for either a semicolon or a newline, whichever comes + # first. Both of these are rendered as a ";" (SEPER) by the ${(z)..} + # flag. + # + # We can't use the (Z+n+) flag because that elides the end-of-command + # token altogether, so 'echo foo\necho bar' (two commands) becomes + # indistinguishable from 'echo foo echo bar' (one command with three + # words for arguments). + local needle=$'[;\n]' + integer offset=$(( ${proc_buf[(i)$needle]} - 1 )) + (( start_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 - # as many characters as end_pos was advanced. + else + # The line was: # - # end_pos was advanced by $offset (via start_pos) - # and by $#arg. Note the `start_pos=$end_pos` - # below. + # integer offset=$(((len-start_pos)-${#${proc_buf##([[:space:]]|\\[[:space:]])#}})) # - # As for the [,len]. We could use [,len-start_pos+offset] - # here, but to make it easier on eyes, we use len and - # rely on the fact that Zsh simply handles that. The - # length of proc_buf is len-start_pos+offset because - # we're chopping it to match current start_pos, so its - # length matches the previous value of start_pos. - # - # Why [,-1] is slower than [,length] isn't clear. - proc_buf="${proc_buf[offset + $#arg + 1,len]}" + # - len-start_pos is length of current proc_buf; basically: initial length minus where + # we are, and proc_buf is chopped to the "where we are" (compare the "previous value + # of start_pos" below, and the len-(start_pos-offset) = len-start_pos+offset) + # - what's after main minus sign is: length of proc_buf without spaces at the beginning + # - so what the line actually did, was computing length of the spaces! + # - this can be done via (#b) flag, like below + if [[ "$proc_buf" = (#b)(#s)(([[:space:]]|\\[[:space:]])##)* ]]; then + # The first, outer parenthesis + integer offset="${#match[1]}" + else + integer offset=0 + fi + ((start_pos+=offset)) + ((end_pos=$start_pos+${#arg})) fi + # Compute the new $proc_buf. We advance it + # (chop off characters from the beginning) + # beyond what end_pos points to, by skipping + # as many characters as end_pos was advanced. + # + # end_pos was advanced by $offset (via start_pos) + # and by $#arg. Note the `start_pos=$end_pos` + # below. + # + # As for the [,len]. We could use [,len-start_pos+offset] + # here, but to make it easier on eyes, we use len and + # rely on the fact that Zsh simply handles that. The + # length of proc_buf is len-start_pos+offset because + # we're chopping it to match current start_pos, so its + # length matches the previous value of start_pos. + # + # Why [,-1] is slower than [,length] isn't clear. + proc_buf="${proc_buf[offset + $#arg + 1,len]}" + # Handle the INTERACTIVE_COMMENTS option. # # We use the (Z+c+) flag so the entire comment is presented as one token in $arg. - if [[ $zsyh_user_options[interactivecomments] == on && $arg[1] == $histchars[3] ]]; then + if [[ -n ${interactive_comments+'set'} && $arg[1] == $histchars[3] ]]; then if [[ $this_word == *(':regular:'|':start:')* ]]; then style=comment else style=unknown-token # prematurely terminated fi _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style - # Stall this arg - in_redirection=1 + already_added=1 continue fi - if [[ $this_word == *':start:'* ]] && ! (( in_redirection )); then - # Expand aliases. - # An alias is ineligible for expansion while it's being expanded (see #652/#653). - _zsh_highlight_main__type "$arg" "$(( ! ${+seen_alias[$arg]} ))" - local res="$REPLY" - if [[ $res == "alias" ]]; then - # Mark insane aliases as unknown-token (cf. #263). - if [[ $arg == ?*=* ]]; then - _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token - continue - fi - seen_alias[$arg]=$#in_alias - _zsh_highlight_main__resolve_alias $arg - local -a alias_args - # Elision is desired in case alias x='' - if [[ $zsyh_user_options[interactivecomments] == on ]]; then - alias_args=(${(zZ+c+)REPLY}) - else - alias_args=(${(z)REPLY}) - fi - args=( $alias_args $args ) - if (( $#in_alias == 0 )); then - alias_style=alias - else - # Transfer the count of this arg to the new element about to be appended. - (( in_alias[1]-- )) - 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 - _zsh_highlight_main_highlighter_expand_path $arg - _zsh_highlight_main__type "$REPLY" 0 - res="$REPLY" - fi - fi - # Analyse the current word. if _zsh_highlight_main__is_redirection $arg ; then - if (( in_redirection == 1 )); then - # Two consecutive redirection operators is an error. - _zsh_highlight_main_add_region_highlight $start_pos $end_pos unknown-token - else - in_redirection=2 - _zsh_highlight_main_add_region_highlight $start_pos $end_pos redirection - fi - continue - elif [[ $arg == '{'${~parameter_name_pattern}'}' ]] && _zsh_highlight_main__is_redirection $args[1]; then - # named file descriptor: {foo}>&2 - in_redirection=3 - _zsh_highlight_main_add_region_highlight $start_pos $end_pos named-fd - continue + # A '<' or '>', possibly followed by a digit + in_redirection=2 fi - # Expand parameters. - if (( ! in_param )) && _zsh_highlight_main_highlighter__try_expand_parameter "$arg"; then - # 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 - } + # Special-case the first word after 'sudo'. + if (( ! in_redirection )); then + if [[ $this_word == *':sudo_opt:'* ]] && [[ $arg != -* ]]; then + this_word=${this_word//:sudo_opt:/} + fi 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 + case "$arg" in # 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 - # Argument attached in the same word - this_word=${this_word//:start:/} - next_word+=':start:' - next_word+=':sudo_opt:' - elif [[ -n $flags_sans_argument ]] && - [[ $arg == '-'[$flags_sans_argument]# ]]; then - # Flag that requires no argument - 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. - # With that behaviour, if the flag in fact takes no argument we'll - # highlight the inner command word correctly, and if it does take an - # argument we'll highlight the command word correctly if the argument - # was given in the same shell word as the flag (as in '-uphy1729' or - # '--user=phy1729' without spaces). - this_word=':sudo_opt:' - next_word+=':start:' - next_word+=':sudo_opt:' - else - # Not an option flag; nothing to do. (If the command line is - # syntactically valid, ${this_word//:sudo_opt:/} should be - # non-empty now.) - this_word=${this_word//:sudo_opt:/} - fi + '-'[Cgprtu]) this_word=${this_word//:start:/}; + next_word=':sudo_arg:';; + # This prevents misbehavior with sudo -u -otherargument + '-'*) this_word=${this_word//:start:/}; + next_word+=':start:'; + next_word+=':sudo_opt:';; + *) ;; + esac elif [[ $this_word == *':sudo_arg:'* ]]; then 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. + # The Great Fork: is this a command word? Is this a non-command word? + if [[ $this_word == *':always:'* && $arg == 'always' ]]; then + # try-always construct + style=reserved-word # de facto a reserved word, although not de jure + next_word=':start:' + elif [[ $this_word == *':start:'* ]] && (( in_redirection == 0 )); then # $arg is the command word + if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]]; then + style=precommand + elif [[ "$arg" = "sudo" ]]; then + style=precommand + next_word=${next_word//:regular:/} + next_word+=':sudo_opt:' + next_word+=':start:' + else + _zsh_highlight_main_highlighter_expand_path $arg + local expanded_arg="$REPLY" + _zsh_highlight_main__type ${expanded_arg} + local res="$REPLY" + () { + # Special-case: command word is '$foo', like that, without braces or anything. # - # 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:' + # 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 match mbegin mend + local MATCH; integer MBEGIN MEND + if [[ $res == none ]] && (( ${+parameters} )) && + [[ ${arg[1]} == \$ ]] && [[ ${arg:1} =~ ^([A-Za-z_][A-Za-z0-9_]*|[0-9]+)$ ]] && + (( ${+parameters[${MATCH}]} )) + then + _zsh_highlight_main__type ${(P)MATCH} + res=$REPLY 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 + } + case $res in + reserved) # reserved word style=reserved-word - # Match braces and handle special cases. case $arg in - (time|nocorrect) - next_word=${next_word//:regular:/} - next_word+=':start:' - ;; ($'\x7b') braces_stack='Y'"$braces_stack" ;; ($'\x7d') # We're at command word, so no need to check $right_brace_is_recognised_everywhere - _zsh_highlight_main__stack_pop 'Y' reserved-word + _zsh_highlight_main__stack_pop 'Y' style=reserved-word if [[ $style == reserved-word ]]; then next_word+=':always:' fi ;; - ($'\x5b\x5b') - braces_stack='T'"$braces_stack" - ;; ('do') braces_stack='D'"$braces_stack" ;; ('done') - _zsh_highlight_main__stack_pop 'D' reserved-word - ;; - ('if') - braces_stack=':?'"$braces_stack" - ;; - ('then') - _zsh_highlight_main__stack_pop ':' reserved-word - ;; - ('elif') - if [[ ${braces_stack[1]} == '?' ]]; then - braces_stack=':'"$braces_stack" - else - style=unknown-token - fi - ;; - ('else') - if [[ ${braces_stack[1]} == '?' ]]; then - : - else - style=unknown-token - fi - ;; - ('fi') - _zsh_highlight_main__stack_pop '?' + _zsh_highlight_main__stack_pop 'D' style=reserved-word ;; ('foreach') braces_stack='$'"$braces_stack" ;; ('end') - _zsh_highlight_main__stack_pop '$' reserved-word - ;; - ('repeat') - # skip the repeat-count word - in_redirection=2 - # The redirection mechanism assumes $this_word describes the word - # following the redirection. Make it so. - # - # That word can be a command word with shortloops (`repeat 2 ls`) - # or a command separator (`repeat 2; ls` or `repeat 2; do ls; done`). - # - # The repeat-count word will be handled like a redirection target. - this_word=':start::regular:' - ;; - ('!') - if [[ $this_word != *':start_of_pipeline:'* ]]; then - style=unknown-token - else - # '!' reserved word at start of pipeline; style already set above - fi + _zsh_highlight_main__stack_pop '$' style=reserved-word ;; esac - if $saw_assignment && [[ $style != unknown-token ]]; then - style=unknown-token - fi ;; - ('suffix alias') - style=suffix-alias + 'suffix alias') style=suffix-alias;; + alias) () { + integer insane_alias + case $arg in + # Issue #263: aliases with '=' on their LHS. + # + # There are three cases: + # + # - Unsupported, breaks 'alias -L' output, but invokable: + ('='*) :;; + # - Unsupported, not invokable: + (*'='*) insane_alias=1;; + # - The common case: + (*) :;; + esac + if (( insane_alias )); then + style=unknown-token + else + style=alias + _zsh_highlight_main__resolve_alias $arg + local alias_target="$REPLY" + [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$alias_target"} && -z ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} ]] && ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS+=($arg) + fi + } ;; - ('global alias') - style=global-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 - _zsh_highlight_main_add_region_highlight $start_pos $end_pos assign - local i=$(( arg[(i)=] + 1 )) - saw_assignment=true - if [[ $arg[i] == '(' ]]; then + builtin) style=builtin;; + function) style=function;; + command) style=command;; + hashed) style=hashed-command;; + none) if _zsh_highlight_main_highlighter_check_assign; then + style=assign + if [[ $arg[-1] == '(' ]]; 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.) - # - # Discard :start_of_pipeline:, if present, as '!' is not valid - # after assignments. next_word+=':start:' - if (( i <= $#arg )); then - () { - local highlight_glob=false - [[ $zsyh_user_options[globassign] == on ]] && highlight_glob=true - _zsh_highlight_main_highlighter_highlight_argument $i - } - fi fi - continue - elif (( ! in_param )) && - [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then + elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then style=history-expansion - elif (( ! in_param )) && - [[ $arg[0,1] == $histchars[2,2] ]]; then + elif [[ $arg[0,1] == $histchars[2,2] ]]; then style=history-expansion - elif (( ! in_param )) && - ! $saw_assignment && - [[ $arg[1,2] == '((' ]]; then + elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then + if [[ $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 + elif (( in_redirection == 2 )); then + style=redirection + elif [[ $arg[1,2] == '((' ]]; then # Arithmetic evaluation. # # Note: prior to zsh-5.1.1-52-g4bed2cf (workers/36669), the ${(z)...} @@ -1065,116 +578,146 @@ _zsh_highlight_main_highlighter_highlight_list() # # We highlight just the opening parentheses, as a reserved word; this # is how [[ ... ]] is highlighted, too. - _zsh_highlight_main_add_region_highlight $start_pos $((start_pos + 2)) reserved-word + style=reserved-word + _zsh_highlight_main_add_region_highlight $start_pos $((start_pos + 2)) $style + already_added=1 if [[ $arg[-2,-1] == '))' ]]; then - _zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos reserved-word + _zsh_highlight_main_add_region_highlight $((end_pos - 2)) $end_pos $style + already_added=1 fi - continue - elif (( ! in_param )) && - [[ $arg == '()' ]]; then + elif [[ $arg == '()' ]]; then # anonymous function style=reserved-word - elif (( ! in_param )) && - ! $saw_assignment && - [[ $arg == $'\x28' ]]; then + elif [[ $arg == $'\x28' ]]; then # subshell style=reserved-word braces_stack='R'"$braces_stack" - elif (( ! in_param )) && - [[ $arg == $'\x29' ]]; then - # end of subshell or command substitution - 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 + elif [[ $arg == $'\x29' ]]; then + # end of subshell + _zsh_highlight_main__stack_pop 'R' style=reserved-word else - if _zsh_highlight_main_highlighter_check_path $arg 1; then + if _zsh_highlight_main_highlighter_check_path; then style=$REPLY else style=unknown-token fi fi ;; - (*) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res - continue + *) _zsh_highlight_main_add_region_highlight $start_pos $end_pos arg0_$res arg0 + already_added=1 ;; - 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 + fi + if (( ! already_added )) && [[ $style == unknown-token ]] && # not handled by the 'command word' codepath + { (( in_redirection )) || [[ $this_word == *':regular:'* ]] || [[ $this_word == *':sudo_opt:'* ]] || [[ $this_word == *':sudo_arg:'* ]] } + then # $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:' + else + _zsh_highlight_main__stack_pop 'R' style=reserved-word + fi;; + $'\x28\x29') # possibly a function definition + if (( multi_func_def )) || false # TODO: or if the previous word was a command word + then + next_word+=':start:' + fi + style=reserved-word + ;; + $'\x7d') # right brace + # + # 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 $right_brace_is_recognised_everywhere; then + _zsh_highlight_main__stack_pop 'Y' style=reserved-word + if [[ $style == reserved-word ]]; then + next_word+=':always:' + fi + else + # Fall through to the catchall case at the end. + fi + ;| + '--'*) style=double-hyphen-option;; + '-'*) style=single-hyphen-option;; + "'"*) style=single-quoted-argument;; + '"'*) style=double-quoted-argument + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + _zsh_highlight_main_highlighter_highlight_string + already_added=1 + ;; + \$\'*) style=dollar-quoted-argument + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + _zsh_highlight_main_highlighter_highlight_dollar_string + already_added=1 + ;; + '`'*) style=back-quoted-argument;; + [*?]*|*[^\\][*?]*) + $highlight_glob && style=globbing || style=default;; + *) if false; then + elif [[ $arg = $'\x7d' ]] && $right_brace_is_recognised_everywhere; then + # was handled by the $'\x7d' case above + elif [[ $arg[0,1] = $histchars[0,1] ]] && (( $#arg[0,2] == 2 )); then + style=history-expansion + elif [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then + if [[ $this_word == *':regular:'* ]]; then + style=commandseparator + else + style=unknown-token + fi + elif (( in_redirection == 2 )); then + style=redirection + else + if _zsh_highlight_main_highlighter_check_path; then + style=$REPLY + else + style=default + fi + fi + ;; esac fi - _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + if ! (( already_added )); then + _zsh_highlight_main_add_region_highlight $start_pos $end_pos $style + [[ $style == path || $style == path_prefix ]] && _zsh_highlight_main_highlighter_highlight_path_separators + fi + if [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR:#"$arg"} ]]; then + if [[ $arg == ';' ]] && $in_array_assignment; then + # literal newline inside an array assignment + next_word=':regular:' + else + next_word=':start:' + highlight_glob=true + fi + elif + [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_CONTROL_FLOW:#"$arg"} && $this_word == *':start:'* ]] || + [[ -n ${(M)ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS:#"$arg"} && $this_word == *':start:'* ]]; then + next_word=':start:' + elif [[ $arg == "repeat" && $this_word == *':start:'* ]]; then + # skip the repeat-count word + in_redirection=2 + # The redirection mechanism assumes $this_word describes the word + # following the redirection. Make it so. + # + # That word can be a command word with shortloops (`repeat 2 ls`) + # or a command separator (`repeat 2; ls` or `repeat 2; do ls; done`). + # + # The repeat-count word will be handled like a redirection target. + this_word=':start::regular:' + fi + start_pos=$end_pos + if (( in_redirection == 0 )); then + # This is the default/common codepath. + this_word=$next_word + else + # Stall $this_word. + fi done - (( $#in_alias )) && in_alias=() _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 )) - reply=($list_highlights) - return $(( $#braces_stack > 0 )) } # Check if $arg is variable assignment @@ -1188,327 +731,63 @@ _zsh_highlight_main_highlighter_check_assign() _zsh_highlight_main_highlighter_highlight_path_separators() { local pos style_pathsep - style_pathsep=$1_pathseparator - reply=() - [[ -z "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" || "$ZSH_HIGHLIGHT_STYLES[$1]" == "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" ]] && return 0 + style_pathsep=${style}_pathseparator + [[ -z "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" || "$ZSH_HIGHLIGHT_STYLES[$style]" == "$ZSH_HIGHLIGHT_STYLES[$style_pathsep]" ]] && return 0 for (( pos = start_pos; $pos <= end_pos; pos++ )) ; do if [[ $BUFFER[pos] == / ]]; then - reply+=($((pos - 1)) $pos $style_pathsep) + _zsh_highlight_main_add_region_highlight $((pos - 1)) $pos $style_pathsep fi done } -# Check if $1 is a path. +# Check if $arg 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 + _zsh_highlight_main_highlighter_expand_path $arg; + local expanded_path="$REPLY" - 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 - - # Check if this is a blacklisted path - if [[ $expanded_path[1] == / ]]; then - tmp_path=$expanded_path - else - tmp_path=$PWD/$expanded_path - fi - tmp_path=$tmp_path:a - - while [[ $tmp_path != / ]]; do - [[ -n ${(M)ZSH_HIGHLIGHT_DIRS_BLACKLIST:#$tmp_path} ]] && return 1 - 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. + # If dirname($arg) doesn't exist, neither does $arg. [[ ! -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 )) && + if [[ ${BUFFER[1]} != "-" && $pure_buf_len == $end_pos ]] && [[ $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. return 1 } -# 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() +# Highlight special chars inside double-quoted strings +_zsh_highlight_main_highlighter_highlight_string() { - local base_style=default i=$1 option_eligible=${2:-1} path_eligible=1 ret start style - local -a highlights - + setopt localoptions noksharrays local -a match mbegin mend local MATCH; integer MBEGIN MEND - - case "$arg[i]" in - '%') - if [[ $arg[i+1] == '?' ]]; then - (( i += 2 )) - fi - ;; - '-') - if (( option_eligible )); then - if [[ $arg[i+1] == - ]]; then - base_style=double-hyphen-option - else - base_style=single-hyphen-option - fi - path_eligible=0 - fi - ;; - '=') - if [[ $arg[i+1] == $'\x28' ]]; then - (( i += 2 )) - _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] - ret=$? - (( i += REPLY )) - highlights+=( - $(( start_pos + $1 - 1 )) $(( start_pos + i )) process-substitution - $(( start_pos + $1 - 1 )) $(( start_pos + $1 + 1 )) process-substitution-delimiter - $reply - ) - if (( ret == 0 )); then - highlights+=($(( start_pos + i - 1 )) $(( start_pos + i )) process-substitution-delimiter) - fi - fi - esac - - # This loop is a hot path. Keep it fast! - (( --i )) - while (( ++i <= $#arg )); do - i=${arg[(ib.i.)[\\\'\"\`\$\<\>\*\?]]} - case "$arg[$i]" in - "") break;; - "\\") (( i += 1 )); continue;; - "'") - _zsh_highlight_main_highlighter_highlight_single_quote $i - (( i = REPLY )) - highlights+=($reply) - ;; - '"') - _zsh_highlight_main_highlighter_highlight_double_quote $i - (( i = REPLY )) - highlights+=($reply) - ;; - '`') - _zsh_highlight_main_highlighter_highlight_backtick $i - (( i = REPLY )) - highlights+=($reply) - ;; - '$') - if [[ $arg[i+1] != "'" ]]; then - path_eligible=0 - fi - if [[ $arg[i+1] == "'" ]]; then - _zsh_highlight_main_highlighter_highlight_dollar_quote $i - (( 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 - start=$i - (( i += 2 )) - _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] - ret=$? - (( i += REPLY )) - highlights+=( - $(( start_pos + start - 1)) $(( start_pos + i )) command-substitution-unquoted - $(( start_pos + start - 1)) $(( start_pos + start + 1)) command-substitution-delimiter-unquoted - $reply - ) - if (( ret == 0 )); then - highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) command-substitution-delimiter-unquoted) - fi - continue - fi - while [[ $arg[i+1] == [=~#+'^'] ]]; do - (( i += 1 )) - done - if [[ $arg[i+1] == [*@#?$!-] ]]; then - (( i += 1 )) - fi;; - [\<\>]) - if [[ $arg[i+1] == $'\x28' ]]; then # \x28 = open paren - start=$i - (( i += 2 )) - _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] - ret=$? - (( i += REPLY )) - highlights+=( - $(( start_pos + start - 1)) $(( start_pos + i )) process-substitution - $(( start_pos + start - 1)) $(( start_pos + start + 1 )) process-substitution-delimiter - $reply - ) - if (( ret == 0 )); then - highlights+=($(( start_pos + i - 1)) $(( start_pos + i )) process-substitution-delimiter) - fi - continue - fi - ;| - *) - if $highlight_glob && - [[ $zsyh_user_options[multios] == on || $in_redirection -eq 0 ]] && - [[ ${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 - else - continue - fi - ;; - 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 - fi - - highlights=($(( start_pos + $1 - 1 )) $end_pos $base_style $highlights) - _zsh_highlight_main_add_many_region_highlights $highlights -} - -# Quote Helper Functions -# -# $arg is expected to be set to the current argument -# $start_pos is expected to be set to the start of $arg in $BUFFER -# $1 is the index in $arg which starts the quote -# $REPLY is returned as the end of quote index in $arg -# $reply is returned as an array of region_highlight additions - -# Highlight single-quoted strings -_zsh_highlight_main_highlighter_highlight_single_quote() -{ - local arg1=$1 i q=\' style - i=$arg[(ib:arg1+1:)$q] - reply=() - - if [[ $zsyh_user_options[rcquotes] == on ]]; then - while [[ $arg[i+1] == "'" ]]; do - reply+=($(( start_pos + i - 1 )) $(( start_pos + i + 1 )) rc-quote) - (( i++ )) - i=$arg[(ib:i+1:)$q] - done - fi - - if [[ $arg[i] == "'" ]]; then - style=single-quoted-argument - else - # If unclosed, i points past the end - (( i-- )) - style=single-quoted-argument-unclosed - fi - reply=($(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style $reply) - REPLY=$i -} - -# Highlight special chars inside double-quoted strings -_zsh_highlight_main_highlighter_highlight_double_quote() -{ - local -a breaks match mbegin mend saved_reply - local MATCH; integer last_break=$(( start_pos + $1 - 1 )) MBEGIN MEND - local i j k ret style - reply=() - - for (( i = $1 + 1 ; i <= $#arg ; i += 1 )) ; do + local i j k style + # Starting quote is at 1, so start parsing at offset 2 in the string. + for (( i = 2 ; i < end_pos - start_pos ; i += 1 )) ; do (( 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 + '$' ) 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,30 +804,7 @@ _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 )) - _zsh_highlight_main_highlighter_highlight_list $(( start_pos + i - 1 )) S $has_end $arg[i,-1] - ret=$? - (( i += REPLY )) - last_break=$(( start_pos + i )) - 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-quoted) - fi - continue + # Highlight just the '$'. else continue fi @@ -1561,53 +817,29 @@ _zsh_highlight_main_highlighter_highlight_double_quote() 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) + _zsh_highlight_main_add_region_highlight $j $k $style done - - if [[ $arg[i] == '"' ]]; then - style=double-quoted-argument - else - # If unclosed, i points past the end - (( i-- )) - style=double-quoted-argument-unclosed - fi - (( last_break != start_pos + i )) && breaks+=( $last_break $(( start_pos + i )) ) - saved_reply=($reply) - reply=() - for 1 2 in $breaks; do - (( $1 != $2 )) && reply+=($1 $2 $style) - done - reply+=($saved_reply) - REPLY=$i } # Highlight special chars inside dollar-quoted strings -_zsh_highlight_main_highlighter_highlight_dollar_quote() +_zsh_highlight_main_highlighter_highlight_dollar_string() { + setopt localoptions noksharrays local -a match mbegin mend local MATCH; integer MBEGIN MEND local i j k style local AA integer c - reply=() - - for (( i = $1 + 2 ; i <= $#arg ; i += 1 )) ; do + # Starting dollar-quote is at 1:2, so start parsing at offset 3 in the string. + for (( i = 3 ; i < end_pos - start_pos ; i += 1 )) ; do (( j = i + start_pos - 1 )) (( k = j + 1 )) case "$arg[$i]" in - "'") break;; "\\") style=back-dollar-quoted-argument - for (( c = i + 1 ; c <= $#arg ; c += 1 )); do + for (( c = i + 1 ; c <= end_pos - start_pos ; c += 1 )); do [[ "$arg[$c]" != ([0-9xXuUa-fA-F]) ]] && break done AA=$arg[$i+1,$c-1] @@ -1631,180 +863,10 @@ _zsh_highlight_main_highlighter_highlight_dollar_quote() *) continue ;; esac - reply+=($j $k $style) + _zsh_highlight_main_add_region_highlight $j $k $style done - - if [[ $arg[i] == "'" ]]; then - style=dollar-quoted-argument - else - # If unclosed, i points past the end - (( i-- )) - style=dollar-quoted-argument-unclosed - fi - reply=($(( start_pos + $1 - 1 )) $(( start_pos + i )) $style $reply) - REPLY=$i } -# Highlight backtick substitutions -_zsh_highlight_main_highlighter_highlight_backtick() -{ - # buf is the contents of the backticks with a layer of backslashes removed. - # last is the index of arg for the start of the string to be copied into buf. - # It is either one past the beginning backtick or one past the last backslash. - # offset is a count of consumed \ (the delta between buf and arg). - # offsets is an array indexed by buf offset of when the delta between buf and arg changes. - # It is sparse, so search backwards to the last value - local buf highlight style=back-quoted-argument-unclosed style_end - local -i arg1=$1 end_ i=$1 last offset=0 start subshell_has_end=0 - local -a highlight_zone highlights offsets - reply=() - - last=$(( arg1 + 1 )) - # Remove one layer of backslashes and find the end - while i=$arg[(ib:i+1:)[\\\\\`]]; do # find the next \ or ` - if (( i > $#arg )); then - buf=$buf$arg[last,i] - offsets[i-arg1-offset]='' # So we never index past the end - (( i-- )) - subshell_has_end=$(( has_end && (start_pos + i == len) )) - break - fi - - if [[ $arg[i] == '\' ]]; then - (( i++ )) - # POSIX XCU 2.6.3 - if [[ $arg[i] == ('$'|'`'|'\') ]]; then - buf=$buf$arg[last,i-2] - (( offset++ )) - # offsets is relative to buf, so adjust by -arg1 - offsets[i-arg1-offset]=$offset - else - buf=$buf$arg[last,i-1] - fi - else # it's an unquoted ` and this is the end - style=back-quoted-argument - style_end=back-quoted-argument-delimiter - buf=$buf$arg[last,i-1] - offsets[i-arg1-offset]='' # So we never index past the end - break - fi - last=$i - done - - _zsh_highlight_main_highlighter_highlight_list 0 '' $subshell_has_end $buf - - # Munge the reply to account for removed backslashes - for start end_ highlight in $reply; do - start=$(( start_pos + arg1 + start + offsets[(Rb:start:)?*] )) - end_=$(( start_pos + arg1 + end_ + offsets[(Rb:end_:)?*] )) - highlights+=($start $end_ $highlight) - if [[ $highlight == back-quoted-argument-unclosed && $style == back-quoted-argument ]]; then - # An inner backtick command substitution is unclosed, but this level is closed - style_end=unknown-token - fi - done - - reply=( - $(( start_pos + arg1 - 1 )) $(( start_pos + i )) $style - $(( start_pos + arg1 - 1 )) $(( start_pos + arg1 )) back-quoted-argument-delimiter - $highlights - ) - if (( $#style_end )); then - reply+=($(( start_pos + i - 1)) $(( start_pos + i )) $style_end) - fi - 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. # @@ -1816,7 +878,7 @@ _zsh_highlight_main_highlighter_expand_path() # The $~1 syntax normally performs filename generation, but not when it's on the right-hand side of ${x:=y}. setopt localoptions nonomatch unset REPLY - : ${REPLY:=${(Q)${~1}}} + : ${REPLY:=${(Q)~1}} } # ------------------------------------------------------------------------------------------------- @@ -1824,17 +886,10 @@ _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=() } -autoload -Uz add-zsh-hook +autoload -U add-zsh-hook if add-zsh-hook precmd _zsh_highlight_main__precmd_hook 2>/dev/null; then # Initialize command type cache typeset -gA _zsh_highlight_main__command_type_cache @@ -1843,4 +898,3 @@ else # Make sure the cache is unset unset _zsh_highlight_main__command_type_cache fi -typeset -ga ZSH_HIGHLIGHT_DIRS_BLACKLIST diff --git a/highlighters/main/test-data/abspath-in-command-position1.zsh b/highlighters/main/test-data/abspath-in-command-position1.zsh deleted file mode 100644 index cfc12a5..0000000 --- a/highlighters/main/test-data/abspath-in-command-position1.zsh +++ /dev/null @@ -1,35 +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 path_prefix' # / -) 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-position2.zsh b/highlighters/main/test-data/abspath-in-command-position2.zsh deleted file mode 100644 index 5033d2c..0000000 --- a/highlighters/main/test-data/abspath-in-command-position2.zsh +++ /dev/null @@ -1,35 +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=$'/bi' - -expected_region_highlight=( - '1 3 path_prefix' # /bi -) diff --git a/highlighters/main/test-data/abspath-in-command-position3.zsh b/highlighters/main/test-data/abspath-in-command-position3.zsh deleted file mode 100644 index 415e316..0000000 --- a/highlighters/main/test-data/abspath-in-command-position3.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=$'/bin; /bin' - -expected_region_highlight=( - '1 4 unknown-token' # /bin (in middle) - '5 5 commandseparator' # ; - '7 10 path_prefix' # /bin (at end) -) 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/abspath-in-command-position4.zsh b/highlighters/main/test-data/abspath-in-command-position4.zsh deleted file mode 100644 index 9e935bf..0000000 --- a/highlighters/main/test-data/abspath-in-command-position4.zsh +++ /dev/null @@ -1,35 +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=$'/bin/s' - -expected_region_highlight=( - '1 6 path_prefix' # /bin/s -) diff --git a/highlighters/main/test-data/abspath-in-command-position5.zsh b/highlighters/main/test-data/abspath-in-command-position5.zsh deleted file mode 100644 index e428b1a..0000000 --- a/highlighters/main/test-data/abspath-in-command-position5.zsh +++ /dev/null @@ -1,35 +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=$'/bin/sh' - -expected_region_highlight=( - '1 7 command' # /bin/sh -) diff --git a/highlighters/main/test-data/alias-assignment1.zsh b/highlighters/main/test-data/alias-assignment1.zsh index 0c101c8..cf5be75 100644 --- a/highlighters/main/test-data/alias-assignment1.zsh +++ b/highlighters/main/test-data/alias-assignment1.zsh @@ -34,5 +34,4 @@ BUFFER='x=y ls' expected_region_highlight=( "1 3 unknown-token" # x=y - "5 6 default" # ls ) diff --git a/highlighters/main/test-data/alias-basic.zsh b/highlighters/main/test-data/alias-basic.zsh deleted file mode 100644 index 7af8b7c..0000000 --- a/highlighters/main/test-data/alias-basic.zsh +++ /dev/null @@ -1,35 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 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 -# ------------------------------------------------------------------------------------------------- - -alias foo="echo hello world" -BUFFER="foo" - -expected_region_highlight+=( - "1 3 alias" # foo -) 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-command-substitution.zsh b/highlighters/main/test-data/alias-command-substitution.zsh deleted file mode 100644 index a7b77df..0000000 --- a/highlighters/main/test-data/alias-command-substitution.zsh +++ /dev/null @@ -1,37 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 must be at least 4 characters to test the regression -# cf. 139ea2b189819c43cc251825981c116959b15cc3 -alias foobar='echo "$(echo foobar)"' -BUFFER='foobar' - -expected_region_highlight=( - "1 6 alias" # foobar -) diff --git a/highlighters/main/test-data/alias-comment1.zsh b/highlighters/main/test-data/alias-comment1.zsh deleted file mode 100644 index bae7ef6..0000000 --- a/highlighters/main/test-data/alias-comment1.zsh +++ /dev/null @@ -1,37 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 alias-comment2.zsh and comment-followed.zsh -setopt interactivecomments -alias x=$'# foo\npwd' -BUFFER='x' - -expected_region_highlight=( - '1 1 alias' # x -) diff --git a/highlighters/main/test-data/alias-comment2.zsh b/highlighters/main/test-data/alias-comment2.zsh deleted file mode 100644 index 5a49822..0000000 --- a/highlighters/main/test-data/alias-comment2.zsh +++ /dev/null @@ -1,37 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 alias-comment1.zsh -setopt NO_interactivecomments -alias x=$'# foo\npwd' -BUFFER='x' - -expected_region_highlight=( - '1 1 unknown-token' # x (#) -) diff --git a/highlighters/main/test-data/alias-complex.zsh b/highlighters/main/test-data/alias-complex.zsh deleted file mode 100644 index 5ad7c0a..0000000 --- a/highlighters/main/test-data/alias-complex.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -alias x='echo && ls; >' - -BUFFER='x file echo' - -expected_region_highlight=( - '1 1 alias' # x - '3 6 default' # file - '8 11 builtin' # echo -) diff --git a/highlighters/main/test-data/alias-empty.zsh b/highlighters/main/test-data/alias-empty.zsh deleted file mode 100644 index 535fccc..0000000 --- a/highlighters/main/test-data/alias-empty.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -alias x='' - -BUFFER='x echo foo' - -expected_region_highlight=( - '1 1 alias' # x - '3 6 builtin' # echo - '8 10 default' # foo -) diff --git a/highlighters/main/test-data/alias-eponymous1.zsh b/highlighters/main/test-data/alias-eponymous1.zsh deleted file mode 100644 index 2642e14..0000000 --- a/highlighters/main/test-data/alias-eponymous1.zsh +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 ls='command ls' - -BUFFER='ls' - -expected_region_highlight=( - "1 2 alias" # ls -) diff --git a/highlighters/main/test-data/alias-eponymous2.zsh b/highlighters/main/test-data/alias-eponymous2.zsh deleted file mode 100644 index dcd8565..0000000 --- a/highlighters/main/test-data/alias-eponymous2.zsh +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 ls=tmp tmp='command ls' - -BUFFER='ls' - -expected_region_highlight=( - "1 2 alias" # ls -) 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 deleted file mode 100644 index 83992db..0000000 --- a/highlighters/main/test-data/alias-loop.zsh +++ /dev/null @@ -1,44 +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 -# ------------------------------------------------------------------------------------------------- - -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 - '3 5 default' # foo - '6 6 commandseparator' # ; - '8 8 builtin' # : -) diff --git a/highlighters/main/test-data/alias-loop2.zsh b/highlighters/main/test-data/alias-loop2.zsh deleted file mode 100644 index 29e04ac..0000000 --- a/highlighters/main/test-data/alias-loop2.zsh +++ /dev/null @@ -1,35 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 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 -# ------------------------------------------------------------------------------------------------- - -alias ls="ls" -BUFFER="ls" - -expected_region_highlight+=( - "1 2 alias" # ls -) diff --git a/highlighters/main/test-data/alias-nested-precommand.zsh b/highlighters/main/test-data/alias-nested-precommand.zsh deleted file mode 100644 index 6d4172b..0000000 --- a/highlighters/main/test-data/alias-nested-precommand.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 -# ------------------------------------------------------------------------------------------------- - -alias a=b b=sudo -sudo(){} - -BUFFER='a -u phy1729 echo; :' - -expected_region_highlight=( - '1 1 alias' # a - '3 4 single-hyphen-option' # -u - '6 12 default' # phy1729 - '14 17 builtin' # echo - '18 18 commandseparator' # ; - '20 20 builtin' # : -) diff --git a/highlighters/main/test-data/alias-nested.zsh b/highlighters/main/test-data/alias-nested.zsh deleted file mode 100644 index b24b496..0000000 --- a/highlighters/main/test-data/alias-nested.zsh +++ /dev/null @@ -1,40 +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 -# ------------------------------------------------------------------------------------------------- - -alias a=b b=: - -BUFFER='a foo; :' - -expected_region_highlight=( - '1 1 alias' # a - '3 5 default' # foo - '6 6 commandseparator' # ; - '8 8 builtin' # : -) diff --git a/highlighters/main/test-data/alias-parameter.zsh b/highlighters/main/test-data/alias-parameter.zsh deleted file mode 100644 index 21bc6b3..0000000 --- a/highlighters/main/test-data/alias-parameter.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 '$foo'='echo alias' -local foo; foo=(echo param) - -BUFFER='$foo' - -expected_region_highlight=( - '1 4 alias' # $foo -) diff --git a/highlighters/main/test-data/alias-precommand-option-argument1.zsh b/highlighters/main/test-data/alias-precommand-option-argument1.zsh deleted file mode 100644 index 2d1f35c..0000000 --- a/highlighters/main/test-data/alias-precommand-option-argument1.zsh +++ /dev/null @@ -1,42 +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 also param-precommand-option-argument1.zsh -alias sudo_u='sudo -u' -sudo(){} - -BUFFER='sudo_u phy1729 echo foo' - -expected_region_highlight=( - '1 6 alias' # sudo_u - '8 14 default' # phy1729 - '17 19 command "issue #540"' # echo (not builtin) - '21 23 default' # foo -) diff --git a/highlighters/main/test-data/alias-precommand-option-argument2.zsh b/highlighters/main/test-data/alias-precommand-option-argument2.zsh deleted file mode 100644 index fbc6eec..0000000 --- a/highlighters/main/test-data/alias-precommand-option-argument2.zsh +++ /dev/null @@ -1,42 +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 -# ------------------------------------------------------------------------------------------------- - -alias sudo_b='sudo -b' -alias sudo_b_u='sudo_b -u' -sudo(){} - -BUFFER='sudo_b_u phy1729 echo foo' - -expected_region_highlight=( - '1 8 alias' # sudo_b_u - '10 16 default' # phy1729 - '18 21 command "issue #540"' # echo (not builtin) - '23 25 default' # foo -) diff --git a/highlighters/main/test-data/alias-precommand-option-argument3.zsh b/highlighters/main/test-data/alias-precommand-option-argument3.zsh deleted file mode 100644 index 373f12b..0000000 --- a/highlighters/main/test-data/alias-precommand-option-argument3.zsh +++ /dev/null @@ -1,42 +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 also param-precommand-option-argument3.zsh -alias sudo_u='sudo -u' -sudo(){} - -BUFFER='sudo_u phy1729 ls foo' - -expected_region_highlight=( - '1 6 alias' # sudo_u - '8 14 default' # phy1729 - '16 17 command' # ls - '19 21 default' # foo -) diff --git a/highlighters/main/test-data/alias-precommand-option-argument4.zsh b/highlighters/main/test-data/alias-precommand-option-argument4.zsh deleted file mode 100644 index d47dccb..0000000 --- a/highlighters/main/test-data/alias-precommand-option-argument4.zsh +++ /dev/null @@ -1,42 +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 -# ------------------------------------------------------------------------------------------------- - -alias sudo_b='sudo -b' -alias sudo_b_u='sudo_b -u' -sudo(){} - -BUFFER='sudo_b_u phy1729 ls foo' - -expected_region_highlight=( - '1 8 alias' # sudo_b_u - '10 16 default' # phy1729 - '18 19 command' # ls - '21 23 default' # foo -) diff --git a/highlighters/main/test-data/alias-quoted.zsh b/highlighters/main/test-data/alias-quoted.zsh deleted file mode 100644 index e42e2f0..0000000 --- a/highlighters/main/test-data/alias-quoted.zsh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) YYYY 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=: ls='ls -l' -BUFFER='"a" foo; \ls' - -expected_region_highlight=( - '1 3 unknown-token' # "a" - '5 7 default' # foo - '8 8 commandseparator' # ; - '10 12 command' # \ls -) diff --git a/highlighters/main/test-data/alias-redirect.zsh b/highlighters/main/test-data/alias-redirect.zsh deleted file mode 100644 index acc3dcb..0000000 --- a/highlighters/main/test-data/alias-redirect.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 x=\> -BUFFER='x foo echo bar' - -expected_region_highlight=( - '1 1 alias' # x - '3 5 default' # foo - '7 10 builtin' # echo - '12 14 default' # bar -) 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-self.zsh b/highlighters/main/test-data/alias-self.zsh deleted file mode 100644 index c6f12b1..0000000 --- a/highlighters/main/test-data/alias-self.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 -# ------------------------------------------------------------------------------------------------- - -alias echo='echo foo' - -BUFFER='echo bar' - -expected_region_highlight=( - '1 4 alias' # echo - '6 8 default' # bar -) 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 deleted file mode 100644 index 30390d4..0000000 --- a/highlighters/main/test-data/alias-to-dir.zsh +++ /dev/null @@ -1,36 +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 -# ------------------------------------------------------------------------------------------------- - -alias x=/ -BUFFER=$'x' - -expected_region_highlight=( - '1 1 unknown-token' # 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/alias-unknown-token1.zsh b/highlighters/main/test-data/alias-unknown-token1.zsh deleted file mode 100644 index 9c996bf..0000000 --- a/highlighters/main/test-data/alias-unknown-token1.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 -# ------------------------------------------------------------------------------------------------- - -alias a=b b=foo - -BUFFER='a ' - -expected_region_highlight=( - '1 1 unknown-token' # a -) diff --git a/highlighters/main/test-data/alias-unknown-token2.zsh b/highlighters/main/test-data/alias-unknown-token2.zsh deleted file mode 100644 index ab9facd..0000000 --- a/highlighters/main/test-data/alias-unknown-token2.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 -# ------------------------------------------------------------------------------------------------- - -alias a='() { ls "$@" ; foo }' - -BUFFER='a ' - -expected_region_highlight=( - '1 1 unknown-token' # a -) diff --git a/highlighters/main/test-data/alias.zsh b/highlighters/main/test-data/alias.zsh index 4cafa80..5129614 100644 --- a/highlighters/main/test-data/alias.zsh +++ b/highlighters/main/test-data/alias.zsh @@ -27,11 +27,11 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -alias alias1="ls" +alias alias1="unused expansion" alias -s alias2="echo" -function alias1() {} # to check that it's highlighted as an alias, not as a function +alias1() {} # to check that it's highlighted as an alias, not as a function -BUFFER='x.alias2; alias1; alias2' +BUFFER='x.alias2; alias1' # Set expected_region_highlight as a function of zsh version. # @@ -40,14 +40,11 @@ BUFFER='x.alias2; alias1; alias2' # functionality is present, and skip verifying suffix-alias highlighting # if it isn't. expected_region_highlight=() -if zmodload -e zsh/parameter || [[ "$(type -w x.alias2)" == *suffix* ]]; then +if [[ "$(type -w x.alias2)" == *suffix* ]]; then expected_region_highlight+=( "1 8 suffix-alias" # x.alias2 ) fi expected_region_highlight+=( - "9 9 commandseparator" # ; "11 16 alias" # alias1 - "17 17 commandseparator" # ; - "19 24 unknown-token" # alias2 ) 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/anonymous-function.zsh b/highlighters/main/test-data/anonymous-function.zsh index 9d67fb1..5b8e0b6 100644 --- a/highlighters/main/test-data/anonymous-function.zsh +++ b/highlighters/main/test-data/anonymous-function.zsh @@ -37,8 +37,5 @@ expected_region_highlight=( "16 17 reserved-word" # () "19 19 reserved-word" # { "21 24 builtin" # echo - "26 30 default" # world - "32 32 reserved-word" # } - "34 43 default" # "argument" "34 43 double-quoted-argument" # "argument" ) diff --git a/highlighters/main/test-data/arg0-colon.zsh b/highlighters/main/test-data/arg0-colon.zsh deleted file mode 100644 index 8955bd2..0000000 --- a/highlighters/main/test-data/arg0-colon.zsh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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: /' - -expected_region_highlight=( - '1 5 unknown-token' # \'x: / -) 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..6485f0e 100644 --- a/highlighters/main/test-data/assign-append.zsh +++ b/highlighters/main/test-data/assign-append.zsh @@ -31,9 +31,4 @@ 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-argv.zsh b/highlighters/main/test-data/assign-argv.zsh index ec5acc2..fdf30aa 100644 --- a/highlighters/main/test-data/assign-argv.zsh +++ b/highlighters/main/test-data/assign-argv.zsh @@ -27,12 +27,9 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -touch foo BUFFER='42=foo 43+=bar' expected_region_highlight=( "1 6 assign" # 42=foo - "4 6 path" # foo "8 14 assign" # 43+=bar - "12 14 default" # bar ) diff --git a/highlighters/main/test-data/assign-array.zsh b/highlighters/main/test-data/assign-array.zsh index ef0a666..8995162 100644 --- a/highlighters/main/test-data/assign-array.zsh +++ b/highlighters/main/test-data/assign-array.zsh @@ -32,10 +32,6 @@ 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..37ba372 100644 --- a/highlighters/main/test-data/assign-array2.zsh +++ b/highlighters/main/test-data/assign-array2.zsh @@ -31,10 +31,6 @@ 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..26c42e9 100644 --- a/highlighters/main/test-data/assign-array3.zsh +++ b/highlighters/main/test-data/assign-array3.zsh @@ -31,11 +31,6 @@ 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-not-array.zsh b/highlighters/main/test-data/assign-not-array.zsh deleted file mode 100644 index 651ab80..0000000 --- a/highlighters/main/test-data/assign-not-array.zsh +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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='a=foo( bar ) :' - -expected_region_highlight=( - '1 12 assign' # a=foo( bar ) - '3 12 default' # foo( bar ) - '14 14 builtin' # : -) diff --git a/highlighters/main/test-data/assign-not-array2.zsh b/highlighters/main/test-data/assign-not-array2.zsh deleted file mode 100644 index dfda106..0000000 --- a/highlighters/main/test-data/assign-not-array2.zsh +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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='a=foo\( :' - -expected_region_highlight=( - '1 7 assign' # a=foo\( - '3 7 default' # foo\( - '9 9 builtin' # : -) 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-semicolon.zsh b/highlighters/main/test-data/assign-semicolon.zsh index f748c94..c2618b0 100644 --- a/highlighters/main/test-data/assign-semicolon.zsh +++ b/highlighters/main/test-data/assign-semicolon.zsh @@ -30,10 +30,6 @@ BUFFER='A=1; echo hello world' expected_region_highlight=( - "1 3 assign" # A=1 - "3 3 default" # 1 "4 4 commandseparator" # ; "6 9 builtin" # echo - "11 15 default" # hello - "17 21 default" # world ) diff --git a/highlighters/main/test-data/assign-subshell.zsh b/highlighters/main/test-data/assign-subshell.zsh index 2022889..fc04f6b 100644 --- a/highlighters/main/test-data/assign-subshell.zsh +++ b/highlighters/main/test-data/assign-subshell.zsh @@ -32,6 +32,5 @@ BUFFER='(A=1)' expected_region_highlight=( "1 1 reserved-word" # ( "2 4 assign" # A=1 - "4 4 default" # 1 "5 5 reserved-word" # ) ) diff --git a/highlighters/main/test-data/assign-value-quote1.zsh b/highlighters/main/test-data/assign-value-quote1.zsh deleted file mode 100644 index b6d04fe..0000000 --- a/highlighters/main/test-data/assign-value-quote1.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=$'s="foo\'bar"' - -expected_region_highlight=( - '1 11 assign' # s="foo'bar" - '3 11 default' # "foo'bar" - '3 11 double-quoted-argument' # "foo'bar" -) diff --git a/highlighters/main/test-data/assign-value-quote2.zsh b/highlighters/main/test-data/assign-value-quote2.zsh deleted file mode 100644 index 3c5f93b..0000000 --- a/highlighters/main/test-data/assign-value-quote2.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=$'s="foo \'\' bar"' - -expected_region_highlight=( - '1 14 assign' # s="foo '' bar" - '3 14 default' # "foo '' bar" - '3 14 double-quoted-argument' # "foo '' bar" -) diff --git a/highlighters/main/test-data/assign.zsh b/highlighters/main/test-data/assign.zsh index c6e8532..713a5f2 100644 --- a/highlighters/main/test-data/assign.zsh +++ b/highlighters/main/test-data/assign.zsh @@ -31,12 +31,8 @@ BUFFER='A=1 b=("foo" bar)' 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/assignment-quoted.zsh b/highlighters/main/test-data/assignment-quoted.zsh deleted file mode 100644 index 18638ad..0000000 --- a/highlighters/main/test-data/assignment-quoted.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="foo"' - -expected_region_highlight=( - '1 7 assign' # 1="foo" - '3 7 default' # "foo" - '3 7 double-quoted-argument' # "foo" -) diff --git a/highlighters/main/test-data/back-quoted-argument.zsh b/highlighters/main/test-data/back-quoted-argument.zsh index d504a2c..f8329ea 100644 --- a/highlighters/main/test-data/back-quoted-argument.zsh +++ b/highlighters/main/test-data/back-quoted-argument.zsh @@ -27,32 +27,8 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER='echo `echo \`42\`` "is `echo equal` to" `echo 6 times 9' +BUFFER='echo `echo 42`' expected_region_highlight=( - "1 4 builtin" # echo - "6 18 default" # `echo \`42\`` - "6 18 back-quoted-argument" # `echo \`42\`` - "6 6 back-quoted-argument-delimiter" # ` - "7 10 builtin" # echo - "12 17 default" # \`42\` - "12 17 back-quoted-argument" # \`42\` - "12 13 back-quoted-argument-delimiter" # \` - "14 15 unknown-token" # 42 - "16 17 back-quoted-argument-delimiter" # \` - "18 18 back-quoted-argument-delimiter" # ` - "20 39 default" # "is `echo equal` to" - "20 39 double-quoted-argument" # "is `echo equal` to" - "24 35 back-quoted-argument" # `echo equal` - "24 24 back-quoted-argument-delimiter" # ` - "25 28 builtin" # echo - "30 34 default" # equal - "35 35 back-quoted-argument-delimiter" # ` - "41 55 default" # `echo 6 times 9 - "41 55 back-quoted-argument-unclosed" # `echo 6 times 9 - "41 41 back-quoted-argument-delimiter" # ` - "42 45 builtin" # echo - "47 47 default" # 6 - "49 53 default" # times - "55 55 default" # 9 + "6 14 back-quoted-argument" ) diff --git a/highlighters/main/test-data/back-quoted-open.zsh b/highlighters/main/test-data/back-quoted-open.zsh deleted file mode 100644 index f188d81..0000000 --- a/highlighters/main/test-data/back-quoted-open.zsh +++ /dev/null @@ -1,41 +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 -# ------------------------------------------------------------------------------------------------- - -touch foo -BUFFER=$': `ls fo' - -expected_region_highlight=( - '1 1 builtin' # : - '3 8 default' # `ls fo - '3 8 back-quoted-argument-unclosed' # `ls fo - '3 3 back-quoted-argument-delimiter' # ` - '4 5 command' # ls - '7 8 path_prefix' # fo -) 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/backslash-space.zsh b/highlighters/main/test-data/backslash-space.zsh deleted file mode 100644 index 0d8a63c..0000000 --- a/highlighters/main/test-data/backslash-space.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 -# ------------------------------------------------------------------------------------------------- - -BUFFER=$'echo \\ \'foo\' ; ls' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 12 default' # \ \'foo\' - '8 12 single-quoted-argument' # 'foo' - '14 14 commandseparator' # ; - '16 17 command' # ls -) diff --git a/highlighters/main/test-data/backslash.zsh b/highlighters/main/test-data/backslash.zsh deleted file mode 100644 index ea0977f..0000000 --- a/highlighters/main/test-data/backslash.zsh +++ /dev/null @@ -1,34 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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=$'\\' - -expected_region_highlight=( - '1 1 unknown-token' # \\ -) diff --git a/highlighters/main/test-data/bang-assign-array.zsh b/highlighters/main/test-data/bang-assign-array.zsh deleted file mode 100644 index a54cf2d..0000000 --- a/highlighters/main/test-data/bang-assign-array.zsh +++ /dev/null @@ -1,42 +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=$'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/bang-assign-scalar.zsh b/highlighters/main/test-data/bang-assign-scalar.zsh deleted file mode 100644 index e919050..0000000 --- a/highlighters/main/test-data/bang-assign-scalar.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=$'foo=bar \! ls' - -expected_region_highlight=( - '1 7 assign' # foo=bar - '5 7 default' # bar - '9 9 unknown-token' # \! - '11 12 command' # ls -) diff --git a/highlighters/main/test-data/bang-pipeline.zsh b/highlighters/main/test-data/bang-pipeline.zsh deleted file mode 100644 index fef25f1..0000000 --- a/highlighters/main/test-data/bang-pipeline.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 -# ------------------------------------------------------------------------------------------------- - -BUFFER=$'\! ls | \! ls' - -expected_region_highlight=( - '1 1 reserved-word' # \! - '3 4 command' # ls - '6 6 commandseparator' # | - '8 8 unknown-token' # \! - '10 11 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/brackets-matching1.zsh b/highlighters/main/test-data/brackets-matching1.zsh deleted file mode 100644 index 7cc6de5..0000000 --- a/highlighters/main/test-data/brackets-matching1.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='[[ -n foo ]]' - -expected_region_highlight=( - '1 2 reserved-word' # [[ - '4 5 single-hyphen-option' # -n - '7 9 default' # foo - '11 12 reserved-word' # ]] -) diff --git a/highlighters/main/test-data/brackets-matching2.zsh b/highlighters/main/test-data/brackets-matching2.zsh deleted file mode 100644 index 19c7f0d..0000000 --- a/highlighters/main/test-data/brackets-matching2.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='[ -n foo ]' - -expected_region_highlight=( - '1 1 builtin' # [ - '3 4 single-hyphen-option' # -n - '6 8 default' # foo - '10 10 builtin' # ] -) diff --git a/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh b/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh deleted file mode 100644 index 9d0b53c..0000000 --- a/highlighters/main/test-data/brackets-mismatch10-if-negative.zsh +++ /dev/null @@ -1,42 +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='elif true; then echo two; fi' - -expected_region_highlight=( - '1 4 unknown-token' # elif - '6 9 builtin' # true - '10 10 commandseparator' # ; - '12 15 unknown-token' # then - '17 20 builtin' # echo - '22 24 default' # two - '25 25 commandseparator' # ; - '27 28 unknown-token' # fi -) diff --git a/highlighters/main/test-data/brackets-mismatch7.zsh b/highlighters/main/test-data/brackets-mismatch7.zsh index 1caa936..27d5920 100644 --- a/highlighters/main/test-data/brackets-mismatch7.zsh +++ b/highlighters/main/test-data/brackets-mismatch7.zsh @@ -34,7 +34,6 @@ expected_region_highlight=( '1 3 reserved-word' # for '5 5 default' # n '7 8 default' # in - '10 10 default' # * '10 10 globbing' # * '11 11 commandseparator' # ; '13 14 reserved-word' # do diff --git a/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh b/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh deleted file mode 100644 index d6838f0..0000000 --- a/highlighters/main/test-data/brackets-mismatch8-if-positive.zsh +++ /dev/null @@ -1,53 +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='if false; then echo one; elif true; then echo two; else echo three; fi' - -expected_region_highlight=( - '1 2 reserved-word' # if - '4 8 builtin' # false - '9 9 commandseparator' # ; - '11 14 reserved-word' # then - '16 19 builtin' # echo - '21 23 default' # one - '24 24 commandseparator' # ; - '26 29 reserved-word' # elif - '31 34 builtin' # true - '35 35 commandseparator' # ; - '37 40 reserved-word' # then - '42 45 builtin' # echo - '47 49 default' # two - '50 50 commandseparator' # ; - '52 55 reserved-word' # else - '57 60 builtin' # echo - '62 66 default' # three - '67 67 commandseparator' # ; - '69 70 reserved-word' # fi -) diff --git a/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh b/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh deleted file mode 100644 index 87c1ba7..0000000 --- a/highlighters/main/test-data/brackets-mismatch9-if-positive.zsh +++ /dev/null @@ -1,42 +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='if false; then echo one; fi' - -expected_region_highlight=( - '1 2 reserved-word' # if - '4 8 builtin' # false - '9 9 commandseparator' # ; - '11 14 reserved-word' # then - '16 19 builtin' # echo - '21 23 default' # one - '24 24 commandseparator' # ; - '26 27 reserved-word' # fi -) diff --git a/highlighters/main/test-data/brackets-premature-termination.zsh b/highlighters/main/test-data/brackets-premature-termination.zsh deleted file mode 100644 index fa813da..0000000 --- a/highlighters/main/test-data/brackets-premature-termination.zsh +++ /dev/null @@ -1,40 +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='[[ -n foo; echo ]]' - -expected_region_highlight=( - '1 2 reserved-word' # [[ - '4 5 single-hyphen-option' # -n - '7 9 default' # foo - '10 10 unknown-token' # ; - '12 15 builtin' # echo - '17 18 default' # ]] -) 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/cmdpos-elision-partial.zsh b/highlighters/main/test-data/cmdpos-elision-partial.zsh deleted file mode 100644 index 6eda0d7..0000000 --- a/highlighters/main/test-data/cmdpos-elision-partial.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 -# ------------------------------------------------------------------------------------------------- - -# Test elision of some, but not all of the words -# See issue #667 for the case of eliding all words -local -a x; x=(sudo "") - -sudo(){} -BUFFER=$'$x -u phy1729 ls' - -expected_region_highlight=( - '1 2 precommand' # $x - # The "" is elided. If it weren't elided, the «ls» would be highlighted as an ordinary argument. - '4 5 single-hyphen-option' # -u - '7 13 default' # phy1729 - '15 16 command' # ls -) diff --git a/highlighters/main/test-data/command-substitution-adjacent.zsh b/highlighters/main/test-data/command-substitution-adjacent.zsh deleted file mode 100644 index 3d5c0b9..0000000 --- a/highlighters/main/test-data/command-substitution-adjacent.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='echo "$(echo)$(echo)' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 20 default' # "$(echo)$(echo) - '6 6 double-quoted-argument-unclosed' # " - '7 13 command-substitution-quoted' # $(echo) - '7 8 command-substitution-delimiter-quoted' # $( - '9 12 builtin' # echo - '13 13 command-substitution-delimiter-quoted' # ) - '14 20 command-substitution-quoted' # $(echo) - '14 15 command-substitution-delimiter-quoted' # $( - '16 19 builtin' # echo - '20 20 command-substitution-delimiter-quoted' # ) -) diff --git a/highlighters/main/test-data/command-substitution-in-assignment.zsh b/highlighters/main/test-data/command-substitution-in-assignment.zsh deleted file mode 100644 index fafda49..0000000 --- a/highlighters/main/test-data/command-substitution-in-assignment.zsh +++ /dev/null @@ -1,42 +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=$'foo=$(echo bar) :' - -expected_region_highlight=( - '1 15 assign' # foo=$(echo bar) - '5 15 default' # $(echo bar) - '5 15 command-substitution-unquoted' # $(echo bar) - '5 6 command-substitution-delimiter-unquoted' # $( - '7 10 builtin' # echo - '12 14 default' # bar - '15 15 command-substitution-delimiter-unquoted' # ) - '17 17 builtin' # : -) diff --git a/highlighters/main/test-data/command-substitution-unclosed.zsh b/highlighters/main/test-data/command-substitution-unclosed.zsh deleted file mode 100644 index 3229dfc..0000000 --- a/highlighters/main/test-data/command-substitution-unclosed.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=$': foo$(echo bar' - -expected_region_highlight=( - '1 1 builtin' # : - '3 15 default' # foo$(echo bar - '6 15 command-substitution-unquoted' # $(echo bar - '6 7 command-substitution-delimiter-unquoted' # $( - '8 11 builtin' # echo - '13 15 default' # bar -) - -if [[ ${(z):-'$('} == '$( ' ]]; then # ignore zsh 5.0.8 bug - expected_region_highlight[2]='3 16 default' # foo$(echo bar - expected_region_highlight[3]='6 16 command-substitution-unquoted' # $(echo bar -fi diff --git a/highlighters/main/test-data/commandseparator.zsh b/highlighters/main/test-data/commandseparator.zsh index f504847..e8d93a6 100644 --- a/highlighters/main/test-data/commandseparator.zsh +++ b/highlighters/main/test-data/commandseparator.zsh @@ -30,7 +30,6 @@ BUFFER=':; pwd &! ls' expected_region_highlight=( - "1 1 builtin" # : "2 2 commandseparator" # ; "4 6 builtin" # pwd "8 9 commandseparator" # &! diff --git a/highlighters/main/test-data/comment-followed.zsh b/highlighters/main/test-data/comment-followed.zsh deleted file mode 100644 index 044f283..0000000 --- a/highlighters/main/test-data/comment-followed.zsh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 alias-comment1.zsh -setopt interactivecomments -BUFFER=$'# foo\ntrue' - -expected_region_highlight=( - '1 5 comment' # # foo - '6 6 commandseparator' # \n - '7 10 builtin' # true -) diff --git a/highlighters/main/test-data/comment-leading.zsh b/highlighters/main/test-data/comment-leading.zsh index b4c9910..f750cc4 100644 --- a/highlighters/main/test-data/comment-leading.zsh +++ b/highlighters/main/test-data/comment-leading.zsh @@ -32,5 +32,6 @@ setopt interactive_comments BUFFER='# echo foo' expected_region_highlight=( - "1 10 comment" # # echo foo + "1 1 comment" # # + "2 10 comment" # " echo foo" ) diff --git a/highlighters/main/test-data/comments.zsh b/highlighters/main/test-data/comments.zsh index f3cc57e..3bb008e 100644 --- a/highlighters/main/test-data/comments.zsh +++ b/highlighters/main/test-data/comments.zsh @@ -33,7 +33,6 @@ BUFFER='echo "foo #bar" #baz # quux' expected_region_highlight=( "1 4 builtin" # echo - "6 15 default" # "foo #bar" "6 15 double-quoted-argument" # "foo #bar" "17 27 comment" # #baz # quux ) diff --git a/highlighters/main/test-data/commmand-parameter.zsh b/highlighters/main/test-data/commmand-parameter.zsh index 48d20ba..fb43e9e 100644 --- a/highlighters/main/test-data/commmand-parameter.zsh +++ b/highlighters/main/test-data/commmand-parameter.zsh @@ -27,19 +27,10 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -local x=/usr/bin/env -local y=sudo -local -a z; z=(zsh -f) -sudo(){} - -BUFFER='$x "argument"; $y; $z' +x=/usr/bin/env +BUFFER='$x "argument"' expected_region_highlight=( "1 2 command" # $x - "4 13 default" # "argument" "4 13 double-quoted-argument" # "argument" - "14 14 commandseparator" # ; - "16 17 precommand" # $y (sudo) - "18 18 unknown-token" # ; - "20 21 command" # $z - 'zsh' being the command ) diff --git a/highlighters/main/test-data/control-flow.zsh b/highlighters/main/test-data/control-flow.zsh index a610bdc..2f6a160 100644 --- a/highlighters/main/test-data/control-flow.zsh +++ b/highlighters/main/test-data/control-flow.zsh @@ -34,24 +34,17 @@ expected_region_highlight+=( "7 8 reserved-word" # if "10 13 builtin" # echo "15 19 default" # Hello - "20 20 commandseparator" # ; "22 25 reserved-word" # then "27 28 command" # ls "30 30 path" # / "31 31 commandseparator" # ; "33 36 reserved-word" # else "38 39 command" # ls - "40 40 commandseparator" # ; "42 43 reserved-word" # fi - "44 44 commandseparator" # ; "46 47 reserved-word" # do "49 52 command" # stat - "54 56 default" # "x" "54 56 double-quoted-argument" # "x" - "57 57 commandseparator" # ; "59 62 reserved-word" # done - "63 63 commandseparator" # ; "65 70 reserved-word" # repeat - "72 73 default" # 10 "75 76 command" # ls ) diff --git a/highlighters/main/test-data/cthulhu.zsh b/highlighters/main/test-data/cthulhu.zsh deleted file mode 100644 index c8119a8..0000000 --- a/highlighters/main/test-data/cthulhu.zsh +++ /dev/null @@ -1,70 +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 -# ------------------------------------------------------------------------------------------------- - -# 0000000 0 01111111111222222 222233333 3 333344 4 4 444444555555555 5 6 6666 6 6 6667777777777888 8 8 88888999 9 9999 9 9 00 00 0000001111 -# 1234567 8 90123456789012345 678901234 5 678901 2 3 456789012345678 9 0 1234 5 6 7890123456789012 3 4 56789012 3 4567 8 9 01 23 4567890123 -BUFFER=$'echo Ph\\\'ng`echo lui "mg"\\`echo lw\\\'nafh \\\\\\`echo Cthu"lhu\\\\\\` R\\\\\'ly$(echo eh wag\\\\\\`echo h\\\'nag\\\\\\`\'l\' fht)agn`' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 113 default' # Ph\'ng`echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` - '12 113 back-quoted-argument' # `echo lui "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn` - '12 12 back-quoted-argument-delimiter' # ` - '13 16 builtin' # echo - '18 20 default' # lui - '22 112 default' # "mg"\`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn - '22 25 double-quoted-argument' # "mg" - '26 112 back-quoted-argument-unclosed' # \`echo lw\'nafh \\\`echo Cthu"lhu\\\` R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn - '26 27 back-quoted-argument-delimiter' # \` - '28 31 builtin' # echo - '33 40 default' # lw\'nafh - '42 62 default' # \\\`echo Cthu"lhu\\\` - '42 62 back-quoted-argument' # \\\`echo Cthu"lhu\\\` - '42 45 back-quoted-argument-delimiter' # \\\` - '46 49 builtin' # echo - '51 58 default' # Cthu"lhu - '55 58 double-quoted-argument-unclosed' # "lhu - '59 62 back-quoted-argument-delimiter' # \\\` - '64 112 default' # R\\'ly$(echo eh wag\\\`echo h\'nag\\\`'l' fht)agn - '70 109 command-substitution-unquoted' # $(echo eh wag\\\`echo h\'nag\\\`'l' fht) - '70 71 command-substitution-delimiter-unquoted' # $( - '72 75 builtin' # echo - '77 78 default' # eh - '80 104 default' # wag\\\`echo h\'nag\\\`'l' - '83 101 back-quoted-argument' # \\\`echo h\'nag\\\` - '83 86 back-quoted-argument-delimiter' # \\\` - '87 90 builtin' # echo - '92 97 default' # h\'nag - '98 101 back-quoted-argument-delimiter' # \\\` - '102 104 single-quoted-argument' # 'l' - '106 108 default' # fht - '109 109 command-substitution-delimiter-unquoted' # ) - '113 113 unknown-token' # ` -) 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/dirs_blacklist.zsh b/highlighters/main/test-data/dirs_blacklist.zsh deleted file mode 100644 index 2d0222f..0000000 --- a/highlighters/main/test-data/dirs_blacklist.zsh +++ /dev/null @@ -1,40 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -mkdir foo -touch foo/bar -BUFFER=": foo/bar $PWD/foo foo/b" -ZSH_HIGHLIGHT_DIRS_BLACKLIST=($PWD/foo $PWD/bar) - -expected_region_highlight=( - '1 1 builtin' # : - '3 9 default' # foo/bar - "11 $(( 14 + $#PWD )) default" # $PWD/foo - "$(( 16 + $#PWD )) $(( 20 + $#PWD )) default" # foo/b -) diff --git a/highlighters/main/test-data/dollar-dollar.zsh b/highlighters/main/test-data/dollar-dollar.zsh index e3f387c..79d7f7d 100644 --- a/highlighters/main/test-data/dollar-dollar.zsh +++ b/highlighters/main/test-data/dollar-dollar.zsh @@ -32,8 +32,8 @@ BUFFER=': "$$ $$foo"' expected_region_highlight=( '1 1 builtin' # : - '3 12 default' # "$$ $$foo" - '3 12 double-quoted-argument' # "$$ $$foo" + '3 3 double-quoted-argument' # " '4 5 dollar-double-quoted-argument' # $$ '7 8 dollar-double-quoted-argument' # $$ + '9 12 double-quoted-argument' # foo" ) diff --git a/highlighters/main/test-data/dollar-noise.zsh b/highlighters/main/test-data/dollar-noise.zsh index 9bb11bd..e900b02 100644 --- a/highlighters/main/test-data/dollar-noise.zsh +++ b/highlighters/main/test-data/dollar-noise.zsh @@ -32,11 +32,15 @@ BUFFER=': "$- $# $* $@ $?"' expected_region_highlight=( '1 1 builtin' # : - '3 18 default' # "$- $# $* $@ $?" - '3 18 double-quoted-argument' # "$- $# $* $@ $?" + '3 3 double-quoted-argument' # " '4 5 dollar-double-quoted-argument' # $- + '6 6 double-quoted-argument' # '7 8 dollar-double-quoted-argument' # $# + '9 9 double-quoted-argument' # '10 11 dollar-double-quoted-argument' # $* + '12 12 double-quoted-argument' # '13 14 dollar-double-quoted-argument' # $@ + '15 15 double-quoted-argument' # '16 17 dollar-double-quoted-argument' # $? + '18 18 double-quoted-argument' # " ) diff --git a/highlighters/main/test-data/dollar-paren.zsh b/highlighters/main/test-data/dollar-paren.zsh index 2bbcef1..354daa0 100644 --- a/highlighters/main/test-data/dollar-paren.zsh +++ b/highlighters/main/test-data/dollar-paren.zsh @@ -28,22 +28,11 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER=': "$(:)" "foo$(:)bar' +BUFFER=': "$(:)"' expected_region_highlight=( '1 1 builtin' # : - '3 8 default' # "$(:)" - '3 3 double-quoted-argument' # "$(:)" - '8 8 double-quoted-argument' # "$(:)" - '4 7 command-substitution-quoted' # $(:) - '4 5 command-substitution-delimiter-quoted' # $( - '6 6 builtin' # : - '7 7 command-substitution-delimiter-quoted' # ) - '10 20 default' # "foo$(:)bar - '10 13 double-quoted-argument-unclosed' # "foo - '18 20 double-quoted-argument-unclosed' # bar - '14 17 command-substitution-quoted' # $(:) - '14 15 command-substitution-delimiter-quoted' # $( - '16 16 builtin' # : - '17 17 command-substitution-delimiter-quoted' # ) + '3 3 double-quoted-argument' # " + '4 4 dollar-double-quoted-argument' # $ + '5 8 double-quoted-argument' # (:)" ) diff --git a/highlighters/main/test-data/dollar-quoted.zsh b/highlighters/main/test-data/dollar-quoted.zsh index 081a365..8c4c16f 100644 --- a/highlighters/main/test-data/dollar-quoted.zsh +++ b/highlighters/main/test-data/dollar-quoted.zsh @@ -30,9 +30,6 @@ BUFFER=": \$'*' 'foo'" expected_region_highlight=( - "1 1 builtin" # : - "3 6 default" # $'*' "3 6 dollar-quoted-argument" # $'*' - not a glob - "8 12 default" # 'foo' "8 12 single-quoted-argument" # 'foo' ) diff --git a/highlighters/main/test-data/dollar-quoted2.zsh b/highlighters/main/test-data/dollar-quoted2.zsh index ed7428b..a69373f 100644 --- a/highlighters/main/test-data/dollar-quoted2.zsh +++ b/highlighters/main/test-data/dollar-quoted2.zsh @@ -30,10 +30,11 @@ BUFFER=": \$'foo\xbar\udeadbeef\uzzzz'" expected_region_highlight=( - "1 1 builtin" # : - "3 29 default" # $'foo\xbar\udeadbeef\uzzzz' - "3 29 dollar-quoted-argument" # $'foo\xbar\udeadbeef\uzzzz' + "3 7 dollar-quoted-argument" # $'foo "8 11 back-dollar-quoted-argument" # \xba + "12 12 dollar-quoted-argument" # r "13 18 back-dollar-quoted-argument" # \dead + "19 22 dollar-quoted-argument" # beef "23 24 unknown-token" # \u + "25 29 dollar-quoted-argument" # zzzz' ) diff --git a/highlighters/main/test-data/dollar-quoted3.zsh b/highlighters/main/test-data/dollar-quoted3.zsh index 365f351..320cd94 100644 --- a/highlighters/main/test-data/dollar-quoted3.zsh +++ b/highlighters/main/test-data/dollar-quoted3.zsh @@ -32,8 +32,6 @@ BUFFER=": \$'\xa1" expected_region_highlight=( - "1 1 builtin" # : - "3 8 default" # $'\xa1 - "3 8 dollar-quoted-argument-unclosed" # $'\xa1 + "3 4 dollar-quoted-argument" # $' "5 8 back-dollar-quoted-argument" # \xa1 ) diff --git a/highlighters/main/test-data/double-hyphen-option.zsh b/highlighters/main/test-data/double-hyphen-option.zsh index e5cacd3..9728cd8 100644 --- a/highlighters/main/test-data/double-hyphen-option.zsh +++ b/highlighters/main/test-data/double-hyphen-option.zsh @@ -30,6 +30,5 @@ BUFFER='hello --world' expected_region_highlight=( - "1 5 unknown-token" # hello "7 13 double-hyphen-option" # --world ) diff --git a/highlighters/main/test-data/double-quoted.zsh b/highlighters/main/test-data/double-quoted.zsh index 0a4336c..7e379f8 100644 --- a/highlighters/main/test-data/double-quoted.zsh +++ b/highlighters/main/test-data/double-quoted.zsh @@ -31,12 +31,15 @@ BUFFER=': "foo$bar:\`:\":\$:' BUFFER+=\\\\:\" expected_region_highlight=( - "1 1 builtin" # : - "3 24 default" # "foo$bar:\`:\":\$:\\:" - "3 24 double-quoted-argument" # "foo$bar:\`:\":\$:\\:" + "3 6 double-quoted-argument" # "foo "7 10 dollar-double-quoted-argument" # $bar + "11 11 double-quoted-argument" # : "12 13 back-double-quoted-argument" # \` + "14 14 double-quoted-argument" # : "15 16 back-double-quoted-argument" # \$ + "17 17 double-quoted-argument" # : "18 19 back-double-quoted-argument" # \" + "20 20 double-quoted-argument" # : "21 22 back-double-quoted-argument" # \\ + "23 24 double-quoted-argument" # :" ) diff --git a/highlighters/main/test-data/double-quoted2.zsh b/highlighters/main/test-data/double-quoted2.zsh index c400e54..1538423 100644 --- a/highlighters/main/test-data/double-quoted2.zsh +++ b/highlighters/main/test-data/double-quoted2.zsh @@ -32,8 +32,6 @@ BUFFER=': "foo$bar' expected_region_highlight=( - "1 1 builtin" # : - "3 10 default" # "foo$bar - "3 10 double-quoted-argument-unclosed" # "foo$bar + "3 6 double-quoted-argument" # "foo "7 10 dollar-double-quoted-argument" # $bar ) diff --git a/highlighters/main/test-data/double-quoted3.zsh b/highlighters/main/test-data/double-quoted3.zsh index 86e3ced..39514e0 100644 --- a/highlighters/main/test-data/double-quoted3.zsh +++ b/highlighters/main/test-data/double-quoted3.zsh @@ -31,12 +31,9 @@ BUFFER=': "$" "$42foo"' BUFFER+=\ \"\\\'\\x\" expected_region_highlight=( - "1 1 builtin" # : - "3 5 default" # "$" "3 5 double-quoted-argument" # "$" - "7 14 default" # "$42foo" - "7 14 double-quoted-argument" # "$42foo" + "7 7 double-quoted-argument" # " "8 10 dollar-double-quoted-argument" # $42 - "16 21 default" # "\'\x" + "11 14 double-quoted-argument" # foo" "16 21 double-quoted-argument" # "\'\x" - \' and \x are not escape sequences ) diff --git a/highlighters/main/test-data/double-quoted4.zsh b/highlighters/main/test-data/double-quoted4.zsh index c59d5d8..51bb25e 100644 --- a/highlighters/main/test-data/double-quoted4.zsh +++ b/highlighters/main/test-data/double-quoted4.zsh @@ -30,8 +30,7 @@ BUFFER=': "${foo}bar"' expected_region_highlight=( - "1 1 builtin" # : - "3 13 default" # "${foo}bar" - "3 13 double-quoted-argument" # "${foo}bar" + "3 3 double-quoted-argument" # " "4 9 dollar-double-quoted-argument" # ${foo} + "10 13 double-quoted-argument" # bar" ) diff --git a/highlighters/main/test-data/empty-command-newline.zsh b/highlighters/main/test-data/empty-command-newline.zsh deleted file mode 100644 index 4b7b35c..0000000 --- a/highlighters/main/test-data/empty-command-newline.zsh +++ /dev/null @@ -1,39 +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 -# ------------------------------------------------------------------------------------------------- - -# Newline after semicolon isn't unknown-token -BUFFER=$':;\n:' - -expected_region_highlight=( - '1 1 builtin' # : - '2 2 commandseparator' # ; - '3 3 commandseparator' # \n - '4 4 builtin' # : -) diff --git a/highlighters/main/test-data/empty-command.zsh b/highlighters/main/test-data/empty-command.zsh index 5831464..6e68184 100644 --- a/highlighters/main/test-data/empty-command.zsh +++ b/highlighters/main/test-data/empty-command.zsh @@ -30,7 +30,6 @@ BUFFER='echo; ;' expected_region_highlight=( - "1 4 builtin" # echo "5 5 commandseparator" # ; "7 7 unknown-token" # ; ) diff --git a/highlighters/main/test-data/empty-command2.zsh b/highlighters/main/test-data/empty-command2.zsh index dcb4e6f..698b3a7 100644 --- a/highlighters/main/test-data/empty-command2.zsh +++ b/highlighters/main/test-data/empty-command2.zsh @@ -33,7 +33,6 @@ touch ';' BUFFER='echo; ;' expected_region_highlight=( - "1 4 builtin" # echo "5 5 commandseparator" # ; "7 7 unknown-token" # ; ) diff --git a/highlighters/main/test-data/empty-line.zsh b/highlighters/main/test-data/empty-line.zsh deleted file mode 100644 index a4d6685..0000000 --- a/highlighters/main/test-data/empty-line.zsh +++ /dev/null @@ -1,36 +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=$'\\\n; ls' - -expected_region_highlight=( - '3 3 unknown-token' # ; - '5 6 command' # ls -) 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/escaped-single-quote.zsh b/highlighters/main/test-data/escaped-single-quote.zsh deleted file mode 100644 index 4b2fe4b..0000000 --- a/highlighters/main/test-data/escaped-single-quote.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=$': \'foo\'\\\'\'bar\'' # <<<: 'foo'\''bar'>>> - -expected_region_highlight=( - '1 1 builtin' # : - '3 14 default' # 'foo'\''bar' - '3 7 single-quoted-argument' # 'foo' - '10 14 single-quoted-argument' # 'bar' -) diff --git a/highlighters/main/test-data/exec-redirection1.zsh b/highlighters/main/test-data/exec-redirection1.zsh index 78a0c62..caec2f1 100644 --- a/highlighters/main/test-data/exec-redirection1.zsh +++ b/highlighters/main/test-data/exec-redirection1.zsh @@ -31,8 +31,8 @@ BUFFER='exec {foo}>&/tmp ls' expected_region_highlight=( "1 4 precommand" # exec - "6 10 named-fd" # {foo} + "6 10 redirection 'issue #238'" # {foo} "11 12 redirection" # >& "13 16 path" # /tmp - "18 19 command" # ls + "18 19 command 'issue #238'" # ls ) 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/function-altsyntax.zsh b/highlighters/main/test-data/function-altsyntax.zsh deleted file mode 100644 index 0f9a833..0000000 --- a/highlighters/main/test-data/function-altsyntax.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 -# ------------------------------------------------------------------------------------------------- - -# Define named and anonymous function using the alternative syntax -BUFFER=$'function f { pwd }; function { pwd }' - -expected_region_highlight=( - '1 8 reserved-word' # function - '10 10 default' # f - '12 12 reserved-word "issue #237"' # { - '14 16 command "issue #237"' # pwd - '18 18 reserved-word "issue #237"' # } - '19 19 commandseparator' # ; - '21 28 reserved-word' # function - '30 30 reserved-word "issue #237"' # { - '32 34 command "issue #237"' # pwd - '36 36 reserved-word "issue #237"' # } -) diff --git a/highlighters/main/test-data/function.zsh b/highlighters/main/test-data/function.zsh index b1be853..6876391 100644 --- a/highlighters/main/test-data/function.zsh +++ b/highlighters/main/test-data/function.zsh @@ -37,6 +37,8 @@ BUFFER='cd;ls' expected_region_highlight=( "1 2 function" # cd - "3 3 commandseparator" # ; "4 5 function" # ls ) + +# don't 'unfunction cd ls', since cd() and ls() should still be a functions +# when _zsh_highlight runs. Leaving the wrapper functions is harmless. diff --git a/highlighters/main/test-data/glob.zsh b/highlighters/main/test-data/glob.zsh index 2ff1022..2fd9c6f 100644 --- a/highlighters/main/test-data/glob.zsh +++ b/highlighters/main/test-data/glob.zsh @@ -31,11 +31,8 @@ BUFFER=': foo* bar? *baz qux\?' expected_region_highlight=( "1 1 builtin" # : - "3 6 default" # foo* - "6 6 globbing" # * - "8 11 default" # bar? - "11 11 globbing" # ? - "13 16 default" # *baz - "13 13 globbing" # * + "3 6 globbing" # foo* + "8 11 globbing" # bar? + "13 16 globbing" # *baz "18 22 default" # qux\? ) 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/globs-with-quoting.zsh b/highlighters/main/test-data/globs-with-quoting.zsh deleted file mode 100644 index d7d74bc..0000000 --- a/highlighters/main/test-data/globs-with-quoting.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 -# ------------------------------------------------------------------------------------------------- - -BUFFER=$': "foo"*\'bar\'?"baz?"<17-29>"qu*ux"' - -expected_region_highlight=( - '1 1 builtin' # : - '3 34 default' # "foo"*'bar'?"baz?"<17-29>"qu*ux" - '3 7 double-quoted-argument' # "foo" - '8 8 globbing' # * - '9 13 single-quoted-argument' # 'bar' - '14 14 globbing' # ? - '15 20 double-quoted-argument' # "baz?" - '21 27 globbing' # <17-29> - '28 34 double-quoted-argument' # "qu*ux" -) diff --git a/highlighters/main/test-data/history-double-quoted-escaped.zsh b/highlighters/main/test-data/history-double-quoted-escaped.zsh index 7807cc0..c447a78 100644 --- a/highlighters/main/test-data/history-double-quoted-escaped.zsh +++ b/highlighters/main/test-data/history-double-quoted-escaped.zsh @@ -32,7 +32,7 @@ BUFFER='echo "Hello\!"' expected_region_highlight=( '1 4 builtin' # echo - '6 14 default' # "Hello\!" - '6 14 double-quoted-argument' # "Hello\!" + '6 11 double-quoted-argument' # "Hello '12 13 back-double-quoted-argument' # \! + '14 14 double-quoted-argument' # "Hello\!" ) 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/history-double-quoted-no.zsh b/highlighters/main/test-data/history-double-quoted-no.zsh deleted file mode 100644 index e082dbc..0000000 --- a/highlighters/main/test-data/history-double-quoted-no.zsh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 != bar !{baz}"' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 24 default' # "foo != bar !{baz}" - '6 24 double-quoted-argument' # "foo != bar !{baz}" - no history expansions -) diff --git a/highlighters/main/test-data/history-double-quoted-unescaped.zsh b/highlighters/main/test-data/history-double-quoted-unescaped.zsh deleted file mode 100644 index cfe6a11..0000000 --- a/highlighters/main/test-data/history-double-quoted-unescaped.zsh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 "Hello!"' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 13 default' # "Hello!" - '6 13 double-quoted-argument' # "Hello!" - '12 12 history-expansion' # ! -) diff --git a/highlighters/main/test-data/history-double-quoted-yes.zsh b/highlighters/main/test-data/history-double-quoted-yes.zsh deleted file mode 100644 index e963c3b..0000000 --- a/highlighters/main/test-data/history-double-quoted-yes.zsh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 !bar"' - -expected_region_highlight=( - '1 4 builtin' # echo - '6 15 default' # "foo !bar" - '6 15 double-quoted-argument' # "foo !bar" - '11 11 history-expansion' # ! -) diff --git a/highlighters/main/test-data/history-expansion.zsh b/highlighters/main/test-data/history-expansion.zsh index 05e20fc..3e23711 100644 --- a/highlighters/main/test-data/history-expansion.zsh +++ b/highlighters/main/test-data/history-expansion.zsh @@ -33,7 +33,6 @@ expected_region_highlight=( "1 4 history-expansion" # !foo "6 8 default" # bar "10 13 history-expansion" # !baz - "15 15 default" # ! - "17 17 commandseparator" # ; - "19 19 reserved-word" # ! + "15 15 default" # ! (before the semicolon) + "19 19 reserved-word" # ! (after the semicolon) ) diff --git a/highlighters/main/test-data/jobsubst-isnt-glob.zsh b/highlighters/main/test-data/jobsubst-isnt-glob.zsh deleted file mode 100644 index 3a7e325..0000000 --- a/highlighters/main/test-data/jobsubst-isnt-glob.zsh +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2018.9958 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' - -expected_region_highlight=( - '1 1 builtin' # : - '3 4 default' # %? - '6 10 default' # %?foo -) diff --git a/highlighters/main/test-data/jobsubst-isnt-glob2.zsh b/highlighters/main/test-data/jobsubst-isnt-glob2.zsh deleted file mode 100644 index 51930bf..0000000 --- a/highlighters/main/test-data/jobsubst-isnt-glob2.zsh +++ /dev/null @@ -1,37 +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=$': foo%?bar' - -expected_region_highlight=( - '1 1 builtin' # : - '3 10 default' # foo%?bar - '7 7 globbing' # ? -) diff --git a/highlighters/main/test-data/loop-newline.zsh b/highlighters/main/test-data/loop-newline.zsh deleted file mode 100644 index d39ee11..0000000 --- a/highlighters/main/test-data/loop-newline.zsh +++ /dev/null @@ -1,40 +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=$'for i in \\\n; do done' - -expected_region_highlight=( - '1 3 reserved-word' # for - '5 5 default' # i - '7 8 default' # in - '12 12 commandseparator' # ; - '14 15 reserved-word' # do - '17 20 reserved-word' # done -) 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/multiline-string.zsh b/highlighters/main/test-data/multiline-string.zsh index 0127b4b..484c951 100644 --- a/highlighters/main/test-data/multiline-string.zsh +++ b/highlighters/main/test-data/multiline-string.zsh @@ -31,7 +31,6 @@ PREBUFFER=$'echo "foo1\n' BUFFER='foo2" ./' expected_region_highlight=( - "1 5 default" # 'foo2"' "1 5 double-quoted-argument" # 'foo2"' "7 8 path" # './' ) diff --git a/highlighters/main/test-data/multiline-string2.zsh b/highlighters/main/test-data/multiline-string2.zsh index 3a90dce..8ecce5b 100644 --- a/highlighters/main/test-data/multiline-string2.zsh +++ b/highlighters/main/test-data/multiline-string2.zsh @@ -27,10 +27,8 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER=$'echo \'foo1\n' +BUFFER=$'echo "foo1\n' expected_region_highlight=( - "1 4 builtin" # echo - "6 11 default" # 'foo1\n - "6 11 single-quoted-argument-unclosed" # 'foo1\n + "6 10 double-quoted-argument" # 'foo2"' ) 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-quotes.zsh b/highlighters/main/test-data/multiple-quotes.zsh deleted file mode 100644 index dabf70c..0000000 --- a/highlighters/main/test-data/multiple-quotes.zsh +++ /dev/null @@ -1,42 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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"baz$quux/foo\\\\bar"baz$\'quux\\nfoo\\001bar\'baz' - -expected_region_highlight=( - "1 1 builtin" # : - "3 54 default" # 'foo'bar"baz$quux/foo\\bar"baz$'quux\nfoo\001'baz - "3 7 single-quoted-argument" # 'foo' - "11 29 double-quoted-argument" #"baz - "15 19 dollar-double-quoted-argument" # $quux - "24 25 back-double-quoted-argument" # \\ - "33 51 dollar-quoted-argument" # $'quux\nfoo\001bar' - "39 40 back-dollar-quoted-argument" # \n - "44 47 back-dollar-quoted-argument" # \001 -) 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-alias.zsh b/highlighters/main/test-data/noglob-alias.zsh index 2f96445..6f3a7f7 100644 --- a/highlighters/main/test-data/noglob-alias.zsh +++ b/highlighters/main/test-data/noglob-alias.zsh @@ -31,6 +31,5 @@ alias x=command BUFFER='x ls' expected_region_highlight=( - "1 1 alias" # x "3 4 command" # ls ) diff --git a/highlighters/main/test-data/noglob-always.zsh b/highlighters/main/test-data/noglob-always.zsh deleted file mode 100644 index 6d55048..0000000 --- a/highlighters/main/test-data/noglob-always.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=$'{ noglob echo * } always { echo * }' - -expected_region_highlight=( - '1 1 reserved-word' # { - '3 8 precommand' # noglob - '10 13 builtin' # echo - '15 15 default' # * - '17 17 reserved-word' # } - '19 24 reserved-word' # always - '26 26 reserved-word' # { - '28 31 builtin' # echo - '33 33 default' # * - '33 33 globbing' # * - '35 35 reserved-word' # } -) diff --git a/highlighters/main/test-data/noglob1.zsh b/highlighters/main/test-data/noglob1.zsh index 1857db0..ea70a83 100644 --- a/highlighters/main/test-data/noglob1.zsh +++ b/highlighters/main/test-data/noglob1.zsh @@ -30,9 +30,5 @@ BUFFER=':; noglob echo *' expected_region_highlight=( - "1 1 builtin" # : - "2 2 commandseparator" # ; - "4 9 precommand" # noglob - "11 14 builtin" # echo "16 16 default" # * ) diff --git a/highlighters/main/test-data/noglob2.zsh b/highlighters/main/test-data/noglob2.zsh index 3b4fcd7..6d7a940 100644 --- a/highlighters/main/test-data/noglob2.zsh +++ b/highlighters/main/test-data/noglob2.zsh @@ -30,11 +30,6 @@ BUFFER='noglob echo *; echo *' expected_region_highlight=( - "1 6 precommand" # noglob - "8 11 builtin" # echo "13 13 default" # * - "14 14 commandseparator" # ; - "16 19 builtin" # echo - "21 21 default" # * "21 21 globbing" # * ) diff --git a/highlighters/main/test-data/noglob3.zsh b/highlighters/main/test-data/noglob3.zsh deleted file mode 100644 index c404aaa..0000000 --- a/highlighters/main/test-data/noglob3.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -touch \* - -BUFFER='noglob echo *' - -expected_region_highlight=( - "1 6 precommand" # noglob - "8 11 builtin" # echo - "13 13 path" # * -) diff --git a/highlighters/main/test-data/noglob4.zsh b/highlighters/main/test-data/noglob4.zsh deleted file mode 100644 index cc7065f..0000000 --- a/highlighters/main/test-data/noglob4.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=$'noglob cat <(print -r -- *)' - -expected_region_highlight=( - '1 6 precommand' # noglob - '8 10 command' # cat - '12 27 default' # <(print -r -- *) - '12 27 process-substitution' # <(print -r -- *) - '12 13 process-substitution-delimiter' # <( - '14 18 builtin' # print - '20 21 single-hyphen-option' # -r - '23 24 double-hyphen-option' # -- - '26 26 default' # * - '26 26 globbing' # * - '27 27 process-substitution-delimiter' # ) -) diff --git a/highlighters/main/test-data/null-exec.zsh b/highlighters/main/test-data/null-exec.zsh deleted file mode 100644 index be1e306..0000000 --- a/highlighters/main/test-data/null-exec.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=$'exec >/dev/null;' - -expected_region_highlight=( - '1 4 precommand' # exec - '6 6 redirection' # > - '7 15 path' # /dev/null - '16 16 commandseparator' # ; -) 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/number_range-glob.zsh b/highlighters/main/test-data/number_range-glob.zsh deleted file mode 100644 index c840951..0000000 --- a/highlighters/main/test-data/number_range-glob.zsh +++ /dev/null @@ -1,42 +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='print <-> x<->y ' - -expected_region_highlight=( - '1 5 builtin' # print - '7 9 default' # <-> - '7 9 globbing' # <-> - '11 15 default' # x<->y - '12 14 globbing' # <-> - '17 17 redirection' # < - '18 23 default' # foo2-3 (the filename) - '24 24 redirection' # > -) diff --git a/highlighters/main/test-data/off-by-one.zsh b/highlighters/main/test-data/off-by-one.zsh index 872143a..550c09f 100644 --- a/highlighters/main/test-data/off-by-one.zsh +++ b/highlighters/main/test-data/off-by-one.zsh @@ -27,14 +27,14 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -alias a=: +alias a=A f() {} BUFFER='a;f;' expected_region_highlight=( - "1 1 alias" # a + "1 1 alias" # f "2 2 commandseparator" # ; - "3 3 function" # f + "3 3 function" # g "4 4 commandseparator" # ; ) 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/option-dollar-quote-isnt-filename.zsh b/highlighters/main/test-data/option-dollar-quote-isnt-filename.zsh deleted file mode 100644 index 897a02e..0000000 --- a/highlighters/main/test-data/option-dollar-quote-isnt-filename.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 -# ------------------------------------------------------------------------------------------------- - -BUFFER=$': -$\'n\'' - -touch ./-n - -expected_region_highlight=( - '1 1 builtin' # : - '3 7 single-hyphen-option' # -$'n' - '4 7 dollar-quoted-argument' # $'n' -) diff --git a/highlighters/main/test-data/option-path_dirs.zsh b/highlighters/main/test-data/option-path_dirs.zsh index 0300c7e..1f3002a 100644 --- a/highlighters/main/test-data/option-path_dirs.zsh +++ b/highlighters/main/test-data/option-path_dirs.zsh @@ -27,18 +27,15 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -if [[ $OSTYPE == msys ]]; then - skip_test='Cannot chmod +x in msys2' -else - setopt PATH_DIRS - mkdir -p foo/bar - touch foo/bar/testing-issue-228 - chmod +x foo/bar/testing-issue-228 - path+=( "$PWD"/foo ) +## setup +setopt PATH_DIRS +mkdir -p foo/bar +touch foo/bar/testing-issue-228 +chmod +x foo/bar/testing-issue-228 +path+=( "$PWD"/foo ) - BUFFER='bar/testing-issue-228' +BUFFER='bar/testing-issue-228' - expected_region_highlight=( - "1 21 command" # bar/testing-issue-228 - ) -fi +expected_region_highlight=( + "1 21 command" # bar/testing-issue-228 +) diff --git a/highlighters/main/test-data/option-with-quotes.zsh b/highlighters/main/test-data/option-with-quotes.zsh deleted file mode 100644 index 6286f03..0000000 --- a/highlighters/main/test-data/option-with-quotes.zsh +++ /dev/null @@ -1,37 +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=$': --user="phy1729"' - -expected_region_highlight=( - '1 1 builtin' # : - '3 18 double-hyphen-option' # --user="phy1729" - '10 18 double-quoted-argument' # "phy1729" -) diff --git a/highlighters/main/test-data/order-path-after-dollar.zsh b/highlighters/main/test-data/order-path-after-dollar.zsh deleted file mode 100644 index 773c183..0000000 --- a/highlighters/main/test-data/order-path-after-dollar.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 -# ------------------------------------------------------------------------------------------------- - -touch '$foo' -BUFFER=': $foo \$foo' - -expected_region_highlight=( - '1 1 builtin' # : - '3 6 default' # $foo - if we add a "unquoted parameter expansion" style then this expectation should change - '8 12 path' # \$foo -) diff --git a/highlighters/main/test-data/order-path-before-globbing.zsh b/highlighters/main/test-data/order-path-before-globbing.zsh deleted file mode 100644 index 8456b18..0000000 --- a/highlighters/main/test-data/order-path-before-globbing.zsh +++ /dev/null @@ -1,39 +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 -# ------------------------------------------------------------------------------------------------- - -touch '*' -BUFFER=': * \*' - -expected_region_highlight=( - '1 1 builtin' # : - '3 3 default' # * - '3 3 globbing' # * - '5 6 path' # \* -) 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/param-precommand-option-argument1.zsh b/highlighters/main/test-data/param-precommand-option-argument1.zsh deleted file mode 100644 index 84cf03a..0000000 --- a/highlighters/main/test-data/param-precommand-option-argument1.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 -# ------------------------------------------------------------------------------------------------- - -# See also alias-precommand-option-argument1.zsh -local -a sudo_u; sudo_u=(sudo -u) -sudo(){} - -BUFFER='$sudo_u phy1729 echo foo' - -expected_region_highlight=( - '1 7 precommand' # $sudo_u - '9 15 default' # phy1729 - '18 20 command "issue #540"' # echo (not builtin) - '22 24 default' # foo -) diff --git a/highlighters/main/test-data/param-precommand-option-argument3.zsh b/highlighters/main/test-data/param-precommand-option-argument3.zsh deleted file mode 100644 index 9a8dde2..0000000 --- a/highlighters/main/test-data/param-precommand-option-argument3.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 -# ------------------------------------------------------------------------------------------------- - -# See also alias-precommand-option-argument3.zsh -local -a sudo_u; sudo_u=(sudo -u) -sudo(){} - -BUFFER='$sudo_u phy1729 ls foo' - -expected_region_highlight=( - '1 7 precommand' # sudo_u - '9 15 default' # phy1729 - '17 18 command' # ls - '20 22 default' # foo -) 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-expansion-untokenized1.zsh b/highlighters/main/test-data/parameter-expansion-untokenized1.zsh deleted file mode 100644 index 8b8b5e4..0000000 --- a/highlighters/main/test-data/parameter-expansion-untokenized1.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 -# ------------------------------------------------------------------------------------------------- - -local x="()" - -BUFFER=$'$x ls' - -expected_region_highlight=( - '1 2 unknown-token' # $x - '4 5 command' # ls -) diff --git a/highlighters/main/test-data/parameter-expansion-untokenized2.zsh b/highlighters/main/test-data/parameter-expansion-untokenized2.zsh deleted file mode 100644 index d23a1f2..0000000 --- a/highlighters/main/test-data/parameter-expansion-untokenized2.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 -# ------------------------------------------------------------------------------------------------- - -local x="^foo^bar" - -BUFFER=$'$x ls' - -expected_region_highlight=( - '1 2 unknown-token' # $x - '4 5 default' # ls -) diff --git a/highlighters/main/test-data/parameter-star.zsh b/highlighters/main/test-data/parameter-star.zsh deleted file mode 100644 index 2311be0..0000000 --- a/highlighters/main/test-data/parameter-star.zsh +++ /dev/null @@ -1,40 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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='() { : $* }' - -# This tests that $* isn't highlighted as a glob. -# If we ever add a "unquoted parameter" style, the expectation may change. -expected_region_highlight=( - "1 2 reserved-word" # () - "4 4 reserved-word" # { - "6 6 builtin" # : - "8 9 default" # $* - "11 11 reserved-word" # } -) 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/parameter-value-contains-command-position1.zsh b/highlighters/main/test-data/parameter-value-contains-command-position1.zsh deleted file mode 100644 index 05ea1bf..0000000 --- a/highlighters/main/test-data/parameter-value-contains-command-position1.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 -# ------------------------------------------------------------------------------------------------- - -local foobar='x=$(ls)' - -BUFFER=$'$foobar' - -expected_region_highlight=( - # Used to highlight the "ba" as 'command' because the 'ls' showed through; issues #670 and #674 - '1 7 unknown-token' # $foobar (not an assignment) -) diff --git a/highlighters/main/test-data/parameter-value-contains-command-position2.zsh b/highlighters/main/test-data/parameter-value-contains-command-position2.zsh deleted file mode 100644 index 5042e89..0000000 --- a/highlighters/main/test-data/parameter-value-contains-command-position2.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 -# ------------------------------------------------------------------------------------------------- - -local y='x=$(ls)' - -BUFFER=$'$y' - -expected_region_highlight=( - # Used to trigger a "BUG" message on stderr - issues #670 and #674 - '1 2 unknown-token' # $y (not an assignment) -) diff --git a/highlighters/main/test-data/pasted-quotes.zsh b/highlighters/main/test-data/pasted-quotes.zsh deleted file mode 100644 index f37f21b..0000000 --- a/highlighters/main/test-data/pasted-quotes.zsh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2013 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 1 builtin' # : - '3 15 default' # \'foo\'bar"baz" - '3 7 single-quoted-argument' # \'foo\' - '11 15 double-quoted-argument' # "baz" -) diff --git a/highlighters/main/test-data/path-broken-symlink.zsh b/highlighters/main/test-data/path-broken-symlink.zsh index baebee3..84c7d59 100644 --- a/highlighters/main/test-data/path-broken-symlink.zsh +++ b/highlighters/main/test-data/path-broken-symlink.zsh @@ -27,15 +27,10 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -if [[ $OSTYPE == msys ]]; then - skip_test='Cannot create symlinks in msys2' -else - ln -s /nonexistent broken-symlink - BUFFER=': broken-symlink' - CURSOR=5 # to make path_prefix ineligible +ln -s /nonexistent broken-symlink +BUFFER=': broken-symlink' +CURSOR=5 # to make path_prefix ineligible - expected_region_highlight=( - "1 1 builtin" # : - "3 16 path" # broken-symlink - ) -fi +expected_region_highlight=( + "3 16 path" # broken-symlink +) diff --git a/highlighters/main/test-data/path-dollared-word.zsh b/highlighters/main/test-data/path-dollared-word.zsh deleted file mode 100644 index 99055da..0000000 --- a/highlighters/main/test-data/path-dollared-word.zsh +++ /dev/null @@ -1,45 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 [[ $OSTYPE == msys ]]; then - skip_test='Cannot chmod +x in msys2' # cargo culted from option-path_dirs.zsh -else - mkdir kappa - touch kappa.exe - chmod +x kappa.exe - cd kappa - - BUFFER='$PWD.exe; ${PWD}.exe' - - expected_region_highlight=( - "1 8 unknown-token" # $PWD.exe - not eval'd; issue #328 - "9 9 commandseparator" # ; - "11 20 unknown-token" # ${PWD}.exe - ) -fi diff --git a/highlighters/main/test-data/path-dollared-word2.zsh b/highlighters/main/test-data/path-dollared-word2.zsh index f404d5d..3485b45 100644 --- a/highlighters/main/test-data/path-dollared-word2.zsh +++ b/highlighters/main/test-data/path-dollared-word2.zsh @@ -27,11 +27,10 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -local lambda="''" +lambda="''" touch \$lambda BUFFER=': \$lambda' expected_region_highlight=( - "1 1 builtin" # : - "3 10 path" # \$lambda + "3 8 path" # \$lambda ) diff --git a/highlighters/main/test-data/path-dollared-word3.zsh b/highlighters/main/test-data/path-dollared-word3.zsh deleted file mode 100644 index ec981b1..0000000 --- a/highlighters/main/test-data/path-dollared-word3.zsh +++ /dev/null @@ -1,40 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 -# ------------------------------------------------------------------------------------------------- - -# «/usr» at this point would be highlighted as path_prefix; so should -# a parameter that expands to an equivalent string be highlighted. -# -# More complicated parameter substitutions aren't eval'd; issue #328. -BUFFER='$PWD; ${PWD}' - -expected_region_highlight=( - "1 4 unknown-token" # $PWD (without AUTO_CD) - "5 5 commandseparator" # ; - "7 12 path_prefix" # ${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-dollared-word4.zsh b/highlighters/main/test-data/path-dollared-word4.zsh deleted file mode 100644 index e29182c..0000000 --- a/highlighters/main/test-data/path-dollared-word4.zsh +++ /dev/null @@ -1,36 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 tests for a regression during development of issue #328: an interim version -# of that branch failed that test with "Bail out! output on stderr". -BUFFER='${' - -expected_region_highlight=( - "1 2 unknown-token" # ${ -) 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-separators.zsh b/highlighters/main/test-data/path-separators.zsh index 52749b7..cf13dad 100644 --- a/highlighters/main/test-data/path-separators.zsh +++ b/highlighters/main/test-data/path-separators.zsh @@ -37,17 +37,17 @@ touch A/mu BUFFER='ls /bin/ / A/mu A/m' expected_region_highlight=( - "1 2 command" # ls - "4 8 path" # /bin/ "4 4 path_pathseparator" # / + "5 7 path" # bin "8 8 path_pathseparator" # / - "10 10 path" # / "10 10 path_pathseparator" # / - "12 15 path" # A/mu + "12 12 path" # A "13 13 path_pathseparator" # / + "14 15 path" # mu - "17 19 path_prefix" # A/m + "17 17 path_prefix" # A "18 18 path_prefix_pathseparator" # / + "19 19 path_prefix" # m ) diff --git a/highlighters/main/test-data/path-separators2.zsh b/highlighters/main/test-data/path-separators2.zsh index bc885a0..db4e706 100644 --- a/highlighters/main/test-data/path-separators2.zsh +++ b/highlighters/main/test-data/path-separators2.zsh @@ -35,6 +35,5 @@ ZSH_HIGHLIGHT_STYLES[path_pathseparator]=value BUFFER='ls /bin/' expected_region_highlight=( - "1 2 command" # ls "4 8 path" # /bin/ ) diff --git a/highlighters/main/test-data/path-space.zsh b/highlighters/main/test-data/path-space.zsh index 87cc22f..67a26fd 100644 --- a/highlighters/main/test-data/path-space.zsh +++ b/highlighters/main/test-data/path-space.zsh @@ -33,5 +33,5 @@ BUFFER='ls A/mu\ with\ spaces' expected_region_highlight=( "1 2 command" # ls - "4 21 path" # A/mu\ with\ spaces + "4 19 path" # A/mu\ with\ spaces ) diff --git a/highlighters/main/test-data/path_prefix.zsh b/highlighters/main/test-data/path_prefix.zsh index 3303bfb..12fb30b 100644 --- a/highlighters/main/test-data/path_prefix.zsh +++ b/highlighters/main/test-data/path_prefix.zsh @@ -33,6 +33,5 @@ BUFFER='ls /bin/s' expected_region_highlight=( - "1 2 command" # ls - "4 9 path_prefix" # /bin/s + "4 9 path_prefix" # /bin/s ) diff --git a/highlighters/main/test-data/path_prefix2.zsh b/highlighters/main/test-data/path_prefix2.zsh index 4f40f7e..501928a 100644 --- a/highlighters/main/test-data/path_prefix2.zsh +++ b/highlighters/main/test-data/path_prefix2.zsh @@ -34,6 +34,5 @@ BUFFER='ls /bin/s' WIDGET=zle-line-finish expected_region_highlight=( - "1 2 command" # ls - "4 9 default" # /bin/s + "4 9 default" # /bin/s ) diff --git a/highlighters/main/test-data/path_prefix3.zsh b/highlighters/main/test-data/path_prefix3.zsh deleted file mode 100644 index 9f34f94..0000000 --- a/highlighters/main/test-data/path_prefix3.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 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 -# ------------------------------------------------------------------------------------------------- - -# Assumes that '/bin/sh' exists and '/bin/s' does not exist. -# Related to path_prefix.zsh - -PREBUFFER=$'ls \\\n' -BUFFER='/bin/s' - -expected_region_highlight=( - '1 6 path_prefix' # /bin/s -) 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 deleted file mode 100644 index 7598346..0000000 --- a/highlighters/main/test-data/precommand-killing1.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 -# ------------------------------------------------------------------------------------------------- - -hash sudo=false -touch foo - -BUFFER='sudo -e ./foo' - -expected_region_highlight=( - '1 4 precommand' # sudo - '6 7 single-hyphen-option' # -e - '9 13 path' # ./foo -) diff --git a/highlighters/main/test-data/precommand-killing2.zsh b/highlighters/main/test-data/precommand-killing2.zsh deleted file mode 100644 index bc6fc86..0000000 --- a/highlighters/main/test-data/precommand-killing2.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 -# ------------------------------------------------------------------------------------------------- - -hash sudo=false - -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 -) 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-type1.zsh b/highlighters/main/test-data/precommand-type1.zsh deleted file mode 100644 index 4ce817c..0000000 --- a/highlighters/main/test-data/precommand-type1.zsh +++ /dev/null @@ -1,61 +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 -# ------------------------------------------------------------------------------------------------- - -# Test the behaviour of a builtin that exists as a command as well. -# The spaces in $BUFFER are to align precommand-type*.zsh test files. -BUFFER=$'test ; builtin test ; builtin command test ; nice test ' - -# Our expectations assumes that a 'test' external command exists (in addition -# to the 'test' builtin). Let's verify that, using the EQUALS option (which -# is on by default). If there's no 'test' command, the expansion will fail, -# diagnose a message on stdout, and the harness will detect a failure. -# -# This seems to work on all platforms, insofar as no one ever reported a bug -# about their system not having a 'test' binary in PATH. That said, if someone -# ever does see this test fail for this reason, we should explicitly create -# a 'test' executable in cwd and 'rehash'. -: =test - -expected_region_highlight=( - '1 4 builtin' # test - '7 7 commandseparator' # ; - - '9 15 precommand' # builtin - '17 20 builtin' # test - '23 23 commandseparator' # ; - - '25 31 precommand' # builtin - '33 39 precommand' # command - '41 44 command "issue #608"' # test - '47 47 commandseparator' # ; - - '49 52 precommand' # nice - '54 57 command "issue #608"' # test -) diff --git a/highlighters/main/test-data/precommand-type2.zsh b/highlighters/main/test-data/precommand-type2.zsh deleted file mode 100644 index bf75f4b..0000000 --- a/highlighters/main/test-data/precommand-type2.zsh +++ /dev/null @@ -1,55 +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 -# ------------------------------------------------------------------------------------------------- - -# Test the behaviour of a builtin that does not exist as a command. -# The spaces in $BUFFER are to align precommand-type*.zsh test files. -BUFFER=$'zstyle; builtin zstyle; builtin command zstyle; nice zstyle' - -# Verify that no $^path/zstyle(N) binary exists. -if (disable zstyle; type zstyle >/dev/null); then - echo >&2 "precommand-type2: error: 'zstyle' exists not only as a builtin" -fi - -expected_region_highlight=( - '1 6 builtin' # zstyle - '7 7 commandseparator' # ; - - '9 15 precommand' # builtin - '17 22 builtin' # zstyle - '23 23 commandseparator' # ; - - '25 31 precommand' # builtin - '33 39 precommand' # command - '41 46 unknown-token "issue #608"' # zstyle - '47 47 commandseparator' # ; - - '49 52 precommand' # nice - '54 59 unknown-token "issue #608"' # zstyle -) diff --git a/highlighters/main/test-data/precommand-type3.zsh b/highlighters/main/test-data/precommand-type3.zsh deleted file mode 100644 index 7fc7e4c..0000000 --- a/highlighters/main/test-data/precommand-type3.zsh +++ /dev/null @@ -1,55 +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 -# ------------------------------------------------------------------------------------------------- - -# Test an external command that does not exist as a builtin. -# The spaces in $BUFFER are to align precommand-type*.zsh test files. -BUFFER=$'ls ; builtin ls ; builtin command ls ; nice ls ' - -# Verify that the 'ls' command isn't shadowed. -if [[ $(type -w ls) != "ls: command" ]]; then - echo >&2 "precommand-type3: error: the 'ls' command is shadowed (or possibly missing altogether)" -fi - -expected_region_highlight=( - '1 2 command' # ls - '7 7 commandseparator' # ; - - '9 15 precommand' # builtin - '17 18 unknown-token "issue #608"' # ls - '23 23 commandseparator' # ; - - '25 31 precommand' # builtin - '33 39 precommand' # command - '41 42 command' # ls - '47 47 commandseparator' # ; - - '49 52 precommand' # nice - '54 55 command' # 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/precommand-unknown-option.zsh b/highlighters/main/test-data/precommand-unknown-option.zsh deleted file mode 100644 index 6baf9ff..0000000 --- a/highlighters/main/test-data/precommand-unknown-option.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 -# ------------------------------------------------------------------------------------------------- - -sudo(){} - -BUFFER='sudo -ux ls; sudo -x ls' - -expected_region_highlight=( - '1 4 precommand' # sudo - '6 8 single-hyphen-option' # -ux - '10 11 command' # ls - '12 12 commandseparator' # ; - '14 17 precommand' # sudo - '19 20 single-hyphen-option' # -x - '22 23 command' # ls -) diff --git a/highlighters/main/test-data/precommand2.zsh b/highlighters/main/test-data/precommand2.zsh index 75dceab..3d8f332 100644 --- a/highlighters/main/test-data/precommand2.zsh +++ b/highlighters/main/test-data/precommand2.zsh @@ -31,6 +31,6 @@ BUFFER='command -v ls' expected_region_highlight=( "1 7 precommand" # command - "9 10 single-hyphen-option" # -v - "12 13 command" # ls + "9 10 single-hyphen-option 'issue #343'" # -v + "12 13 command 'issue #343'" # ls ) diff --git a/highlighters/main/test-data/precommand3.zsh b/highlighters/main/test-data/precommand3.zsh deleted file mode 100644 index f8b0c78..0000000 --- a/highlighters/main/test-data/precommand3.zsh +++ /dev/null @@ -1,41 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 -n10 ls; nice -n 10 ls' - -expected_region_highlight=( - "1 4 precommand" # nice - "6 9 single-hyphen-option" # -n10 - "11 12 command" # ls - "13 13 commandseparator" # ; - "15 18 precommand" # nice - "20 21 single-hyphen-option" # -n - "23 24 default" # 10 - "26 27 command" # ls -) diff --git a/highlighters/main/test-data/precommand4.zsh b/highlighters/main/test-data/precommand4.zsh deleted file mode 100644 index b9e6119..0000000 --- a/highlighters/main/test-data/precommand4.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 -# ------------------------------------------------------------------------------------------------- - -doas(){} -BUFFER=$'doas -nu phy1729 ls' - -expected_region_highlight=( - '1 4 precommand' # doas - '6 8 single-hyphen-option' # -nu - '10 16 default' # phy1729 - '18 19 command' # ls -) diff --git a/highlighters/main/test-data/prefix-redirection.zsh b/highlighters/main/test-data/prefix-redirection.zsh index a0f0ed5..5a5c0e2 100644 --- a/highlighters/main/test-data/prefix-redirection.zsh +++ b/highlighters/main/test-data/prefix-redirection.zsh @@ -27,16 +27,13 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -BUFFER='>/tmp >/tmp command echo >/tmp foo' +BUFFER='>/tmp >/tmp sudo echo >/tmp foo' expected_region_highlight=( - "1 1 redirection" # > "2 5 path" # /tmp - "7 7 redirection" # > "8 11 path" # /tmp - "13 19 precommand" # command - "21 24 builtin" # echo - "26 26 redirection" # > - "27 30 path" # /tmp - "32 34 default" # foo + "13 16 precommand" # sudo + "18 21 builtin" # echo + "24 27 path" # /tmp + "29 31 default" # foo ) diff --git a/highlighters/main/test-data/process-substitution-after-redirection.zsh b/highlighters/main/test-data/process-substitution-after-redirection.zsh deleted file mode 100644 index 2d58016..0000000 --- a/highlighters/main/test-data/process-substitution-after-redirection.zsh +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env zsh -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2017, 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=$'< <(pwd) > >(nl)' - -expected_region_highlight=( - '1 1 redirection' # < - '3 8 default' # <(pwd) - '3 8 process-substitution' # <(pwd) - '3 4 process-substitution-delimiter' # <( - '5 7 builtin' # pwd - '8 8 process-substitution-delimiter' # ) - '10 10 redirection' # > - '12 16 default' # >(nl) - '12 16 process-substitution' # >(nl) - '12 13 process-substitution-delimiter' # >( - '14 15 command' # nl - '16 16 process-substitution-delimiter' # ) -) diff --git a/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh b/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh deleted file mode 100644 index f8dbd6b..0000000 --- a/highlighters/main/test-data/process-substitution-redirection-isnt-globbing.zsh +++ /dev/null @@ -1,41 +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=$': =(" foo ls' - -expected_region_highlight=( - '1 3 unknown-token' # ">" - not "redirection" - '5 7 default' # foo - '9 10 default' # ls - not "command" -) diff --git a/highlighters/main/test-data/rc-quotes.zsh b/highlighters/main/test-data/rc-quotes.zsh deleted file mode 100644 index 8cd427a..0000000 --- a/highlighters/main/test-data/rc-quotes.zsh +++ /dev/null @@ -1,39 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -setopt RC_QUOTES - -BUFFER=": 'foo''bar'baz" - -expected_region_highlight=( - "1 1 builtin" # : - "3 15 default" # 'foo''bar'baz - "3 12 single-quoted-argument" # 'foo''bar' - "7 8 rc-quote" # '' -) 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-comment.zsh b/highlighters/main/test-data/redirection-comment.zsh deleted file mode 100644 index a019100..0000000 --- a/highlighters/main/test-data/redirection-comment.zsh +++ /dev/null @@ -1,38 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# ------------------------------------------------------------------------------------------------- - -setopt interactive_comments - -BUFFER=': <<#foo' - -expected_region_highlight=( - "1 1 builtin" # : - "3 4 redirection" # << - "5 8 comment" # #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-in-cmdsubst.zsh b/highlighters/main/test-data/redirection-in-cmdsubst.zsh deleted file mode 100644 index ed5eaef..0000000 --- a/highlighters/main/test-data/redirection-in-cmdsubst.zsh +++ /dev/null @@ -1,41 +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 >> --yy' - -expected_region_highlight=( - '1 1 builtin' # : - '3 3 redirection' # > - '5 6 default' # -x - '8 9 redirection' # >> - '11 14 default' # --yy -) 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/redirection.zsh b/highlighters/main/test-data/redirection.zsh index 6a25971..5086082 100644 --- a/highlighters/main/test-data/redirection.zsh +++ b/highlighters/main/test-data/redirection.zsh @@ -32,8 +32,5 @@ BUFFER='<<>&!bar' expected_region_highlight=( "1 3 redirection" # <<< - "4 6 default" # foo - "8 11 builtin" # echo "13 16 redirection" # >>&! - "17 19 default" # bar ) diff --git a/highlighters/main/test-data/redirection2.zsh b/highlighters/main/test-data/redirection2.zsh index d44c8e7..83f7c08 100644 --- a/highlighters/main/test-data/redirection2.zsh +++ b/highlighters/main/test-data/redirection2.zsh @@ -31,11 +31,6 @@ BUFFER='ls >(wc) | nl' expected_region_highlight=( "1 2 command" # ls - "4 8 default" # >(wc) - "4 8 process-substitution" # >(wc) - "4 5 process-substitution-delimiter" # >( - "6 7 command" # wc - "8 8 process-substitution-delimiter" # ) "10 10 commandseparator" # | "12 13 command" # nl ) diff --git a/highlighters/main/test-data/redirection3.zsh b/highlighters/main/test-data/redirection3.zsh deleted file mode 100644 index bf062cf..0000000 --- a/highlighters/main/test-data/redirection3.zsh +++ /dev/null @@ -1,42 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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=': >>>; : <>\<<<> - "5 5 unknown-token" # > - "6 6 commandseparator" # ; - "8 8 builtin" # : - "10 11 redirection" # <> - "12 13 default" # \< - "14 16 redirection" # <<< - "17 19 default" # EOF -) diff --git a/highlighters/main/test-data/reserved-word.zsh b/highlighters/main/test-data/reserved-word.zsh index aca3796..e71fe0a 100644 --- a/highlighters/main/test-data/reserved-word.zsh +++ b/highlighters/main/test-data/reserved-word.zsh @@ -31,7 +31,6 @@ BUFFER='repeat "1" do done' expected_region_highlight=( "1 6 reserved-word" # repeat - "8 10 default" # "1" "8 10 double-quoted-argument" # "1" "12 13 reserved-word" # do "15 18 reserved-word" # done 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/main/test-data/subshell.zsh b/highlighters/main/test-data/subshell.zsh index c068013..0080ad2 100644 --- a/highlighters/main/test-data/subshell.zsh +++ b/highlighters/main/test-data/subshell.zsh @@ -31,20 +31,10 @@ BUFFER='tar cf - * | (cd /target; tar xfp -) | { cat }' expected_region_highlight=( "1 3 command" # tar - "5 6 default" # cf - "8 8 single-hyphen-option" # - - "10 10 default" # * - "10 10 globbing" # * - "12 12 commandseparator" # | "14 14 reserved-word" # ( "15 16 builtin" # cd - "18 24 default" # /target - "25 25 commandseparator" # ; "27 29 command" # tar - "31 33 default" # xfp - "35 35 single-hyphen-option" # - "36 36 reserved-word" # ) - "38 38 commandseparator" # | "40 40 reserved-word" # { "42 44 command" # cat "46 46 reserved-word" # } diff --git a/highlighters/main/test-data/sudo-command.zsh b/highlighters/main/test-data/sudo-command.zsh index 941349a..3183a23 100644 --- a/highlighters/main/test-data/sudo-command.zsh +++ b/highlighters/main/test-data/sudo-command.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -sudo(){} - # Tests three codepaths: # * -i (no argument) # * -C3 (pasted argument) @@ -43,12 +41,7 @@ expected_region_highlight=( "23 24 single-hyphen-option" # -i "26 27 command" # ls "29 29 path" # / - "30 30 commandseparator" # ; - "32 35 precommand" # sudo "37 37 unknown-token" # ;, error because empty command - "39 42 precommand" # sudo - "44 45 single-hyphen-option" # -u "47 47 unknown-token" # ;, error because incomplete command - "49 52 precommand" # sudo "54 64 unknown-token" # notacommand - doesn't falls back to "not a command word" codepath ) diff --git a/highlighters/main/test-data/sudo-comment.zsh b/highlighters/main/test-data/sudo-comment.zsh index 74cd905..856567b 100644 --- a/highlighters/main/test-data/sudo-comment.zsh +++ b/highlighters/main/test-data/sudo-comment.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -sudo(){} - setopt interactive_comments BUFFER='sudo -u # comment' diff --git a/highlighters/main/test-data/sudo-longopt.zsh b/highlighters/main/test-data/sudo-longopt.zsh deleted file mode 100644 index ef768bf..0000000 --- a/highlighters/main/test-data/sudo-longopt.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 -# ------------------------------------------------------------------------------------------------- - -hash sudo='false' -BUFFER='sudo --askpass ls' - -expected_region_highlight=( - '1 4 precommand' # sudo - '6 14 double-hyphen-option' # --askpass - '16 17 command' # ls (we don't know whether --askpass takes an argument) -) diff --git a/highlighters/main/test-data/sudo-redirection.zsh b/highlighters/main/test-data/sudo-redirection.zsh index c675d7d..f507899 100644 --- a/highlighters/main/test-data/sudo-redirection.zsh +++ b/highlighters/main/test-data/sudo-redirection.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -sudo(){} - BUFFER='sudo -u >/tmp otheruser ls; sudo ls; sudo -i ls' expected_region_highlight=( diff --git a/highlighters/main/test-data/sudo-redirection2.zsh b/highlighters/main/test-data/sudo-redirection2.zsh index 23ada53..30f6ff8 100644 --- a/highlighters/main/test-data/sudo-redirection2.zsh +++ b/highlighters/main/test-data/sudo-redirection2.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -sudo(){} - BUFFER='sudo >/tmp -u otheruser ls' expected_region_highlight=( diff --git a/highlighters/main/test-data/sudo-redirection3.zsh b/highlighters/main/test-data/sudo-redirection3.zsh index 80e55b5..fdd426d 100644 --- a/highlighters/main/test-data/sudo-redirection3.zsh +++ b/highlighters/main/test-data/sudo-redirection3.zsh @@ -27,8 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -sudo(){} - BUFFER='sudo 2>./. -u otheruser ls' expected_region_highlight=( diff --git a/highlighters/main/test-data/time-and-nocorrect1.zsh b/highlighters/main/test-data/time-and-nocorrect1.zsh deleted file mode 100644 index fb398ed..0000000 --- a/highlighters/main/test-data/time-and-nocorrect1.zsh +++ /dev/null @@ -1,39 +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=$'time ls; nocorrect ls' - -expected_region_highlight=( - '1 4 reserved-word' # time - '6 7 command' # ls - '8 8 commandseparator' # ; - '10 18 reserved-word' # nocorrect - '20 21 command' # ls -) diff --git a/highlighters/main/test-data/time-and-nocorrect2.zsh b/highlighters/main/test-data/time-and-nocorrect2.zsh deleted file mode 100644 index 5549ee9..0000000 --- a/highlighters/main/test-data/time-and-nocorrect2.zsh +++ /dev/null @@ -1,40 +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=$'time ls; nocorrect ls' -alias time=':' nocorrect=':' - -expected_region_highlight=( - '1 4 alias' # time - '6 7 default' # ls - '8 8 commandseparator' # ; - '10 18 alias' # nocorrect - '20 21 default' # ls -) diff --git a/highlighters/main/test-data/vi-linewise-mode.zsh b/highlighters/main/test-data/vi-linewise-mode.zsh index 7003c49..4b77766 100644 --- a/highlighters/main/test-data/vi-linewise-mode.zsh +++ b/highlighters/main/test-data/vi-linewise-mode.zsh @@ -34,10 +34,5 @@ CURSOR=4 MARK=12 expected_region_highlight=( - "1 3 unknown-token" # foo - "5 7 default" # foo - "8 8 commandseparator" # \n - "9 11 unknown-token" # bar - "13 15 default" # bar - "1 15 standout" # foo foo\nbar bar + "1 3 standout" # foo ) 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/README.md b/highlighters/regexp/README.md deleted file mode 120000 index 9f2522d..0000000 --- a/highlighters/regexp/README.md +++ /dev/null @@ -1 +0,0 @@ -../../docs/highlighters/regexp.md \ No newline at end of file diff --git a/highlighters/regexp/regexp-highlighter.zsh b/highlighters/regexp/regexp-highlighter.zsh deleted file mode 100644 index 0d43aac..0000000 --- a/highlighters/regexp/regexp-highlighter.zsh +++ /dev/null @@ -1,62 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# 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 -# 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 -# ------------------------------------------------------------------------------------------------- - - -# List of keyword and color pairs. -typeset -gA ZSH_HIGHLIGHT_REGEXP - -# Whether the pattern highlighter should be called or not. -_zsh_highlight_highlighter_regexp_predicate() -{ - _zsh_highlight_buffer_modified -} - -# Pattern syntax highlighting function. -_zsh_highlight_highlighter_regexp_paint() -{ - setopt localoptions extendedglob - local pattern - for pattern in ${(k)ZSH_HIGHLIGHT_REGEXP}; do - _zsh_highlight_regexp_highlighter_loop "$BUFFER" "$pattern" - done -} - -_zsh_highlight_regexp_highlighter_loop() -{ - local buf="$1" pat="$2" - integer OFFSET=0 - local MATCH; integer MBEGIN MEND - 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") - buf="$buf[$(($MEND+1)),-1]" - OFFSET=$((MEND+OFFSET)); - done -} diff --git a/highlighters/regexp/test-data/complex.zsh b/highlighters/regexp/test-data/complex.zsh deleted file mode 100644 index 4e0089b..0000000 --- a/highlighters/regexp/test-data/complex.zsh +++ /dev/null @@ -1,37 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 -# ------------------------------------------------------------------------------------------------- - -ZSH_HIGHLIGHT_REGEXP+=('[0-9\+\-]+' 'fg=white,bold,bg=red') - -BUFFER='echo 1+9-3 7+2' - -expected_region_highlight=( - "6 10 fg=white,bold,bg=red" - "12 14 fg=white,bold,bg=red" -) diff --git a/highlighters/regexp/test-data/subexpression.zsh b/highlighters/regexp/test-data/subexpression.zsh deleted file mode 100644 index 308cb41..0000000 --- a/highlighters/regexp/test-data/subexpression.zsh +++ /dev/null @@ -1,36 +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='ls foo' -ZSH_HIGHLIGHT_REGEXP=('(^| )(ls|cd)($| )' 'fg=green') - -expected_region_highlight=( - '1 3 fg=green' # "ls " -) diff --git a/highlighters/regexp/test-data/word-boundary.zsh b/highlighters/regexp/test-data/word-boundary.zsh deleted file mode 100644 index 1f4f666..0000000 --- a/highlighters/regexp/test-data/word-boundary.zsh +++ /dev/null @@ -1,42 +0,0 @@ -# ------------------------------------------------------------------------------------------------- -# Copyright (c) 2016 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 zmodload zsh/pcre 2>/dev/null; then - setopt RE_MATCH_PCRE - - ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' 'fg=white,bold,bg=red') - - BUFFER='sudo ls' - - expected_region_highlight=( - "1 4 fg=white,bold,bg=red" - ) -else - skip_test='Test requires zsh/pcre' -fi 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..08bcfa6 100644 --- a/release.md +++ b/release.md @@ -1,21 +1,18 @@ # 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) - 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; - Remove `-dev` suffix from `./.version`; - Commit that using `git commit -m "Tag version $(<.version)." .version`; - Tag it using `git tag -s -m "Tag version $(<.version)" $(<.version)`; +- Remove `-dev` suffix from `./.version`; + Commit that using 'git commit -m "Tag version $(<.version)."; + Tag it using `git tag $(<.version)`; Increment `./.version` and restore the `-dev` suffix; - Commit that using `git commit -C b5c30ae52638e81a38fe5329081c5613d7bd6ca5 .version`. -- Push with `git push && git push --tags` + Commit that using 'git commit -C b5c30ae52638e81a38fe5329081c5613d7bd6ca5'. +- Push with `git push --tags` - Notify downstreams (OS packages) - anitya should autodetect the tag - Update /topic on IRC diff --git a/tests/README.md b/tests/README.md index eefeb54..5526612 100644 --- a/tests/README.md +++ b/tests/README.md @@ -7,64 +7,37 @@ 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"`. or `"$i $j $style $todo"`. Each string specifies the highlighting that `$BUFFER[$i,$j]` should have; that is, `$i` and `$j` specify a range, 1-indexed, inclusive of both endpoints. -`$style` is a key of `$ZSH_HIGHLIGHT_STYLES`. +`$style` is either a key of `$ZSH_HIGHLIGHT_STYLES` or `NONE` to specify no +highlighting should be observed. 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. - **Note**: `$region_highlight` uses the same `"$i $j $style"` syntax but interprets the indexes differently. -**Note**: Tests are run with `setopt NOUNSET WARN_CREATE_GLOBAL`, so any -variables the test creates must be declared local. - **Isolation**: Each test is run in a separate subshell, so any variables, aliases, functions, etc., it defines will be visible to the tested code (that computes `$region_highlight`), but will not affect subsequent tests. The current working directory of tests is set to a newly-created empty directory, which is automatically cleaned up after the test exits. For example: -```zsh -setopt PATH_DIRS -mkdir -p foo/bar -touch foo/bar/testing-issue-228 -chmod +x foo/bar/testing-issue-228 -path+=( "$PWD"/foo ) + setopt PATH_DIRS + mkdir -p foo/bar + touch foo/bar/testing-issue-228 + chmod +x foo/bar/testing-issue-228 + path+=( "$PWD"/foo ) -BUFFER='bar/testing-issue-228' + BUFFER='bar/testing-issue-228' -expected_region_highlight=( - "1 21 command" # bar/testing-issue-228 -) -``` + expected_region_highlight=( + "1 21 command" # bar/testing-issue-228 + ) Writing new tests @@ -72,9 +45,7 @@ Writing new tests An experimental tool is available to generate test files: -```zsh -zsh -f tests/generate.zsh 'ls -x' acme newfile -``` + zsh -f tests/generate.zsh 'ls -x' acme newfile This generates a `highlighters/acme/test-data/newfile.zsh` test file based on the current highlighting of the given `$BUFFER` (in this case, `ls -x`). @@ -89,22 +60,18 @@ Highlighting test [`test-highlighting.zsh`](tests/test-highlighting.zsh) tests the correctness of the highlighting. Usage: -```zsh -zsh test-highlighting.zsh -``` + zsh test-highlighting.zsh All tests may be run with -```zsh -make test -``` + make test which will run all highlighting tests and report results in [TAP format][TAP]. 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 @@ -113,12 +80,8 @@ Performance test [`test-perfs.zsh`](tests/test-perfs.zsh) measures the time spent doing the highlighting. Usage: -```zsh -zsh test-perfs.zsh -``` + zsh test-perfs.zsh All tests may be run with -```zsh -make perf -``` + make perf diff --git a/tests/edit-failed-tests b/tests/edit-failed-tests deleted file mode 100755 index e3a7668..0000000 --- a/tests/edit-failed-tests +++ /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 -# ------------------------------------------------------------------------------------------------- - -type perl sponge >/dev/null || { print -ru2 -- "$0: This script requires perl(1) and sponge(1) [from moreutils]"; exit 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" echo "" - >>"$2" cat <"$1" - "${editor[@]}" -- "$2" -} =(${MAKE:-make} quiet-test) =(:) -# TODO: tee(1) the quiet-test output to /dev/tty as it's happening, with colors. diff --git a/tests/generate.zsh b/tests/generate.zsh index 5696020..64a1ede 100755 --- a/tests/generate.zsh +++ b/tests/generate.zsh @@ -31,21 +31,17 @@ 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]" +if (( $# != 3 )) || [[ $1 == -* ]]; then + print -r -- >&2 "$0: usage: $0 BUFFER HIGHLIGHTER BASENAME" print -r -- >&2 "" print -r -- >&2 "Generate highlighters/HIGHLIGHTER/test-data/BASENAME.zsh based on the" - print -r -- >&2 "current highlighting of BUFFER, using the setup code PREAMBLE." + print -r -- >&2 "current highlighting of BUFFER." exit 1 fi buffer=$1 ZSH_HIGHLIGHT_HIGHLIGHTERS=( $2 ) fname=${0:A:h:h}/highlighters/$2/test-data/${3%.zsh}.zsh -preamble=${4:-""} # Load the main script. . ${0:A:h:h}/zsh-syntax-highlighting.zsh @@ -59,18 +55,13 @@ _zsh_highlight_add_highlight() # Copyright block year="`LC_ALL=C date +%Y`" -if ! { read -q "?Set copyright year to $year? " } always { echo "" }; then +if ! read -q "?Set copyright year to $year? "; then year="YYYY" fi -<$0 sed -n -e '1,/^$/p' | sed -e "s/2[0-9][0-9][0-9]/${year}/" > $fname +exec >$fname +<$0 sed -n -e '1,/^$/p' | sed -e "s/2[0-9][0-9][0-9]/${year}/" # Assumes stdout is line-buffered git add -- $fname -exec > >(tee -a $fname) - -# Preamble -if [[ -n $preamble ]]; then - print -rl -- "$preamble" "" -fi # Buffer print -n 'BUFFER=' @@ -91,17 +82,8 @@ print 'expected_region_highlight=(' PREBUFFER="" BUFFER="$buffer" region_highlight=() - eval $( - exec 3>&1 >/dev/null - typeset -r __tests_tmpdir="$(mktemp -d)" - { - # Use a subshell to ensure $__tests_tmpdir, which is to be rm -rf'd, won't be modified. - (cd -- "$__tests_tmpdir" && eval $preamble && _zsh_highlight && typeset -p region_highlight >&3) - : # workaround zsh bug workers/45305 with respect to the $(…) subshell we're in - } always { - rm -rf -- ${__tests_tmpdir} - } - ) + # TODO: use run_test() from tests/test-highlighting.zsh (to get a tempdir) + _zsh_highlight for ((i=1; i<=${#region_highlight}; i++)); do local -a highlight_zone; highlight_zone=( ${(z)region_highlight[$i]} ) diff --git a/tests/tap-colorizer.zsh b/tests/tap-colorizer.zsh index f3dc84e..cb645c6 100755 --- a/tests/tap-colorizer.zsh +++ b/tests/tap-colorizer.zsh @@ -1,6 +1,6 @@ #!/usr/bin/env zsh # ------------------------------------------------------------------------------------------------- -# Copyright (c) 2015, 2017 zsh-syntax-highlighting contributors +# Copyright (c) 2015 zsh-syntax-highlighting contributors # All rights reserved. # # Redistribution and use in source and binary forms, with or without modification, are permitted @@ -44,10 +44,6 @@ do (#* | <->..<->) print -nP %F{blue} ;; - # SKIP - (*# SKIP*) - print -nP %F{yellow} - ;; # XPASS (ok*# TODO*) print -nP %F{red} diff --git a/tests/tap-filter b/tests/tap-filter index f9aa604..6587808 100755 --- a/tests/tap-filter +++ b/tests/tap-filter @@ -40,8 +40,6 @@ use strict; undef $/; # slurp mode print for - grep { /^ok.*# TODO/m or /^not ok(?!.*# TODO)/m or /^Bail out!/m } - # Split on plan lines and remove them from the output. (To keep them, - # use the lookahead syntax, «(?=…)», to make the match zero-length.) - split /^\d+\.\.\d+$/m, + grep { /^ok.*# TODO/m or /^not ok(?!.*# TODO)/m } + split /^(?=#)/m, ; diff --git a/tests/test-highlighting.zsh b/tests/test-highlighting.zsh index 8b564a8..1d169d6 100755 --- a/tests/test-highlighting.zsh +++ b/tests/test-highlighting.zsh @@ -1,6 +1,6 @@ #!/usr/bin/env zsh # ------------------------------------------------------------------------------------------------- -# Copyright (c) 2010-2017 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,16 +29,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=("$@") - -(){ -set -- "${(@)anon_argv}" # Check an highlighter was given as argument. [[ -n "$1" ]] || { echo >&2 "Bail out! You must provide the name of a valid highlighter as argument." @@ -46,44 +36,19 @@ set -- "${(@)anon_argv}" } # Check the highlighter is valid. -[[ -f $root/highlighters/$1/$1-highlighter.zsh ]] || { +[[ -f ${0:h:h}/highlighters/$1/$1-highlighter.zsh ]] || { echo >&2 "Bail out! Could not find highlighter ${(qq)1}." exit 2 } # Check the highlighter has test data. -[[ -d $root/highlighters/$1/test-data ]] || { +[[ -d ${0:h:h}/highlighters/$1/test-data ]] || { echo >&2 "Bail out! Highlighter ${(qq)1} has no test data." exit 2 } -# Set up results_filter -local results_filter -if [[ ${QUIET-} == y ]]; then - if type -w perl >/dev/null; then - results_filter=$root/tests/tap-filter - else - echo >&2 "Bail out! quiet mode not supported: perl not found"; exit 2 - fi -else - results_filter=cat -fi -[[ -n $results_filter ]] || { echo >&2 "Bail out! BUG setting \$results_filter"; exit 2 } - # Load the main script. -# While here, test that it doesn't eat aliases. -print > >($results_filter | $root/tests/tap-colorizer.zsh) -r -- "# global (driver) tests" -print > >($results_filter | $root/tests/tap-colorizer.zsh) -r -- "1..1" -alias -- +plus=plus -alias -- _other=other -local original_alias_dash_L_output="$(alias -L)" -. $root/zsh-syntax-highlighting.zsh -if [[ $original_alias_dash_L_output == $(alias -L) ]]; then - print -r -- "ok 1 # 'alias -- +foo=bar' is preserved" -else - print -r -- "not ok 1 # 'alias -- +foo=bar' is preserved" - exit 1 -fi > >($results_filter | $root/tests/tap-colorizer.zsh) +. ${0:h:h}/zsh-syntax-highlighting.zsh # Overwrite _zsh_highlight_add_highlight so we get the key itself instead of the style _zsh_highlight_add_highlight() @@ -94,158 +59,72 @@ _zsh_highlight_add_highlight() # Activate the highlighter. ZSH_HIGHLIGHT_HIGHLIGHTERS=($1) -# In zsh<5.3, 'typeset -p arrayvar' emits two lines, so we use this wrapper instead. -typeset_p() { - for 1 ; do - if [[ ${(tP)1} == *array* ]]; then - print -r -- "$1=( ${(@qqqqP)1} )" - else - print -r -- "$1=${(qqqqP)1}" - fi - done -} - -# 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. .)@}" - REPLY="${${s//'#'/♯}//$'\n'/↵}" -} - # Runs a highlighting test # $1: data file run_test_internal() { local tests_tempdir="$1"; shift local srcdir="$PWD" - builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! On ${(qq)1}: cd failed: $?"; return 1 } + builtin cd -q -- "$tests_tempdir" || { echo >&2 "Bail out! cd failed: $?"; return 1 } + + echo "# ${1:t:r}" # Load the data and prepare checking it. - local BUFFER CURSOR MARK PENDING PREBUFFER REGION_ACTIVE WIDGET REPLY skip_test fail_test unsorted=0 - local expected_mismatch - local skip_mismatch - local -a expected_region_highlight region_highlight + PREBUFFER= BUFFER= ; + . "$srcdir"/"$1" - local ARG="$1" - local RETURN="" - () { - setopt localoptions + # 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; } + # Check the data declares $expected_region_highlight. + (( ${#expected_region_highlight} == 0 )) && { echo >&2 "Bail out! 'expected_region_highlight' is not declared or empty."; return 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 + # Process the data. + region_highlight=() + _zsh_highlight - (( $#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)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} - - # Process the data. - _zsh_highlight - }; [[ -z $RETURN ]] || return $RETURN - unset ARG - - integer print_expected_and_actual=0 - - if (( unsorted )); then - region_highlight=("${(@n)region_highlight}") - expected_region_highlight=("${(@n)expected_region_highlight}") - fi - - # 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 - [[ -n $PREBUFFER ]] && printf '# %s\n' "$(typeset_p PREBUFFER)" - [[ -n $BUFFER ]] && printf '# %s\n' "$(typeset_p BUFFER)" - - local i - for ((i=1; i<=$#expected_region_highlight; i++)); do - 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 - 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 - continue - fi - local -a highlight_zone; highlight_zone=( ${(z)region_highlight[i]} ) - integer start=$(( highlight_zone[1] + 1 )) end=$highlight_zone[2] - local desc="[$start,$end] «${BUFFER[$start,$end]}»" - tap_escape $desc; desc=$REPLY - if - [[ $start != $exp_start ]] || - [[ $end != $exp_end ]] || - [[ ${highlight_zone[3]%,} != ${expected_highlight_zone[3]} ]] # remove the comma that's before the memo field + # Overlapping regions can be declared in region_highlight, so we first build an array of the + # observed highlighting. + local -A observed_result + for ((i=1; i<=${#region_highlight}; i++)); do + local -a highlight_zone; highlight_zone=( ${(z)region_highlight[$i]} ) + integer start=$highlight_zone[1] end=$highlight_zone[2] + if (( start < end )) # region_highlight ranges are half-open 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 + (( --end )) # convert to closed range, like expected_region_highlight + (( ++start, ++end )) # region_highlight is 0-indexed; expected_region_highlight is 1-indexed + for j in {$start..$end}; do + observed_result[$j]=$highlight_zone[3] + done else - print -r -- "ok $i - $desc${todo:+ - }$todo" + # noop range; ignore. fi - unset expected_highlight_zone - unset exp_start exp_end - unset todo - unset highlight_zone unset start end - unset desc + unset highlight_zone 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" - 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/^/# /' - } - fi + # Then we compare the observed result with the expected one. + echo "1..${#expected_region_highlight}" + for ((i=1; i<=${#expected_region_highlight}; i++)); do + local -a highlight_zone; highlight_zone=( ${(z)expected_region_highlight[$i]} ) + local todo= + integer start=$highlight_zone[1] end=$highlight_zone[2] + # Escape # as ♯ since the former is illegal in the 'description' part of TAP output + local desc="[$start,$end] «${BUFFER[$start,$end]//'#'/♯}»" + # Match the emptiness of observed_result if no highlighting is expected + [[ $highlight_zone[3] == NONE ]] && highlight_zone[3]= + [[ -n "$highlight_zone[4]" ]] && todo="# TODO $highlight_zone[4]" + for j in {$start..$end}; do + if [[ "$observed_result[$j]" != "$highlight_zone[3]" ]]; then + print -r -- "not ok $i - $desc - expected ${(qqq)highlight_zone[3]}, observed ${(qqq)observed_result[$j]}. $todo" + continue 2 + fi + done + print -r -- "ok $i - $desc${todo:+ - }$todo" + unset desc + unset start end + unset todo + unset highlight_zone + done } # Run a single test file. The exit status is 1 if the test harness had @@ -268,7 +147,7 @@ run_test() { local ret=$pipestatus[1] stderr=$pipestatus[2] if (( ! stderr )); then # stdout will become stderr - echo "Bail out! On ${(qq)1}: output on stderr"; return 1 + echo "Bail out! output on stderr"; return 1 else return $ret fi @@ -278,14 +157,25 @@ run_test() { } } +# Set up results_filter +local results_filter +if [[ $QUIET == y ]]; then + if type -w perl >/dev/null; then + results_filter=${0:A:h}/tap-filter + else + echo >&2 "Bail out! quiet mode not supported: perl not found"; exit 2 + fi +else + results_filter=cat +fi +[[ -n $results_filter ]] || { echo >&2 "Bail out! BUG setting \$results_filter"; exit 2 } + # Process each test data file in test data directory. integer something_failed=0 ZSH_HIGHLIGHT_STYLES=() -local data_file -for data_file in $root/highlighters/$1/test-data/*.zsh; do - run_test "$data_file" | tee >($results_filter | $root/tests/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -Eq '^not ok|^ok.*# TODO' && (( something_failed=1 )) +for data_file in ${0:h:h}/highlighters/$1/test-data/*.zsh; do + run_test "$data_file" | tee >($results_filter | ${0:A:h}/tap-colorizer.zsh) | grep -v '^not ok.*# TODO' | grep -Eq '^not ok|^ok.*# TODO' && (( something_failed=1 )) (( $pipestatus[1] )) && exit 2 done exit $something_failed -} diff --git a/tests/test-perfs.zsh b/tests/test-perfs.zsh index aa139aa..3411754 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() { @@ -93,11 +92,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..35c0364 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 @@ -27,13 +27,6 @@ # vim: ft=zsh sw=2 ts=2 et # ------------------------------------------------------------------------------------------------- -# 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. -# -# Hence, we exclude them from unaliasing: -builtin unalias -m '[^+]*' # Set $0 to the expected value, regardless of functionargzero. 0=${(%):-%N} @@ -49,65 +42,10 @@ 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 -autoload -Uz is-at-least -if is-at-least 5.4; then - typeset -g zsh_highlight__pat_static_bug=false -else - typeset -g zsh_highlight__pat_static_bug=true -fi - # Array declaring active highlighters names. typeset -ga ZSH_HIGHLIGHT_HIGHLIGHTERS @@ -119,91 +57,16 @@ _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 + if [[ $WIDGET == zle-isearch-update ]]; 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[@]}") - 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 - [[ -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 - done - fi - typeset -r zsyh_user_options - - emulate -L zsh - setopt localoptions warncreateglobal nobashrematch + setopt localoptions warncreateglobal + setopt localoptions noksharrays local REPLY # don't leak $REPLY into global scope # Do not highlight if there are more than 300 chars in the buffer. It's most @@ -211,8 +74,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 @@ -240,7 +106,7 @@ _zsh_highlight() { "_zsh_highlight_highlighter_${highlighter}_paint" } always { - : ${(AP)cache_place::="${region_highlight[@]}"} + eval "${cache_place}=(\"\${region_highlight[@]}\")" } # Restore saved region_highlight @@ -249,42 +115,33 @@ _zsh_highlight() fi # Use value form cache if any cached - region_highlight+=("${(@P)cache_place}") + eval "region_highlight+=(\"\${${cache_place}[@]}\")" done # Re-apply zle_highlight settings # region - () { - (( REGION_ACTIVE )) || return - integer min max - if (( MARK > CURSOR )) ; then - min=$CURSOR max=$MARK - else - min=$MARK max=$CURSOR - fi - if (( REGION_ACTIVE == 1 )); then - [[ $KEYMAP = vicmd ]] && (( max++ )) - elif (( REGION_ACTIVE == 2 )); then + if (( REGION_ACTIVE == 1 )); then + _zsh_highlight_apply_zle_highlight region standout "$MARK" "$CURSOR" + elif (( REGION_ACTIVE == 2 )); then + () { local needle=$'\n' - # CURSOR and MARK are 0 indexed between letters like region_highlight - # Do not include the newline in the highlight - (( min = ${BUFFER[(Ib:min:)$needle]} )) - (( max = ${BUFFER[(ib:max:)$needle]} - 1 )) - fi - _zsh_highlight_apply_zle_highlight region standout "$min" "$max" - } + integer min max + if (( MARK > CURSOR )) ; then + min=$CURSOR max=$MARK + else + min=$MARK max=$CURSOR + fi + (( min = ${${BUFFER[1,$min]}[(I)$needle]} )) + (( max += ${${BUFFER:($max-1)}[(i)$needle]} - 1 )) + _zsh_highlight_apply_zle_highlight region standout "$min" "$max" + } + fi # yank / paste (zsh-5.1.1 and newer) (( $+YANK_ACTIVE )) && (( YANK_ACTIVE )) && _zsh_highlight_apply_zle_highlight paste standout "$YANK_START" "$YANK_END" - # isearch - (( $+ISEARCHMATCH_ACTIVE )) && (( ISEARCHMATCH_ACTIVE )) && _zsh_highlight_apply_zle_highlight isearch underline "$ISEARCHMATCH_START" "$ISEARCHMATCH_END" - - # suffix - (( $+SUFFIX_ACTIVE )) && (( SUFFIX_ACTIVE )) && _zsh_highlight_apply_zle_highlight suffix bold "$SUFFIX_START" "$SUFFIX_END" - return $ret @@ -307,11 +164,7 @@ _zsh_highlight_apply_zle_highlight() { integer first="$3" second="$4" # read the relevant entry from zle_highlight - # - # ### In zsh≥5.0.8 we'd use ${(b)entry}, but we support older zsh's, so we don't - # ### add (b). The only effect is on the failure mode for callers that violate - # ### the precondition. - local region="${zle_highlight[(r)${entry}:*]-}" + local region="${zle_highlight[(r)${entry}:*]}" if [[ -z "$region" ]]; then # entry not specified at all, use default value @@ -332,7 +185,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 +225,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 +239,75 @@ _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)}) - # 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-* ]] && [[ -z $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}" + fi + esac + done +} # Load highlighters from directory. # @@ -504,7 +315,7 @@ fi # 1) Path to the highlighters directory. _zsh_highlight_load_highlighters() { - setopt localoptions noksharrays bareglobqual + setopt localoptions noksharrays # Check the directory exists. [[ -d "$1" ]] || { @@ -514,10 +325,10 @@ _zsh_highlight_load_highlighters() # Load highlighters from highlighters directory and check they define required functions. local highlighter highlighter_dir - for highlighter_dir ($1/*/(/)); do + for highlighter_dir ($1/*/); do highlighter="${highlighter_dir:t}" - [[ -f "$highlighter_dir${highlighter}-highlighter.zsh" ]] && - . "$highlighter_dir${highlighter}-highlighter.zsh" + [[ -f "$highlighter_dir/${highlighter}-highlighter.zsh" ]] && + . "$highlighter_dir/${highlighter}-highlighter.zsh" if type "_zsh_highlight_highlighter_${highlighter}_paint" &> /dev/null && type "_zsh_highlight_highlighter_${highlighter}_predicate" &> /dev/null; then @@ -534,7 +345,7 @@ _zsh_highlight_load_highlighters() eval "_zsh_highlight_highlighter_${(q)highlighter}_paint() { _zsh_highlight_${(q)highlighter}_highlighter \"\$@\" }" eval "_zsh_highlight_highlighter_${(q)highlighter}_predicate() { _zsh_highlight_${(q)highlighter}_highlighter_predicate \"\$@\" }" else - print -r -- >&2 "zsh-syntax-highlighting: ${(qq)highlighter} highlighter should define both required functions '_zsh_highlight_highlighter_${highlighter}_paint' and '_zsh_highlight_highlighter_${highlighter}_predicate' in ${(qq):-"$highlighter_dir${highlighter}-highlighter.zsh"}." + print -r -- >&2 "zsh-syntax-highlighting: ${(qq)highlighter} highlighter should define both required functions '_zsh_highlight_highlighter_${highlighter}_paint' and '_zsh_highlight_highlighter_${highlighter}_predicate' in ${(qq):-"$highlighter_dir/${highlighter}-highlighter.zsh"}." fi done } @@ -552,7 +363,7 @@ _zsh_highlight_bind_widgets || { # Resolve highlighters directory location. _zsh_highlight_load_highlighters "${ZSH_HIGHLIGHT_HIGHLIGHTERS_DIR:-${${0:A}:h}/highlighters}" || { - print -r -- >&2 'zsh-syntax-highlighting: failed loading highlighters, exiting.' + print -r -- >&@ 'zsh-syntax-highlighting: failed loading highlighters, exiting.' return 1 } @@ -562,7 +373,7 @@ _zsh_highlight_preexec_hook() typeset -g _ZSH_HIGHLIGHT_PRIOR_BUFFER= typeset -gi _ZSH_HIGHLIGHT_PRIOR_CURSOR= } -autoload -Uz add-zsh-hook +autoload -U add-zsh-hook add-zsh-hook preexec _zsh_highlight_preexec_hook 2>/dev/null || { print -r -- >&2 'zsh-syntax-highlighting: failed loading add-zsh-hook.' } @@ -570,18 +381,7 @@ add-zsh-hook preexec _zsh_highlight_preexec_hook 2>/dev/null || { # Load zsh/parameter module if available zmodload zsh/parameter 2>/dev/null || true +autoload -U is-at-least + # Initialize the array of active highlighters if needed. -[[ $#ZSH_HIGHLIGHT_HIGHLIGHTERS -eq 0 ]] && ZSH_HIGHLIGHT_HIGHLIGHTERS=(main) - -if (( $+X_ZSH_HIGHLIGHT_DIRS_BLACKLIST )); then - print >&2 'zsh-syntax-highlighting: X_ZSH_HIGHLIGHT_DIRS_BLACKLIST is deprecated. Please use ZSH_HIGHLIGHT_DIRS_BLACKLIST.' - ZSH_HIGHLIGHT_DIRS_BLACKLIST=($X_ZSH_HIGHLIGHT_DIRS_BLACKLIST) - unset X_ZSH_HIGHLIGHT_DIRS_BLACKLIST -fi - -# Restore the aliases we unned -eval "$zsh_highlight__aliases" -builtin unset zsh_highlight__aliases - -# Set $?. -true +[[ $#ZSH_HIGHLIGHT_HIGHLIGHTERS -eq 0 ]] && ZSH_HIGHLIGHT_HIGHLIGHTERS=(main) || true