328 Commits
0.6.0 ... 0.7.1

Author SHA1 Message Date
Daniel Shahaf
932e29a0c7 Tag version 0.7.1. 2020-02-28 21:34:10 +00:00
Daniel Shahaf
ec04a20681 release.md: Update with the step that was missed in 0.7.0. 2020-02-28 21:33:51 +00:00
Daniel Shahaf
cb8d68d00a Update changelog for the 0.7.1 release. 2020-02-28 21:32:42 +00:00
Daniel Shahaf
04dd78cb00 Update changelog for the 0.7.0 release. (Yes, this should have been committed earlier today.) 2020-02-28 21:29:59 +00:00
Daniel Shahaf
4eb8a19133 Post-release version number bump. 2020-02-28 15:38:43 +00:00
Daniel Shahaf
36a3c0f82c Tag version 0.7.0. 2020-02-28 15:36:43 +00:00
Daniel Shahaf
d65f4f8a35 release.md: Add details about a step. 2020-02-28 15:36:25 +00:00
Daniel Shahaf
e07c901dfd tests: Fix the last added test to pass when sudo(8) isn't installed. 2020-02-28 15:22:43 +00:00
Daniel Shahaf
3cea1434ae Bump copyright years. 2020-02-25 17:34:35 +00:00
Daniel Shahaf
73c89c69a2 tests: Add a test for partial elisions of parameter expansions in command position
See 1a55dc8fc2 (commitcomment-37476021)
2020-02-25 17:22:55 +00:00
Matthew Martin
7fd44bc429 tests: Fix previous 2020-02-25 07:37:09 -06:00
Matthew Martin
ab88dfad27 tests: Add main test for alias of a parameter like string 2020-02-25 07:21:40 -06:00
Daniel Shahaf
2b3638a211 test harness: Tweak quiet-test output
- Print the test name and data after the plan line

- Split on the plan line rather than on comments

  + That makes tap-filter more suitable to filter TAP output generated by other
    TAP producers.

  + However, the filtered output deletes the plan line and adds a blank line in
    its stead.  This suits our use-case of interactive test runs.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
