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
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
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
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
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
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
b454b596ed
Fix historical instances of one-space indentation.
...
No functional change.
2020-03-17 00:48:16 +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
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
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
54e1828d5c
'main': Clarify documentation of the :sudo_opt: and :sudo_arg: states.
2020-03-15 14:56:43 +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
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
3cea1434ae
Bump copyright years.
2020-02-25 17:34:35 +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
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
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
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
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
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
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