Daniel Shahaf
7678a8a227
'main': Break out an anonymous function into a named function.
...
This is in order to allow it to be reused.
No functional change.
2020-03-27 01:29:11 +00:00
Daniel Shahaf
5d139fcd94
Fix typos in comments.
2020-03-27 01:28:11 +00:00
Matthew Martin
d1802e388e
main: Add test for issue #713
2020-03-22 15:01:53 -05:00
Daniel Shahaf
aecfd61bbd
'main': Support the 'env' precommand.
2020-03-21 01:45:34 +00:00
Daniel Shahaf
e4f24f8901
Merge pull request #669 from danielshahaf/cdpath-and-nonexecutable-in-command-position-v1
...
Command position: non-executable files, non-cdable directories, CDPATH false positives
2020-03-19 21:22:52 +00:00
Daniel Shahaf
1000da306a
'main': Correctly highlight '&&' and '||' inside '[[ … ]]' conditions.
2020-03-19 20:16:43 +00:00
Daniel Shahaf
b44964c545
'main': Highlight reserved words following assignments as errors.
...
Fixes #461 .
2020-03-19 19:48:44 +00:00
Daniel Shahaf
f54d829f03
tests: Add tests for issue #461 .
2020-03-19 19:43:12 +00:00
Daniel Shahaf
b0af27f25f
tests: Add a unit test for a path specified with mixed quoting.
...
Fixes #475 .
2020-03-19 06:49:40 +00:00
Daniel Shahaf
bd9094cc61
tests: Add a test for issue #498 , which has already been fixed.
2020-03-19 06:44:12 +00:00
Daniel Shahaf
c7229a000a
tests: Test that global qualifiers and command substitutions aren't evaluated.
...
Fixes #504 .
2020-03-19 06:41:38 +00:00
Daniel Shahaf
f2726d0464
'main': Don't consider path_prefix in alias expansions.
2020-03-19 06:06:30 +00:00
Daniel Shahaf
8184266338
'main': Add a test for aliases to AUTO_CD directories.
2020-03-19 06:06:30 +00:00
Daniel Shahaf
83ac855ceb
'main': Let AUTO_CD directories be highlighted with their own style.
2020-03-19 06:06:30 +00:00
Daniel Shahaf
3f930fb0c1
'main': Add an auxiliary variable for readability.
2020-03-19 06:06:30 +00:00
Daniel Shahaf
5545fb9ab2
'main': In command position, do not highlight directories (unless AUTO_CD is set) and non-executable files.
...
Fixes #202 .
Test expectations are updated. For example, BUFFER='/bin' is now
highlighted as path_prefix because it's a prefix of '/bin/sh' which
would be valid. However, BUFFER='/bin;' is now properly highlighted
as an error (unless AUTO_CD is set).
2020-03-19 06:06:30 +00:00
Daniel Shahaf
a6eb966d96
'main': Extend tests to capture the current behaviour.
...
The next commits will change this behaviour.
2020-03-19 06:05:23 +00:00
Daniel Shahaf
c67372e96c
'main': Add an XFail test for issue #202 .
2020-03-19 06:05:23 +00:00
Daniel Shahaf
29ca0bc6c8
'main': Highlight errors from the EQUALS option.
...
Fixes #430 .
2020-03-19 05:59:04 +00:00
Daniel Shahaf
08839bbd87
'main': Let the type determination ignore global aliases when it ignores regular ones.
2020-03-19 05:28:17 +00:00
Daniel Shahaf
e2dddb91c6
'main': Add a regression test for parameters that expand to global aliases.
...
Will be fixed in the next commit.
2020-03-19 05:27:31 +00:00
Daniel Shahaf
cfef4f3ae0
'main': Enable the zsh/parameter codepath of global aliases highlighting.
2020-03-19 05:13:46 +00:00
Daniel Shahaf
3c5f63d959
'main': Highlight global aliases
2020-03-19 05:05:37 +00:00
Daniel Shahaf
5a44d9f32a
tests: Record current behaviour on global aliases.
2020-03-19 05:04:15 +00:00
Daniel Shahaf
fdf23e06c7
'main': Support the "close file descriptor" and "coproc" redirection syntaxes
...
Part of issue #645 .
2020-03-19 03:15:37 +00:00
Daniel Shahaf
10171731f3
tests: Add a test for the "close file descriptor" and "coproc" redirection syntaxes
...
Part of issue #645 .
2020-03-19 03:14:15 +00:00
Daniel Shahaf
dfc41123d7
tests: Fix the test added in the last commit.
2020-03-19 02:30:58 +00:00
Daniel Shahaf
d6defe715a
tests: Add a test for issue #705 , concerning continuation lines.
2020-03-19 01:39:33 +00:00
Daniel Shahaf
0f627fdf60
Merge remote-tracking branch 'danielsh/whitespace-historical'
...
* danielsh/whitespace-historical:
Fix historical instances of one-space indentation.
2020-03-17 17:08:06 +00:00
Daniel Shahaf
e165f18c75
'main': Fix a bug manifesting under zsh 5.2 and older.
...
The escaped caret was taken for a negated character class. This caused test-data/arith1.zsh
to XPass: the arithmetic expansion was consumed by the 'while' loop.
2020-03-17 16:13:32 +00:00
Daniel Shahaf
d237a60c9b
'main': Don't highlight arithmetic expansions as command substitutions.
...
This is not perfect: we don't try to detect cases such as «$((ls); (ls))»,
which look like arithmetic expansions but are in fact command substitutions.
Fixes part of #607 .
Introduces #704 .
2020-03-17 15:05:32 +00:00
Daniel Shahaf
2e65bb6d7d
tests: Add a test documenting the current state, prior to introducing #704 .
2020-03-17 15:05:32 +00:00
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
Joe Rabinoff
b127a06e6f
More options to highlight path component
2020-02-17 17:05:15 -05:00
Joe Rabinoff
d511fa39fa
Suppress unrecognized keys from LS_COLORS
2020-02-17 16:38:58 -05:00
Daniel Shahaf
52ea5c686a
'main': precommands += chronic, ifne (from moreutils)
...
Fixes #681 .
2020-02-17 10:20:13 +00:00
Joe Rabinoff
9ffd67d21b
Declared LS_COLORS local in tests
2020-02-14 10:24:06 -05:00
Joe Rabinoff
e151a8ee26
Fixed su/sg/ow detection
2020-02-14 10:07:30 -05:00
Joe Rabinoff
fdd40e902c
Test cases for files highlighter
2020-02-14 10:06:43 -05:00
Joe Rabinoff
174f204713
Better handling of empty styles
2020-02-14 09:16:15 -05:00
Joe Rabinoff
e80505a73e
Allow for empty patterns
2020-02-14 07:32:17 -05:00
Joe Rabinoff
3e1413eaf1
Empty matches in _ansi_to_zle()
2020-02-14 07:25:48 -05:00
Joe Rabinoff
c432451c20
Added copyright boilerplate and fixed indentation
2020-02-04 10:25:34 -05:00
Joe Rabinoff
22362e02f7
Renamed files.md to README.md
2020-02-03 16:34:09 -05:00
Joe Rabinoff
73636fae13
Add 'files' highlighter
...
This new highlighter highlights names of existing files on the command line, in
the style of LS_COLORS. It can pull its configuration directly from LS_COLORS,
or can be configured separately.
2020-02-03 16:30:40 -05: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