Commit Graph

289 Commits

Author SHA1 Message Date
Matthew Martin 48a20d067f main: Break double-quoted-argument on command substitutions 2018-10-22 07:53:18 -05:00
Daniel Shahaf 6539f0d419 'main': Highlight named fd redirections.
Merge remote-tracking branch 'danielsh/i238-named-fd-redirection-v1'

* danielsh/i238-named-fd-redirection-v1:
  'main': Tighten condition.
  noop: Tweak condition at Matthew's suggestion
  'main': Highlight named fd redirections.
2018-10-22 05:00:07 +00:00
Daniel Shahaf 7d961ba1e6 'main': Add a test for issue #237. 2018-10-22 04:58:57 +00:00
Daniel Shahaf 38c794a978 'main': Highlight named fd redirections.
Fixes #238
2018-10-22 04:33:11 +00:00
Matthew Martin f71a17c58e main: Highlight closing brackets
Closes #226
2018-10-21 12:10:07 -05:00
Matthew Martin d0c23a68b3 main: Simplify proc_buf offset calculation
Fixes #347
2018-10-20 23:48:39 -05:00
Matthew Martin 7388adf4e8 main: Add alias tests 2018-10-20 20:57:45 -05:00
Matthew Martin cb8c736a56 main: Run the entirety of aliases through the state machine
Fixes #540 #544 #552 #554 #555
2018-10-20 20:57:45 -05:00
Daniel Shahaf 6898f71016 Add a test.
Related to https://github.com/zsh-users/zsh-syntax-highlighting/issues/549#issuecomment-431628338 and to #556.
2018-10-21 00:26:34 +00:00
Daniel Shahaf df8b2fb867 tests: Fix a failing test.
Update the test point for f3410c5862 (#264),
which changed the highlighting of aliases to consider what they resolve to.

Now the test file has both ${aliases[alias1]} and ${functions[alias1]},
the expectation is 'alias', and passes; thus:

Fixes #588.
2018-10-18 23:48:17 +00:00
Daniel Shahaf 9d6ecea21c Fix a long-standing bug in a unit test. This uncovers a regression.
The test never actually defined a function named 'alias1', not even
when zsh 5.4 warned it about this (see 9523d6d49c,
which was wrong and is hereby reverted).

The test that's now failing has been filed as issue #558.
2018-10-18 23:45:38 +00:00
Matthew Martin 47c2b7e185 main: Distinguish quoted/unquoted command substitutions
Closes #547.
2018-10-13 09:37:09 -05:00
Matthew Martin e27e53b1ef main: Highlight unknown precommand option as unknown-token 2018-10-10 22:30:51 -05:00
Matthew Martin 4748f9bd3d main: Add alias tests 2018-10-10 22:26:47 -05:00
Matthew Martin e3edddd8ec main: alias style overrides precommand style 2018-10-10 22:20:19 -05:00
Matthew Martin 99d7235c2b main: Add test for an alias to a redirection 2018-10-10 22:20:19 -05:00
Daniel Shahaf 31ceaed4f4 'main': Highlight array parameters in command position. 2018-10-10 22:20:18 -05:00
Daniel Shahaf a2e993c59f 'main': Learn $flags_sans_arguments and use that to parse '-xy foo' correctly where -x takes no argument and -y does. 2018-10-10 22:19:41 -05:00
Daniel Shahaf 8b11ca087e 'main': Highlight 'nice'.
Fixes #168.
2018-10-10 22:19:41 -05:00
Daniel Shahaf 5694221939 'main': Highlight the 'command' precommand.
Fixes #343.
2018-10-10 22:19:41 -05:00
Daniel Shahaf dbdebfaaa5 'main': Following up to the last commit, also highlight braced parameter expansions: «${foo}». 2018-10-10 22:19:41 -05:00
Daniel Shahaf bf055f7df2 'main': Fix the last commit's issue concerning parameter expansion at command word. 2018-10-10 22:19:36 -05:00
Daniel Shahaf 76d61360a7 'main': New XFail test for parameter expansion at command word. 2018-10-09 23:28:54 -05:00
Daniel Shahaf f3410c5862 'main': Expand aliases first. (Issue #264.)
This commit causes an alias to an invalid command to be highlighted as an error
(unknown-token).
2018-10-09 23:28:54 -05:00
Daniel Shahaf 565463ca8f 'main': Add regression test for an unclosed backtick substitution 2018-09-30 16:26:01 -04:00
Matthew Martin e86f75a840 main: Highlight {command,process} substitution delimiters 2018-09-30 16:26:01 -04:00
Matthew Martin 9616bfdb20 main: Ignore zsh 5.0.8 off by one bug in tests 2018-09-30 15:32:21 -04:00
Matthew Martin 8a93b852ca main: Add test for command substitution in assignment 2018-09-30 15:32:21 -04:00
Matthew Martin 932eb380e2 main: Highlight the value of an assignment 2018-09-30 15:32:19 -04:00
Matthew Martin c06e5e95dc main: Correct array assignment check 2018-09-30 15:31:48 -04:00
Matthew Martin 57e451b531 main: Add test for unclosed command substitution 2018-09-30 15:21:20 -04:00
Matthew Martin 49dbb05791 main: Add test for =( ) process substitution 2018-09-30 15:21:20 -04:00
Matthew Martin c0e64fe131 main: Highlight =( ) process substitutions 2018-09-30 15:21:19 -04:00
Matthew Martin beae08776a main: Add test for embedded process substitution 2018-09-30 14:59:59 -04:00
Matthew Martin 08d4401fae main: Highlight <( ) and >( ) process substitutions
Fixes #494
2018-09-30 14:59:57 -04:00
Matthew Martin 3ac7d1c785 main: Add test for nested backticks; summon Cthulhu 2018-09-30 14:59:38 -04:00
Matthew Martin 9db393309e main: Recurse into backtick command substitutions 2018-09-30 14:59:36 -04:00
Matthew Martin b75169597e main: Highlight command substitutions 2018-09-30 14:58:08 -04:00
Matthew Martin 2fd7fbc3c2 main: Do not skip over backslash floowed by space or tab
Fixes #539.
2018-09-29 21:33:39 -04:00
Matthew Martin 1eedb23c65 main: Fix blacklist dirs check when there is more than one element 2018-09-24 07:09:08 -05:00
Sam Jorna (wraeth) 47d6dac133
main-highlighter: Probe dirs after blacklist
Move tests on the highlight path until after the blacklist is checked so
that blacklisted paths are not tested. This should prevent hangs on dead
remote filesystems provided the path is blacklisted in
X_ZSH_HIGHLIGHT_DIRS_BLACKLIST.

Updated tests to 'default' highlight as the blacklist is now checked
before the path is tested.

Bug: https://github.com/zsh-users/zsh-syntax-highlighting/issues/528
2018-08-31 13:04:52 +10:00
Daniel Shahaf 5b539663c0 Add a regression test for a problem seen during development.
The «=(<foo)» construct was highlighted in blue (globbing?) from the '>' to the ')'.
2018-05-12 00:04:19 +00:00
Matthew Martin 5e9b7c4650 main: Add test for previous 2018-03-10 10:25:18 -06:00
Matthew Martin 15e288a25c main: Mark ZSH_HIGHLIGHT_DIRS_BLACKLIST experimental 2018-02-17 20:29:30 -06:00
Matthew Martin 6713727742 main: Add ZSH_HIGHLIGHT_DIRS_BLACKLIST
Closes #379.
2018-02-17 20:29:30 -06:00
Matthew Martin a9be0975c8 tests: Directly diff expected_region_highlight against region_highlight 2018-02-10 14:49:07 -06:00
Matthew Martin 622358f32d main: Test suffix aliases if zsh/parameter is available 2018-02-10 14:20:25 -06:00
Matthew Martin cc662371b1 main: Update test for issue #501 XFAIL 2018-02-10 13:23:42 -06:00
Daniel Shahaf 03692831ad 'main': Don't highlight bare '$foo' as a filename, as it's a parameter expansion.
Fixes #474.
2018-01-21 06:55:31 +00:00
Matthew Martin 382be9096d main: Add XFAIL to redirections2 for process-substitution #494 2018-01-20 20:32:34 -06:00
Matthew Martin f16e858f0c main: Highlight backticks in double quotes 2018-01-19 18:19:07 -06:00
Matthew Martin 18e214ee5b main: Add test for quotes in options 2018-01-19 18:19:07 -06:00
Matthew Martin e48af35753 main: Only highlight characters special to globbing as globbing 2018-01-18 20:16:05 -06:00
Daniel Shahaf 0458b0c16f 'main': Don't match redirection operators in command substitutions as <-> number range globs. Fixes #483. 2018-01-19 01:26:34 +00:00
Daniel Shahaf 901063aa0f 'main': Add a regression test for issue #483, concerning «: $(<foo)». 2018-01-15 22:31:59 +00:00
Daniel Shahaf f064b17d25 'main': Add an explicit test for escaped single quotes within single quotes, «'foo'\''bar'». 2018-01-13 15:45:41 +00:00
Matthew Martin d17417ec1b main: Highlight unclosed backtick subshells 2018-01-07 23:18:25 -06:00
Daniel Shahaf 987b743646 'main': Fix highlighting of «<->»-style numeric globs.
Found-by: Matthew Martin
2018-01-08 05:13:52 +00:00
Matthew Martin df0f448586 main: Highlight path after globbing checks
Closes #468.
2018-01-05 00:04:17 -06:00
Daniel Shahaf 2181247ae1 'main': Add a regression test for issue #474. 2018-01-01 05:05:10 +00:00
Matthew Martin bdbe214453 main: Add *-quoted-argument-unclosed styles
Closes #277.
2017-12-24 00:03:55 -06:00
Daniel Shahaf ff61a496b5 'main': Add a regression test for issue #468. 2017-12-23 23:04:32 +00:00
Matthew Martin 572ca51b1f main: Add tests 2017-12-23 14:45:49 -06:00
Matthew Martin ab1013ae0d main: A redirection token is an invalid redirection target
Closes #466.
2017-12-19 23:01:42 -06:00
Daniel Shahaf ce1be4153d 'main': Add tests for «ls \~» and for not performing parameter expansion on the command word.
This is a followup to the last commit, which was about issue #328.

These tests are taken from the original #328 pull request, with updated
expectations where applicable.

Review-by: Matthew Martin
2017-12-15 02:35:10 +00:00
Daniel Shahaf 1ad5c1f40f Followup to parents: Restore sudo-* tests on platforms that don't have sudo.
Travis (as currently configured) is one such platform.
2017-12-07 01:16:02 +00:00
Daniel Shahaf 8d37377644 Followup to last: Don't require 'sudo' to test prefix redirections. 2017-12-07 01:04:13 +00:00
Matthew Martin d04c62a224 tests: Add skips for tests that require sudo 2017-12-06 18:34:56 -06:00
Matthew Martin 749b30221d 'main': Skip tests that break on msys2
Closes #382.
2017-11-06 07:11:55 -06:00
Matthew Martin 038409c10d tests: Run tests with WARN_CREATE_GLOBAL 2017-11-05 15:04:49 -06:00
Daniel Shahaf 5436d3e5fc tests: Remove superfluous comment.
The functions can remain defined because, nowadays, the test harness
runs each test in a subshell; but that's a well-known property of the
test harness so need not be mentioned explicitly.

Inspired by discussion on issue #443.
2017-09-11 18:45:35 +00:00
Daniel Shahaf 73cb832702 'main': Highlight mismatched 'if'/'fi'.
Also 'then'/'elif'/'else'.
2017-03-05 17:33:36 +00:00
Daniel Shahaf 237f89ad62 'main': Don't consider «$*» a glob. 2017-02-11 23:49:13 +00:00
Daniel Shahaf 9523d6d49c tests: zsh 5.4-to-be compatibility: Set a new "I am shooting myself in the foot" option. 2017-01-25 19:35:34 +00:00
Daniel Shahaf 76ea9e1df3 'main': Highlight possible history expansions in double-quoted strings. 2016-11-22 07:09:29 +00:00
Daniel Shahaf 9396ad5c5f 'main': Fix highlighting of comments followed by non-comments (on a subsequent line).
Merge remote-tracking branch 'upstream/pr/385'

* upstream/pr/385:
  'main': Add regression test for previous commit.
  'main': Fix bug: no start_pos=$end_pos in comment short path

Fixes #385.
2016-11-02 15:54:56 +00:00
Daniel Shahaf 347cf0eb06 'main': Add regression test for previous commit. 2016-11-02 15:54:02 +00:00
Daniel Shahaf fed37a90ac 'main': Fix a bug concerning command word with embedded colon-space sequences.
Such a command word would, if not valid, fall through to the `type -w` case,
where the output would be misparsed, consequently the forward-compatible [arg0]
style would be used.
2016-11-02 03:16:45 +00:00
Daniel Shahaf 035d3eb095 Follow-up to 28d7056a7a06: Fix test expectations. 2016-10-22 17:46:42 +00:00
Daniel Shahaf 28d7056a7a 'main': Escape '!' within double-quoted strings. 2016-10-19 23:56:25 +00:00
Daniel Shahaf 094329eb14 'main': Introduce style fallback for the command word.
Fixes #316.

* danielsh/i316-v2:
  'main': Enable fallback to the 'arg0' style.
  'main': Set fallback style for the 'arg0' style.
2016-09-28 13:25:05 +00:00
Daniel Shahaf bccc3dc269 'main': Enable fallback to the 'arg0' style. 2016-09-28 13:22:29 +00:00
Daniel Shahaf 79198759b3 tests: Also test arguments to an anonymous function. 2016-09-25 18:08:45 +00:00
Daniel Shahaf 44ef6e38e5 'main': Highlight several more special (non-alphabetic) parameters. 2016-09-25 14:51:02 +00:00
Daniel Shahaf 4afe670f7a 'main': Highlight shell's PID ($$) inside double quotes. 2016-09-25 14:40:58 +00:00
Daniel Shahaf c3913e0d8e 'main': Highlight command substitutions inside double quotes.
Part of issue #139.
2016-09-25 14:40:02 +00:00
Daniel Shahaf 4fc35362ee 'main': Permit subshells to end at command position.
Fixes #344.
2016-09-25 12:06:39 +00:00
Daniel Shahaf 2bb8f0703d 'main': Highlight mismatched foreach/end.
Fixes #96.
2016-09-25 11:52:15 +00:00
Daniel Shahaf b2733a64da 'main': Highlight mismatched do/done. 2016-09-25 11:38:54 +00:00
Daniel Shahaf 2755438e80 'main': Yet another test for mismatched braces. 2016-09-25 11:38:52 +00:00
Daniel Shahaf a053768627 dev tools: Remove a superfluous empty line. 2016-09-25 08:11:01 +00:00
Daniel Shahaf e5782e4ddf 'main': Highlight 'always' blocks.
Fixes #335.
2016-09-25 08:11:01 +00:00
Daniel Shahaf 8bf423d16d 'main': Don't find command positions within multiline array literals.
Fixes #333.
2016-09-24 17:55:18 +00:00
Daniel Shahaf 6f91850a01 'main': Highlight first command word in named functions defined in the sh syntax when MULTI_FUNC_DEF is set.
Fixes a subset of issue #237.
2016-09-23 06:37:26 +00:00
Daniel Shahaf 2fabf7ca64 'main': More tests for mismstached parentheses and braces. 2016-09-22 11:12:42 +00:00
Daniel Shahaf 51b9d79c3b 'main': Highlight mismatched parentheses and braces. 2016-09-22 11:12:42 +00:00
Daniel Shahaf 02807f1826 'main': Support the IGNORE_BRACES option.
This is related to a future "unbalanced { ( ) }" check for issue #344.
2016-09-22 03:45:04 +00:00
Daniel Shahaf a8a6384356 'main': Add tests for the IGNORE_BRACES option.
Also adds an XFail test for balanced braces for issue #344.
2016-09-22 03:41:53 +00:00
Daniel Shahaf 757d047f09 'main': The word after 'sudo' is only a non-command word if it is an option. 2016-08-16 13:31:05 +00:00
Daniel Shahaf 171a4eec2d Merge remote-tracking branch 'danielsh/m0vie-i288-v2' (revised version of upstream/pr/288)
* danielsh/m0vie-i288-v2:
  driver: Don't highlight in isearch
  driver: Always bind zle-line-finish and use it instead of accept-*
  driver: Widget binding: Support binding incomplete/nonexistent widgets
2016-07-29 21:09:31 +00:00