Commit Graph
100 Commits
Author SHA1 Message Date
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 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
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
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
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
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
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
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
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
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
Daniel Shahaf 02f4a6b540 'main': Optionally ignore aliases in __type 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
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 dbdebfaaa5 'main': Following up to the last commit, also highlight braced parameter expansions: «${foo}». 2018-10-10 22:19:41 -05: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
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
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
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
Daniel Shahaf 987b743646 'main': Fix highlighting of «<->»-style numeric globs.
Found-by: Matthew Martin
2018-01-08 05:13:52 +00: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
Daniel Shahaf ff61a496b5 'main': Add a regression test for issue #468. 2017-12-23 23:04:32 +00: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
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
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