Commit Graph

496 Commits

Author SHA1 Message Date
m0viefreak
5fe8fd8bdc 'brackets': Fix for one-based indexing
Use correct indexing also for cursor-matchingbracket.

Fixup for 95d82568d8
2016-05-11 01:11:49 +02:00
Daniel Shahaf
fc9c892a3f 'main': Fix issue #302, "Process substitution misparsed as redirection". 2016-05-09 03:29:27 +00:00
Daniel Shahaf
bfabffbf97 'main': Factor out common code. No functional change. 2016-05-09 03:26:29 +00:00
Daniel Shahaf
6889ff6bd2 'main': Add a regression test for issue #302, "Process substitution misparsed as redirection". 2016-05-09 03:26:06 +00:00
Matthew Martin
b5955213b9 tests: Add tests for 'brackets' and 'pattern' 2016-05-05 15:36:33 -05:00
Matthew Martin
f73f3d53d3 'brackets': Allow unset ZSH_HIGHLIGHT_STYLES
Without this when bracket_color_size is 0,
    $(( (levelpos[$pos] - 1) % bracket_color_size + 1 ))
errors with division by zero.
2016-05-05 13:56:09 -05:00
Matthew Martin
eaa4335c34 tests: Set ZSH_HIGHLIGHT_STYLES=() during tests
Since the _zsh_highlight_add_highlight that the tests use ignores
ZSH_HIGHLIGHT_STYLES, we can test both an injective mapping and an empty
mapping at once.
2016-05-05 12:31:52 -05:00
Matthew Martin
d3678ec7a8 tests: Remove unused_highlight 2016-05-05 12:28:43 -05:00
Matthew Martin
ccaf6f48a1 brackets: Fix bug introduced in 95d8256 2016-05-05 09:59:26 -05:00
Matthew Martin
e05b8e88ad 'brackets': Check if brackets match on first pass
This removes the need for the typepos array.
2016-05-04 20:50:55 -05:00
Matthew Martin
95d82568d8 'brackets': Use one-based indexing
zsh arrays start at one, and this will make the next commit easier.
2016-05-04 20:50:55 -05:00
Matthew Martin
f4d3dcb42f 'brackets': Move highlight call outside conditional 2016-05-04 20:50:55 -05:00
Matthew Martin
fd84010252 'brackets': Lift local declarations from inside loops 2016-05-04 20:50:55 -05:00
Matthew Martin
4da9889d15 tests: Use 'NONE' to denote no highlighting
'none' is a valid highlighting type. Since by convention styles are all
lowercase, 'NONE' shouldn't conflict with anything.

Closes #289.
2016-04-30 12:48:44 -05:00
Matthew Martin
341a3ae1f0 highlighters: Use _zsh_highlight_add_highlight
_zsh_highlight_add_highlight appends to region_highlight $1 $2 and the
next non-null parameter. If there is no non-null parameter, do nothing,
This is so that highlighters can add a style with fallbacks if the most
specific style is not defined. If none of the applicable styles are
defined, do the right thing and don't add an invalid entry to
region_highlight.

