Commit graph

1315 commits

Author SHA1 Message Date
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 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
Austin Traver b00be5f741 driver: Be resilient to KSH_ARRAYS being set in the calling scope
The «emulate» call isn't sufficient, since these lines are parsed before
it takes effect.

Fixes #689 (née #622).

See also #688 for preventing these gymnastics from being needed in the
first place.

See also https://github.com/junegunn/fzf/pull/1924 for an inter-plugin
interaction that this probably fixes.
2020-03-13 16:18:07 +00:00
Matthew Martin b85e313bc9 main: Declare variable local to fix WARN_CREATE_GLOBAL error 2020-03-12 20:51:19 -05:00
Matthew Martin 41d90cb5ed make test: Run tests under env -i
This makes the tests more reproducable. In particular it avoids hiding
a WARN_CREATE_GLOBAL error when the dev happens to have defined that
variable in the environment (cf. next commit).
2020-03-12 20:48:46 -05:00