Matthew Martin
e7d3fbc50b
main: Add test for previous
2019-11-07 19:59:00 -06:00
Matthew Martin
139ea2b189
main: Avoid $end_pos when calculating $arg size
...
Fixes second issue filed under #617
https://github.com/zsh-users/zsh-syntax-highlighting/issues/617#issuecomment-551253422
In the case of a command substitution in an alias, $arg[i,end_pos] would
not pass to the end of $arg and i <= start_pos - end_pos would not
iterate over all of $arg. Use $arg[i,-1] and $#arg respectively to avoid
issues in aliases.
2019-11-07 19:50:17 -06:00
Matthew Martin
b55832c5f8
main: Drop X_ from X_ZSH_HIGHLIGHT_DIRS_BLACKLIST
2019-07-24 07:27:54 -05:00
Daniel Shahaf
8e78e9dbba
'main': Fix issue #623 by fixing the expectations of the regression test of issue #616 .
2019-07-21 01:44:19 +00:00
Matthew Martin
2bd709fc28
main: Fix misspelling in test expectation
2019-07-20 10:38:53 -05:00
Matthew Martin
1fcd786f77
main: Add more alias tests
...
Suggested by Daniel.
2019-07-20 10:36:57 -05:00
Matthew Martin
369620dd2d
main: Use longer alias name in tests
2019-07-20 10:32:34 -05:00
Matthew Martin
9cc0060334
main: Stop highlighting alias as its first word too
...
Fixes #565 and #576
2019-07-20 10:32:12 -05:00
Matthew Martin
a88d41e095
main: Fix faulty test
...
sudo -e does not take a command, so use another flag that does.
2019-07-11 21:15:01 -05:00
Matthew Martin
b3f66fc874
main: Use zsyh_user_options when splitting alias RHS
2019-07-11 21:15:01 -05:00
Matthew Martin
83249e1b23
main: Do not highlight empty region between two adjacent $()
...
Should fix #624
2019-07-08 17:05:42 -05:00
Daniel Shahaf
ab4b6f5823
'main': Hackily unbreak 'make test'.
...
The test point is XPASSing, which makes CI red. As a duct tape measure to turn
CI green again, update the test expectations to make it XFAIL. The hacky part
is that the expectation set by this commit will never be met; the test point
will never XPASS now until its expectations are changed again.
Issue #623 remains open to track setting the test expectation to the correct
value (i.e., make the test XFAIL in a manner that _will_ XPASS if the bug is
fixed; in other words, pay off the technical debt created by this commit).
Issue #616 remains open to fix the actual bug.
2019-07-07 18:36:38 +00:00
Daniel Shahaf
d766243f7a
'main': Add an XFail regression test for issue #616 .
2019-06-16 21:42:21 +00:00
Daniel Shahaf
fd4c5db4c9
'main': Fix an issue whereby a --option was highlighted as a file
...
Regression test included.
Fixes #578 .
Review-by: Matthew Martin
2019-06-16 20:25:34 +00:00
Matthew Martin
82cf2527fc
'main': Add test for #548
...
Closes #548
2019-04-19 19:48:01 -05:00
Matthew Martin
7ba4f0f119
'main': Use nice for tests in previous
...
stdbuf is not present on all systems. nice is not builtin and is POSIX.
2019-04-04 21:52:51 -05:00
Daniel Shahaf
bc3f77f719
'main': Add XFailing tests for issue #608 .
2019-03-29 17:50:49 +00:00
Daniel Shahaf
5f80147c55
'main': Follow-up to last commit: Fix stdbuf options spec.
...
The effect of the bug was that «-:» was considered an option taking an argument
(see the parsing of the associative array in lines 692-693).
As to preventing recurrence, add a warning comment. We _could_ change
the separator from colon to something else, but colon is idiomatic for
this use (see, e.g., passwd(5)), and the problem will be unlikely to
recur if and when we add a third field to the assoc's values. (For
example, jexec(1), chroot(1), and even ssh(1) would benefit from a third
field saying how many positional arguments to skip before the positional
argument that's to be the command word — though in the last two cases,
specifying an "inner" command is optional.)
2019-03-27 11:45:17 +00:00
Daniel Shahaf
3e86ef59b7
'main': precommands += stdbuf
2019-03-26 22:04:50 +00:00
Daniel Shahaf
809443f5c5
'main': Add the issue number for future reference.
2019-03-16 07:49:04 +00:00
Daniel Shahaf
abec25d013
'main': _zsh_highlight_main__type: Add comments.
2019-03-16 07:47:53 +00:00
Daniel Shahaf
79596a84be
'main': Document the last change.
2019-03-16 07:45:23 +00:00
Daniel Shahaf
37d6108215
'main': Work around a zsh bug reported to us as #606 .
...
As of this writing, it seems that the 'type' builtin poisons the commands hash
in a way that breaks AUTO_CD to absolute paths that don't end with a slash.
2019-03-16 07:34:12 +00:00
Matthew Martin
1e34c4aa0b
main: in arguments starting with %?, ? is not a glob
...
Fixes #596
2019-01-06 22:23:10 -06:00
Daniel Shahaf
78b95b0695
Add a test for the 'true negative' case of issue #596 .
2018-12-31 17:57:53 +00:00
Daniel Shahaf
0efad58f30
Add a test for issue #596 .
2018-12-29 11:31:50 +00:00
Daniel Shahaf
e900ad8bad
main: Add another test, inspired by #577 and #502 .
2018-11-01 04:01:33 +00:00
Daniel Shahaf
f087f3c6e4
main: Add a test for issue #577 .
2018-11-01 04:01:05 +00:00
Daniel Shahaf
3e6d1375c9
main: Fix check for suffix aliases ( fixes #574 )
2018-10-30 21:25:59 +00:00
Daniel Shahaf
4ce56a821e
Merge branch 'i511-bang-pipeline'
...
* i511-bang-pipeline:
main: Fold '!' handling in to the 'case'. No functional change.
Fix indentation. No functional change.
main: Fix highlighting of the ! precommand after array assignments. Add tests.
main: Highlight the ! precommand as an error when not at the start of a pipeline.
2018-10-23 16:58:33 +00:00
Daniel Shahaf
44b89f3307
main: Fold '!' handling in to the 'case'. No functional change.
2018-10-23 16:36:14 +00:00
Daniel Shahaf
0c9252ac69
Fix indentation. No functional change.
2018-10-23 16:34:35 +00:00
Daniel Shahaf
6cf522b7b3
main: Fix highlighting of the ! precommand after array assignments. Add tests.
2018-10-23 16:31:39 +00:00
Daniel Shahaf
298ef6a2fa
main: Highlight the ! precommand as an error when not at the start of a pipeline.
...
Fixes #511 .
2018-10-23 16:31:00 +00:00
Matthew Martin
d9e326b993
main: consume trailing whitespace in _highlight_list
...
Fixes highlighting when an unclosed $( ends in whitespace.
2018-10-22 07:53:18 -05:00
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
ad3a6cb3c9
'main': Tighten condition.
...
Should rule out brace expansions such as '{foo,bar}' and '{10..20}'.
2018-10-22 04:56:50 +00:00
Daniel Shahaf
9870ccc505
noop: Tweak condition at Matthew's suggestion
2018-10-22 04:54:11 +00:00
Daniel Shahaf
38c794a978
'main': Highlight named fd redirections.
...
Fixes #238
2018-10-22 04:33:11 +00:00
Daniel Shahaf
de23e75946
minor: Fix the editor braces matching confusion prevention sentinel.
2018-10-22 04:27:18 +00:00
Matthew Martin
a3c9e7ebc7
main: Simplify insane alias checking
2018-10-21 14:59:52 -05: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
Matthew Martin
2d4fe988ba
main: Rename parameters to simplify next diff
2018-10-20 20:18:46 -05:00
Matthew Martin
8f17e4e201
main: Add trivial condition and remove whitespace to simplify next diff
2018-10-20 20:18:46 -05:00
Daniel Shahaf
02f4a6b540
'main': Optionally ignore aliases in __type
2018-10-20 20:18:46 -05:00
Matthew Martin
b9d7fe5a43
main: Shift args rather than iterating over
...
No functional change. Prepares for running a full alias through the
state machine.
2018-10-20 20:18:46 -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
d6586e2a4f
main: Order precommand_options and add '-'
...
Fixes #499 .
2018-10-10 23:23:35 -05:00
Matthew Martin
31276c1b64
main: Avoid empty character classes
...
Avoids an error in pre-5.0.8: bad pattern: -[]#
2018-10-10 23:02:33 -05:00
Matthew Martin
07f259f653
main: Avoid null elision in _check_path
...
This could be triggered if BUFFER='\'.
2018-10-10 22:30:53 -05:00
Matthew Martin
e27e53b1ef
main: Highlight unknown precommand option as unknown-token
2018-10-10 22:30:51 -05:00
Matthew Martin
c6e3d216ec
main: Consolidate TOKENS_COMMANDSEPARATOR handling
...
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
5bb5703b0d
main: Move TOKENS_CONTROL_FLOW handling into command word branch
...
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
dea05e44e6
main: Recognize more redirection and array assignment parse errors
...
() ) } are invalid as a redirection target.
() } are invalid in an array assignment.
2018-10-10 22:26:49 -05:00
Matthew Martin
2f03b6d704
main: Do not highlight a redirection target as an option
2018-10-10 22:26:49 -05:00
Matthew Martin
b075147888
main: Consolidate conditionals together.
...
No functional change.
2018-10-10 22:26:49 -05:00
Matthew Martin
9289a57de0
main: Remove already_assigned
2018-10-10 22:26:49 -05:00
Matthew Martin
c76daac095
main: Move start_pos=$end_pos to the beginning of the loop
...
This allows for use of continue.
2018-10-10 22:26:49 -05:00
Matthew Martin
de28e20fbc
main: Simplify this_word next_word updating
2018-10-10 22:26:49 -05:00
Matthew Martin
c05ebf762c
main: Do not recognize always as a reserved word in a redirection
2018-10-10 22:26:49 -05:00
Matthew Martin
ae5b9b2dc9
main: Set redirection style when recognizing the redirection
2018-10-10 22:26:49 -05:00
Matthew Martin
df431eeee8
main: Recognize repeat with the other reserved words
2018-10-10 22:26:49 -05:00
Matthew Martin
3ddb974a3d
main: Remove needless code
...
The below code handles this case.
2018-10-10 22:26:49 -05:00
Matthew Martin
b6e0aeb380
main: Use unknown-token when the token type is unknown
2018-10-10 22:26:49 -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
c138123397
main: Move alias handling up.
...
This will set style=alias before the great fork.
2018-10-10 22:20:19 -05:00
Matthew Martin
57386f30ae
main: Recursively expand aliases
2018-10-10 22:20:19 -05:00
Matthew Martin
e1ecf950e2
main: Do path expanstion after alias expansion
2018-10-10 22:20:19 -05:00
Matthew Martin
f46b148c52
main: Only expand aliases in command position
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
Matthew Martin
05a55108c9
main: Expand aliases before looking for redirections
2018-10-10 22:20:19 -05:00
Daniel Shahaf
e43e4fd2c7
'main': Fix $flags_sans_argument for 'nice'.
...
Follow-up to 2c15b0e996
("Learn $flags_sans_arguments…").
2018-10-10 22:20:19 -05:00
Daniel Shahaf
a56c33c3be
Bump copyright years.
2018-10-10 22:20:19 -05:00
Daniel Shahaf
005179ed8e
'main': Update $this_word state with our inferences.
...
Found by code inspection.
2018-10-10 22:20:19 -05:00
Daniel Shahaf
0709520597
No functional change.
...
Follow-up to 1fee620e62
.
2018-10-10 22:20:19 -05:00
Daniel Shahaf
f7ac43cd49
'main': Unify $ZSH_HIGHLIGHT_TOKENS_PRECOMMANDS and $precommand_options.
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
ad6261fbca
'main': Use a more robust way of testing for $parameters' availability.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
3a33ac1d20
'main': Break out a new helper function for readability.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
f3425e18fe
'main': Let _zsh_highlight_main__type return false on failure.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
82c39716eb
'main': Write the "remainder" of the sentence in a comment. No functional change.
2018-10-10 22:19:41 -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
bee115f797
'main': Correct a comment.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
7f5e11e38b
'main': Remove superfluous variable. No functional change.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
78be8f611f
'main': Highlight 'doas'.
...
Fixes #365 .
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
4c7db4e886
'main': Update state machine docs. No functional change.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
add2ac59fc
'main': Permit $flags_with_argument to be empty.
2018-10-10 22:19:41 -05:00
Daniel Shahaf
6e8984e2ec
'main': Make sudo handling more generic.
...
Part of issue #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
22839d08ef
main: Return 0 if braces_stack is empty
...
This allows a caller to know if the command or process substitution is
complete.
2018-09-30 15:32:21 -04:00
Matthew Martin
472c71c1fa
main: Support the glob_assign option
2018-09-30 15:32:21 -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
12e01336f1
main: Start _highlight_argument at $1
...
No functional change.
2018-09-30 15:21:20 -04:00
Matthew Martin
13d332af95
main: Make _check_path's argument explicit
...
No functional change.
2018-09-30 15:21:20 -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
73640b79ea
main: Change conditional to a switch
...
Prepares for next commit. No functional change.
2018-09-30 14:59:59 -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
c40c72c386
main: Track if $buf has the end of $BUFFER
...
This will allow for correct path_prefix highlighting in backticks.
2018-09-30 14:59:04 -04:00
Matthew Martin
b75169597e
main: Highlight command substitutions
2018-09-30 14:58:08 -04:00
Matthew Martin
ce592bd5c7
main: Move highlighting to _main_paint
...
This allows for callees to prepend highlights before $reply after the
length of the feature (e.g. command substution) is known.
2018-09-30 14:57:21 -04:00
Matthew Martin
ead8f8a1fc
main: Split highlighting code into another function
...
This will allow for highlighting $( ) and similar.
2018-09-30 14:55:28 -04:00
Matthew Martin
81e89a8800
main: Reorder declarations for next commit
...
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
dbce7317c7
main: Add buf_offset variable
...
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
49cc5e25b8
main: Simplify interface to __stack_pop
2018-09-30 14:35:52 -04:00
Matthew Martin
b1eb0358fa
main: Move fallback calculation to a function
...
No functional change.
2018-09-30 14:35:52 -04:00
Matthew Martin
8a0ffe1c43
main: Allow for patterned fallbacks
2018-09-30 14:35:52 -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
e4fffa4de5
main: Correct dollar-quoted-argument-unclosed fallback typo
2018-03-16 17:18:31 -05:00
Matthew Martin
5e9b7c4650
main: Add test for previous
2018-03-10 10:25:18 -06:00
Matthew Martin
d2c8f3a56d
main: Fix end of buffer check for path_prefix with non-null PREBUFFER
2018-03-10 10:25:18 -06:00
Matthew Martin
2c0c75a8ee
driver, main: Add -z to autoload calls
2018-03-06 11:35:40 -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
90b09f88ee
main: Move - to end of character class
...
Closes #472
2018-02-11 11:10:09 -06:00
Matthew Martin
9706af4b81
main: Simplify for next commit; no functional change
2018-02-11 11:10:08 -06:00
Matthew Martin
be26017e39
regexp: Add test for subexpression match
...
Closes #497
2018-02-11 09:58:00 -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
fdca2ef714
main: Fix off by one errors in quote helper functions
2018-02-10 14:20:25 -06:00
Matthew Martin
e13074528f
main: Do not highlight for regions that end before the start of BUFFER
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
Matthew Martin
1f1e629290
regexp: Add missing local for arrays match mbegin mend
...
See #497 .
2018-01-22 21:42:14 -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