The pattern highlighter doesn't use this function as it'd need too large
of an API change.
2016-04-29 10:09:16 -05:00
Matthew Martin
089329660b highlighters: Pass around the style key instead of the style itself 2016-04-29 09:53:05 -05:00
Matthew Martin
a830613467 tests: Specify the style key instead of the style itself 2016-04-29 09:51:13 -05:00
m0viefreak
38c8fbea2d root-highlighter: use EUID instead of id -u command
No need to fork every time.
2016-04-23 06:43:01 +00:00
Daniel Shahaf
b52a485c5c brackets: Optimize a tiny bit.
Compute «${#BUFFER}» just once.  I haven't measured the effect of this, but
it might just avoid a strlen() every time around the loop, which could add
up for large ${BUFFER}s.

See issue #295.
2016-04-22 14:14:15 +00:00
Matthew Martin
78290e043b tests: Expect the correct style 2016-04-03 20:43:13 -05:00
Matthew Martin
31ac2b36a9 tests: Quote style in expected_region_highlight 2016-04-02 09:45:24 -05:00
Daniel Shahaf
bc7f8ea433 'main': Restore support for zsh-4.3.10 and older.
zsh older than workers/28418 (zsh revision 23bdfc7fd2a012d5205ed22d18eb39e41c8fbc95)
doesn't support the «${name:offset:length}» syntax.  Therefore, use the older
«$name[start,end]» syntax instead.

Followup to 3cb58fd7d7, "Optimization: -1 is
extra computation of string length internally".

Fixes zsh-users/zsh-syntax-highlighting#279.
2016-03-23 01:32:44 +00:00
Daniel Shahaf
4c23a2fd1b 'main': Highlight lone '!' correctly: it's not a history expansion.
While here, also add a test for the '!' reserved word (which is highlighted
since c216242b).
2016-03-13 02:47:25 +00:00
Daniel Shahaf
e500ca2462 'main': Don't highlight in vared
This is a continuation of 451665cb2a which did
the same for the $PS3 prompt.

Reported-by: Sebastian Gniazdowski
2016-02-14 17:34:53 +02:00
Sebastian Gniazdowski
3cb58fd7d7 Optimization: -1 is extra computation of string length internally
./parse.zsh "zplugin.zsh" > out_norm.txt 106,17s user 7,84s system 98% cpu 1:55,85 total

./parse.zsh "zplugin.zsh" > out_opt.txt 51,91s user 7,44s system 99% cpu 59,912 total

% wc -l zplugin.zsh
3188 zplugin.zsh
2016-02-12 08:31:14 +01:00
Daniel Shahaf
451665cb2a 'main': Don't highlight at the $PS3 prompt.
The input to the $PS3 prompt is not commands, so the 'main' highlighter is
not applicable to it.

Fixes zsh-users/zsh-syntax-highlighting#268.
2016-01-20 22:10:49 +00:00
Daniel Shahaf
28932316cc aliases: Highlight aliases with '=' in their LHS as error. (Part of issue #263.) 2016-01-11 15:27:48 +00:00
Daniel Shahaf
5e4b446dee aliases: Add a test for one variant of issue #263. 2016-01-11 15:07:18 +00:00
Daniel Shahaf
4f3910cbba Fix issue #248: Highlight 'pkexec' as a precommand. 2015-12-04 23:40:30 +00:00
Daniel Shahaf
73ee7c1f6c Fix part of issue #238, "fd redirections at command word".
This fixes fd's specified by a (single) digit.  The named fd syntax remains an XFail.
2015-11-29 03:16:01 +00:00
Daniel Shahaf
48ecd29180 tests: Add two XFail tests for issue #238, "fd redirections at command word". 2015-11-29 03:15:55 +00:00
Daniel Shahaf
430cf55368 tests: Cover [default]. 2015-11-29 02:56:07 +00:00
Daniel Shahaf
46cd970bc4 tests: Improve tests by using $unused_highlight.
The default for [redirection] is 'none', so it wasn't actually being tested.
2015-11-29 02:53:58 +00:00
Daniel Shahaf
09c4114eb9 command word: Do not attempt to interpret command separator tokens as anything else.
The important part of this change is removing the second conjunct from the
condition; the remainder of the change gives one example of when that matters.
2015-11-29 02:02:42 +00:00
Daniel Shahaf
eb3715a56a docs: Followup to the recent docs branch: clean up some internal cross-references. 2015-11-27 04:07:02 +00:00
Matthew Martin
8e115052e9 docs: Fix broken symlinks 2015-11-24 00:40:09 -06:00
Matthew Martin
0ab450ae47 docs: Move docs into docs/ 2015-11-24 00:09:21 -06:00
Matthew Martin
35e0b0ca69 docs: Remove duplicate 'How to activate it' sections 2015-11-24 00:09:21 -06:00
Matthew Martin
2dd6923c30 docs: Move highlighter headers down one level 2015-11-24 00:09:21 -06:00
Daniel Shahaf
6e99128987 docs copyedit: minor: Spelling/punctuation fix. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
3f163a2fd4 docs copyedit: Rewrap to 80 columns, part 2. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
9ce97cd64d docs copyedit: minor. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
12097d55d1 docs copyedit: Rewrap to 80 columns. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
8ea392e361 docs copyedit: Restyle bold-italic to fixed-width. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
91e4a576fb docs copyedit: Port 6d93ea07fd to the other highlighters' README's. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
6c033e62e9 docs copyedit: Whitespace. 2015-11-24 06:06:16 +00:00
Daniel Shahaf
17fbcad8ac 'main': Fix state check.
At this time, no user-visible consequences are known.
2015-11-18 16:37:38 +00:00
Daniel Shahaf
29fd6ec1de Support the '|&', '&!', '&|' command separators. 2015-11-17 20:19:19 +00:00
Daniel Shahaf
3ed0f7f823 noop: Consolidate two identical conditionals. 2015-11-17 20:07:14 +00:00
Daniel Shahaf
2dbcb575e5 internal: Document the ':regular' state. 2015-11-17 19:40:58 +00:00
Daniel Shahaf
00de155063 docs: 'main': Improve styles documentation. 2015-11-17 18:41:14 +00:00
Daniel Shahaf
7d4252f5f5 minor: docs: Improve dollar-double-quoted-argument documentation. 2015-11-17 03:55:00 +00:00
Daniel Shahaf
21e5e26923 docs: Clarify 'create a new highlighter' documentation. 2015-11-17 03:22:14 +00:00
Daniel Shahaf
79b95c629e Drop unnecessary shebang lines.
Done in c30301d474 and
c687bddea3 for other tests.
2015-11-17 02:04:23 +00:00
Daniel Shahaf
3669d69226 Fix copyright year. 2015-11-17 02:02:42 +00:00
Daniel Shahaf
4fcfb15913 Highlight parameter expansions that are a command word.
Fixes zsh-users/zsh-syntax-highlighting#101.
2015-11-17 01:37:58 +00:00
Daniel Shahaf
bdc1449733 noop: Break out a helper function. 2015-11-17 01:37:12 +00:00
Daniel Shahaf
6e3720f39d dollar-double-quoted-argument: Support the syntax «"${foo}"». (Issue #186.) 2015-11-17 00:40:02 +00:00
Daniel Shahaf
28776371a0 tests: Add an XFail test for highlighting «"${foo}"». (Issue #186.) 2015-11-17 00:37:58 +00:00
Daniel Shahaf
4f0c293fde cursor: Remove cursor highlighting when accepting a line.
Fixes zsh-users/zsh-syntax-highlighting#109.

Similar to 59fbdda64c in the 'main' highlighter.
2015-11-17 00:05:06 +00:00
Daniel Shahaf
96ee5116b1 Fix issue #228, "Support the PATH_DIRS option". 2015-11-16 23:14:48 +00:00
Daniel Shahaf
a636527f70 tests: Add an XFail test for issue #228, "Support the PATH_DIRS option".
This builds upon the test harness auto-cleaned-up directories work (c01533920).
2015-11-16 23:04:11 +00:00
Daniel Shahaf
2b35ff1c15 minor: Rename a test file to a not-escape-needing name.
There's simply no reason to use such names, now that the filename is no longer
itself test data.
2015-11-16 22:57:47 +00:00
Daniel Shahaf
c015339202 tests: Provide an independent, auto-cleaned working directory to each test.
Fixes zsh-users/zsh-syntax-highlighting#182.
Prerequisite for testing issue #228.

* tests/test-highlighting.zsh
  (run_test): Move functionality to run_test_internal; make run_test be a wrapper
    that handles creating and cleaning up the tempdir.

* tests/README.md: Document the new feature.

* "highlighters/main/test-data/path-space- .zsh"
* highlighters/main/test-data/path-tilde-named.zsh
* highlighters/main/test-data/path.zsh
    Change test data to not depend on being run from the source directory.
2015-11-16 22:54:52 +00:00
Daniel Shahaf
3620ad951f Add an XFail test for issue #231, "Assignment terminating subshell flags closing parenthesis as an error". 2015-11-16 19:04:37 +00:00
Daniel Shahaf
b285c7b821 brackets: Highlight closing ')' of array assignments correctly. (Issue #226.)
Followup to c0dafd1d85, which changed the highlight of
those ')'s from <nothing> to [reserved-word].
2015-11-16 18:44:44 +00:00
Daniel Shahaf
c0dafd1d85 brackets: Highlight the closing brackets of subshells and blocks. (Issue #226.) 2015-10-30 20:20:30 +02:00
Daniel Shahaf
28abb960de noop: Follow-up to last: improve readability. 2015-10-30 20:14:03 +02:00
Daniel Shahaf
a59f442d2d brackets: Highlight the closing brackets of arithmetic expansion. (Issue #226.) 2015-10-30 17:28:48 +00:00
Daniel Shahaf
8b4adbd991 Fix issue #222, "command word after repeat". 2015-10-30 13:31:43 +00:00
Daniel Shahaf
6fbd2aa957 Add an XFail test for issue #222, "command word after repeat". 2015-10-30 13:31:23 +00:00
Daniel Shahaf
9e178f9f39 subshells: Highlight the opening parenthesis correctly. (Issue #166.)
Followup to 0d1bfbcbfa.
2015-10-30 11:38:32 +02:00
Daniel Shahaf
5a38710564 subshells: Add an XFail test demonstrating that #166 is not yet fixed.
Reported-by: Antony Lee
2015-10-30 09:34:01 +00:00
Daniel Shahaf
d3deffbf46 minor: Fix WARN_CREATE_GLOBAL warnings issued by zsh 5.1.1-dev-0.
The following warnings are issued by zsh as of zsh-workers/37018 (commit
de9effbce601 to zsh itself):

_zsh_highlight_main_highlighter_highlight_dollar_string:17: array parameter match created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_dollar_string:17: array parameter mbegin created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_dollar_string:17: array parameter mend created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_dollar_string:17: numeric parameter parameter MBEGIN created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_dollar_string:17: numeric parameter parameter MEND created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_dollar_string:17: scalar parameter MATCH created globally in function _zsh_highlight_main_highlighter_highlight_dollar_string
_zsh_highlight_main_highlighter_highlight_string:11: array parameter match created globally in function _zsh_highlight_main_highlighter_highlight_string
_zsh_highlight_main_highlighter_highlight_string:11: array parameter mbegin created globally in function _zsh_highlight_main_highlighter_highlight_string
_zsh_highlight_main_highlighter_highlight_string:11: array parameter mend created globally in function _zsh_highlight_main_highlighter_highlight_string
_zsh_highlight_main_highlighter_highlight_string:11: numeric parameter parameter MBEGIN created globally in function _zsh_highlight_main_highlighter_highlight_string
_zsh_highlight_main_highlighter_highlight_string:11: numeric parameter parameter MEND created globally in function _zsh_highlight_main_highlighter_highlight_string
_zsh_highlight_main_highlighter_highlight_string:11: scalar parameter MATCH created globally in function _zsh_highlight_main_highlighter_highlight_string
2015-10-30 10:12:04 +02:00
Daniel Shahaf
8ab8c815ec Fix syntax error with zsh-5.0.5-dev-1 and older.
zsh prior to workers/32609 (commit 9d47e8398d299e53ffe4e7ddf3731d2fedae9948)
does not support the (-n)-less «[[ $var ]]» syntax.

Fixes zsh-users/zsh-syntax-highlighting#225.
2015-10-30 09:34:16 +02:00
Daniel Shahaf
afa6bb3882 states work: Extend state machine documentation. 2015-10-30 08:38:45 +02:00
Daniel Shahaf
1ac39b0af1 comments: Mark prematurely-terminated command as an error.
This is already done for commands prematurely terminated by ";".
2015-10-30 08:38:45 +02:00
Daniel Shahaf
693de99a90 comments: Fix issue #163 and #167: Highlight comments. 2015-10-30 08:38:44 +02:00
Daniel Shahaf
e76f208cf8 comments: Add a PASSing test for the NO_INTERACTIVE_COMMENTS case. 2015-10-30 08:38:39 +02:00
Daniel Shahaf
e9ceb2017e comments: Add XFail tests from issues #163 and #167.
These tests are based on the patches contributed in those issues:

    commit 9d9df4fe80 (upstream/pr/167)
    Author:     Miciah Masters <miciah.masters@gmail.com>
    AuthorDate: Thu Apr 23 20:28:24 2015 -0400
    Commit:     Miciah Dashiel Butler Masters <mmasters@redhat.com>
    CommitDate: Thu Apr 23 20:28:24 2015 -0400

        Highlight comments

    M       highlighters/main/main-highlighter.zsh
    A       highlighters/main/test-data/comments.zsh

    commit d94f1a037f (upstream/pr/163)
    Author:     sonnym <michaud.sonny@gmail.com>
    AuthorDate: Fri Mar 6 18:27:57 2015 -0500
    Commit:     sonnym <michaud.sonny@gmail.com>
    CommitDate: Fri Mar 6 21:16:27 2015 -0500

        highlight comments when interactive_comments is on

    M       highlighters/main/main-highlighter.zsh
    A       highlighters/main/test-data/comment-embedded.zsh
    A       highlighters/main/test-data/comment-leading.zsh

Patch-by: sonnym <michaud.sonny@gmail.com>
Patch-by: Miciah Masters <miciah.masters@gmail.com>
(corrected and refreshed for harness changes by me)
2015-10-29 18:08:30 +02:00
Daniel Shahaf
2f05620b19 sudo: Flag an error when a required argument is missing. 2015-10-29 12:01:13 +00:00
Daniel Shahaf
9cb87473cc sudo: Tweak state computations.
This causes the ':start:' state to be set in $next_word in iteration N-1,
rather than to only be added to $this_word in iteration N.
2015-10-29 12:01:13 +00:00
Daniel Shahaf
f49f3bf0c0 sudo: Extend tests. 2015-10-29 12:01:13 +00:00
Daniel Shahaf
a3047a9121 sudo: Highlight an empty sudo; as an error.
The word following 'sudo' was considered :regular:, although it isn't.
2015-10-29 12:01:13 +00:00
Daniel Shahaf
86e9249709 sudo/redirections: Fix remaining part of issue #221, "sudo and redirection don't mix". 2015-10-29 12:01:13 +00:00
Daniel Shahaf
0d1bfbcbfa Highlight subshells and anonymous functions correctly.
Fixes zsh-users/zsh-syntax-highlighting#166.
Fixes zsh-users/zsh-syntax-highlighting#194.
Builds upon the issue #207 work.
2015-10-29 12:01:13 +00:00
Daniel Shahaf
c216242b46 command word: Highlight more reserved words. Part of issue #207. 2015-10-29 12:01:13 +00:00
Daniel Shahaf
2218e26bf8 command word: Highlight 'else' correctly. Part of issue #207. 2015-10-29 12:01:13 +00:00
Daniel Shahaf
b397b12ac1 command word: Start fixing issue #207, "Word following certain reserved words should be a command word". 2015-10-29 12:01:13 +00:00
Daniel Shahaf
87deac3062 command word: Add an XFail test for issue #207. 2015-10-29 12:01:13 +00:00
Daniel Shahaf
01d7eeb3c7 Fix issue #205, "';' after assignment is highlighted as unknown-token". 2015-10-29 12:01:13 +00:00
Daniel Shahaf
6d6fb8b03e redirections: Document handling of redirections and possibly fix a latent bug.
The change of behaviour is triggered by test-data/sudo-redirection.zsh: the iteration
on "otheruser" sets $next_word to ":regular::sudo_opt::start::sudo_opt::start:" before
this patch, but to ":regular::sudo_opt::start:" after it (note the deduplication).
2015-10-29 12:01:13 +00:00
Daniel Shahaf
be006aded5 sudo/redirections: Fix part of issue #221, "sudo and redirection don't mix". 2015-10-29 12:01:11 +00:00
Daniel Shahaf
c6355a31b7 Followup to last: re-fix issue #9 and add test for it.
The fix for issue #9 was accidentally broken by the penultimate commit.

Note that we don't care about aliases to ZSH_HIGHLIGHT_TOKENS_COMMANDSEPARATOR
entries, since the code deals with aliases at command position.
2015-10-29 12:01:11 +00:00
Daniel Shahaf
018bc45f21 Followup to last: tighten the fix and ask a question. 2015-10-29 12:01:11 +00:00
Daniel Shahaf
2c9f8c8c95 Fix issue #209, "precommand modifiers at non-command-word position". 2015-10-29 12:01:11 +00:00
Daniel Shahaf
88cf98d9c4 states work: Documents the various states. 2015-10-29 12:01:11 +00:00
Daniel Shahaf
0aa6a5db78 states work: Convert $new_expression parsing. 2015-10-29 12:01:11 +00:00
Daniel Shahaf
10b1da64e6 states work: Convert sudo parsing. 2015-10-29 12:01:11 +00:00
Daniel Shahaf
80d692c400 command word: Add an XFail test for issue #194, "Highlight anonymous functions". 2015-10-29 12:01:11 +00:00
Daniel Shahaf
e49251b6fa sudo/redirections: Add two XFail tests for issue #221, "sudo and redirection don't mix". 2015-10-29 12:01:09 +00:00
Daniel Shahaf
2080a441ac minor: Remove redundant setting of $highlight_glob. 2015-10-28 09:58:13 +02:00
Daniel Shahaf
59fbdda64c main: Refresh highlighting upon accept-* widgets (accept-line et al).
Use this to remove [path_prefix] highlighting during accept-* widgets.
This causes ": file.tx<CR>" to remove the underline from "file.tx", like
": file.tx<SPACE>" already does.  (Assume 'file.txt' exists.)
2015-10-28 09:24:08 +02:00
Daniel Shahaf
7723edf4f5 Add an XFail test for accept-line semantics. 2015-10-28 08:30:05 +02:00
Daniel Shahaf
feec9f58c9 Followup to last: Fix issue number in comment. 2015-10-27 13:38:40 +02:00
Daniel Shahaf
ed6d229b1c Add XFail test for issue #208, 'precommand modifiers at non-command-word position'. 2015-10-27 12:33:11 +02:00
Daniel Shahaf
fb5ce43799 noop: Rename a local variable for clarity. 2015-10-27 11:59:25 +02:00
Daniel Shahaf
9816fcf055 redirections: Test an infix redirection. 2015-10-27 05:20:24 +00:00
Daniel Shahaf
871af68082 sudo: Extend test to cover all codepaths. 2015-10-27 05:09:13 +00:00
Daniel Shahaf
98aee7f8b9 Remove path_approx.
Fixes zsh-users/zsh-syntax-highlighting#187.
Adds a test for zsh-users/zsh-syntax-highlighting#204.
2015-10-27 04:29:05 +00:00
Daniel Shahaf
20d106bd4d noop: Associate an XFAIL test with its issue. 2015-10-23 04:57:05 +00:00
Daniel Shahaf
d66113c1ed Add XFAIL test for issue #205, "';' highlighted as unknown-token". 2015-10-23 04:56:02 +00:00
Daniel Shahaf
728ed66ff9 Fix copyright year.
Followup to b2ac98b981.
2015-10-23 04:53:06 +00:00
Daniel Shahaf
11c060ab76 test harness: Fix a bug whereby 'todo' state would propagate to all subsequent test points.
Update expectations on the subshell test (which triggered this bug, since it has
a passing test point following a 'todo' test point).
2015-10-23 04:26:51 +00:00
Daniel Shahaf
b2ac98b981 Fix issue #216: test failure with HOME=/nonexistent.
Make the test pass by setting explicitly the global state (existing $HOME) it
depends on.  Test another value of the global state (a non-existing $HOME).
2015-10-23 03:51:06 +00:00
Antony Lee
22c8736e2b Add XFAIL test for issue #160, "subshells highlighted incorrectly". 2015-10-23 03:31:00 +00:00
Daniel Shahaf
c687bddea3 Drop unnecessary shebang lines, part 2.
Follow-up to the last commit.

E: zsh-syntax-highlighting: missing-dep-for-interpreter zsh => zsh | zsh-beta (usr/share/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh)
W: zsh-syntax-highlighting: executable-not-elf-or-script usr/share/zsh-syntax-highlighting/highlighters/main/main-highlighter.zsh
2015-10-20 12:06:07 +00:00
Daniel Shahaf
c30301d474 Drop unnecessary shebang lines.
All these files should be sourced, not executed; and Debian's lintian complains:

W: zsh-syntax-highlighting: script-not-executable usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
2015-10-20 11:49:51 +00:00
Daniel Shahaf
e138cfd765 command word: Protect against the case that the command word starts with a minus. 2015-10-02 13:27:21 +00:00
Daniel Shahaf
07fd773d7e noop: Add comments. 2015-09-30 01:26:27 +00:00
Daniel Shahaf
5cd1fb26c0 Resolve tilde expansions in command word.
This causes '~/bin/foo' to highlight as a command, rather than as a file.

Part of issue #201.
2015-09-30 00:49:34 +00:00
Daniel Shahaf
faed2fa49e internal: Fix docstrings. 2015-09-29 23:45:44 +00:00
Daniel Shahaf
69203b1a1d Don't highlight escaped globbing.
Fixes zsh-users/zsh-syntax-highlighting#193.
2015-09-29 23:44:57 +00:00
Daniel Shahaf
800158745a Highlight quoted command words correctly.
Fixes zsh-users/zsh-syntax-highlighting#147.
2015-09-28 19:49:39 +00:00
Daniel Shahaf
7b4598a764 Highlight arithmetic expansions.
Fixes zsh-users/zsh-syntax-highlighting#188 in the case that both the
opening '((' and closing '))' have been typed,  The case that only the
opening '((' have been typed is also fixed, but requires a zsh development
build (zsh-5.1.1-52-g4bed2cf or newer); see comments within.
2015-09-28 13:55:38 +00:00
Daniel Shahaf
52a2ef644b Don't highlight escaped globbing.
Fixes zsh-users/zsh-syntax-highlighting#193.
2015-09-27 16:28:32 +00:00
Daniel Shahaf
6488284814 back-dollar-quoted-argument: Highlight incomplete escape sequences as unknown-token
Followup to 219184f046, which fixed issue #196.
2015-09-27 15:59:04 +00:00
Daniel Shahaf
f657406159 minor: Fix comment in last ocmmit. 2015-09-26 18:59:16 +00:00
Daniel Shahaf
8b728522de Add test for empty commands.
Related to issue #205.
2015-09-26 18:28:56 +00:00
Daniel Shahaf
79e8c2dd48 Don't highlight syntax elements as paths.
Without this, redirections, history expansions, and command separators would
be matched by path_approx.

A test case is simply LBUFFER="<" RBUFFER="" (highlighted as redirection with this
fix and as path_approx without it).

Fixes zsh-users/zsh-syntax-highlighting#204.
2015-09-26 18:28:48 +00:00
Daniel Shahaf
4ec821b2b1 Highlight redirections.
Fixes zsh-users/zsh-syntax-highlighting#23.

* danielsh/i23-highlight-redirections:
  Highlight redirections.
2015-09-26 17:58:07 +00:00
Daniel Shahaf
6732783d46 back-dollar-quoted-argument: Correct an off-by-one.
Highlight the last character of a «\xHH» escape when it is the last thing in
LBUFFER.  This is similar to what b0cc02ed86 did
for issue #186.
2015-09-26 01:09:37 +00:00
Daniel Shahaf
0788514cbd back-dollar-quoted-argument: Correct octal escape syntax.
A leading zero, as in '\0NNN', is permitted by 'echo' but not by 'print',
and «$''» follows 'print'.
2015-09-25 21:54:37 +00:00
Daniel Shahaf
8a43bd2cd9 back-dollar-quoted-argument: Highlight \uHHHH and \UHHHHHHHH escapes. 2015-09-25 21:45:38 +00:00
Daniel Shahaf
98366ade11 back-dollar-quoted-argument: Don't consider \0xHH a hex escape sequence.
A leading zero is not permitted in the '\xHH' syntax.
2015-09-25 21:45:38 +00:00
Daniel Shahaf
78ad649d47 back-dollar-quoted-argument: Don't consider comma a hex character.
Character class syntax does not ignore commas between ranges.
2015-09-25 21:45:38 +00:00
Daniel Shahaf
69fcb40275 Highlight backslash escapes within $'' strings.
Correct highlighting of backslash escapes within "" strings: highlight only
the four specific escape sequences defined there.

Fixes zsh-users/zsh-syntax-highlighting#196.
2015-09-25 21:45:38 +00:00
Daniel Shahaf
f4164ac86c internal: Document a function-local variable. 2015-09-25 21:22:09 +00:00
Daniel Shahaf
9c7a1109c8 WARN_CREATE_GLOBAL: don't leak the arithmetic for loop's index variable.
Found by code inspection; WARN_CREATE_GLOBAL missed this.
2015-09-25 20:57:51 +00:00
Daniel Shahaf
040df93c01 Highlight redirections.
Fixes zsh-users/zsh-syntax-highlighting#23.
2015-09-25 12:42:34 +00:00
Daniel Shahaf
66eb801358 dollar-double-quoted-argument: Handle «"foo$"» correctly. 2015-09-24 19:03:17 +00:00
Daniel Shahaf
b0cc02ed86 dollar-double-quoted-argument: Highlight "$foo" better.
Now, «"$42foo"» doesn't highlight the «foo», and «"$bar» highlights the «r».
2015-09-24 19:03:00 +00:00
Daniel Shahaf
908c4fe150 Stop leaking variables into global namespace.
Set WARN_CREATE_GLOBAL to prevent recurrence.

Fixes zsh-users/zsh-syntax-highlighting#192.
2015-09-24 18:01:06 +00:00
Daniel Shahaf
9e80fe8f02 Bump copyright years. 2015-09-24 16:46:28 +00:00
Daniel Shahaf
001e6cb404 tests: Cover 'back-quoted-argument'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-23 15:41:17 +00:00
Daniel Shahaf
22fa215e05 Fixup last commit.
* highlighters/main/test-data/hashed-command.zsh:
    Set the right region key.  This makes the test more specific.
    (Issue #184 would have caught this bug.)
2015-09-23 15:39:53 +00:00
Daniel Shahaf
845361ef3d tests: Cover 'hashed-command'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-23 15:35:56 +00:00
Daniel Shahaf
4594d8b7ec Merge remote-tracking branch 'danielsh/i199-semicolon-v1'
* danielsh/i199-semicolon-v1:
  Fix regression: Highlight ';' as commandseparator.
  Follow-up to 547b8be304: Fix $observed_result calculation.

Fixes zsh-syntax-highlghting/zsh-users#199.
2015-09-23 15:23:25 +00:00
Daniel Shahaf
5fb4cb2f72 Fix regression: Highlight ';' as commandseparator.
This was broken by c2b9327b07
and tracked as zsh-users/zsh-syntax-highlighting#199.

This fixes the vanilla-newline.zsh test, which was was (consciously) broken
by the previous commit.
2015-09-23 14:50:22 +00:00
Daniel Shahaf
f7cb4741d6 Followup to previous: Extend the 'alias' test. 2015-09-18 22:04:07 +00:00
Daniel Shahaf
81c8d78d12 tests: Cover 'alias' and 'suffix-alias'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-18 21:42:22 +00:00
Daniel Shahaf
8767e0ef66 tests: Cover 'reserved-word'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-18 20:38:32 +00:00
Daniel Shahaf
b056f592f2 tests: Cover 'path_prefix'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-18 20:21:19 +00:00
Daniel Shahaf
e0a7ddb6ec tests: Cover 'history-expansion'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-18 20:01:10 +00:00
Daniel Shahaf
416934202e tests: Cover 'single-quoted-argument', 'double-hyphen-option', and 'function'.
This is part of issue zsh-users/zsh-syntax-highlighting#198.
2015-09-18 19:21:21 +00:00
Daniel Shahaf
627eb71940 tests: Use $unused_highlight in more places.
Notably, the 'single-hyphen-option' and 'assign' contexts both default to the
'none' style, so before this patch, the tests would not have detected a failure
to apply those two contexts.

For other contexts, using $unused_highlight only helps detect the case where
the right highlight style (e.g., 'fg=yellow') is used as a result of applying
the wrong context — which should be a theoretical failure mode.

This is part of zsh-users/zsh-syntax-highlighting#198.
2015-09-18 18:44:45 +00:00
Daniel Shahaf
404d498e1d tests: vanilla-newline.zsh: Fix expectations 2015-09-17 23:33:56 +00:00
Daniel Shahaf
0d3a5dadea tests: Add test for escape sequences in double-quoted strings 2015-09-17 20:01:46 +00:00
Daniel Shahaf
186536705b tests: path-tilde-named.zsh: Fix expectations
The path string ends at offset 26, not 23.
2015-09-17 19:09:33 +00:00
Daniel Shahaf
547b8be304 test harness: Fix off-by-one discrepancy between observed and expected.
Fixes zsh-users/zsh-syntax-highlighting#195.

The one revision made on master between this branch's creation and merge
already uses correct offsets.

* danielsh/i195-tests-offbyone-v1:
  New test for dollar-double-quoted-argument.
  test harness: Fix off-by-one discrepancy between observed and expected.
2015-09-17 19:08:29 +00:00
Daniel Shahaf
80587e5419 New test for dollar-double-quoted-argument.
This exercises the previous patch.
2015-09-12 20:48:25 +00:00
Daniel Shahaf
c46b8d169e test harness: Fix off-by-one discrepancy between observed and expected.
Fixes issue #195.
2015-09-12 20:48:25 +00:00
Daniel Shahaf
a8afbdf2f5 Support $''-quoted strings.
This does not yet highlight backslash escapes within them.
2015-09-10 20:02:39 +00:00
Daniel Shahaf
6d93ea07fd main highlighter docs: README: Tweak. 2015-09-10 19:46:01 +00:00
Daniel Shahaf
4f5a0fe60b main highlighter docs: Give examples of styles. 2015-09-10 19:44:19 +00:00
Daniel Shahaf
555e142e66 suffix aliases: Highlight differently.
Add an underline, since they are at command word position but will be executed
by something else.

Suggested-by: Daniel Hahler
2015-09-08 10:13:16 +00:00
Daniel Shahaf
e13c5a1611 Highlight 'noglob' correctly in more cases.
Fixes zsh-users/zsh-syntax-highlighting#189.
2015-09-07 18:07:59 +00:00
Daniel Shahaf
8515b7e0c5 Highlight ? as globbing.
Fixes zsh-users/zsh-syntax-highlighting#94.
2015-09-07 18:05:56 +00:00
Daniel Shahaf
dc701501e5 Highlight ? as globbing.
Fixes zsh-users/zsh-syntax-highlighting#94.
2015-09-07 18:03:14 +00:00
Daniel Shahaf
9310d8ae71 Support suffix aliases
Fixes zsh-users/zsh-syntax-highlighting#126.
2015-09-07 17:59:52 +00:00
Daniel Shahaf
b3ceea8511 Highlight 'noglob' correctly in more cases.
Fixes zsh-users/zsh-syntax-highlighting#189.
2015-09-07 09:09:17 +00:00
Daniel Shahaf
a0b5bc6c71 Fix bug in previous commit (d330b49b33)
'local' is a reserved word in zsh 5.1 but not in earlier versions [1].
Therefore, under zsh older than 5.1, quoting is required.

This manifested as random «builtin=''» in emitted to the terminal, and
commands (such as 'echo') highlighted as errors (in red).

[1] https://github.com/zsh-users/zsh/blob/master/README#L46
    (the section "Incompatibilites between 5.0.8 and 5.1")
2015-09-07 01:26:11 +00:00
Daniel Shahaf
d330b49b33 Fix variable leakage into global namespace.
Similar to zsh-users/zsh-syntax-highlighting#97.
2015-09-06 19:20:49 +00:00
Daniel Shahaf
546a5288e2 multiline strings: Add a second test for commit ff4d402e9a 2015-09-05 15:08:08 +00:00
Daniel Shahaf
7f41967a17 Highlight array appends: foo+=(bar baz).
Fixes zsh-users/zsh-syntax-highlighting#181.
2015-09-05 09:38:02 +00:00
Daniel Shahaf
51aed8a765 Merge remote-tracking branch 'upstream/pr/179'
* upstream/pr/179:
  Don't parse first word of array assignment as command
2015-09-04 17:57:08 +00:00
Daniel Shahaf
42495cc5d6 Merge remote-tracking branch 'upstream/pr/161'
* upstream/pr/161:
  Don't highlight prefix redirections as error
2015-09-04 17:27:25 +00:00
Daniel Shahaf
c2b9327b07 Support literal newlines, part 2 2015-09-02 09:30:08 +00:00
Daniel Shahaf
52ece975c3 Update comments. No functional change. 2015-09-02 02:37:43 +00:00
Daniel Shahaf
b9b67b9f78 Don't parse first word of array assignment as command
Fixes zsh-users/zsh-syntax-highlighting#178
2015-08-28 09:52:52 +00:00
Daniel Shahaf
359d48bf78 Don't highlight prefix redirections as error
Fixes zsh-users/zsh-syntax-highlighting#146
2015-02-16 02:44:56 +00:00
Daniel Shahaf
ff4d402e9a Highlight the first part of multiline strings correctly
Given the following input:
    PREBUFFER=$'echo "foo\n'
    BUFFER='bar"'
This patch causes the '"foo' part to be highlighted as a string.  There
is no test because the tests only check highlighting of BUFFER, and 'bar"'
is already highlighted correctly.
2015-02-02 15:12:59 +00:00
Daniel Shahaf
384be15b13 Support literal newlines 2015-01-27 10:23:59 +00:00
Daniel Shahaf
23cacb12fe Support backslash continuations 2015-01-27 10:23:59 +00:00
Daniel Shahaf
667495bfb7 Support multiline strings 2015-01-27 10:23:58 +00:00
Daniel Shahaf
2c5acaefa9 Refactoring, no functional change
The new function will be used in the next commit.
2015-01-27 10:23:58 +00:00
nicoulaj
3dc5741900 Merge pull request #140 from randomize/pr_fix_issue_#77
Pr fix issue #77
2014-09-24 22:58:20 +02:00
nicoulaj
10391d025a Merge pull request #134 from sonnym/enable_quick_history_substitution_highlighting
highlight ^old^new pattern
2014-09-24 22:54:21 +02:00
Joost Cassee
d7d4dff1c8 Add 'line' highlighter for the whole buffer 2014-06-08 00:04:00 +02:00
Randy
e8cc271314 Resolves slow performance in brackets highlighter 2014-03-24 08:45:34 +02:00
sonnym
04f9c8884f highlight ^old^new pattern
by extending the already in place mechanism of checking for the first
histchar to check for the second as well
2013-12-07 05:11:19 -05:00
Julien Nicoulaud
f289a9f8e7 Merge pull request #125 from acatton/fix-121
Fix #121: sudo syntax highlighting incorrectly
2013-11-19 11:42:03 -08:00
Julien Nicoulaud
8ac964186d Merge pull request #131 from MarkLodato/array-assignments
Properly highlight array assignments
2013-11-19 11:40:29 -08:00
Julien Nicoulaud
ffce2a0b20 Merge pull request #133 from lucc/master
protect alias expansion from interpreting aliases as options
2013-11-19 11:39:40 -08:00
Lucas Hoffmann
784a5dc35b protect alias expansion from interpreting aliases as options
If one defines aliases like `++` the alias builtin tries to interprete these
as options so they have to be protected like this

    alias -- ++=true

The same goes for a call to `alias` in order to expand the alias again.
2013-11-05 00:50:20 +01:00
Mark Lodato
441f1a8aad highlight array assignments of the form x[y]=...
This code is more lenient than bash.  Examples:

    $ x[y[]=
    zsh: no matches found: x[y[]=
    $ x[][]=
    zsh: no matches found: x[][]=

The proper solution is to look inside the [...] and make sure that all
unescaped/unquoted square brackes are matched, but that is a heck of
a lot more complicated than this simple 8-character patch.
2013-10-30 00:53:46 -04:00
Mark Lodato
c62cb54e9d do not remove quotes when checking assignments
Zsh does not allow the variable name or the equals sign to be quoted or
escaped.  The previous code incorrectly highlighted the following
examples as assignments:

    $ 'x=y'
    zsh: command not found: x=y
    $ x\=y
    zsh: command not found: x=y
    $ "x"=y
    zsh: command not found: x=y
    $ \x=y
    zsh: command not found: x=y
2013-10-30 00:00:16 -04:00
Akinori MUSHA
0fc6b07509 Do not leak a variable: cdpath_dir.
Leaking a variable that holds a path in CDPATH could easily end up appearing on your prompt like `~cdpath_dir/subdir`.
2013-10-21 21:18:38 +09:00
Antoine Catton
3b3a58be91 Fix #121: sudo syntax highlighting incorrectly
Parse sudo command line in order to highlight the options correctly
2013-09-28 19:33:34 -06:00
Julien Nicoulaud
dbd27cb30a #155: document path_prefix/path_approx 2013-08-09 09:56:28 +02:00
Julien Nicoulaud
08b80022ca Merge pull request #123 from Shura0/master
Highlighted dollar variable ver. 2
2013-08-09 00:47:32 -07:00
Shura
a7ee0597ef Update main-highlighter.zsh
Comments added
2013-08-09 10:24:14 +04:00
Julien Nicoulaud
3677b75731 Merge pull request #115 from Valodim/master
add separate path_prefix and path_approx hilights
2013-08-08 07:31:46 -07:00
Julien Nicoulaud
3f2c76f393 Merge pull request #116 from jameskyle/feature/Issue-#92-silence-system-bell-in-osx
Issue #92 Eliminates system bell errors on osx.
2013-08-08 07:26:22 -07:00
Владимир
57c01d19de Update main-highlighter.zsh
Add support of CDPATH
2013-08-07 03:21:15 +03:00
Shura
8abcf187f6 dollar variable and backslash codes highlighting 2013-07-29 17:33:34 +04:00
James Kyle
93827ed84d Issue #92 Eliminates system bell errors on osx.
Prepended an 'if' to remove error bell on osx systems.
2013-07-25 11:39:21 -07:00
Vincent Breitmoser
228f5a6aad add separate path_prefix and path_approx hilights 2013-07-25 04:41:09 +02:00
Chris Knadler
612e493cba Fix relative links in highlighters readme 2013-02-26 18:03:35 -08:00
Takeshi Banse
b4e667795c make $pattern local to _zsh_highlight_pattern_highlighter #97
Signed-off-by: Takeshi Banse <takebi@laafc.net>
2012-12-09 10:43:00 +09:00
evan
19981ef9ea added sudo as a precommand 2012-08-17 15:52:09 -04:00
Jan M. Binder
732b7d6e65 Fix bracket highlighter 2012-04-07 17:09:15 +02:00
Jud Porter
d82eee5212 add emulate -L zsh to _zsh_highlight_main_highlighter. resolves issue #83 2011-12-02 16:44:33 -05:00
Julien Nicoulaud
f824e5e84d Options should only be set locally 2011-09-24 14:42:55 +02:00
Andreas Gahr
024c1c46f7 next try. fix for issue #76 without brakeing fix for #21 2011-09-24 20:39:34 +08:00
Julien Nicoulaud
8d4cde6301 (Hopefully) fix #21 (tilde and hashed directories in paths) 2011-09-20 19:13:37 +02:00
Julien Nicoulaud
db8f98fc53 Set default style for pipes and stuff to none 2011-09-20 19:13:37 +02:00
Andreas Gahr
287167d453 fix for issue #76. This was more ore less forgotten in pull request #75 2011-09-20 19:13:37 +02:00
Andreas Gahr
670961ad01 handle highlighting for precommands; handle highlighting for commands separators 2011-09-20 19:13:37 +02:00
Andreas Gahr
f84f9319d8 supposed fix for issue #73 and issue #74 2011-09-09 16:07:49 +02:00
Julien Nicoulaud
a6d105131c Fix #21: No highlighting when using tilde 2011-09-06 19:21:40 +02:00
Takeshi Banse
1d729202ec add tests for handling tildes
Signed-off-by: Takeshi Banse <takebi@laafc.net>
2011-09-07 01:14:45 +08:00
Takeshi Banse
48a18291f9 add some tests
Signed-off-by: Takeshi Banse <takebi@laafc.net>
2011-09-07 01:14:45 +08:00
Takeshi Banse
4a8b184632 pass ${arg} explicit
Signed-off-by: Takeshi Banse <takebi@laafc.net>
2011-09-07 01:14:45 +08:00
Andreas Gahr
b1b65dc486 bracket highlighter: small typo in testcase - document new style 2011-08-08 17:01:51 +02:00
Andreas Gahr
06ad03e32c bracket highlighter: simplify 2011-08-08 16:01:53 +02:00
Andreas Gahr
8375ef6e72 bracket highlighter: make the style configurable, when cursor is on bracket 2011-08-08 15:55:47 +02:00
Andreas Gahr
24243becba bracket highlighter: fix typo from last commit 2011-08-08 15:51:40 +02:00
Andreas Gahr
e1ed255c0a bracket highlighter: start loops with 0 which is more natural and also more in line whith the other highlighters 2011-08-08 14:48:16 +02:00
Andreas Gahr
0d55207c78 simple testcases for bracket highlighter - actually add files 2011-08-05 16:38:46 +02:00
Andreas Gahr
33813c6a52 simple testcases for bracket highlighter 2011-08-05 16:25:47 +02:00
Valodim
f27ef7a279 after exec token we can expect a command 2011-08-02 00:55:55 +08:00
Julien Nicoulaud
08dae96eb1 Add highlighter triggered when the user is root 2011-07-27 00:37:33 +02:00
Julien Nicoulaud
11de634b33 Add cursor highlighter 2011-07-27 00:13:41 +02:00
garinger
e7ab165310 * optimize discrimination of bracket-type
* use a nicer variable name
2011-07-13 12:47:27 -07:00
garinger
f1eb5aeef7 skip all brackets inside quotes (" and ') 2011-07-12 08:11:21 -07:00
garinger
2fe9505647 simplify check for bracket under cursor 2011-07-12 08:07:08 -07:00
garinger
05e4a031c7 * remove a safety belt - no need to check if array has elements, as defaults are provided
* reuse $pos instead of using another variable
* remove declaration forgotten in last commit
2011-07-12 07:56:12 -07:00
garinger
d4acac9837 eliminate a variable and simplify 2011-07-08 12:43:59 -07:00
garinger
ef74d2b611 Only match brackets of the same type 2011-07-08 12:25:09 -07:00
garinger
48c30a805a highlight opening bracket with "bracket-error" style, if the closing bracket is still missing 2011-07-08 07:52:32 -07:00
Julien Nicoulaud
e7d7ccfe35 Group if statements in f26310d97e 2011-06-16 14:54:24 +02:00
Guido
f26310d97e * enable command lines starting with a hyphen. 2011-06-16 04:28:59 -07:00
Julien Nicoulaud
ef4f5ed638 Fix READMEs 2011-06-12 23:16:41 +02:00
Julien Nicoulaud
0772ddd346 Big refactoring.
* Don't override user defined styles
* Better modularisation of highlighters
* Allow to define which highlighters are activated
* Allow to define the order in which they are defined
* Minor performance optimizations
* Fixed some variables leak
* Improve documentation
* Brackets highlighter: use ZSH_HIGHLIGHT_STYLES instead of a specific array
2011-06-12 22:57:14 +02:00
Julien Nicoulaud
bc788f3f19 Start splitting highlighters to separate files.
The script still works on its own, highlighters in highlighters/ are
loaded as addons if present.

Signed-off-by: Julien Nicoulaud <julien.nicoulaud@gmail.com>
2011-02-17 23:41:01 +01:00