Commit Graph

573 Commits

Author SHA1 Message Date
Daniel Shahaf 7b82b88a71 'main': Don't leak the PATH_DIRS options.
Found-by: m0viefreak
(in #298)
2016-05-12 19:24:00 +00:00
Sebastian Gniazdowski ef4bfe5bcc 'main': 2nd optimization that in my tests shows 2.2s -> 2.0s 2016-05-12 19:22:29 +00:00
Daniel Shahaf 5a98cd3a10 Merge remote-tracking branch 'upstream/pr/315' into HEAD
* upstream/pr/315:
  'main': optimization that in my tests shows 2.7s -> 2.2s
2016-05-12 18:30:50 +00:00
Sebastian Gniazdowski 02229ebd63 'main': optimization that in my tests shows 2.7s -> 2.2s
Consider indexing long buffers (say 300 chars). E.g. following line:
      integer offset=${${buf[start_pos+1,len]}[(i)$needle]}
will gradually go into large indices for first index [a,] and be kept
at large index for second index [,b]. Instead, we can remove already
processed characters from buf:
    proc_buf="${proc_buf[offset + $#arg + 1,-1]}"
$offset and $#arg are small, first index will not be large. $proc_buf
will be smaller and smaller and the second index [,-1] will run shorter
and shorter.
2016-05-12 18:29:09 +00:00
Daniel Shahaf 162c826452 docs: Honour $ZDOTDIR in code examples.
Keep references in prose as '~/.zshrc': using $ZDOTDIR in that context would
be confusing, and people who set $ZDOTDIR understand these references.
2016-05-12 13:29:10 +00:00
Daniel Shahaf a00ed24ba3 docs: Simplify/clarify installation instructions.
This also removes an implicit assumption that ~/.zshrc is idempotent.
2016-05-12 13:25:59 +00:00
Daniel Shahaf 62f1c108f3 tests: New test to capture off-by-ones.
Inspired by #312.
2016-05-11 20:36:18 +00:00
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
Nils Luxton 2176692704 docs: Added style key prefix convention
Part of #306
2016-05-09 17:35:21 +01:00
Daniel Shahaf 15db71abd0 driver: Track rename of an unreleased upstream API.
ISEARCH_ACTIVE was renamed ISEARCHMATCH_ACTIVE in workers/38921
(commit f06be0ffcf2c to zsh itself).

Fixes #299.
2016-05-09 03:38:27 +00:00
Matthew Martin 9cab566f53 docs: Document installation with other plugin managers
Closes #297.
2016-05-06 09:30:13 -05:00
Matthew Martin bb341f186c dev docs: Document testing quirks 2016-05-05 16:25:37 -05:00
Matthew Martin b5955213b9 tests: Add tests for 'brackets' and 'pattern' 2016-05-05 15:36:33 -05:00
Daniel Shahaf f0bae44b76 tests: Followup to last: echo(1) is evil.
Use 'print -r --' instead, so literal backslashes in $BUFFER aren't expanded.

Found-by: Matthew Martin
2016-05-05 20:34:43 +00:00
Daniel Shahaf 3176b9567c minor: tests: Quote $BUFFER differently on output.
The new output improves readability of the 'main' highlighter's test output.
2016-05-05 19:33:56 +00:00
Daniel Shahaf 6aa57d60aa tests: TAP support: Emit a 'description' for all test points 2016-05-05 19:11:49 +00:00
Daniel Shahaf f83bca0847 minor: tests: Introduce a local variable. No functional change. 2016-05-05 19:11:28 +00:00
Daniel Shahaf 70b5687d66 minor: tests: Tighten up local variable scope. 2016-05-05 19:11:07 +00:00
Daniel Shahaf 21207c336a tests: TAP compliance: Do not emit literal '#' in the 'description' part 2016-05-05 19:11:07 +00:00
Daniel Shahaf 56a867076c tests: Followup to fd061b5730bf: quote both expected and actual output. 2016-05-05 19:10:06 +00: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 fd061b5730 tests: Test ZSH_HIGHLIGHT_STYLES keys directly
Closes #287. Testing the keys directly removes the need for
unused_highlight which will be removed next.
2016-05-05 12:28:39 -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
Daniel Shahaf cef49752fd dev docs: Create HACKING.md.
Review-by: Matthew Martin
2016-05-05 01:20:32 +00:00
Daniel Shahaf e8af14fe1f minor: Rewrap docs for uncompiled readability. 2016-05-03 15:00:48 +00: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 c346f6eb6f docs: highlighters should use _zsh_highlight_add_highlight 2016-04-29 21:52:41 -05:00
Daniel Shahaf f34714b8ee Bump copyright years. 2016-04-30 02:11:17 +00: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
Daniel Shahaf c54c076cfa cleanup: Avoid colon after parameter expansion to avoid risking introducing a colon modifier. 2016-04-24 17:08:08 +00: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
Adam Kruszewski d4f8edc9f3 plugin.zsh: Convert from symlink to plain file
Fixes zsh-users/zsh-syntax-highlighting#292 (compatibility with zsh-5.1.1/msys2 on windows).
2016-04-17 04:48:30 +00:00
Daniel Shahaf 367929502f release.md: Add a release checklist line item. 2016-04-05 05:49:18 +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
Matthew Martin bb8d325c0c tests: Fix grep syntax
In basic regular expressions | is not a special character that spearates
branches, so use an extended regular expression.
2016-04-01 00:52:27 -05:00
m0viefreak 79e4d3d124 apply suffix and isearch zle_highlights on top 2016-03-28 18:24:29 +02: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 cb02451a4e widget binding: Fix crucial typo in last commit. 2016-03-18 15:14:09 +00:00
Daniel Shahaf 11d378332e widget binding: Further unbreak the build.
7e7e291b20 broke 'zle -C' completions, as reported in #278 just now.
2016-03-18 15:12:04 +00:00
Daniel Shahaf 6a634fac9f widget binding: Properly escape widget names at definition.
Re-Fixes zsh-users/zsh-syntax-highlighting#278.
2016-03-18 14:53:53 +00:00