Commit Graph

272 Commits

Author SHA1 Message Date
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
m0viefreak
5bae621900 driver: Always bind zle-line-finish and use it instead of accept-*
Special handling for cursor imprint or partial path highlighting
is needed in more cases than accept-*. For example when accepting
a line from isearch, no accept-* widget is invoked.

The proper way is to use zle-line-finish.

Trumps #259.
Fixes #284.
2016-07-29 20:41:06 +00:00
Daniel Shahaf
fa57633d81 'main': Enable test for issue #238. 2016-07-28 08:14:23 +00:00
Daniel Shahaf
0d41933c61 'main': Add test for issue #343, concerning the 'command' precommand. 2016-07-28 07:54:28 +00:00
Daniel Shahaf
e6fb61c42b 'main': Highlight a broken symlink as a file.
Merge remote-tracking branch 'upstream/pr/342'

* upstream/pr/342:
  'main': Highlight a broken symlink as a file.
  tests: Add an XFail test for issue #342.
2016-07-22 16:09:06 +00:00
Daniel Shahaf
6b69389bd9 'main': New test, related to issue #328.
The test passes so I'm adding it directly to master.
2016-07-22 15:52:43 +00:00
Daniel Shahaf
53083da821 'main': Highlight a broken symlink as a file.
Fixes #342.
2016-07-20 02:01:15 +00:00
Daniel Shahaf
95f7206a93 tests: Add an XFail test for issue #342. 2016-07-20 02:00:28 +00:00
Daniel Shahaf
d13da0cf00 'main': Support vi linewise region (REGION_ACTIVE == 2).
Merge remote-tracking branch 'danielshahaf/i267-linewise-region-v1'

* danielsh/i267-linewise-region-v1:
  tests: Add a regression test for issue #267, concerning highlighting a vi linewise region.
  Support linewise region.
2016-07-01 02:00:10 +00:00
Daniel Shahaf
ee07588cfd tests: Add a regression test for issue #267, concerning highlighting a vi linewise region. 2016-07-01 01:59:37 +00:00
Daniel Shahaf
e35a0b256e 'main': Try the "non-command word" codepath when a word may be either a command word or a non-command word.
Merge remote-tracking branch 'upstream/pr/331'

* upstream/pr/331:
  'main': Try the "non-command word" codepath when a word may be either a command word or a non-command word.
2016-06-05 16:58:12 +00:00
Daniel Shahaf
47144ad974 'main': Fix issue #290, «Mishighlights "longloops" 'repeat'».
* upstream/pr/319:
  tests: Extend issue #290 test with another variant.
  'main': Fix issue #290, «Mishighlights "longloops" 'repeat'».
  tests: New test for issue #290, «Mishighlights "longloops" 'repeat'».
2016-06-03 04:32:25 +00:00
Daniel Shahaf
7fb6f99791 'main': Try the "non-command word" codepath when a word may be either a command word or a non-command word.
Fixes #231.
Fixes #330.
2016-06-03 04:25:00 +00:00
Daniel Shahaf
29b30e0ca7 'main': Add XFail test for issue #330, concerning command word after array assignment. 2016-06-03 03:42:12 +00:00
Daniel Shahaf
f4036a09ce 'main': Highlight scalar assignments to argv
Assignments to positional parameters using scalar assignment syntax is
a feature: it is covered by upstream's test suite ("append to positional
parameter" in Test/A06assign.ztst).
2016-06-03 03:27:52 +00:00
Daniel Shahaf
14711a51f3 tests: Explicitly test 'default' style inside an array assignment. 2016-06-03 02:41:10 +00:00
m0viefreak
6cd39e7c70 'main': Highlight path separators
This commit is based on the work done by
Jorge Israel Peña (blaenk) in #136.

Changes:
* Adjusted to changes on the latest master branch.
* Use regular path highlighter colors by default.
* Break out early if the separator color is the same to
  improve performance.
* Tests.
2016-05-31 15:06:12 +00:00
m0viefreak
12b879caf7 'main': Use zsh/parameter instead of type -w
If possible, try to use the zsh/parameter module to get
information about a shell words.

This avoids subshells and is a huge speed improvement
on systems such as cygwin.

Note 1:
$commands does not know about PATH_DIRS. So in case
PATH_DIRS is set, 'type -w' is still used if nothing
else matches.

Note 2:
zsh/parameter can't distinguish between 'command' and
'hashed'. Adjusted the test for that case to XFAIL.

The ideal solution would be if whence had an option to
put the result in REPLY instead of printing it to stdout.
2016-05-13 20:25:07 +02:00