Commit graph

474 commits

Author SHA1 Message Date
Eric Freese
78e4379711 Fix moving cursor to end of buffer when suggestion accepted
$max_cursor_pos in this case was not the correct value to use. It was
calculated based on the old length of the $BUFFER. After the suggestion
is accepted, we need to recalculate the new max cursor length and use it
to set the $CURSOR.

Fixes issue #452. Follow-up to issue #302 (PR #450).
2019-06-23 12:37:08 -06:00
Eric Freese
c80605595c
Merge pull request #451 from zsh-users/develop
v0.6.2
2019-06-22 16:57:19 -06:00
Eric Freese
cb52adf429 v0.6.2 2019-06-22 16:54:32 -06:00
Eric Freese
cdf6be4f06 Update readme description to reference new completion strategy 2019-06-22 16:54:03 -06:00
Eric Freese
66a6de3fb5 Update changelog for v0.6.2 release 2019-06-22 16:52:42 -06:00
Eric Freese
2498dbab75
Merge pull request #450 from zsh-users/fixes/vi-delete
Fix deleting last character in vi mode (#302)
2019-06-22 16:42:52 -06:00
Eric Freese
676aebdf44 Fix deleting last character in vi mode (#302)
Typing `d` and then `l` runs `vi-delete` and then `vi-forward-char`.  However,
by default, `vi-forward-char` is configured to accept the suggestion. So in
that case, the suggestion was being accepted and the cursor set to the end of
the buffer before the deletion was run.

The reason the user doesn't see the suggestion accepted is that `vi-delete`
doesn't finish until the movement widget is run, so we're already inside of a
`modify` when `accept` is called. `modify` unsets `POSTDISPLAY` before calling
the original widget so when we get to the accept function, `POSTDISPLAY` is
empty and thus accepting the suggestion is a no-op.

The fix is to make sure we reset the cursor to the correct place before running
the original widget.

We skip the test for versions of zsh below 5.0.8 since there was a bug in
earlier versions where deleting the last char did not work.

See http://www.zsh.org/mla/workers/2014/msg01316.html
2019-06-22 16:34:42 -06:00
Eric Freese
ec43fcfccf
Merge pull request #449 from Warkst/i416
Possible fix for #416
2019-06-22 10:56:34 -06:00
Eric Freese
f5236c4351
Merge pull request #448 from ondrej-fabry/patch-1
Update INSTALL.md
2019-06-22 10:50:17 -06:00
Eric Freese
d27983b7ca
Merge pull request #447 from zsh-users/features/without-system-module
Degrade gracefully on systems missing zsh/system module
2019-06-22 10:46:26 -06:00
Robin De Mol
d14b17fb09 Possible fix for #416
* Added a note for iTerm2 users under readme/configuration/highlight
style.

* Changed the link to the issue list under troubleshooting so that the
default filters (only open issues) are not applied.
2019-06-20 09:32:47 +02:00
Ondrej Fabry
b24b607fbf
Update INSTALL.md
- minor formatting change for better readability
2019-06-19 23:30:36 +02:00
Eric Freese
a437544cc5 Degrade gracefully on systems missing zsh/system module
When using async mode, stale background processes will not be cancelled
when a new one starts. This shouldn't cause any real issues since the
processes should eventually finish and be cleaned up anyway, and
removing the handler with `zle -F` means that stale suggestions should
never be shown.
2019-06-19 13:41:43 -06:00
Eric Freese
112dd3e3c7
Merge pull request #446 from zsh-users/develop
v0.6.1
2019-06-18 11:11:59 -06:00
Eric Freese
8a812bdfd2 v0.6.1 2019-06-18 11:04:24 -06:00
Eric Freese
f178efb847 Update changelog for v0.6.1 release 2019-06-18 11:04:04 -06:00
Eric Freese
48ffc1bf92
Merge pull request #443 from zsh-users/fixes/alias-parse-error
Prefix custom `_complete` implementation with "function" keyword
2019-06-18 07:50:07 -06:00
Eric Freese
adb02c44a2 Prefix custom _complete implementation with "function" keyword
For some reason, when `_complete` is aliased before sourcing the plugin,
zsh was blowing up with a parse error. Adding "function" keyword makes
it parse successfully.

See similar issue: https://github.com/robbyrussell/oh-my-zsh/issues/6723#issuecomment-381220834

Fixes GitHub #442
2019-06-17 22:04:31 -06:00
Eric Freese
3654b83ec0 Update license copyright year in built plugin file
Should have been committed with 19c976f
2019-06-17 21:58:31 -06:00
Eric Freese
b3b34eab49
Merge pull request #440 from zsh-users/develop
v0.6.0
2019-06-15 21:46:24 -06:00
Eric Freese
19c976f62a Update license copyright year 2019-06-15 21:40:39 -06:00
Eric Freese
3250778ce8 v0.6.0 2019-06-15 21:39:57 -06:00
Eric Freese
43ba841742 Update changelog for v0.6.0 release 2019-06-15 21:39:10 -06:00
Eric Freese
86f64c30ca
Merge pull request #420 from zsh-users/fixes/completion-newline-issues
Fixes/completion newline issues
2019-06-15 21:24:01 -06:00
Eric Freese
f543ba08c3 Fix cr/lf handling in completion strategy 2019-06-15 21:17:58 -06:00
Eric Freese
68343c8de4 Allow suggestions to suggest trailing newlines
Command substitution via $() trims trailing newlines so the old approach
to reading everything from the fd was preventing suggestions from ending
with newlines.

Found the read solution here: https://stackoverflow.com/a/15184414/154703
2019-06-15 21:17:58 -06:00
Eric Freese
e263845bed Add an extra completion to better exercise choosing first 2019-06-15 21:17:58 -06:00
Eric Freese
d94475ca1b Simplify logic to extract suggestion from between null bytes
Just remove up to and including the first null byte and after and
including the last null byte.

I also looked into using `${${(0)line}[2]}`, but it fails when `$line`
starts with a null byte, since the first split string will be empty and
thus not included in the resulting array.
2019-06-15 21:17:58 -06:00
Eric Freese
c04e015d13 Add to explanation of extra stuff after zpty -r 2019-06-15 21:17:58 -06:00
Eric Freese
e9ce05c4c1 Ensure that kill succeeds even in older buggy versions of zsh
See https://unix.stackexchange.com/a/477647/156673
2019-06-15 21:17:58 -06:00
Eric Freese
fdf4502c5c We need to autoload is-at-least for it to be available
This error was hidden inside the zpty
2019-06-15 21:17:58 -06:00
Eric Freese
7e048c3f53 Fix error that was hidden in zpty
Without the quotes, this was blowing up with:
  _zsh_autosuggest_capture_postcompletion:unset:5: not enough arguments
2019-06-15 21:17:58 -06:00
Eric Freese
2b05f5ed2d Add a comment explaining post-completion hook 2019-06-15 21:17:58 -06:00
Eric Freese
5339d2703d
Merge pull request #432 from zsh-users/features/wrap-zle-line-init
Wrap zle-line-init to support fetching suggestions on line init
2019-06-14 21:04:02 -06:00
Eric Freese
0d3bbaf8e6 Remove hard-coded ignore of zle-* widgets and add to default config
Use case suggested by @romkatv uses zle-line-init to restore buffer
after running a widget to cd up one level (GitHub #431).

As far as I can tell, the ignoring of zle-line-* was added in commit
9788c2e to support some deprecation warnings that were removed some time
ago.

The pattern was then widened in commit 0c940e7 to zle-* to fix problems
encountered when wrapping zle-isearch-update.

This commit removes the hard coded ignore of all zle-* widgets and adds
zle-* to the default list of widgets to be ignored. Users who want the
plugin to wrap zle-line-init or zle-line-finish can override the
default.
2019-06-14 16:38:28 -06:00
Eric Freese
848aa741f4 Revert "Merge pull request #439 from zsh-users/fixes/copy-earlier-word"
This reverts commit 1c3e3fd939, reversing
changes made to 733abd4af0.

This PR should have been merged to develop instead of master.
2019-06-14 13:21:27 -06:00
Henré Botha
15bcfd7126 Don't fetch suggestions after copy-earlier-word
Like {up,down}-line-or-beginning-search, this widget relies on
`$LASTWIDGET` being set to function correctly on subsequent invocations.

When asynchronous suggestions are enabled, and the widget triggers a
suggestion to be fetched, `autosuggest-suggest` will be called and
$LASTWIDGET will be set to it.
2019-06-14 13:19:07 -06:00
Eric Freese
9ceeacc797 Try to make async ^C spec less flaky
Was intermittently failing, sleep for a little longer to increase
chances of false negatives.
2019-06-14 13:19:07 -06:00
Eric Freese
1c3e3fd939
Merge pull request #439 from zsh-users/fixes/copy-earlier-word
Don't fetch suggestions after copy-earlier-word
2019-06-14 13:17:34 -06:00
Henré Botha
527fd17ffc Don't fetch suggestions after copy-earlier-word
Like {up,down}-line-or-beginning-search, this widget relies on
`$LASTWIDGET` being set to function correctly on subsequent invocations.

When asynchronous suggestions are enabled, and the widget triggers a
suggestion to be fetched, `autosuggest-suggest` will be called and
$LASTWIDGET will be set to it.
2019-06-14 12:51:27 -06:00
Eric Freese
1912726460 Try to make async ^C spec less flaky
Was intermittently failing, sleep for a little longer to increase
chances of false negatives.
2019-06-14 12:50:44 -06:00
Eric Freese
de266574d3
Merge pull request #434 from zsh-users/meta/improve-highlight-style-docs
Improve documentation for configuring highlight style
2019-05-29 01:40:20 -06:00
Eric Freese
48d04447cc
Merge pull request #433 from zsh-users/fixes/ignore-empty-max-size
Allow setting max size to empty string (GitHub #422)
2019-05-29 01:39:24 -06:00
Eric Freese
b714f6667c Improve documentation for configuring highlight style
Supersedes PR #430 and gives additional info.

https://stackoverflow.com/questions/47310537/how-to-change-zsh-autosuggestions-color
2019-05-27 14:56:19 -06:00
Eric Freese
474c577f3c Allow setting max size to empty string (GitHub #422)
Some people have gotten used to setting ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE
to an empty string rather than leaving it unset. This lets them continue
to do that without getting any warnings (e.g. "bad math expression:
operand expected at end of string").
2019-05-27 14:18:21 -06:00
Eric Freese
e9d8231ba7
Merge pull request #401 from zsh-users/features/completion-suggestions
Features/completion suggestions
2019-04-15 12:55:35 -06:00
Eric Freese
ce6ee94f30 Add spec to demonstrate bracketed-paste-magic bug workaround
Add `bracketed-paste` to list of widgets that clear the suggestion as a
workaround for GitHub #351
2019-04-15 12:47:21 -06:00
Eric Freese
e7c7efe2e2 Set options immediately after sourcing the plugin before next precmd
So that you can access defaults to e.g. add elements to an existing
array.
2019-04-15 12:46:21 -06:00
Eric Freese
733abd4af0
Merge pull request #419 from zsh-users/develop
v0.5.2
2019-04-11 10:18:26 -06:00
Eric Freese
152d2c6b31 v0.5.2 2019-04-11 10:15:46 -06:00