Daniel Shahaf
e79ce6afd0
'main': Document additional meanings of the 'S' $braces_stack flag.
2020-03-17 14:12:00 +00:00
Daniel Shahaf
fb69f4ca81
'main': When the redirection operator '>&' or '<&' is followed by a positive integer, do not consider that as a filename; it's always a file descriptor.
...
Fixes #694 .
2020-03-17 04:00:43 +00:00
Daniel Shahaf
1024ae8177
'main': Add $last_arg for "lookbehind".
2020-03-17 03:58:15 +00:00
Daniel Shahaf
5720d87052
noop: Clarify comment.
2020-03-17 03:48:40 +00:00
Daniel Shahaf
2339ee33b9
'main': Honour the MULTIOS option when applying the 'globbing' style.
...
Fixes #583 .
2020-03-17 03:32:58 +00:00
Daniel Shahaf
61945185ff
'main': Document what $in_redirection is currently used for.
2020-03-17 03:18:27 +00:00
Daniel Shahaf
936bc251a8
'main': The optimized cmdsubst input syntax doesn't glob.
...
Fixes #582 .
2020-03-17 03:11:52 +00:00
Daniel Shahaf
6e1a221699
tests: Add a test for issue #571 .
2020-03-17 02:58:16 +00:00
Daniel Shahaf
b454b596ed
Fix historical instances of one-space indentation.
...
No functional change.
2020-03-17 00:48:16 +00:00
Daniel Shahaf
e815d4579b
tests: Add a test for a bug fixed in 2d0dddf58b
"'main': Don't dequote the word in command position before analyzing it.".
...
Fixes #630 .
2020-03-16 22:27:04 +00:00
Daniel Shahaf
3174e375f4
'main': Fix highlighting of null execs.
...
Fixes #676 .
2020-03-16 21:50:04 +00:00
Daniel Shahaf
f56e3fad23
'main': Optimize the path_prefix check.
...
Computing ${#array} is O(N), whereas checking 0 is O(1).
2020-03-16 20:45:56 +00:00
Daniel Shahaf
2cc2583f8f
Merge the first three commits of PR #669
...
* commit 'b1f36d9c5f45b879fbd2f64195167a60d9f3cb9e':
'main': Add a comment.
'main': Fix the $CDPATH from the previous commit.
'main': Add a test for a $CDPATH bug.
2020-03-16 19:32:59 +00:00
Daniel Shahaf
20d250d618
'main': Support the non-precommand flags of sudo(8) and ssh-agent(1).
...
Uses the infrastructure added in the previous commit.
Fixes #678 .
2020-03-16 19:22:54 +00:00
Daniel Shahaf
c73153c6e8
'main': Add infrastructure for precommand options that are not to be followed by a command word (issue #678 ).
2020-03-16 19:20:31 +00:00
Daniel Shahaf
63bcd85dfa
'main': Don't use «foo && bar || baz» where a trenary is more appropriate.
...
This prevents the baz pattern match from being attempted whenever the
bar pattern match was tried and failed.
2020-03-16 19:14:51 +00:00
Daniel Shahaf
4bbd2a3bc6
'main': Prepare to add additional fields to $precommand_options values.
...
No functional change.
2020-03-16 19:07:57 +00:00
Daniel Shahaf
241d3a92e8
tests: Fix an XFail test expectation.
...
Before this commit, the test was unable to XPass, since there is no
highlighting style called "normal".
2020-03-16 19:04:12 +00:00
Daniel Shahaf
6243c99f41
tests: Fixup last commit.
2020-03-16 18:57:28 +00:00
Daniel Shahaf
8f7e9b2af4
tests: Add a test for uninstalled precommands.
2020-03-15 19:55:42 +00:00
Daniel Shahaf
f63f07417d
Merge remote-tracking branch 'danielsh/tests-skip-cardinality-v1'
...
* danielsh/tests-skip-cardinality-v1:
tests: Minor documentation readability tweak
Add a test for issue #641.5, using the infrastructure added in the previous commits.
tests: Skip cardinality tests whenever any test point is expected to fail.
tests: Make $expected_mismatch skip the cardinality check, rather than consider it an expected failure.
tests: Include the name of the 'cardinality check' test point in the output
2020-03-15 18:38:26 +00:00
Daniel Shahaf
74c7ffc9b5
'main': Factor out common logic to after the case/esac.
2020-03-15 18:30:53 +00:00
Daniel Shahaf
8feb06a022
'main': Support parameter elision in command position.
2020-03-15 18:25:13 +00:00
Daniel Shahaf
fdf682a2f9
'main': Expand comment.
2020-03-15 18:14:39 +00:00
Daniel Shahaf
9931990b92
tests: Fix the test for alias loops.
...
Before this commit, the command word was highlighted as "unknown-token"
not because alias loops are invalid, as a comment incorrectly claimed,
but because the command word «a» resolved to a «b» that was ineligible
for being expanded as an alias, and there was no function/builtin/etc.
called "b".
Add a function "b" to demonstrate that alias loops are valid. I've also
filed issue #695 about the overloading of "unknown-token".
2020-03-15 17:22:35 +00:00
Daniel Shahaf
525ba90932
tests: Add an XFail test for issue #694 .
2020-03-15 16:06:35 +00:00
Daniel Shahaf
9134cdf8d6
'main': Allow newlines in command position.
...
Fixes #501 .
Fixes #616 (the original form; not the form in
test-data/alias-comment1.zsh which is now considered o be #677 (see
previous commit for details)).
Fixes a latent bug in test-data/always2.zsh.
No user-visible effect, and therefore, no changelog entry.
2020-03-15 15:38:07 +00:00
Daniel Shahaf
e94dc89606
tests: Distinguish issues #616 and #677 .
...
See https://github.com/zsh-users/zsh-syntax-highlighting/issues/677#issuecomment-599225740 for details.
(In particular, there's already another test that calls itself #616.)
2020-03-15 15:35:29 +00:00
Daniel Shahaf
f996d83975
tests: Add cross-references.
2020-03-15 15:24:06 +00:00
Daniel Shahaf
54e1828d5c
'main': Clarify documentation of the :sudo_opt: and :sudo_arg: states.
2020-03-15 14:56:43 +00:00
Daniel Shahaf
498cc7641f
tests: Extend and document the after-a-parse-error aspects of the issue #651 test.
2020-03-15 14:34:25 +00:00
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
b1f36d9c5f
'main': Add a comment.
2020-01-12 19:48:49 +00:00
Daniel Shahaf
08edf8db7f
'main': Fix the $CDPATH from the previous commit.
2020-01-12 19:37:53 +00:00
Daniel Shahaf
6629a1f432
'main': Add a test for a $CDPATH bug.
2020-01-12 19:37:30 +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
Daniel Shahaf
926c36c1fb
Add a test for issue #641.5, using the infrastructure added in the previous commits.
...
Current output:
.
# precommand-then-assignment
1..4
ok 1 - [1,4] «nice»
not ok 2 - [6,8] «x=y» - expected (6 8 "unknown-token"), observed (6 8 "assign"). # TODO "issue #641.5"
not ok 3 - [8,8] «y» - expected (10 11 "default"), observed (8 8 "default"). # TODO "issue #641.5 (fallout)"
ok 4 - cardinality check # SKIP cardinality check disabled whilst regular test points are expected to fail
2019-11-10 11:49:26 +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
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
Matthew Martin
82cf2527fc
'main': Add test for #548
...
Closes #548
2019-04-19 19:48:01 -05:00