3414c7c0d2 test harness: Include $PREBUFFER and $BUFFER in the output.
For human readers' benefit.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
4a043b4d15 noop: Whitespace changes only.
./.editorconfig is already set correctly.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
dc70e89bfd tests: Support non-arrays in typeset_p(). 2020-02-22 15:12:24 +00:00
Daniel Shahaf
f729726300 'main': Do not look for metacharacters in parameter expansions.
Fixes the bug the previous commit added a test for.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
f490b7cb95 'main': Add two tests for metacharacters in parameter expansions.
Suggested-by: @QBobWatson
(in https://github.com/zsh-users/zsh-syntax-highlighting/pull/682#issuecomment-588361771)
2020-02-22 15:12:24 +00:00
Daniel Shahaf
2f4f81cab7 'main': Parameter expansions may not contain assignments.
In «a="b=c"; $a», the '=' sign in the expansion of $a is not active.
Therefore, prevent the expansion of $a from being considered an
assignment.  Update test expectations accordingly.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
3558306149 tests: Add tests for issue #670.
Before the parent commit, they behaved as follows:

    ZSH_PATCHLEVEL=debian/5.7.1-1
    # parameter-value-contains-command-position1
    1..2
    ok 1 - [1,7] «$foobar» - # TODO "issue #670"
    not ok 2 - have 1 expectations and 6 region_highlight entries: «expected_region_highlight=( '1 7 assign "issue ♯670"' )» «region_highlight=( '0 7 assign' '2 7 default' '2 7 command-substitution-unquoted'
    zsh-syntax-highlighting: BUG: _zsh_highlight_highlighter_main_paint: start(2) >= end(2)
    Bail out! On './highlighters/main/test-data/parameter-value-contains-command-position2.zsh': output on stderr
    # parameter-value-contains-command-position2
    1..2
    ok 1 - [1,2] «$y» - # TODO "issue #670"
    ok 2 - cardinality check

Due to the the "BUG:" and "Bail out!" on the first one, they could not
be added as XFAIL tests before the parent commit.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
1a55dc8fc2 'main': Pass parameters through the multi-word machinery, as we already do for aliases.
Fixes #674.
2020-02-22 15:12:24 +00:00
Daniel Shahaf
52ea5c686a 'main': precommands += chronic, ifne (from moreutils)
Fixes #681.
2020-02-17 10:20:13 +00:00
Manaswini Das
dde84e1b25 docs: Fix typo
Fixes #679
2020-01-28 07:44:52 +00:00
Matthew Martin
0e51046b19 main: Add tests for issue #678 2020-01-25 15:51:16 -06:00
Daniel Shahaf
4e92449752 changelog: Document #670 as a known issue. 2020-01-25 21:00:40 +00:00
Daniel Shahaf
b73853dd96 changelog: Document #677 as a known issue. 2020-01-24 18:40:51 +00:00
Daniel Shahaf
4546756500 tests: Fix another instance of issue from the last commit. 2020-01-24 01:22:03 +00:00
Daniel Shahaf
9d380805d7 tests: Unbreak the build on zsh 5.0.8 and older. 2020-01-24 00:51:27 +00:00
Daniel Shahaf
deee22ed42 tests: Don't filter out tests that aborted.
Useful in piping Travis CI output through tap-filter manually.
2020-01-24 00:49:51 +00:00
Daniel Shahaf
77c6bf2019 'main': precommands: Remove argumentless options that can't be followed by a command word.
Suggested-by: Matthew Martin
(in e2e97dde9c (r36941988))
2020-01-24 00:37:56 +00:00
Daniel Shahaf
27e4789439 docs: Track FreeBSD port rename
See https://svnweb.freebsd.org/ports?revision=501751&view=revision
2020-01-23 22:09:33 +00:00
Daniel Shahaf
e2e97dde9c 'main': Support tabbed(1) from suckless-tools 2020-01-22 04:44:27 +00:00
Daniel Shahaf
9bf06c5c2a tests: Add a regression test for issue #676. 2020-01-20 03:49:00 +00:00
Daniel Shahaf
dfb917020c Bump copyright years. 2020-01-16 17:19:25 +00:00
Daniel Shahaf
9ed2a46ed2 dev tools: New script to ease opening $EDITOR on failing tests.
Has room for improvement; for now, I use it with CTRL-W_f.
2020-01-16 17:19:25 +00:00
Daniel Shahaf
1c6a6d92b0 dev tools: Allow specifying preamble code when generating test cases. 2020-01-16 17:19:25 +00:00
Daniel Shahaf
6b0671b63e Add .editorconfig file.
Vim doesn't honour the modelines by default because they're too far from
the start/end of the file [the default value of the 'modelines' (sic)
option is too small].
2020-01-16 17:19:25 +00:00
Daniel Shahaf
b3b6d7129f tests: Add failing tests for issue #674. 2020-01-16 16:12:14 +00:00
Daniel Shahaf
9cb7e9a837 tests: Make sudo-longopt pass when sudo isn't installed.
Fixes #673.
2020-01-16 15:49:27 +00:00
Daniel Shahaf
cb166dcc77 'main': Restore 0.6.0's behaviour for unknown options.
See discussion on #664.
2020-01-14 23:08:50 +00:00
Daniel Shahaf
5012d771f3 'main': Don't highlight unknown precommand flags as errors.
We cannot now for sure whether the flag is misspelled or simply unknown to us,
so err on the side of caution.  This fixes an unreleased regression.  Fixes #658.

Issue #641 was originally filed about this problem, but is left open to track
further enhancements.
2020-01-14 23:08:50 +00:00
Daniel Shahaf
3a6f7e7bfe 'main': Add an XFail test for #641 and #658. 2020-01-14 23:08:50 +00:00
Daniel Shahaf
521fedfdf5 'main': Change the issue a test is associated with.
Issue #202 is too overloaded.
2020-01-12 19:32:44 +00:00
Daniel Shahaf
1618848df6 'main': Add some tests for complete and partial absolute paths in command position. 2020-01-12 19:29:46 +00:00
Daniel Shahaf
c3293ba0d8 'main': Update comments after last commit. No functional change. 2020-01-12 18:34:49 +00:00
Daniel Shahaf
21cdd6bc5e 'main': Simplify alias handling.
$last_alias isn't needed; there's no reason to treat loops of length 2
(alias a=b b=a) differently to loops of length 1 (alias a=a), length 3
(alias a=b b=c c=a), or length N.

The «(( $+seen_alias[$arg] ))» check is redundant as of the last commit:
the enclosing condition ensures that $res is "alias", which implies that
«(( $+seen_alias[$arg] ))» is false.
2020-01-12 18:34:49 +00:00
Daniel Shahaf
f32d1704b1 'main': Fix issue #652. 2020-01-12 18:34:49 +00:00
Daniel Shahaf
86fe054005 'main': precommands += ssh-agent 2020-01-12 17:21:59 +00:00
Daniel Shahaf
533bfa0116 'main': Fix the new 'backslash' test on zsh-5.0.2 and older. (The bug
occurred on zsh-5.0.7 and older but I don't have zsh-5.0.7 handy to test
on.)

Evidently, the issue was due to elision.

This addresses #665.0 and #665.5.
2020-01-12 17:10:34 +00:00
Daniel Shahaf
2d0dddf58b 'main': Don't dequote the word in command position before analyzing it.
Fixes #656.
Fixes #660.

Regression from commit e1ecf950e2,
"main: Do path expanstion after alias expansion" (sic).
2020-01-12 16:11:09 +00:00
Daniel Shahaf
27fa4a6546 noop: Quote the bitflag values.
Now every instance of «:foo:» is ''-quoted.  This enables $EDITOR to highlight
them consistently throughout the file.
2020-01-12 15:46:22 +00:00
Daniel Shahaf
ae5ad09cf5 Bump copyright years. 2020-01-12 14:58:56 +00:00
Daniel Shahaf
3ee5aa0e06 release.md: Add missing argument. 2020-01-11 23:43:23 +00:00
Daniel Shahaf
eb277cdcc6 Post-release version number bump. 2020-01-11 23:42:31 +00:00
Daniel Shahaf
71dc090d02 Tag version 0.7.0-beta1. 2020-01-11 23:34:58 +00:00
Daniel Shahaf
6a310ada5b changelog: Add three entries 2020-01-11 23:31:18 +00:00
Daniel Shahaf
c1d5790c57 changelog: Start 0.7.0's changelog. 2020-01-11 23:10:28 +00:00
Daniel Shahaf
e9b1ce1a36 Add a unit test for dc1b2f6fa4. 2020-01-11 23:04:22 +00:00
Daniel Shahaf
68fbe1a449 Add a test for redirection from/to process substitution.
Inspired by ab1013ae0d.
2020-01-11 21:47:34 +00:00
Daniel Shahaf
f02c0bf980 Don't describe as ZSH_HIGHLIGHT_DIRS_BLACKLIST as experimental, now that it's named without the X_ prefix. 2020-01-11 21:32:21 +00:00
Daniel Shahaf
1be58a6f45 Add a test for 2f03b6d704. 2020-01-11 21:19:52 +00:00
Daniel Shahaf
c0ad50e645 dev tools: Fix regression introduced in commit "Print the test data to stdout for convenience.".
tee(1) truncated $fname.  Fortunately, the data that got truncated had just
been `git add`-ed, so no harm was done.
2020-01-11 20:49:12 +00:00
Daniel Shahaf
8b2768ab40 'main': Add a test for 07f259f653. 2020-01-11 20:46:14 +00:00
Daniel Shahaf
6f1f595e3e dev tools: Print the test data to stdout for convenience. 2020-01-07 19:59:49 +00:00
Daniel Shahaf
de95d50bce 'main': Fix highlighting of the 'time' and 'nocorrect reserved words
Also add tests.

'time' is a regression from 6647e88606
(last Wednesday).
2019-12-27 13:47:31 +00:00
Daniel Shahaf
83862c1abb 'main': Add two basic tests for aliases. 2019-12-27 09:37:23 +00:00
Daniel Shahaf
ce10f20e77 'main': Add a regression test for #652. 2019-12-27 09:00:36 +00:00
Daniel Shahaf
6647e88606 'main': Add some precommands. 2019-12-25 10:53:42 +00:00
Matthew Martin
e7d3fbc50b main: Add test for previous 2019-11-07 19:59:00 -06:00
Matthew Martin
139ea2b189 main: Avoid $end_pos when calculating $arg size
Fixes second issue filed under #617
https://github.com/zsh-users/zsh-syntax-highlighting/issues/617#issuecomment-551253422

In the case of a command substitution in an alias, $arg[i,end_pos] would
not pass to the end of $arg and i <= start_pos - end_pos would not
iterate over all of $arg. Use $arg[i,-1] and $#arg respectively to avoid
issues in aliases.
2019-11-07 19:50:17 -06:00
Oliver Kiddle
be3882aeb0 driver: adjust region end for vi command mode 2019-10-17 21:18:56 +00:00
Daniel Shahaf
35c8690c00 release.md: Document that release tags should be signed.
That's how the previous tags were done.
2019-08-01 15:02:07 +00:00
Matthew Martin
b55832c5f8 main: Drop X_ from X_ZSH_HIGHLIGHT_DIRS_BLACKLIST 2019-07-24 07:27:54 -05:00
Daniel Shahaf
8e78e9dbba 'main': Fix issue #623 by fixing the expectations of the regression test of issue #616. 2019-07-21 01:44:19 +00:00
Matthew Martin
2bd709fc28 main: Fix misspelling in test expectation 2019-07-20 10:38:53 -05:00
Matthew Martin
1fcd786f77 main: Add more alias tests
Suggested by Daniel.
2019-07-20 10:36:57 -05:00
Matthew Martin
369620dd2d main: Use longer alias name in tests 2019-07-20 10:32:34 -05:00
Matthew Martin
9cc0060334 main: Stop highlighting alias as its first word too
Fixes #565 and #576
2019-07-20 10:32:12 -05:00
Matthew Martin
a88d41e095 main: Fix faulty test
sudo -e does not take a command, so use another flag that does.
2019-07-11 21:15:01 -05:00
Matthew Martin
b3f66fc874 main: Use zsyh_user_options when splitting alias RHS 2019-07-11 21:15:01 -05:00
Matthew Martin
83249e1b23 main: Do not highlight empty region between two adjacent $()
Should fix #624
2019-07-08 17:05:42 -05:00
Daniel Shahaf
ab4b6f5823 'main': Hackily unbreak 'make test'.
The test point is XPASSing, which makes CI red.  As a duct tape measure to turn
CI green again, update the test expectations to make it XFAIL.  The hacky part
is that the expectation set by this commit will never be met; the test point
will never XPASS now until its expectations are changed again.

Issue #623 remains open to track setting the test expectation to the correct
value (i.e., make the test XFAIL in a manner that _will_ XPASS if the bug is
fixed; in other words, pay off the technical debt created by this commit).

Issue #616 remains open to fix the actual bug.
2019-07-07 18:36:38 +00:00
Daniel Shahaf
d766243f7a 'main': Add an XFail regression test for issue #616. 2019-06-16 21:42:21 +00:00
Daniel Shahaf
fd4c5db4c9 'main': Fix an issue whereby a --option was highlighted as a file
Regression test included.

Fixes #578.

Review-by: Matthew Martin
2019-06-16 20:25:34 +00:00
Julien Nicoulaud
650dd79d86 tests: use zshusers/zsh image with tags (see zsh-users/zsh-docker#16) 2019-05-25 13:59:59 +02:00
Matthew Martin
82cf2527fc 'main': Add test for #548
Closes #548
2019-04-19 19:48:01 -05:00
Matthew Martin
972ad197c1 driver: Disable BASH_REMATCH
Fixes #612.
2019-04-14 08:26:03 -05:00
Matthew Martin
7ba4f0f119 'main': Use nice for tests in previous
stdbuf is not present on all systems. nice is not builtin and is POSIX.
2019-04-04 21:52:51 -05:00
Daniel Shahaf
bc3f77f719 'main': Add XFailing tests for issue #608. 2019-03-29 17:50:49 +00:00
Daniel Shahaf
5f80147c55 'main': Follow-up to last commit: Fix stdbuf options spec.
The effect of the bug was that «-:» was considered an option taking an argument
(see the parsing of the associative array in lines 692-693).

As to preventing recurrence, add a warning comment.  We _could_ change
the separator from colon to something else, but colon is idiomatic for
this use (see, e.g., passwd(5)), and the problem will be unlikely to
recur if and when we add a third field to the assoc's values.  (For
example, jexec(1), chroot(1), and even ssh(1) would benefit from a third
field saying how many positional arguments to skip before the positional
argument that's to be the command word — though in the last two cases,
specifying an "inner" command is optional.)
2019-03-27 11:45:17 +00:00
Daniel Shahaf
3e86ef59b7 'main': precommands += stdbuf 2019-03-26 22:04:50 +00:00
Matthew Martin
a109ab54f0 CI: Add zsh 5.7 and 5.7.1 2019-03-21 22:59:11 -05:00
Daniel Shahaf
809443f5c5 'main': Add the issue number for future reference. 2019-03-16 07:49:04 +00:00
Daniel Shahaf
abec25d013 'main': _zsh_highlight_main__type: Add comments. 2019-03-16 07:47:53 +00:00
Daniel Shahaf
79596a84be 'main': Document the last change. 2019-03-16 07:45:23 +00:00
Daniel Shahaf
37d6108215 'main': Work around a zsh bug reported to us as #606.
As of this writing, it seems that the 'type' builtin poisons the commands hash
in a way that breaks AUTO_CD to absolute paths that don't end with a slash.
2019-03-16 07:34:12 +00:00
Timm
d61ebbcbbf docs: Fix void-linux link 2019-01-31 18:27:34 -06:00
Matthew Martin
2f3b98ff6f Merge pull request #543 from Sea-n/patch-1
Add Markdown Syntax Highlight
2019-01-13 13:48:45 -06:00
Sean Wei
4fb570e104 docs: Enable Syntax Highlighting for Code Snippits 2019-01-13 16:12:41 +08:00
Matthew Martin
693757bfd7 tests: Run harness in an anon function to catch global variables
Thanks Daniel for the set -- suggestion.
2019-01-12 00:36:42 -06:00
Matthew Martin
1e34c4aa0b main: in arguments starting with %?, ? is not a glob
Fixes #596
2019-01-06 22:23:10 -06:00
Matthew Martin
3259fe338d Revert "tests: Run tests in an anon function to catch global variables"
This reverts commit ba2d8fcf76.

Breaks 4.3.12 and .11
2019-01-06 21:38:13 -06:00
Matthew Martin
ba2d8fcf76 tests: Run tests in an anon function to catch global variables
This would have caught #593.
2019-01-06 21:23:46 -06:00
Matthew Martin
9bd38c6fc0 tests: Use root variable for root of the project 2019-01-06 21:21:42 -06:00
Matthew Martin
dddea5d5dd tests: Set harness variables local 2019-01-06 21:18:41 -06:00
Daniel Shahaf
9a06c28ddc docs: Don't recommend to source .zshrc
That might not be idempotent (cf #598).
2019-01-05 21:27:09 +00:00
Daniel Shahaf
fd57ed94f1 docs: Clarify installation instructions (cf #598) 2019-01-05 19:12:59 +00:00
Daniel Shahaf
78b95b0695 Add a test for the 'true negative' case of issue #596. 2018-12-31 17:57:53 +00:00
Daniel Shahaf
06893a3873 tests: Escape region_highlight and expected_region_highlight in TAP output.
Required for TAP compliance in case the output ever contains '#' or '\n'.
2018-12-29 12:15:34 +00:00
Daniel Shahaf
580ccaebb8 tests: (try to) Fix test failure under zsh<5.3, where 'typeset -p arrayvar''s is two lines long. 2018-12-29 11:57:15 +00:00
Daniel Shahaf
7cb5ad0f9b tests: Tweak XFAIL/XPASS output of cardinality check.
Stylistic tweaks only; no functional change, no effect on TAP compliance.
2018-12-29 11:46:18 +00:00
Daniel Shahaf
cd1647f4d4 tests: Follow-up to grandparent: Make the cardinality check XPASS properly when it should. 2018-12-29 11:42:34 +00:00
Daniel Shahaf
0efad58f30 Add a test for issue #596. 2018-12-29 11:31:50 +00:00
Daniel Shahaf
864864442e tests: Allow marking the cardinality check as TODO (XFail).
Needed for next commit.
2018-12-29 11:31:18 +00:00
dana
55f846c673 driver: Avoid warn_create_global warnings 2018-12-20 12:48:14 +00:00
Tobias Sette
3dc74b5c2c pattern, regexp: Declare the variable in the documentation example
Fixes #590.
2018-12-14 10:21:55 +00:00
Daniel Shahaf
e900ad8bad main: Add another test, inspired by #577 and #502. 2018-11-01 04:01:33 +00:00
Daniel Shahaf
f087f3c6e4 main: Add a test for issue #577. 2018-11-01 04:01:05 +00:00
Daniel Shahaf
3e6d1375c9 main: Fix check for suffix aliases (fixes #574) 2018-10-30 21:25:59 +00:00
Daniel Shahaf
4ce56a821e Merge branch 'i511-bang-pipeline'
* i511-bang-pipeline:
  main: Fold '!' handling in to the 'case'.  No functional change.
  Fix indentation.  No functional change.
  main: Fix highlighting of the ! precommand after array assignments. Add tests.
  main: Highlight the ! precommand as an error when not at the start of a pipeline.
2018-10-23 16:58:33 +00:00
Daniel Shahaf
44b89f3307 main: Fold '!' handling in to the 'case'. No functional change. 2018-10-23 16:36:14 +00:00
Daniel Shahaf
0c9252ac69 Fix indentation. No functional change. 2018-10-23 16:34:35 +00:00
Daniel Shahaf
6cf522b7b3 main: Fix highlighting of the ! precommand after array assignments. Add tests. 2018-10-23 16:31:39 +00:00
Daniel Shahaf
298ef6a2fa main: Highlight the ! precommand as an error when not at the start of a pipeline.
Fixes #511.
2018-10-23 16:31:00 +00:00
Matthew Martin
d9e326b993 main: consume trailing whitespace in _highlight_list
Fixes highlighting when an unclosed $( ends in whitespace.
2018-10-22 07:53:18 -05:00
Matthew Martin
48a20d067f main: Break double-quoted-argument on command substitutions 2018-10-22 07:53:18 -05:00
Daniel Shahaf
6539f0d419 'main': Highlight named fd redirections.
Merge remote-tracking branch 'danielsh/i238-named-fd-redirection-v1'

* danielsh/i238-named-fd-redirection-v1:
  'main': Tighten condition.
  noop: Tweak condition at Matthew's suggestion
  'main': Highlight named fd redirections.
2018-10-22 05:00:07 +00:00
Daniel Shahaf
7d961ba1e6 'main': Add a test for issue #237. 2018-10-22 04:58:57 +00:00
Daniel Shahaf
ad3a6cb3c9 'main': Tighten condition.
Should rule out brace expansions such as '{foo,bar}' and '{10..20}'.
2018-10-22 04:56:50 +00:00
Daniel Shahaf
9870ccc505 noop: Tweak condition at Matthew's suggestion 2018-10-22 04:54:11 +00:00
Daniel Shahaf
38c794a978 'main': Highlight named fd redirections.
Fixes #238
2018-10-22 04:33:11 +00:00
Daniel Shahaf
de23e75946 minor: Fix the editor braces matching confusion prevention sentinel. 2018-10-22 04:27:18 +00:00
Matthew Martin
a3c9e7ebc7 main: Simplify insane alias checking 2018-10-21 14:59:52 -05:00
Matthew Martin
f71a17c58e main: Highlight closing brackets
Closes #226
2018-10-21 12:10:07 -05:00
Matthew Martin
d0c23a68b3 main: Simplify proc_buf offset calculation
Fixes #347
2018-10-20 23:48:39 -05:00
Matthew Martin
7388adf4e8 main: Add alias tests 2018-10-20 20:57:45 -05:00
Matthew Martin
cb8c736a56 main: Run the entirety of aliases through the state machine
Fixes #540 #544 #552 #554 #555
2018-10-20 20:57:45 -05:00
Matthew Martin
2d4fe988ba main: Rename parameters to simplify next diff 2018-10-20 20:18:46 -05:00
Matthew Martin
8f17e4e201 main: Add trivial condition and remove whitespace to simplify next diff 2018-10-20 20:18:46 -05:00
Daniel Shahaf
02f4a6b540 'main': Optionally ignore aliases in __type 2018-10-20 20:18:46 -05:00
Matthew Martin
b9d7fe5a43 main: Shift args rather than iterating over
No functional change. Prepares for running a full alias through the
state machine.
2018-10-20 20:18:46 -05:00
Daniel Shahaf
6898f71016 Add a test.
Related to https://github.com/zsh-users/zsh-syntax-highlighting/issues/549#issuecomment-431628338 and to #556.
2018-10-21 00:26:34 +00:00
Daniel Shahaf
df8b2fb867 tests: Fix a failing test.
Update the test point for f3410c5862 (#264),
which changed the highlighting of aliases to consider what they resolve to.

Now the test file has both ${aliases[alias1]} and ${functions[alias1]},
the expectation is 'alias', and passes; thus:

Fixes #588.
2018-10-18 23:48:17 +00:00
Daniel Shahaf
9d6ecea21c Fix a long-standing bug in a unit test. This uncovers a regression.
The test never actually defined a function named 'alias1', not even
when zsh 5.4 warned it about this (see 9523d6d49c,
which was wrong and is hereby reverted).

The test that's now failing has been filed as issue #558.
2018-10-18 23:45:38 +00:00
Matthew Martin
47c2b7e185 main: Distinguish quoted/unquoted command substitutions
Closes #547.
2018-10-13 09:37:09 -05:00
Matthew Martin
d6586e2a4f main: Order precommand_options and add '-'
Fixes #499.
2018-10-10 23:23:35 -05:00
Matthew Martin
31276c1b64 main: Avoid empty character classes
Avoids an error in pre-5.0.8: bad pattern: -[]#
2018-10-10 23:02:33 -05:00
Matthew Martin
07f259f653 main: Avoid null elision in _check_path
This could be triggered if BUFFER='\'.
2018-10-10 22:30:53 -05:00
Matthew Martin
e27e53b1ef main: Highlight unknown precommand option as unknown-token 2018-10-10 22:30:51 -05:00
Matthew Martin
c6e3d216ec main: Consolidate TOKENS_COMMANDSEPARATOR handling
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
5bb5703b0d main: Move TOKENS_CONTROL_FLOW handling into command word branch
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
dea05e44e6 main: Recognize more redirection and array assignment parse errors
() ) } are invalid as a redirection target.
() } are invalid in an array assignment.
2018-10-10 22:26:49 -05:00
Matthew Martin
2f03b6d704 main: Do not highlight a redirection target as an option 2018-10-10 22:26:49 -05:00
Matthew Martin
b075147888 main: Consolidate conditionals together.
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
9289a57de0 main: Remove already_assigned 2018-10-10 22:26:49 -05:00
Matthew Martin
c76daac095 main: Move start_pos=$end_pos to the beginning of the loop
This allows for use of continue.
2018-10-10 22:26:49 -05:00
Matthew Martin
de28e20fbc main: Simplify this_word next_word updating 2018-10-10 22:26:49 -05:00
Matthew Martin
c05ebf762c main: Do not recognize always as a reserved word in a redirection 2018-10-10 22:26:49 -05:00
Matthew Martin
ae5b9b2dc9 main: Set redirection style when recognizing the redirection 2018-10-10 22:26:49 -05:00
Matthew Martin
df431eeee8 main: Recognize repeat with the other reserved words 2018-10-10 22:26:49 -05:00
Matthew Martin
3ddb974a3d main: Remove needless code
The below code handles this case.
2018-10-10 22:26:49 -05:00
Matthew Martin
b6e0aeb380 main: Use unknown-token when the token type is unknown 2018-10-10 22:26:49 -05:00
Matthew Martin
4748f9bd3d main: Add alias tests 2018-10-10 22:26:47 -05:00
Matthew Martin
e3edddd8ec main: alias style overrides precommand style 2018-10-10 22:20:19 -05:00
Matthew Martin
c138123397 main: Move alias handling up.
This will set style=alias before the great fork.
2018-10-10 22:20:19 -05:00
Matthew Martin
57386f30ae main: Recursively expand aliases 2018-10-10 22:20:19 -05:00
Matthew Martin
e1ecf950e2 main: Do path expanstion after alias expansion 2018-10-10 22:20:19 -05:00
Matthew Martin
f46b148c52 main: Only expand aliases in command position 2018-10-10 22:20:19 -05:00
Matthew Martin
99d7235c2b main: Add test for an alias to a redirection 2018-10-10 22:20:19 -05:00
Matthew Martin
05a55108c9 main: Expand aliases before looking for redirections 2018-10-10 22:20:19 -05:00
Daniel Shahaf
e43e4fd2c7 'main': Fix $flags_sans_argument for 'nice'.
Follow-up to 2c15b0e996 ("Learn $flags_sans_arguments…").
2018-10-10 22:20:19 -05:00
Daniel Shahaf
a56c33c3be Bump copyright years. 2018-10-10 22:20:19 -05:00
Daniel Shahaf
005179ed8e 'main': Update $this_word state with our inferences.
Found by code inspection.
2018-10-10 22:20:19 -05:00
Daniel Shahaf
0709520597 No functional change.
Follow-up to 1fee620e62.
2018-10-10 22:20:19 -05:00
Daniel Shahaf
f7ac43cd49 'main': Unify $ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS and $precommand_options. 2018-10-10 22:20:19 -05:00
Daniel Shahaf
31ceaed4f4 'main': Highlight array parameters in command position. 2018-10-10 22:20:18 -05:00
Daniel Shahaf
ad6261fbca 'main': Use a more robust way of testing for $parameters' availability. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
3a33ac1d20 'main': Break out a new helper function for readability. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
f3425e18fe 'main': Let _zsh_highlight_main__type return false on failure. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
82c39716eb 'main': Write the "remainder" of the sentence in a comment. No functional change. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
a2e993c59f 'main': Learn $flags_sans_arguments and use that to parse '-xy foo' correctly where -x takes no argument and -y does. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
bee115f797 'main': Correct a comment. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
7f5e11e38b 'main': Remove superfluous variable. No functional change. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
78be8f611f 'main': Highlight 'doas'.
Fixes #365.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
8b11ca087e 'main': Highlight 'nice'.
Fixes #168.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
5694221939 'main': Highlight the 'command' precommand.
Fixes #343.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
4c7db4e886 'main': Update state machine docs. No functional change. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
add2ac59fc 'main': Permit $flags_with_argument to be empty. 2018-10-10 22:19:41 -05:00
Daniel Shahaf
6e8984e2ec 'main': Make sudo handling more generic.
Part of issue #343.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
dbdebfaaa5 'main': Following up to the last commit, also highlight braced parameter expansions: «${foo}». 2018-10-10 22:19:41 -05:00
Daniel Shahaf
bf055f7df2 'main': Fix the last commit's issue concerning parameter expansion at command word. 2018-10-10 22:19:36 -05:00
Daniel Shahaf
76d61360a7 'main': New XFail test for parameter expansion at command word. 2018-10-09 23:28:54 -05:00
Daniel Shahaf
f3410c5862 'main': Expand aliases first. (Issue #264.)
This commit causes an alias to an invalid command to be highlighted as an error
(unknown-token).
2018-10-09 23:28:54 -05:00
MinJae Kwon
cf88b63523 docs: Remove superfluous indentations in code block 2018-10-07 14:57:42 +00:00
Daniel Shahaf
565463ca8f 'main': Add regression test for an unclosed backtick substitution 2018-09-30 16:26:01 -04:00
Matthew Martin
e86f75a840 main: Highlight {command,process} substitution delimiters 2018-09-30 16:26:01 -04:00
Matthew Martin
22839d08ef main: Return 0 if braces_stack is empty
This allows a caller to know if the command or process substitution is
complete.
2018-09-30 15:32:21 -04:00
Matthew Martin
472c71c1fa main: Support the glob_assign option 2018-09-30 15:32:21 -04:00
Matthew Martin
9616bfdb20 main: Ignore zsh 5.0.8 off by one bug in tests 2018-09-30 15:32:21 -04:00
Matthew Martin
8a93b852ca main: Add test for command substitution in assignment 2018-09-30 15:32:21 -04:00
Matthew Martin
932eb380e2 main: Highlight the value of an assignment 2018-09-30 15:32:19 -04:00
Matthew Martin
c06e5e95dc main: Correct array assignment check 2018-09-30 15:31:48 -04:00
Matthew Martin
12e01336f1 main: Start _highlight_argument at $1
No functional change.
2018-09-30 15:21:20 -04:00
Matthew Martin
13d332af95 main: Make _check_path's argument explicit
No functional change.
2018-09-30 15:21:20 -04:00
Matthew Martin
57e451b531 main: Add test for unclosed command substitution 2018-09-30 15:21:20 -04:00
Matthew Martin
49dbb05791 main: Add test for =( ) process substitution 2018-09-30 15:21:20 -04:00
Matthew Martin
c0e64fe131 main: Highlight =( ) process substitutions 2018-09-30 15:21:19 -04:00
Matthew Martin
73640b79ea main: Change conditional to a switch
Prepares for next commit. No functional change.
2018-09-30 14:59:59 -04:00
Matthew Martin
beae08776a main: Add test for embedded process substitution 2018-09-30 14:59:59 -04:00
Matthew Martin
08d4401fae main: Highlight <( ) and >( ) process substitutions
Fixes #494
2018-09-30 14:59:57 -04:00
Matthew Martin
3ac7d1c785 main: Add test for nested backticks; summon Cthulhu 2018-09-30 14:59:38 -04:00
Matthew Martin
9db393309e main: Recurse into backtick command substitutions 2018-09-30 14:59:36 -04:00
Matthew Martin
c40c72c386 main: Track if $buf has the end of $BUFFER
This will allow for correct path_prefix highlighting in backticks.
2018-09-30 14:59:04 -04:00
Matthew Martin
b75169597e main: Highlight command substitutions 2018-09-30 14:58:08 -04:00
Matthew Martin
ce592bd5c7 main: Move highlighting to _main_paint
This allows for callees to prepend highlights before $reply after the
length of the feature (e.g. command substution) is known.
2018-09-30 14:57:21 -04:00
Matthew Martin
ead8f8a1fc main: Split highlighting code into another function
This will allow for highlighting $( ) and similar.
2018-09-30 14:55:28 -04:00
Matthew Martin
81e89a8800 main: Reorder declarations for next commit
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
dbce7317c7 main: Add buf_offset variable
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
49cc5e25b8 main: Simplify interface to __stack_pop 2018-09-30 14:35:52 -04:00
Matthew Martin
b1eb0358fa main: Move fallback calculation to a function
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
8a0ffe1c43 main: Allow for patterned fallbacks 2018-09-30 14:35:52 -04:00
Matthew Martin
2fd7fbc3c2 main: Do not skip over backslash floowed by space or tab
Fixes #539.
2018-09-29 21:33:39 -04:00
Matthew Martin
1eedb23c65 main: Fix blacklist dirs check when there is more than one element 2018-09-24 07:09:08 -05:00
Julien Nicoulaud
3a7ddcda0b #535: locally enable BARE_GLOB_QUAL option when loading highlighters 2018-09-22 22:50:46 +02:00
Julien Nicoulaud
8348e2d2cc Enable testing on zsh 5.5.x/5.6.x releases 2018-09-22 21:27:01 +02:00
Matthew Martin
683321d862 Merge pull request #529 from wraeth/master
main: Probe dirs after blacklist
2018-09-22 12:47:47 -05:00
Adam Johnson
42d396d819 driver: Exclude yank-pop again (#183). 2018-09-07 18:21:53 +00:00
Sam Jorna (wraeth)
47d6dac133 main-highlighter: Probe dirs after blacklist
Move tests on the highlight path until after the blacklist is checked so
that blacklisted paths are not tested. This should prevent hangs on dead
remote filesystems provided the path is blacklisted in
X_ZSH_HIGHLIGHT_DIRS_BLACKLIST.

Updated tests to 'default' highlight as the blacklist is now checked
before the path is tested.

Bug: https://github.com/zsh-users/zsh-syntax-highlighting/issues/528
2018-08-31 13:04:52 +10:00
Bengt Brodersen
db6cac391b main: Add glob qualifier to work around zsh/macOS bug
zsh/macOS bug: http://www.zsh.org/cgi-bin/mla/redirect?WORKERNUMBER=42891
2018-06-03 08:43:02 +02:00
Daniel Shahaf
ee26d44de1 Merge pull request #517 from tbroadley/fix-typos
docs: Fix typos
2018-05-26 13:55:52 +00:00
Thomas Broadley
7d3ec45249 docs: fix typos 2018-05-26 09:39:25 -04:00
Daniel Shahaf
5b539663c0 Add a regression test for a problem seen during development.
The «=(<foo)» construct was highlighted in blue (globbing?) from the '>' to the ')'.
2018-05-12 00:04:19 +00:00
Julien Nicoulaud
02a37dd919 CI: install packages required by test suite 2018-04-11 22:19:49 +02:00
Julien Nicoulaud
02b839550f CI: add zsh 5.5 2018-04-11 22:00:50 +02:00
Matthew Martin
e4fffa4de5 main: Correct dollar-quoted-argument-unclosed fallback typo 2018-03-16 17:18:31 -05:00
Matthew Martin
5e9b7c4650 main: Add test for previous 2018-03-10 10:25:18 -06:00
Matthew Martin
d2c8f3a56d main: Fix end of buffer check for path_prefix with non-null PREBUFFER 2018-03-10 10:25:18 -06:00
Matthew Martin
2c0c75a8ee driver, main: Add -z to autoload calls 2018-03-06 11:35:40 -06:00
Matthew Martin
15e288a25c main: Mark ZSH_HIGHLIGHT_DIRS_BLACKLIST experimental 2018-02-17 20:29:30 -06:00
Matthew Martin
6713727742 main: Add ZSH_HIGHLIGHT_DIRS_BLACKLIST
Closes #379.
2018-02-17 20:29:30 -06:00
Matthew Martin
90b09f88ee main: Move - to end of character class
Closes #472
2018-02-11 11:10:09 -06:00
Matthew Martin
9706af4b81 main: Simplify for next commit; no functional change 2018-02-11 11:10:08 -06:00
Matthew Martin
be26017e39 regexp: Add test for subexpression match
Closes #497
2018-02-11 09:58:00 -06:00
Matthew Martin
a9be0975c8 tests: Directly diff expected_region_highlight against region_highlight 2018-02-10 14:49:07 -06:00
Matthew Martin
622358f32d main: Test suffix aliases if zsh/parameter is available 2018-02-10 14:20:25 -06:00
Matthew Martin
fdca2ef714 main: Fix off by one errors in quote helper functions 2018-02-10 14:20:25 -06:00
Matthew Martin
e13074528f main: Do not highlight for regions that end before the start of BUFFER 2018-02-10 14:20:25 -06:00
Matthew Martin
ff85c7e01b driver: Do not highlight newlines or past BUFFER for zle standout 2018-02-10 13:24:49 -06:00
Matthew Martin
84f0507cf6 driver: Replace eval with ${(P) 2018-02-10 13:24:49 -06:00
Matthew Martin
cc662371b1 main: Update test for issue #501 XFAIL 2018-02-10 13:23:42 -06:00
Matthew Martin
7b417be1ce tests: Escape newlines in TAP description 2018-02-10 13:23:08 -06:00
Matthew Martin
1f1e629290 regexp: Add missing local for arrays match mbegin mend
See #497.
2018-01-22 21:42:14 -06:00
Daniel Shahaf
03692831ad 'main': Don't highlight bare '$foo' as a filename, as it's a parameter expansion.
Fixes #474.
2018-01-21 06:55:31 +00:00
Matthew Martin
382be9096d main: Add XFAIL to redirections2 for process-substitution #494 2018-01-20 20:32:34 -06:00
Daniel Shahaf
8046c33b54 'main': Do not expand special parameters. Fixes #489.
Adding «(e)» to the first subscript is a no-op: the subscript is known
to be safe due to the previous line.
2018-01-20 00:36:16 +00:00
Matthew Martin
f16e858f0c main: Highlight backticks in double quotes 2018-01-19 18:19:07 -06:00
Matthew Martin
8d2955f51a main: Consolidate } handling
No functional change.
2018-01-19 18:19:07 -06:00
Matthew Martin
18e214ee5b main: Add test for quotes in options 2018-01-19 18:19:07 -06:00
Matthew Martin
6d133a0eb0 main: Highlight options as base_style
This means --foo="bar" will have quotes highlighted.
2018-01-19 18:19:07 -06:00
Matthew Martin
a65a07fae4 main: Correct typos 2018-01-19 08:00:25 -06:00
Matthew Martin
e48af35753 main: Only highlight characters special to globbing as globbing 2018-01-18 20:16:05 -06:00
Matthew Martin
604075aa90 main: Use =~ for globbing test
This will set MATCH as needed for the next commit
2018-01-18 20:08:14 -06:00
Matthew Martin
c1a048a084 main: Only highlight one base_style in _highlight_arguments
Closes #481
2018-01-18 19:37:41 -06:00
Matthew Martin
6835121eaf main: Have helper functions return highlights in reply
This allows _highlight_arguments to put things in region_highlight prior
to the highlights decided by the helper functions, but decide on what
that prior highlight should be after the helpers have run.
2018-01-18 19:36:36 -06:00
Matthew Martin
6cc861fbad main: Explicitly pass $style to _highlight_path_separators 2018-01-18 19:36:36 -06:00
Daniel Shahaf
0458b0c16f 'main': Don't match redirection operators in command substitutions as <-> number range globs. Fixes #483. 2018-01-19 01:26:34 +00:00
Daniel Shahaf
901063aa0f 'main': Add a regression test for issue #483, concerning «: $(<foo)». 2018-01-15 22:31:59 +00:00
Daniel Shahaf
f064b17d25 'main': Add an explicit test for escaped single quotes within single quotes, «'foo'\''bar'». 2018-01-13 15:45:41 +00:00
Daniel Shahaf
4724837df0 docs: main: Clarify back-quoted-argument, back-double-quoted-argument, back-dollar-quoted-argument, and assign.
Fixes #480.
2018-01-13 14:43:37 +00:00
Daniel Shahaf
d39f83509e docs: main: Add missing hyphens. 2018-01-13 14:43:02 +00:00
Daniel Shahaf
c969a1f26a tests: Include the filename in error messages.
The new failure mode is:
.
    Running test main
    Bail out! On './highlighters/main/test-data/glob.zsh': Either 'PREBUFFER' or 'BUFFER' must be declared and non-blank
    Bail out! On './highlighters/main/test-data/glob.zsh': output on stderr
    Running test pattern

Fixes #478.
2018-01-12 14:28:08 +00:00
Matthew Martin
d17417ec1b main: Highlight unclosed backtick subshells 2018-01-07 23:18:25 -06:00
Daniel Shahaf
987b743646 'main': Fix highlighting of «<->»-style numeric globs.
Found-by: Matthew Martin
2018-01-08 05:13:52 +00:00
Matthew Martin
df0f448586 main: Highlight path after globbing checks
Closes #468.
2018-01-05 00:04:17 -06:00
Daniel Shahaf
2181247ae1 'main': Add a regression test for issue #474. 2018-01-01 05:05:10 +00:00
Daniel Shahaf
0bf9ce7ab5 Happy New Year 2017. 2018-01-01 04:15:28 +00:00
Daniel Shahaf
8652a8f4e4 Bump copyright years. 2017-12-25 08:42:30 +00:00
Matthew Martin
bdbe214453 main: Add *-quoted-argument-unclosed styles
Closes #277.
2017-12-24 00:03:55 -06:00
Daniel Shahaf
ff61a496b5 'main': Add a regression test for issue #468. 2017-12-23 23:04:32 +00:00
Matthew Martin
572ca51b1f main: Add tests 2017-12-23 14:45:49 -06:00
Matthew Martin
dc1b2f6fa4 main: Highlight partially quoted arguments correctly
Closes #130
2017-12-23 14:45:49 -06:00
Matthew Martin
25ae1c0121 main: Add ' helper function 2017-12-23 14:45:47 -06:00
Matthew Martin
dcb115c74c main: Make " and $' helper functions responsible for highlighting quote 2017-12-20 15:52:03 -06:00
Matthew Martin
f623b07fb0 main: Remove trailing whitespace 2017-12-20 15:52:03 -06:00
Matthew Martin
ab1013ae0d main: A redirection token is an invalid redirection target
Closes #466.
2017-12-19 23:01:42 -06:00
Matthew Martin
eeb2eadcdd docs: Fix links; thanks @dukex for noticing
Closes #441.
2017-12-19 16:05:02 -06:00
Matthew Martin
b07ada1255 driver: Run under emulate -L zsh and add zsyh_user_options 2017-12-16 09:33:51 -06:00
Matthew Martin
3e56294543 tests: Avoid using new zmodload flags
Unbreaks build on pre-5.4.
2017-12-14 20:58:32 -06:00
Matthew Martin
2919679ee8 tests: Skip when zsh/pcre is not available 2017-12-14 20:44:54 -06:00
Daniel Shahaf
ce1be4153d 'main': Add tests for «ls \~» and for not performing parameter expansion on the command word.
This is a followup to the last commit, which was about issue #328.

These tests are taken from the original #328 pull request, with updated
expectations where applicable.

Review-by: Matthew Martin
2017-12-15 02:35:10 +00:00
Matthew Martin
2411195c20 main: Expand paths before removing quoting
Fixes highlighting of `ls \~`. Closes #328.
2017-12-12 07:58:35 -06:00
Matthew Martin
6a6d40208c main: Add fallback for useroptions if zsh/parameter is absent 2017-12-11 07:26:54 -06:00
disarmer mk
4e6f60063f Add regexp highlighter 2017-12-09 16:17:22 -06:00
Daniel Shahaf
fb948f5331 noop: Add comments. 2017-12-07 03:06:56 +00:00
Daniel Shahaf
1ad5c1f40f Followup to parents: Restore sudo-* tests on platforms that don't have sudo.
Travis (as currently configured) is one such platform.
2017-12-07 01:16:02 +00:00
Daniel Shahaf
8d37377644 Followup to last: Don't require 'sudo' to test prefix redirections. 2017-12-07 01:04:13 +00:00
Matthew Martin
d04c62a224 tests: Add skips for tests that require sudo 2017-12-06 18:34:56 -06:00
Daniel Shahaf
26a82113b0 'main': Highlight 'sudo' correctly when it's not installed.
No test because _zsh_highlight_main__type() falls back to 'type -w' which runs
'rehash' implicitly, so on systems where 'sudo' is installed it's not possible
to simulate its being absent.

Test by forcing _zsh_highlight_main__type() to return 'none' when the
argument is [[ $1 == 'sudo' ]], and: (1) Run 'make test' and confirm
that all tests either pass, or fail and the first test point that fails
is one that expects "sudo" at command position to be highlighted as
'command'; (2) In an interactive zsh, 'sudo' at command position is
highlighted as an error.
2017-12-07 00:00:13 +00:00
Daniel Shahaf
c13ee4cf88 docs: Point to repology for finding packages. 2017-12-06 22:32:31 +00:00
Daniel Shahaf
918aa3eb88 README: Fix typo.
Closes #458.
2017-11-29 17:15:27 +00:00
zapashcanon
f6d45cc191 Typo 2017-11-29 17:53:23 +01:00
Matthew Martin
ecdda36ef5 brackets: Ignore quotes
Closes #112. Closes #138.
2017-11-24 16:39:31 -06:00
Matthew Martin
7177ba005f main: Split declaration and assignment
Unbreak build for 5.0.8 and earlier.
2017-11-24 16:35:25 -06:00
Matthew Martin
2a50614579 main: Save user options in a single variable 2017-11-24 16:07:44 -06:00
Matthew Martin
749b30221d 'main': Skip tests that break on msys2
Closes #382.
2017-11-06 07:11:55 -06:00
Matthew Martin
f4d37b74cc tests: Add ability to skip tests 2017-11-06 07:08:53 -06:00
Matthew Martin
4bd30737dc tests: Support SKIP directive in tap-colorizer 2017-11-06 07:08:21 -06:00
Matthew Martin
038409c10d tests: Run tests with WARN_CREATE_GLOBAL 2017-11-05 15:04:49 -06:00
Matthew Martin
c948a3caa0 tests: Declare local variables 2017-11-05 12:23:42 -06:00
Daniel Shahaf
e4352f98bb driver: Revert previous commit, unbreaking the build on zsh<5.0.8. 2017-11-05 15:58:58 +00:00
Daniel Shahaf
9d9e9662cf driver: Correctly escape assoc key pattern 2017-11-05 14:38:05 +00:00
Matthew Martin
18517cc98e tests: Run tests with NOUNSET 2017-11-05 08:06:45 -06:00
Matthew Martin
459c128f43 tests: Set ZLE variables to sane defaults 2017-11-05 08:06:45 -06:00
Matthew Martin
079ea39f74 tests: Ensure region highlight is unset if NONE is expected 2017-11-05 08:06:45 -06:00
Matthew Martin
a9ce931439 Default possibly unset variables to empty 2017-11-04 20:26:07 -05:00
Matthew Martin
a33c72e838 tests: Use idiomatic set check 2017-11-02 20:08:28 -05:00
Matthew Martin
1f77ed8369 brackets: Use idiomatic set check 2017-11-02 20:08:28 -05:00
Matthew Martin
9dcfacc4a5 brackets: Disallow negative nesting level 2017-11-02 20:08:28 -05:00
Matthew Martin
ac90970edc brackets: Don't call _zsh_highlight_add_highlight with empty style 2017-11-02 20:08:28 -05:00
Matthew Martin
f547f7768c brackets: Add test for highlighting errors with no styles 2017-11-02 20:08:28 -05:00
Daniel Shahaf
a2a899b41b driver: _zsh_highlight_bind_widgets: Be resilient to NO_UNSET being set in the calling scope.
Fixes #449.
2017-11-02 17:07:10 +00:00
Daniel Shahaf
c41356c3f6 docs: Add Void Linux link. 2017-10-18 00:17:29 +00:00
Julien Nicoulaud
8146d58bb2 CI: customize IRC notifcation message 2017-09-28 19:07:24 +02:00
Daniel Shahaf
5436d3e5fc tests: Remove superfluous comment.
The functions can remain defined because, nowadays, the test harness
runs each test in a subshell; but that's a well-known property of the
test harness so need not be mentioned explicitly.

Inspired by discussion on issue #443.
2017-09-11 18:45:35 +00:00
Julien Nicoulaud
3d26cb8146 tests: run the most recent versions first 2017-09-11 19:29:58 +02:00
Julien Nicoulaud
873b9955c7 tests: add zsh 5.4.2 2017-09-11 19:27:52 +02:00
Daniel Shahaf
4cde79ef00 release.md: Make a little more copy-pasteable. 2017-08-30 07:32:56 +00:00
Daniel Shahaf
9ff91eb8f0 Post-release version number bump. 2017-08-29 06:05:57 +00:00
211 changed files with 6087 additions and 773 deletions

9
.editorconfig Normal file
View File

@@ -0,0 +1,9 @@
# Top-most editorconfig file
root = true
[*]
end_of_line = lf
tab_width = 2
indent_size = 2
indent_style = space

View File

@@ -2,32 +2,40 @@ language: generic
sudo: required sudo: required
env: env:
- ZSH=4.3.11
- ZSH=4.3.12
- ZSH=4.3.13
- ZSH=4.3.14
- ZSH=4.3.15
- ZSH=4.3.16
- ZSH=4.3.17
- ZSH=5.0.0
- ZSH=5.0.1
- ZSH=5.0.2
- ZSH=5.0.3
- ZSH=5.0.4
- ZSH=5.0.5
- ZSH=5.0.6
- ZSH=5.0.7
- ZSH=5.0.8
- ZSH=5.1
- ZSH=5.1.1
- ZSH=5.2
- ZSH=5.3
- ZSH=5.3.1
- ZSH=5.4
- ZSH=5.4.1
- ZSH=master - ZSH=master
- ZSH=5.7.1
- ZSH=5.7
- ZSH=5.6.2
- ZSH=5.6.1
- ZSH=5.6
- ZSH=5.5.1
- ZSH=5.5
- ZSH=5.4.2
- ZSH=5.4.1
- ZSH=5.4
- ZSH=5.3.1
- ZSH=5.3
- ZSH=5.2
- ZSH=5.1.1
- ZSH=5.1
- ZSH=5.0.8
- ZSH=5.0.7
- ZSH=5.0.6
- ZSH=5.0.5
- ZSH=5.0.4
- ZSH=5.0.3
- ZSH=5.0.2
- ZSH=5.0.1
- ZSH=5.0.0
- ZSH=4.3.17
- ZSH=4.3.16
- ZSH=4.3.15
- ZSH=4.3.14
- ZSH=4.3.13
- ZSH=4.3.12
- ZSH=4.3.11
script: docker run -v $PWD:/work -w /work zshusers/zsh-${ZSH} /bin/sh -c 'make test' script: docker run -v $PWD:/work -w /work zshusers/zsh:${ZSH} /bin/sh -c 'install_packages make procps && make test'
notifications: notifications:
webhooks: webhooks:
@@ -43,3 +51,5 @@ notifications:
on_failure: always on_failure: always
on_start: never on_start: never
use_notice: true use_notice: true
template:
- "%{repository}/%{branch}#%{build_number}: %{message} Changes : %{compare_url} | Build : %{build_url}"

View File

@@ -1 +1 @@
0.6.0 0.7.1

View File

@@ -1,4 +1,4 @@
Copyright (c) 2010-2016 zsh-syntax-highlighting contributors Copyright (c) 2010-2020 zsh-syntax-highlighting contributors
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted Redistribution and use in source and binary forms, with or without modification, are permitted

View File

@@ -11,16 +11,18 @@ The `main` highlighter
The following function `pz` is useful when working on the `main` highlighting: The following function `pz` is useful when working on the `main` highlighting:
pq() { ```zsh
(( $#argv )) || return 0 pq() {
print -r -l -- ${(qqqq)argv} (( $#argv )) || return 0
} print -r -l -- ${(qqqq)argv}
pz() { }
local arg pz() {
for arg; do local arg
pq ${(z)arg} for arg; do
done pq ${(z)arg}
} done
}
```
It prints, for each argument, its token breakdown, similar to how the main It prints, for each argument, its token breakdown, similar to how the main
loop of the `main` highlighter sees it. loop of the `main` highlighter sees it.
@@ -32,41 +34,47 @@ Since the test harness empties `ZSH_HIGHLIGHT_STYLES` and the `brackets`
highlighter interrogates `ZSH_HIGHLIGHT_STYLES` to determine how to highlight, highlighter interrogates `ZSH_HIGHLIGHT_STYLES` to determine how to highlight,
tests must set the `bracket-level-#` keys themselves. For example: tests must set the `bracket-level-#` keys themselves. For example:
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ```zsh
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=( expected_region_highlight=(
"6 6 bracket-level-1" # ( "6 6 bracket-level-1" # (
"7 7 bracket-level-2" # { "7 7 bracket-level-2" # {
"9 9 bracket-level-2" # } "9 9 bracket-level-2" # }
"10 10 bracket-level-1" # ) "10 10 bracket-level-1" # )
) )
```
Testing the `pattern` highlighter Testing the `pattern` and `regexp` highlighters
--------------------------------- -----------------------------------------------
Because the `pattern` highlighter modifies `region_highlight` directly instead Because the `pattern` and `regexp` highlighters modifies `region_highlight`
of using `_zsh_highlight_add_highlight`, the test harness cannot get the directly instead of using `_zsh_highlight_add_highlight`, the test harness
`ZSH_HIGHLIGHT_STYLES` keys. Therefore, when writing tests, use the style cannot get the `ZSH_HIGHLIGHT_STYLES` keys. Therefore, when writing tests, use
itself as third word (cf. the [documentation for `expected_region_highlight`] the style itself as third word (cf. the
(docs/highlighters.md)). For example: [documentation for `expected_region_highlight`](docs/highlighters.md)). For example:
ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') ```zsh
ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red')
BUFFER='rm -rf /' BUFFER='rm -rf /'
expected_region_highlight=( expected_region_highlight=(
"1 8 fg=white,bold,bg=red" # rm -rf / "1 8 fg=white,bold,bg=red" # rm -rf /
) )
```
Miscellany Miscellany
---------- ----------
If you work on the driver (`zsh-syntax-highlighting.zsh`), you may find the following zstyle useful: If you work on the driver (`zsh-syntax-highlighting.zsh`), you may find the following zstyle useful:
zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-highlighting.plugin.zsh ```zsh
zstyle ':completion:*:*:*:*:globbed-files' ignored-patterns {'*/',}zsh-syntax-highlighting.plugin.zsh
```
IRC channel IRC channel
----------- -----------

View File

@@ -6,12 +6,13 @@ How to install
* Arch Linux: [community/zsh-syntax-highlighting][arch-package] / [AUR/zsh-syntax-highlighting-git][AUR-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]) * 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]) * 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: [`textproc/zsh-syntax-highlighting`][freebsd-port]) * FreeBSD: `pkg install zsh-syntax-highlighting` (port name: [`shells/zsh-syntax-highlighting`][freebsd-port])
* Gentoo: [mv overlay][gentoo-overlay] * Gentoo: [mv overlay][gentoo-overlay]
* Mac OS X / Homebrew: [brew install zsh-syntax-highlighting][brew-package] * Mac OS X / Homebrew: [brew install zsh-syntax-highlighting][brew-package]
* Ubuntu: `zsh-syntax-highlighting` package [in Xenial][ubuntu-package] (or in [OBS repository][obs-repository]) * Ubuntu: `zsh-syntax-highlighting` package [in Xenial][ubuntu-package] (or in [OBS repository][obs-repository])
* RHEL / CentOS / Scientific Linux: `zsh-syntax-highlighting` package in [OBS repository][obs-repository] * RHEL / CentOS / Scientific Linux: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
* openSUSE / SLE: `zsh-syntax-highlighting` package in [OBS repository][obs-repository] * openSUSE / SLE: `zsh-syntax-highlighting` package in [OBS repository][obs-repository]
* Void Linux: `zsh-syntax-highlighting package` [in XBPS][void-package]
[arch-package]: https://www.archlinux.org/packages/zsh-syntax-highlighting [arch-package]: https://www.archlinux.org/packages/zsh-syntax-highlighting
[AUR-package]: https://aur.archlinux.org/packages/zsh-syntax-highlighting-git [AUR-package]: https://aur.archlinux.org/packages/zsh-syntax-highlighting-git
@@ -23,23 +24,32 @@ How to install
[fedora-package]: https://apps.fedoraproject.org/packages/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 [fedora-package-alt]: https://bodhi.fedoraproject.org/updates/?packages=zsh-syntax-highlighting
[obs-repository]: https://software.opensuse.org//download.html?project=shells%3Azsh-users%3Azsh-syntax-highlighting&package=zsh-syntax-highlighting [obs-repository]: https://software.opensuse.org//download.html?project=shells%3Azsh-users%3Azsh-syntax-highlighting&package=zsh-syntax-highlighting
[void-package]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/zsh-syntax-highlighting
See also [repology's cross-distro index](https://repology.org/metapackage/zsh-syntax-highlighting/versions)
### In your ~/.zshrc ### In your ~/.zshrc
Simply clone this repository and source the script: Simply clone this repository and source the script:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ```zsh
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: Then, enable syntax highlighting in the current interactive shell:
source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ```zsh
source ./zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
```
If `git` is not installed, download and extract a snapshot of the latest If `git` is not installed, download and extract a snapshot of the latest
development tree from: 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`. Note the `source` command must be **at the end** of `~/.zshrc`.
@@ -51,9 +61,10 @@ Note that `zsh-syntax-highlighting` must be the last plugin sourced.
The zsh-syntax-highlighting authors recommend manual installation over the use The zsh-syntax-highlighting authors recommend manual installation over the use
of a framework or plugin manager. of a framework or plugin manager.
This list is incomplete as there are too many [frameworks / plugin managers] This list is incomplete as there are too many
(https://github.com/unixorn/awesome-zsh-plugins#frameworks) to list them all [frameworks / plugin managers][framework-list] to list them all here.
here.
[framework-list]: https://github.com/unixorn/awesome-zsh-plugins#frameworks
#### [Antigen](https://github.com/zsh-users/antigen) #### [Antigen](https://github.com/zsh-users/antigen)
@@ -64,21 +75,24 @@ your `.zshrc`.
1. Clone this repository in oh-my-zsh's plugins directory: 1. Clone this repository in oh-my-zsh's plugins directory:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting ```zsh
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`: 2. Activate the plugin in `~/.zshrc`:
plugins=( [plugins...] zsh-syntax-highlighting) ```zsh
plugins=( [plugins...] zsh-syntax-highlighting)
```
3. Source `~/.zshrc` to take changes into account: 3. Restart zsh (such as by opening a new instance of your terminal emulator).
source ~/.zshrc
#### [Prezto](https://github.com/sorin-ionescu/prezto) #### [Prezto](https://github.com/sorin-ionescu/prezto)
Zsh-syntax-highlighting is included with Prezto. See the [Prezto documentation] Zsh-syntax-highlighting is included with Prezto. See the
(https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting) [Prezto documentation][prezto-docs] to enable and configure highlighters.
to enable and configure highlighters.
[prezto-docs]: https://github.com/sorin-ionescu/prezto/tree/master/modules/syntax-highlighting
#### [zgen](https://github.com/tarjoilija/zgen) #### [zgen](https://github.com/tarjoilija/zgen)
@@ -100,10 +114,14 @@ Any of the above methods is suitable for a single-user installation,
which requires no special privileges. If, however, you desire to install which requires no special privileges. If, however, you desire to install
zsh-syntax-highlighting system-wide, you may do so by running zsh-syntax-highlighting system-wide, you may do so by running
make install ```zsh
make install
```
and directing your users to add and directing your users to add
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ```zsh
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
```
to their `.zshrc`s. to their `.zshrc`s.

View File

@@ -1,15 +1,15 @@
zsh-syntax-highlighting [![Build Status][build-status-image]][build-status-travis] zsh-syntax-highlighting [![Build Status][build-status-image]][build-status-travis]
======================= =======================
**[Fish shell][fish]-like like syntax highlighting for [Zsh][zsh].** **[Fish shell][fish]-like syntax highlighting for [Zsh][zsh].**
*Requirements: zsh 4.3.11+.* *Requirements: zsh 4.3.11+.*
[fish]: http://www.fishshell.com/ [fish]: http://www.fishshell.com/
[zsh]: http://www.zsh.org/ [zsh]: http://www.zsh.org/
This package provides syntax highlighing for the shell zsh. It enables This package provides syntax highlighting for the shell zsh. It enables
highlighing of commands whilst they are typed at a zsh prompt into an highlighting of commands whilst they are typed at a zsh prompt into an
interactive terminal. This helps in reviewing commands before running interactive terminal. This helps in reviewing commands before running
them, particularly in catching syntax errors. them, particularly in catching syntax errors.

View File

@@ -1,3 +1,79 @@
# 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 improvement 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<CURSOR>`)
[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]
# Changes in version 0.6.0 # Changes in version 0.6.0
This is a stable release, featuring bugfixes and minor improvements. This is a stable release, featuring bugfixes and minor improvements.
@@ -309,50 +385,66 @@ in this area.
- incomplete sudo commands - incomplete sudo commands
(a3047a912100, 2f05620b19ae) (a3047a912100, 2f05620b19ae)
sudo; ```zsh
sudo -u; sudo;
sudo -u;
```
- command words following reserved words - command words following reserved words
(#207, #222, b397b12ac139 et seq, 6fbd2aa9579b et seq, 8b4adbd991b0) (#207, #222, b397b12ac139 et seq, 6fbd2aa9579b et seq, 8b4adbd991b0)
if ls; then ls; else ls; fi ```zsh
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.) (The `ls` are now highlighted as a command.)
- comments (when `INTERACTIVE_COMMENTS` is set) - comments (when `INTERACTIVE_COMMENTS` is set)
(#163, #167, 693de99a9030) (#163, #167, 693de99a9030)
echo Hello # comment ```zsh
echo Hello # comment
```
- closing brackets of arithmetic expansion, subshells, and blocks - closing brackets of arithmetic expansion, subshells, and blocks
(#226, a59f442d2d34, et seq) (#226, a59f442d2d34, et seq)
(( foo )) ```zsh
( foo ) (( foo ))
{ foo } ( foo )
{ foo }
```
- command names enabled by the `PATH_DIRS` option - command names enabled by the `PATH_DIRS` option
(#228, 96ee5116b182) (#228, 96ee5116b182)
# When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH, ```zsh
# and 'setopt PATH_DIRS' is in effect # When ~/bin/foo/bar exists, is executable, ~/bin is in $PATH,
foo/bar # and 'setopt PATH_DIRS' is in effect
foo/bar
```
- parameter expansions with braces inside double quotes - parameter expansions with braces inside double quotes
(#186, 6e3720f39d84) (#186, 6e3720f39d84)
echo "${foo}" ```zsh
echo "${foo}"
```
- parameter expansions in command word - parameter expansions in command word
(#101, 4fcfb15913a2) (#101, 4fcfb15913a2)
x=/bin/ls ```zsh
$x -l x=/bin/ls
$x -l
```
- the command separators '|&', '&!', '&|' - the command separators '\|&', '&!', '&\|'
view file.pdf &! ls ```zsh
view file.pdf &! ls
```
## Fixed highlighting of: ## Fixed highlighting of:
@@ -360,23 +452,31 @@ in this area.
- precommand modifiers at non-command-word position - precommand modifiers at non-command-word position
(#209, 2c9f8c8c95fa) (#209, 2c9f8c8c95fa)
ls command foo ```zsh
ls command foo
```
- sudo commands with infix redirections - sudo commands with infix redirections
(#221, be006aded590, 86e924970911) (#221, be006aded590, 86e924970911)
sudo -u >/tmp/foo.out user ls ```zsh
sudo -u >/tmp/foo.out user ls
```
- subshells; anonymous functions - subshells; anonymous functions
(#166, #194, 0d1bfbcbfa67, 9e178f9f3948) (#166, #194, 0d1bfbcbfa67, 9e178f9f3948)
(true) ```zsh
() { true } (true)
() { true }
```
- parameter assignment statements with no command - parameter assignment statements with no command
(#205, 01d7eeb3c713) (#205, 01d7eeb3c713)
A=1; ```zsh
A=1;
```
(The semicolon used to be highlighted as a mistake) (The semicolon used to be highlighted as a mistake)
@@ -467,69 +567,95 @@ in this area.
- suffix aliases (requires zsh 5.1.1 or newer): - suffix aliases (requires zsh 5.1.1 or newer):
alias -s png=display ```zsh
foo.png alias -s png=display
foo.png
```
- prefix redirections: - prefix redirections:
<foo.txt cat ```zsh
<foo.txt cat
```
- redirection operators: - redirection operators:
echo > foo.txt ```zsh
echo > foo.txt
```
- arithmetic evaluations: - arithmetic evaluations:
(( 42 )) ```zsh
(( 42 ))
```
- $'' strings, including \x/\octal/\u/\U escapes - $'' strings, including \x/\octal/\u/\U escapes
: $'foo\u0040bar' ```zsh
: $'foo\u0040bar'
```
- multiline strings: - multiline strings:
% echo "line 1 ```zsh
line 2" % echo "line 1
line 2"
```
- string literals that haven't been finished: - string literals that haven't been finished:
% echo "Hello, world ```zsh
% echo "Hello, world
```
- command words that involve tilde expansion: - command words that involve tilde expansion:
% ~/bin/foo ```zsh
% ~/bin/foo
```
## Fixed highlighting of: ## Fixed highlighting of:
- quoted command words: - quoted command words:
% \ls ```zsh
% \ls
```
- backslash escapes in "" strings: - backslash escapes in "" strings:
% echo "\x41" ```zsh
% echo "\x41"
```
- noglob after command separator: - noglob after command separator:
% :; noglob echo * ```zsh
% :; noglob echo *
```
- glob after command separator, when the first command starts with 'noglob': - glob after command separator, when the first command starts with 'noglob':
% noglob true; echo * ```zsh
% noglob true; echo *
```
- the region (vi visual mode / set-mark-command) (issue #165) - the region (vi visual mode / set-mark-command) (issue #165)
- redirection and command separators that would be highlighted as `path_approx` - redirection and command separators that would be highlighted as `path_approx`
% echo foo;‸ ```zsh
% echo < % echo foo;
% echo <‸
```
(where `` represents the cursor location) (where `` represents the cursor location)
- escaped globbing (outside quotes) - escaped globbing (outside quotes)
% echo \* ```zsh
% echo \*
```
## Other changes: ## Other changes:

View File

@@ -24,7 +24,9 @@ How to activate highlighters
To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array in To activate an highlighter, add it to the `ZSH_HIGHLIGHT_HIGHLIGHTERS` array in
`~/.zshrc`, for example: `~/.zshrc`, for example:
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor) ```zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor)
```
By default, `$ZSH_HIGHLIGHT_HIGHLIGHTERS` is unset and only the `main` By default, `$ZSH_HIGHLIGHT_HIGHLIGHTERS` is unset and only the `main`
highlighter is active. highlighter is active.
@@ -58,10 +60,12 @@ To create your own `acme` highlighter:
This function must return 0 when the highlighter needs to be called and This function must return 0 when the highlighter needs to be called and
non-zero otherwise, for example: non-zero otherwise, for example:
_zsh_highlight_highlighter_acme_predicate() { ```zsh
# Call this highlighter in SVN working copies _zsh_highlight_highlighter_acme_predicate() {
[[ -d .svn ]] # Call this highlighter in SVN working copies
} [[ -d .svn ]]
}
```
* Implement the `_zsh_highlight_highlighter_acme_paint` function. * Implement the `_zsh_highlight_highlighter_acme_paint` function.
This function does the actual syntax highlighting, by calling This function does the actual syntax highlighting, by calling
@@ -71,12 +75,24 @@ To create your own `acme` highlighter:
`: ${ZSH_HIGHLIGHT_STYLES[key]:=value}`, being sure to prefix `: ${ZSH_HIGHLIGHT_STYLES[key]:=value}`, being sure to prefix
the key with your highlighter name and a colon. For example: the key with your highlighter name and a colon. For example:
: ${ZSH_HIGHLIGHT_STYLES[acme:aurora]:=fg=green} ```zsh
: ${ZSH_HIGHLIGHT_STYLES[acme:aurora]:=fg=green}
_zsh_highlight_highlighter_acme_paint() { _zsh_highlight_highlighter_acme_paint() {
# Colorize the whole buffer with the 'aurora' style # Colorize the whole buffer with the 'aurora' style
_zsh_highlight_add_highlight 0 $#BUFFER acme:aurora _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.
* Name your own functions and global variables `_zsh_highlight_acme_*`. * Name your own functions and global variables `_zsh_highlight_acme_*`.
@@ -88,10 +104,12 @@ To create your own `acme` highlighter:
`_zsh_highlight_highlighter_acme_paint` respectively. `_zsh_highlight_highlighter_acme_paint` respectively.
These names are still supported for backwards compatibility; These names are still supported for backwards compatibility;
however, support for them will be removed in a a future major or minor release (v0.x.0 or v1.0.0). however, support for them will be removed in a future major or minor release (v0.x.0 or v1.0.0).
* Activate your highlighter in `~/.zshrc`: * Activate your highlighter in `~/.zshrc`:
ZSH_HIGHLIGHT_HIGHLIGHTERS+=(acme) ```zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS+=(acme)
```
* [Write tests](../tests/README.md). * [Write tests](../tests/README.md).

View File

@@ -16,11 +16,13 @@ This highlighter defines the following styles:
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
for example in `~/.zshrc`: for example in `~/.zshrc`:
# To define styles for nested brackets up to level 4 ```zsh
ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold' # To define styles for nested brackets up to level 4
ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold' ZSH_HIGHLIGHT_STYLES[bracket-level-1]='fg=blue,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-3]='fg=yellow,bold' ZSH_HIGHLIGHT_STYLES[bracket-level-2]='fg=red,bold'
ZSH_HIGHLIGHT_STYLES[bracket-level-4]='fg=magenta,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 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`

View File

@@ -13,7 +13,9 @@ This highlighter defines the following styles:
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
for example in `~/.zshrc`: for example in `~/.zshrc`:
ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue' ```zsh
ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
```
The syntax for values is the same as the syntax of "types of highlighting" of 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`

View File

@@ -13,7 +13,9 @@ This highlighter defines the following styles:
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
for example in `~/.zshrc`: for example in `~/.zshrc`:
ZSH_HIGHLIGHT_STYLES[line]='bold' ```zsh
ZSH_HIGHLIGHT_STYLES[line]='bold'
```
The syntax for values is the same as the syntax of "types of highlighting" of 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`

View File

@@ -32,40 +32,65 @@ This highlighter defines the following styles:
* `path_prefix_pathseparator` - path separators in prefixes of existing filenames (`/`); if unset, `path_prefix` is used (default) * `path_prefix_pathseparator` - path separators in prefixes of existing filenames (`/`); if unset, `path_prefix` is used (default)
* `globbing` - globbing expressions (`*.txt`) * `globbing` - globbing expressions (`*.txt`)
* `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`) * `history-expansion` - history expansion expressions (`!foo` and `^foo^bar`)
* `single-hyphen-option` - single hyphen options (`-o`) * `command-substitution` - command substitutions (`$(echo foo)`)
* `double-hyphen-option` - double hyphen options (`--option`) * `command-substitution-unquoted` - an unquoted command substitution (`$(echo foo)`)
* `back-quoted-argument` - backquoted expressions (`` `foo` ``) * `command-substitution-quoted` - a quoted command substitution (`"$(echo foo)"`)
* `single-quoted-argument` - single quoted arguments (`` 'foo' ``) * `command-substitution-delimiter` - command substitution delimiters (`$(` and `)`)
* `double-quoted-argument` - double quoted arguments (`` "foo" ``) * `command-substitution-delimiter-unquoted` - an unquoted command substitution delimiters (`$(` and `)`)
* `dollar-quoted-argument` - dollar quoted arguments (`` $'foo' ``) * `command-substitution-delimiter-quoted` - a quoted command substitution delimiters (`"$(` and `)"`)
* `process-substitution` - process substitutions (`<(echo foo)`)
* `process-substitution-delimiter` - process substitution delimiters (`<(` and `)`)
* `single-hyphen-option` - single-hyphen options (`-o`)
* `double-hyphen-option` - double-hyphen options (`--option`)
* `back-quoted-argument` - backtick command substitution (`` `foo` ``)
* `back-quoted-argument-unclosed` - unclosed backtick command substitution (`` `foo ``)
* `back-quoted-argument-delimiter` - backtick command substitution delimiters (`` ` ``)
* `single-quoted-argument` - single-quoted arguments (`` 'foo' ``)
* `single-quoted-argument-unclosed` - unclosed single-quoted arguments (`` 'foo ``)
* `double-quoted-argument` - double-quoted arguments (`` "foo" ``)
* `double-quoted-argument-unclosed` - unclosed double-quoted arguments (`` "foo ``)
* `dollar-quoted-argument` - dollar-quoted arguments (`` $'foo' ``)
* `dollar-quoted-argument-unclosed` - unclosed dollar-quoted arguments (`` $'foo ``)
* `rc-quote` - two single quotes inside single quotes when the `RC_QUOTES` option is set (`` 'foo''bar' ``)
* `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`) * `dollar-double-quoted-argument` - parameter expansion inside double quotes (`$foo` inside `""`)
* `back-double-quoted-argument` - back double quoted arguments (`\x` inside `""`) * `back-double-quoted-argument` - backslash escape sequences inside double-quoted arguments (`\"` in `"foo\"bar"`)
* `back-dollar-quoted-argument` - back dollar quoted arguments (`\x` inside `$''`) * `back-dollar-quoted-argument` - backslash escape sequences inside dollar-quoted arguments (`\x` in `$'\x48'`)
* `assign` - parameter assignments * `assign` - parameter assignments (`x=foo` and `x=( )`)
* `redirection` - redirection operators (`<`, `>`, etc) * `redirection` - redirection operators (`<`, `>`, etc)
* `comment` - comments, when `setopt INTERACTIVE_COMMENTS` is in effect (`echo # foo`) * `comment` - comments, when `setopt INTERACTIVE_COMMENTS` is in effect (`echo # foo`)
* `arg0` - a command word other than one of those enumrated above (other than a command, precommand, alias, function, or shell builtin command). * `named-fd` - named file descriptor (`echo foo {fd}>&2`)
* `arg0` - a command word other than one of those enumerated above (other than a command, precommand, alias, function, or shell builtin command).
* `default` - everything else * `default` - everything else
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
for example in `~/.zshrc`: for example in `~/.zshrc`:
# Declare the variable ```zsh
typeset -A ZSH_HIGHLIGHT_STYLES # Declare the variable
typeset -A ZSH_HIGHLIGHT_STYLES
# To differentiate aliases from other command types # To differentiate aliases from other command types
ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold'
# To have paths colored instead of underlined # To have paths colored instead of underlined
ZSH_HIGHLIGHT_STYLES[path]='fg=cyan' ZSH_HIGHLIGHT_STYLES[path]='fg=cyan'
# To disable highlighting of globbing expressions # To disable highlighting of globbing expressions
ZSH_HIGHLIGHT_STYLES[globbing]='none' ZSH_HIGHLIGHT_STYLES[globbing]='none'
```
The syntax for values is the same as the syntax of "types of highlighting" of 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`
manual page][zshzle-Character-Highlighting]. 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 ### Useless trivia
#### Forward compatibility. #### Forward compatibility.

View File

@@ -9,8 +9,13 @@ This is the `pattern` highlighter, that highlights user-defined patterns.
To use this highlighter, associate patterns with styles in the To use this highlighter, associate patterns with styles in the
`ZSH_HIGHLIGHT_PATTERNS` associative array, for example in `~/.zshrc`: `ZSH_HIGHLIGHT_PATTERNS` associative array, for example in `~/.zshrc`:
# To have commands starting with `rm -rf` in red: ```zsh
ZSH_HIGHLIGHT_PATTERNS+=('rm -rf *' 'fg=white,bold,bg=red') # 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')
```
The syntax for values is the same as the syntax of "types of highlighting" of 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`

View File

@@ -0,0 +1,30 @@
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_PATTERNS
ZSH_HIGHLIGHT_REGEXP+=('\bsudo\b' fg=123,bold)
```
This will highlight "sudo" only as a complete word, i.e., "sudo cmd", but not
"sudoedit"
The syntax for values is the same as the syntax of "types of highlighting" of
the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`
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]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
[perlretut]: http://perldoc.perl.org/perlretut.html
[zshmisc-Conditional-Expressions]: http://zsh.sourceforge.net/Doc/Release/Conditional-Expressions.html#Conditional-Expressions

View File

@@ -14,7 +14,9 @@ This highlighter defines the following styles:
To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`, To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
for example in `~/.zshrc`: for example in `~/.zshrc`:
ZSH_HIGHLIGHT_STYLES[root]='bg=red' ```zsh
ZSH_HIGHLIGHT_STYLES[root]='bg=red'
```
The syntax for values is the same as the syntax of "types of highlighting" of 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)` the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`

View File

@@ -1,5 +1,5 @@
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
# Copyright (c) 2010-2016 zsh-syntax-highlighting contributors # Copyright (c) 2010-2017 zsh-syntax-highlighting contributors
# All rights reserved. # All rights reserved.
# #
# Redistribution and use in source and binary forms, with or without modification, are permitted # Redistribution and use in source and binary forms, with or without modification, are permitted
@@ -59,17 +59,17 @@ _zsh_highlight_highlighter_brackets_paint()
lastoflevel[$level]=$pos lastoflevel[$level]=$pos
;; ;;
[")]}"]) [")]}"])
matchingpos=$lastoflevel[$level] if (( level > 0 )); then
levelpos[$pos]=$((level--)) matchingpos=$lastoflevel[$level]
if _zsh_highlight_brackets_match $matchingpos $pos; then levelpos[$pos]=$((level--))
matching[$matchingpos]=$pos if _zsh_highlight_brackets_match $matchingpos $pos; then
matching[$pos]=$matchingpos matching[$matchingpos]=$pos
matching[$pos]=$matchingpos
fi
else
levelpos[$pos]=-1
fi fi
;; ;;
['"'\'])
# Skip everything inside quotes
pos=$BUFFER[(ib:pos+1:)$char]
;;
esac esac
done done
@@ -77,18 +77,17 @@ _zsh_highlight_highlighter_brackets_paint()
for pos in ${(k)levelpos}; do for pos in ${(k)levelpos}; do
if (( $+matching[$pos] )); then if (( $+matching[$pos] )); then
if (( bracket_color_size )); then if (( bracket_color_size )); then
style=bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 )) _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-level-$(( (levelpos[$pos] - 1) % bracket_color_size + 1 ))
fi fi
else else
style=bracket-error _zsh_highlight_add_highlight $((pos - 1)) $pos bracket-error
fi fi
_zsh_highlight_add_highlight $((pos - 1)) $pos $style
done done
# If cursor is on a bracket, then highlight corresponding bracket, if any. # If cursor is on a bracket, then highlight corresponding bracket, if any.
if [[ $WIDGET != zle-line-finish ]]; then if [[ $WIDGET != zle-line-finish ]]; then
pos=$((CURSOR + 1)) pos=$((CURSOR + 1))
if [[ -n $levelpos[$pos] ]] && [[ -n $matching[$pos] ]]; then if (( $+levelpos[$pos] )) && (( $+matching[$pos] )); then
local -i otherpos=$matching[$pos] local -i otherpos=$matching[$pos]
_zsh_highlight_add_highlight $((otherpos - 1)) $otherpos cursor-matchingbracket _zsh_highlight_add_highlight $((otherpos - 1)) $otherpos cursor-matchingbracket
fi fi

View File

@@ -33,5 +33,4 @@ BUFFER=': $foo[bar]'
CURSOR=6 # cursor is zero-based CURSOR=6 # cursor is zero-based
expected_region_highlight=( expected_region_highlight=(
"11 11 NONE"
) )

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=
ZSH_HIGHLIGHT_STYLES[bracket-level-3]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]=
@@ -35,5 +37,11 @@ BUFFER=': ((( )))'
CURSOR=2 # cursor is zero-based CURSOR=2 # cursor is zero-based
expected_region_highlight=( 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" "9 9 cursor-matchingbracket"
) )

View File

@@ -30,5 +30,4 @@
BUFFER=': (x)' BUFFER=': (x)'
expected_region_highlight=( expected_region_highlight=(
"1 5 NONE"
) )

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=
ZSH_HIGHLIGHT_STYLES[bracket-level-3]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]=

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=

View File

@@ -27,12 +27,16 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]=
BUFFER=': {"{x}"}' BUFFER=': {"{x}"}'
expected_region_highlight=( expected_region_highlight=(
"3 3 bracket-level-1" "3 3 bracket-level-1"
"4 8 NONE" "5 5 bracket-level-2"
"7 7 bracket-level-2"
"9 9 bracket-level-1" "9 9 bracket-level-1"
) )

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=
ZSH_HIGHLIGHT_STYLES[bracket-level-3]= ZSH_HIGHLIGHT_STYLES[bracket-level-3]=

View File

@@ -0,0 +1,34 @@
# -------------------------------------------------------------------------------------------------
# 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" # )
)

View File

@@ -30,5 +30,5 @@
BUFFER='echo "foo ( bar"' BUFFER='echo "foo ( bar"'
expected_region_highlight=( expected_region_highlight=(
"1 16 NONE" # We expect the brackets highlighter to do nothing "11 11 bracket-error"
) )

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
ZSH_HIGHLIGHT_STYLES[bracket-level-2]= ZSH_HIGHLIGHT_STYLES[bracket-level-2]=

View File

@@ -27,6 +27,8 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
unsorted=1
ZSH_HIGHLIGHT_STYLES[bracket-level-1]= ZSH_HIGHLIGHT_STYLES[bracket-level-1]=
BUFFER='echo {x})' BUFFER='echo {x})'

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
#!/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' # /
)

View File

@@ -0,0 +1,35 @@
#!/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
)

View File

@@ -0,0 +1,35 @@
#!/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'
expected_region_highlight=(
'1 4 path' # /bin
)

View File

@@ -0,0 +1,35 @@
#!/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
)

View File

@@ -0,0 +1,35 @@
#!/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
)

View File

@@ -34,4 +34,5 @@ BUFFER='x=y ls'
expected_region_highlight=( expected_region_highlight=(
"1 3 unknown-token" # x=y "1 3 unknown-token" # x=y
"5 6 default" # ls
) )

View File

@@ -0,0 +1,35 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,37 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,37 @@
# -------------------------------------------------------------------------------------------------
# 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
setopt interactivecomments
alias x=$'# foo\npwd'
BUFFER='x'
expected_region_highlight=(
'1 1 alias "issue #616"' # x
)

View File

@@ -0,0 +1,37 @@
# -------------------------------------------------------------------------------------------------
# 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 (#)
)

View File

@@ -0,0 +1,38 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,38 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,36 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,36 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,40 @@
#!/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=c c=b
BUFFER='a foo; :'
expected_region_highlight=(
'1 1 unknown-token' # a (invalid alias loop)
'3 5 default' # foo
'6 6 commandseparator' # ;
'8 8 builtin' # :
)

View File

@@ -0,0 +1,35 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,43 @@
#!/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' # :
)

View File

@@ -0,0 +1,40 @@
#!/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' # :
)

View File

@@ -0,0 +1,38 @@
#!/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
)

View File

@@ -0,0 +1,42 @@
#!/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
)

View File

@@ -0,0 +1,42 @@
#!/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
)

View File

@@ -0,0 +1,42 @@
#!/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
)

View File

@@ -0,0 +1,42 @@
#!/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
)

View File

@@ -0,0 +1,39 @@
#!/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
)

View File

@@ -0,0 +1,38 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -0,0 +1,38 @@
#!/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
)

View File

@@ -0,0 +1,36 @@
#!/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 "issue #668"' # x (/)
)

View File

@@ -0,0 +1,37 @@
#!/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
)

View File

@@ -0,0 +1,37 @@
#!/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
)

View File

@@ -27,14 +27,11 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
alias alias1="unused expansion" alias alias1="ls"
alias -s alias2="echo" alias -s alias2="echo"
if set -o | grep -q aliasfuncdef; then function alias1() {} # to check that it's highlighted as an alias, not as a function
setopt alias_func_def # 5.4+
fi
alias1() {} # to check that it's highlighted as an alias, not as a function
BUFFER='x.alias2; alias1' BUFFER='x.alias2; alias1; alias2'
# Set expected_region_highlight as a function of zsh version. # Set expected_region_highlight as a function of zsh version.
# #
@@ -43,11 +40,14 @@ BUFFER='x.alias2; alias1'
# functionality is present, and skip verifying suffix-alias highlighting # functionality is present, and skip verifying suffix-alias highlighting
# if it isn't. # if it isn't.
expected_region_highlight=() expected_region_highlight=()
if [[ "$(type -w x.alias2)" == *suffix* ]]; then if zmodload -e zsh/parameter || [[ "$(type -w x.alias2)" == *suffix* ]]; then
expected_region_highlight+=( expected_region_highlight+=(
"1 8 suffix-alias" # x.alias2 "1 8 suffix-alias" # x.alias2
) )
fi fi
expected_region_highlight+=( expected_region_highlight+=(
"9 9 commandseparator" # ;
"11 16 alias" # alias1 "11 16 alias" # alias1
"17 17 commandseparator" # ;
"19 24 unknown-token" # alias2
) )

View File

@@ -37,5 +37,8 @@ expected_region_highlight=(
"16 17 reserved-word" # () "16 17 reserved-word" # ()
"19 19 reserved-word" # { "19 19 reserved-word" # {
"21 24 builtin" # echo "21 24 builtin" # echo
"26 30 default" # world
"32 32 reserved-word" # }
"34 43 default" # "argument"
"34 43 double-quoted-argument" # "argument" "34 43 double-quoted-argument" # "argument"
) )

View File

@@ -31,4 +31,7 @@ BUFFER='a+=(lorem ipsum)'
expected_region_highlight=( expected_region_highlight=(
"1 4 assign" # a+=( "1 4 assign" # a+=(
"5 9 default" # lorem
"11 15 default" # ipsum
"16 16 assign" # )
) )

View File

@@ -27,9 +27,12 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
touch foo
BUFFER='42=foo 43+=bar' BUFFER='42=foo 43+=bar'
expected_region_highlight=( expected_region_highlight=(
"1 6 assign" # 42=foo "1 6 assign" # 42=foo
"4 6 path" # foo
"8 14 assign" # 43+=bar "8 14 assign" # 43+=bar
"12 14 default" # bar
) )

View File

@@ -32,6 +32,8 @@ BUFFER='(A=(hello world))'
expected_region_highlight=( expected_region_highlight=(
"1 1 reserved-word" # ( "1 1 reserved-word" # (
"2 4 assign" # A=( "2 4 assign" # A=(
"5 9 default" # hello
"11 15 default" # world
"16 16 assign" # ) "16 16 assign" # )
"17 17 reserved-word" # ) "17 17 reserved-word" # )
) )

View File

@@ -31,6 +31,8 @@ BUFFER='A=(hello world) ls'
expected_region_highlight=( expected_region_highlight=(
"1 3 assign" # A=( "1 3 assign" # A=(
"4 8 default" # hello
"10 14 default" # world
"15 15 assign" # ) "15 15 assign" # )
"17 18 command" # ls "17 18 command" # ls
) )

View File

@@ -31,6 +31,9 @@ BUFFER='A=(hello world) b=42'
expected_region_highlight=( expected_region_highlight=(
"1 3 assign" # A=( "1 3 assign" # A=(
"4 8 default" # hello
"10 14 default" # world
"15 15 assign" # ) "15 15 assign" # )
"17 20 assign" # b=42 "17 20 assign" # b=42
"19 20 default" # 42
) )

View File

@@ -0,0 +1,36 @@
# -------------------------------------------------------------------------------------------------
# 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' # :
)

View File

@@ -0,0 +1,36 @@
# -------------------------------------------------------------------------------------------------
# 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' # :
)

View File

@@ -30,6 +30,10 @@
BUFFER='A=1; echo hello world' BUFFER='A=1; echo hello world'
expected_region_highlight=( expected_region_highlight=(
"1 3 assign" # A=1
"3 3 default" # 1
"4 4 commandseparator" # ; "4 4 commandseparator" # ;
"6 9 builtin" # echo "6 9 builtin" # echo
"11 15 default" # hello
"17 21 default" # world
) )

View File

@@ -32,5 +32,6 @@ BUFFER='(A=1)'
expected_region_highlight=( expected_region_highlight=(
"1 1 reserved-word" # ( "1 1 reserved-word" # (
"2 4 assign" # A=1 "2 4 assign" # A=1
"4 4 default" # 1
"5 5 reserved-word" # ) "5 5 reserved-word" # )
) )

View File

@@ -0,0 +1,37 @@
#!/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"
)

View File

@@ -0,0 +1,37 @@
#!/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"
)

View File

@@ -31,7 +31,9 @@ BUFFER='A=1 b=("foo" bar)'
expected_region_highlight=( expected_region_highlight=(
"1 3 assign" # A=1 "1 3 assign" # A=1
"3 3 default" # 1
"5 7 assign" # b=( "5 7 assign" # b=(
"8 12 default" # "foo"
"8 12 double-quoted-argument" # "foo" "8 12 double-quoted-argument" # "foo"
"14 16 default" # bar "14 16 default" # bar
"17 17 assign" # ) "17 17 assign" # )

View File

@@ -0,0 +1,37 @@
#!/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"
)

View File

@@ -27,8 +27,32 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
BUFFER='echo `echo 42`' BUFFER='echo `echo \`42\`` "is `echo equal` to" `echo 6 times 9'
expected_region_highlight=( expected_region_highlight=(
"6 14 back-quoted-argument" "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
) )

View File

@@ -0,0 +1,41 @@
#!/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
)

View File

@@ -0,0 +1,39 @@
#!/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
)

View File

@@ -0,0 +1,34 @@
# -------------------------------------------------------------------------------------------------
# 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' # \\
)

View File

@@ -0,0 +1,40 @@
#!/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=(
'6 8 default' # bar
'10 13 default' # abaz
'14 14 assign' # )
'16 16 unknown-token' # \!
'18 19 command' # ls
)

View File

@@ -0,0 +1,38 @@
#!/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
)

View File

@@ -0,0 +1,39 @@
#!/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
)

View File

@@ -0,0 +1,38 @@
#!/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' # ]]
)

View File

@@ -0,0 +1,38 @@
#!/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' # ]
)

View File

@@ -34,6 +34,7 @@ expected_region_highlight=(
'1 3 reserved-word' # for '1 3 reserved-word' # for
'5 5 default' # n '5 5 default' # n
'7 8 default' # in '7 8 default' # in
'10 10 default' # *
'10 10 globbing' # * '10 10 globbing' # *
'11 11 commandseparator' # ; '11 11 commandseparator' # ;
'13 14 reserved-word' # do '13 14 reserved-word' # do

View File

@@ -0,0 +1,40 @@
#!/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' # ]]
)

View File

@@ -0,0 +1,44 @@
#!/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
)

View File

@@ -0,0 +1,45 @@
#!/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' # )
)

View File

@@ -0,0 +1,42 @@
#!/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' # :
)

View File

@@ -0,0 +1,45 @@
#!/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

View File

@@ -30,6 +30,7 @@
BUFFER=':; pwd &! ls' BUFFER=':; pwd &! ls'
expected_region_highlight=( expected_region_highlight=(
"1 1 builtin" # :
"2 2 commandseparator" # ; "2 2 commandseparator" # ;
"4 6 builtin" # pwd "4 6 builtin" # pwd
"8 9 commandseparator" # &! "8 9 commandseparator" # &!

View File

@@ -32,8 +32,7 @@ setopt interactivecomments
BUFFER=$'# foo\ntrue' BUFFER=$'# foo\ntrue'
expected_region_highlight=( expected_region_highlight=(
'1 5 comment' # # '1 5 comment' # # foo
#'6 6 '"' # \n '6 6 commandseparator "issue #501"' # \n
'7 10 builtin' # true '7 10 builtin' # true
) )

View File

@@ -32,6 +32,5 @@ setopt interactive_comments
BUFFER='# echo foo' BUFFER='# echo foo'
expected_region_highlight=( expected_region_highlight=(
"1 1 comment" # # "1 10 comment" # # echo foo
"2 10 comment" # " echo foo"
) )

View File

@@ -33,6 +33,7 @@ BUFFER='echo "foo #bar" #baz # quux'
expected_region_highlight=( expected_region_highlight=(
"1 4 builtin" # echo "1 4 builtin" # echo
"6 15 default" # "foo #bar"
"6 15 double-quoted-argument" # "foo #bar" "6 15 double-quoted-argument" # "foo #bar"
"17 27 comment" # #baz # quux "17 27 comment" # #baz # quux
) )

View File

@@ -27,10 +27,19 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
x=/usr/bin/env local x=/usr/bin/env
BUFFER='$x "argument"' local y=sudo
local -a z; z=(zsh -f)
sudo(){}
BUFFER='$x "argument"; $y; $z'
expected_region_highlight=( expected_region_highlight=(
"1 2 command" # $x "1 2 command" # $x
"4 13 default" # "argument"
"4 13 double-quoted-argument" # "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
) )

View File

@@ -34,17 +34,24 @@ expected_region_highlight+=(
"7 8 reserved-word" # if "7 8 reserved-word" # if
"10 13 builtin" # echo "10 13 builtin" # echo
"15 19 default" # Hello "15 19 default" # Hello
"20 20 commandseparator" # ;
"22 25 reserved-word" # then "22 25 reserved-word" # then
"27 28 command" # ls "27 28 command" # ls
"30 30 path" # / "30 30 path" # /
"31 31 commandseparator" # ; "31 31 commandseparator" # ;
"33 36 reserved-word" # else "33 36 reserved-word" # else
"38 39 command" # ls "38 39 command" # ls
"40 40 commandseparator" # ;
"42 43 reserved-word" # fi "42 43 reserved-word" # fi
"44 44 commandseparator" # ;
"46 47 reserved-word" # do "46 47 reserved-word" # do
"49 52 command" # stat "49 52 command" # stat
"54 56 default" # "x"
"54 56 double-quoted-argument" # "x" "54 56 double-quoted-argument" # "x"
"57 57 commandseparator" # ;
"59 62 reserved-word" # done "59 62 reserved-word" # done
"63 63 commandseparator" # ;
"65 70 reserved-word" # repeat "65 70 reserved-word" # repeat
"72 73 default" # 10
"75 76 command" # ls "75 76 command" # ls
) )

View File

@@ -0,0 +1,70 @@
#!/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' # `
)

View File

@@ -0,0 +1,40 @@
# -------------------------------------------------------------------------------------------------
# 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
)

View File

@@ -32,8 +32,8 @@ BUFFER=': "$$ $$foo"'
expected_region_highlight=( expected_region_highlight=(
'1 1 builtin' # : '1 1 builtin' # :
'3 3 double-quoted-argument' # " '3 12 default' # "$$ $$foo"
'3 12 double-quoted-argument' # "$$ $$foo"
'4 5 dollar-double-quoted-argument' # $$ '4 5 dollar-double-quoted-argument' # $$
'7 8 dollar-double-quoted-argument' # $$ '7 8 dollar-double-quoted-argument' # $$
'9 12 double-quoted-argument' # foo"
) )

View File

@@ -32,15 +32,11 @@ BUFFER=': "$- $# $* $@ $?"'
expected_region_highlight=( expected_region_highlight=(
'1 1 builtin' # : '1 1 builtin' # :
'3 3 double-quoted-argument' # " '3 18 default' # "$- $# $* $@ $?"
'3 18 double-quoted-argument' # "$- $# $* $@ $?"
'4 5 dollar-double-quoted-argument' # $- '4 5 dollar-double-quoted-argument' # $-
'6 6 double-quoted-argument' # <space>
'7 8 dollar-double-quoted-argument' # $# '7 8 dollar-double-quoted-argument' # $#
'9 9 double-quoted-argument' # <space>
'10 11 dollar-double-quoted-argument' # $* '10 11 dollar-double-quoted-argument' # $*
'12 12 double-quoted-argument' # <space>
'13 14 dollar-double-quoted-argument' # $@ '13 14 dollar-double-quoted-argument' # $@
'15 15 double-quoted-argument' # <space>
'16 17 dollar-double-quoted-argument' # $? '16 17 dollar-double-quoted-argument' # $?
'18 18 double-quoted-argument' # "
) )

View File

@@ -28,11 +28,22 @@
# vim: ft=zsh sw=2 ts=2 et # vim: ft=zsh sw=2 ts=2 et
# ------------------------------------------------------------------------------------------------- # -------------------------------------------------------------------------------------------------
BUFFER=': "$(:)"' BUFFER=': "$(:)" "foo$(:)bar'
expected_region_highlight=( expected_region_highlight=(
'1 1 builtin' # : '1 1 builtin' # :
'3 3 double-quoted-argument' # " '3 8 default' # "$(:)"
'4 4 dollar-double-quoted-argument' # $ '3 3 double-quoted-argument' # "$(:)"
'5 8 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' # )
) )

Some files were not shown because too many files have changed in this diff Show More