Commit graph

579 commits

Author SHA1 Message Date
Daniel Shahaf
81267ca313 'main': Highlight pipes inside array assignments as errors
Fixes #651.
2020-03-15 14:27:15 +00:00
Daniel Shahaf
bfd44f5c3f noop: Add comments. 2020-03-15 14:22:05 +00:00
Daniel Shahaf
3ca93f864f 'main': Highlight literal semicolons in array assignments as errors.
Fixes the test added in the penultimate (grandparent) commit.
2020-03-15 14:19:38 +00:00
Daniel Shahaf
a4525a0826 'main': Add infrastructure for treating literal newlines differently to semicolons.
Used by the next commit.
2020-03-15 14:19:38 +00:00
Daniel Shahaf
e58e45273f tests: Add some tests for unusual or invalid elements in array assignments:
- pipes (issue #651)
- semicolons
- literal newlines
  (also discussed on #651)
2020-03-15 14:19:38 +00:00
Matthew Martin
b85e313bc9 main: Declare variable local to fix WARN_CREATE_GLOBAL error 2020-03-12 20:51:19 -05:00
Daniel Shahaf
34df84a7dd 'main': Add a test for issue #687, concerning the SH_WORD_SPLIT option. 2020-03-11 16:52:08 +00:00
Daniel Shahaf
1a752da1c2 Highlight redirections by default, and add that to the examples in README.
Fixes #646.
2020-02-28 22:49:02 +00:00
Daniel Shahaf
edfc7dfd9b 'main': Fix issue #577. 2020-02-28 22:36:57 +00:00
Daniel Shahaf
9880276756 'main': Fix the currently-failing test for issue #577.
It is fixed in the next commit.
2020-02-28 22:35:56 +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
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
Matthew Martin
0e51046b19 main: Add tests for issue #678 2020-01-25 15:51:16 -06: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
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
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
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
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
1be58a6f45 Add a test for 2f03b6d704. 2020-01-11 21:19:52 +00:00
Daniel Shahaf
8b2768ab40 'main': Add a test for 07f259f653. 2020-01-11 20:46:14 +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