Commit Graph
100 Commits
Author SHA1 Message Date
Daniel Shahaf ade4b28d2d 'main': Fix issue #677, concerning multiline aliases.
The fix is to exempt such aliases from the empty commands sanity check.
2020-05-22 04:54:10 +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 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 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 c699ce9a26 changelog: Fix markup. 2020-03-17 03:10:08 +00:00
Daniel Shahaf 6e1a221699 tests: Add a test for issue #571. 2020-03-17 02:58:16 +00:00
Daniel Shahaf 9ceb7c6e7c changelog.md (0.7.0): Fix typo 2020-03-17 01:51:32 +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 62e2d05f91 changelog: Update through HEAD. 2020-03-16 19:34:48 +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 e15781c900 changelog: Update through HEAD. 2020-03-16 19:26:28 +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 2331072c06 changelog: Update through HEAD. 2020-03-15 18:32:44 +00:00
Daniel Shahaf 9e036e0b0c 'main': Document the second meaning of the 'comment' style. 2020-03-15 18:30:53 +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 f564d11a41 make test: Re-enable syntax highlighting of TAP output in interactive runs
Fixes #692.
2020-03-15 18:10:18 +00:00
Daniel Shahaf 8072651b6c editorconfig += Makefile 2020-03-15 18:10:03 +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 c5878ae632 changelog: Update through HEAD. 2020-03-15 14:37:04 +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
Daniel Shahaf 37b6f5052f test harness: Update tests/edit-failed-tests for harness output changes in commit 2b3638a211, "test harness: Tweak quiet-test output". 2020-03-15 13:33:09 +00:00
Daniel Shahaf a3c1757e47 changelog: Update through HEAD. 2020-03-13 23:13:01 +00: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 8e3578240c tests harness docs: Add paragraph breaks. 2020-02-28 22:36:57 +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 027f522300 test harness: Honour $expected_mismatch when there are more expected than observed highlights.
Required for the next commit.
2020-02-28 22:31:43 +00:00
Daniel Shahaf 932e29a0c7 Tag version 0.7.1. 2020-02-28 21:34:10 +00:00
Daniel Shahaf ec04a20681 release.md: Update with the step that was missed in 0.7.0. 2020-02-28 21:33:51 +00:00
Daniel Shahaf cb8d68d00a Update changelog for the 0.7.1 release. 2020-02-28 21:32:42 +00:00
Daniel Shahaf 04dd78cb00 Update changelog for the 0.7.0 release. (Yes, this should have been committed earlier today.) 2020-02-28 21:29:59 +00:00
Daniel Shahaf 36a3c0f82c Tag version 0.7.0. 2020-02-28 15:36:43 +00:00
Daniel Shahaf d65f4f8a35 release.md: Add details about a step. 2020-02-28 15:36:25 +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 https://github.com/zsh-users/zsh-syntax-highlighting/commit/1a55dc8fc28cf1049ba8ff33694d3e56678cad17#commitcomment-37476021
2020-02-25 17:22:55 +00:00
Daniel Shahaf 2b3638a211 test harness: Tweak quiet-test output
- Print the test name and data after the plan line

- Split on the plan line rather than on comments

  + That makes tap-filter more suitable to filter TAP output generated by other
    TAP producers.

  + However, the filtered output deletes the plan line and adds a blank line in
    its stead.  This suits our use-case of interactive test runs.
2020-02-22 15:12:24 +00:00
Daniel Shahaf 3414c7c0d2 test harness: Include $PREBUFFER and $BUFFER in the output.
For human readers' benefit.
2020-02-22 15:12:24 +00:00
Daniel Shahaf 4a043b4d15 noop: Whitespace changes only.
./.editorconfig is already set correctly.
2020-02-22 15:12:24 +00:00
Daniel Shahaf dc70e89bfd tests: Support non-arrays in typeset_p(). 2020-02-22 15:12:24 +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 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
Daniel Shahaf 4e92449752 changelog: Document #670 as a known issue. 2020-01-25 21:00:40 +00:00
Daniel Shahaf b73853dd96 changelog: Document #677 as a known issue. 2020-01-24 18:40:51 +00: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 deee22ed42 tests: Don't filter out tests that aborted.
Useful in piping Travis CI output through tap-filter manually.
2020-01-24 00:49:51 +00:00
Daniel Shahaf 77c6bf2019 'main': precommands: Remove argumentless options that can't be followed by a command word.
Suggested-by: Matthew Martin
(in https://github.com/zsh-users/zsh-syntax-highlighting/commit/e2e97dde9c92bf27d8222482a08e2b77d66ac334#r36941988)
2020-01-24 00:37:56 +00:00
Daniel Shahaf 27e4789439 docs: Track FreeBSD port rename
See https://svnweb.freebsd.org/ports?revision=501751&view=revision
2020-01-23 22:09:33 +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 dfb917020c Bump copyright years. 2020-01-16 17:19:25 +00:00
Daniel Shahaf 9ed2a46ed2 dev tools: New script to ease opening $EDITOR on failing tests.
Has room for improvement; for now, I use it with CTRL-W_f.
2020-01-16 17:19:25 +00:00
Daniel Shahaf 1c6a6d92b0 dev tools: Allow specifying preamble code when generating test cases. 2020-01-16 17:19:25 +00:00
Daniel Shahaf 6b0671b63e Add .editorconfig file.
Vim doesn't honour the modelines by default because they're too far from
the start/end of the file [the default value of the 'modelines' (sic)
option is too small].
2020-01-16 17:19:25 +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