Daniel Shahaf
2aca4e2c02
'main': Make logic more robust. No functional change.
...
Before this commit, if the value didn't begin with a dollar sign,
_zsh_highlight_main_highlighter__try_expand_parameter() would return 1
by accident.¹ Tweak the input validation to make this behaviour
explicit. No functional change.
¹ Specifically, it would return 1 because ${parameter_name}'s value
would be the empty string and ${parameter_name_pattern} wouldn't match
that.
2020-03-28 03:57:13 +00:00
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
2904e0f986
test harness: Fix the pretty-printer's padding implementation.
...
The new implementation is less efficient but definitely correct.
2020-03-20 00:03:01 +00:00
Daniel Shahaf
d5d2f22013
Revert "test harness: Rewrite the columnar pretty-printer without external tools." and "travis: Remove bsdmainutils since column(1) has been removed, three commits ago."
...
This reverts commits ea7c165b59
and
3d81c83132
.
When "have 6 expectations and 4 region_highlight entries", the pure-zsh
implementation printed them as follows:
not ok 7 - cardinality check - have 6 expectations and 4 region_highlight entries: «expected_region_highlight=( $'1 1 builtin' $'3 6 comment' $'8 13 comment' $'15 15 default' $'16 21 comment' $'22 22 default' )»
«region_highlight=( $'0 1 builtin' $'2 6 comment' $'7 13 comment' $'14 22 default' )»
# expected_region_highlight '22 22 default'
# '1 1 builtin' region_highlight
# '3 6 comment' '0 1 builtin'
# '8 13 comment' '2 6 comment'
# '15 15 default' '7 13 comment'
# '16 21 comment' '14 22 default'
Whereas the column(1)-based implementation prints them as follows:
not ok 7 - cardinality check - have 6 expectations and 4 region_highlight entries: «expected_region_highlight=( $'1 1 builtin' $'3 6 comment' $'8 13 comment' $'15 15 default' $'16 21 comment' $'22 22 default' )» «region_highlight=( $'0 1 builtin' $'2 6 comment' $'7 13 comment' $'14 22 default' )»
# expected_region_highlight region_highlight
# '1 1 builtin' '0 1 builtin'
# '3 6 comment' '2 6 comment'
# '8 13 comment' '7 13 comment'
# '15 15 default' '14 22 default'
# '16 21 comment'
# '22 22 default'
Ultimately, this difference is down to the pure-zsh implementation
getting the arguments as a single list, whereas paste(1) gets two
separate lists.
2020-03-20 00:03:01 +00:00
Daniel Shahaf
8eaa41431d
changelog: Update through HEAD.
2020-03-19 21:25:49 +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
9e9885253a
test harness: Output the time information to the same place the test name was printed to.
2020-03-19 19:17:41 +00:00
Daniel Shahaf
3e7745ef30
test harness: Stringify values in a more readable manner.
...
(q-) passes through newlines and NUL bytes verbatim. Using (qqqq) ensures the
escaped string will be on a single line (as required by the TAP format) and be
readable even if it contains control characters.
2020-03-19 19:15:21 +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
48dd47931a
changelog: Update through HEAD.
2020-03-19 05:13:17 +00:00
Daniel Shahaf
3d81c83132
travis: Remove bsdmainutils since column(1) has been removed, three commits ago.
2020-03-19 05:11:21 +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
ea7c165b59
test harness: Rewrite the columnar pretty-printer without external tools.
2020-03-19 05:01:54 +00:00
Daniel Shahaf
90a92b2bb8
test harness: Fix an issue with the pretty-printed $expected_region_highlight/$region_highlight diffing.
...
If the right column was longer, the excess entries were printed on the left column.
2020-03-19 05:01:54 +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
3ff5bec82e
test harness: Let tests fail early by exiting non-zero or by setting a flag.
...
Fixes #609 .
2020-03-19 00:37:21 +00:00
Daniel Shahaf
c4bb260a30
test harness: Print the test name when $skip_test is set.
2020-03-19 00:16:09 +00:00
Daniel Shahaf
9bdeb4aa4a
test harness: Remove a bogus check.
...
We already declare $expected_region_highlight in run_test_internal().
Therefore, it will always be declared.
2020-03-19 00:03:24 +00:00
Daniel Shahaf
63852df983
test harness: Fix $skip_test support, broken yesterday.
...
It was broken by commit e6eea1f9b7
,
"test harness: Don't leak options from test files to the test harness.".
2020-03-19 00:00:51 +00:00
Daniel Shahaf
66021cf0f7
travis: Install bsdmainutils to provide column(1).
...
See the last commit,
bdb4e8b70e
test harness: When the cardinality check fails, pretty-print \$expected_region_highlight and \$region_highlight.
2020-03-17 17:17:51 +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
bdb4e8b70e
test harness: When the cardinality check fails, pretty-print \$expected_region_highlight and \$region_highlight.
2020-03-17 17:06:32 +00:00
Daniel Shahaf
e6eea1f9b7
test harness: Don't leak options from test files to the test harness.
...
Fixes an issue whereby the '# TODO "issue #687 "' directive in the output of
opt-shwordsplit1.zsh was truncated, because the test itself had set the
SH_WORD_SPLIT option and that affected the evaluation of
«${(z)expected_region_highlight[i]}» in the test harness.
Furthermore, this patch also independently fixes the error under
zsh-5.0.8 and earlier that was fixed by the previous commit.
2020-03-17 16:48:57 +00:00
Daniel Shahaf
99389327ae
test harness: Fix test failures under zsh 5.0.8 and older.
...
The output of test-data/opt-shwordsplit1.zsh on zsh 5.7 is:
.
1..2
## opt-shwordsplit1
# BUFFER=vim
not ok 1 - [1,7] «$EDITOR» - expected (1 7 "function"), observed (1 7 "unknown-token"). # TODO "issue
ok 2 - cardinality check # SKIP cardinality check disabled whilst regular test points are expected to fail
On zsh 5.0.8, tap_escape() choked when called on the arguments argv=('[1,7]'
'«vim»'). This patch fixes that.
As you may have noticed, under zsh 5.7 the diagnostic message of test point 1
is truncated. That'll be fixed in the next commit.
2020-03-17 16:22:56 +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