Eric Freese
88fe824ddf
Add some error handling to async response handler
...
We only want to read data in case of POLLIN or POLLHUP. Not POLLNVAL or
select error.
We always want to remove the handler, so it doesn't get called in an
infinite loop when error is nval or err.
In zsh source, see main zle event loop in zle_main.c raw_getbyte
function.
2018-07-13 11:26:57 -06:00
Eric Freese
93877f6b76
We also need to remove the handler when cancelling async request
...
Should fix GitHub #353
2018-07-13 11:25:59 -06:00
Eric Freese
0ee5b0a5c9
Completion strategy no longer requires zutil module
2018-07-02 22:38:20 -06:00
Eric Freese
bd1fd97738
Cleanup unused async pty name
2018-07-02 22:38:20 -06:00
Eric Freese
ebaf409002
Merge pull request #355 from amehmeto/patch-1
...
Update INSTALL.md
2018-07-02 20:59:14 -06:00
amehmeto
2d0ae6044c
Update INSTALL.md
...
I lost myself in the internet abyss because of this imprecision. It might be helpful for the new noob trying to install that great tweak. :)
2018-07-03 04:25:20 +02:00
Eric Freese
106bf02d49
Merge pull request #350 from zsh-users/features/improved-completion-suggestions
...
Improve completion suggestions
2018-07-02 12:28:39 -06:00
Eric Freese
f1c3b98774
Only capture completions at the end of the buffer.
...
To prevent the suggestion from not starting with the buffer string.
Example:
`ls / /[cursor left][cursor left]b`
Before the patch, suggests `ls /b /ls /bin/ /`
After the patch, suggests `ls /b /bin/`.
https://github.com/zsh-users/zsh-autosuggestions/issues/343#issuecomment-401675712
2018-07-02 12:25:20 -06:00
Eric Freese
4869a757c8
Ensure we always destroy the zpty
...
If running in sync mode and a completion takes a long time, the user can
^C out of it. Without this patch, the pty will not be destroyed in this
case and the next time we go to create it, it will fail, making the
shell unusable.
2018-07-02 12:25:20 -06:00
Eric Freese
302bd7c059
Setup zshexit hook immediately in both sync/async cases
2018-07-02 12:25:20 -06:00
Eric Freese
245f5d2ba2
Improve completion suggestions
...
Just insert the first completion directly into the buffer and read the
whole buffer from the zpty.
2018-07-02 12:25:20 -06:00
Martin Väth
8ae0283c90
Do not rely on implicit NULLCMD=cat
2018-07-02 12:21:49 -06:00
Eric Freese
07b37fd9ce
Merge pull request #349 from zsh-users/features/antigen-install-directions
...
Add install directions for Antigen
2018-07-01 01:54:01 -06:00
Eric Freese
7c83775bc7
Merge pull request #348 from zsh-users/fixes/no-zpty
...
Fixes/no zpty
2018-06-30 18:07:06 -06:00
Eric Freese
e97d132b3b
Add install directions for Antigen
2018-06-30 17:15:31 -06:00
Eric Freese
c0315e96d8
Don't use -s
option to zmodload
...
It is not available in zsh versions older than 5.3
2018-06-30 16:54:33 -06:00
Eric Freese
5529102afc
zpty module is only needed for completion
strategy
2018-06-30 15:09:24 -06:00
Eric Freese
dad6be4d5e
Remove unused feature detection
...
Not needed after move away from zpty for async
2018-06-30 15:05:37 -06:00
Eric Freese
7d968869e3
Return if no completion found
2018-06-30 15:03:14 -06:00
Eric Freese
8593624996
Merge pull request #330 from zsh-users/features/completion-suggestions
...
Features/completion suggestions
2018-06-30 14:35:50 -06:00
Eric Freese
1ec43c7291
Fix error when single quote entered into buffer
...
Error looked something like:
```
% echo 'f(zpty):8: unmatched '
_zsh_autosuggest_capture_completion:zpty:9: no such pty command: zsh_autosuggest_completion_pty
_zsh_autosuggest_capture_completion:zpty:14: no such pty command: zsh_autosuggest_completion_pty
_zsh_autosuggest_capture_completion:zpty:21: no such pty command: zsh_autosuggest_completion_pty
```
According to `man zshmodules`, the args to `zpty` are "concatenated with
spaces between, then executed as a command, as if passed to the eval
builtin." So we need to escape the `$` so that `$1` is passed to eval
instead of the value of `$1`.
2018-06-29 22:08:33 -06:00
Martin Väth
43a011026f
Do not leak global variables REPLY and strategy
...
https://github.com/zsh-users/zsh-autosuggestions/issues/341
2018-06-18 16:39:48 -06:00
Eric Freese
cd81522b30
Attempt to kill async worker process when new request comes in
...
See http://www.zsh.org/mla/users/2018/msg00432.html
2018-06-12 23:45:29 -06:00
Eric Freese
4a268da1df
Fix readme- async no longer uses zpty
2018-06-11 02:39:00 -06:00
Eric Freese
d7171232c3
Merge branch 'develop' into features/completion-suggestions
2018-06-11 02:34:24 -06:00
Eric Freese
faf0f9a698
Merge pull request #338 from zsh-users/fixes/async-refactor
...
Refactor async mode to no longer use zpty
2018-06-11 02:25:12 -06:00
Eric Freese
9cb0101512
Refactor async mode to no longer use zpty
...
See technique used in `fast-syntax-highlighting`:
- ca2e18bbc9
- http://www.zsh.org/mla/users/2018/msg00424.html
2018-06-11 02:12:47 -06:00
Eric Freese
b0ffc34fb8
completion should be a local var
2018-06-10 23:35:22 -06:00
Eric Freese
4e466f0e4e
Support widgets starting with dashes (ex: -a-widget
)
...
Fixes #337
2018-06-10 22:39:58 -06:00
Eric Freese
bcbdad83e9
Support fallback strategies by setting array in config
2018-06-06 22:03:56 -06:00
Eric Freese
949c374195
Fix completion
strategy on older versions of zsh
...
`zpty -r` with a pattern seems to have some funky behavior on older
versions, giving unpredictable results
2018-05-26 15:42:50 -06:00
Eric Freese
973205005c
Add spec for completion
strategy
2018-05-26 15:42:50 -06:00
Eric Freese
7d19f8f9b2
Rename default spec to history spec
2018-05-26 15:35:29 -06:00
Eric Freese
cf458d2a3b
Fix completion suggestions when compinit is not enabled
...
Need to make sure compinit is called in the pty or the shell hangs
2018-05-26 15:35:29 -06:00
Eric Freese
3dbd9afaec
Fix completion strategy killing other pty's
...
Only a problem in synchronous mode
2018-05-26 15:35:29 -06:00
Eric Freese
6ffaec725a
Allow completion suggestions from current shell
...
The `zsh -f` running in the PTY doesn't know about the non-exported
variables and functions defined in the original shell, thus can't make
suggestions for them. Run local functions in the PTY instead of a new
`zsh` process.
We have to handle things differently based on whether zle is active or
not (async vs. sync mode).
2018-05-26 15:35:29 -06:00
Eric Freese
0a548c62f4
Forgot to make after small tweak
2018-05-26 15:35:29 -06:00
Eric Freese
4cca26ec84
Modify completion code to better fit our needs
...
Only need the first completion result
2018-05-26 15:35:29 -06:00
Eric Freese
f63afd5969
Fix async pty name option spec
2018-05-26 15:35:29 -06:00
Eric Freese
c5551daabc
Default strategy now tries history first and falls back to completion
2018-05-26 15:35:29 -06:00
Eric Freese
82b08e2dc8
First pass at getting suggestions from completion engine ( #111 )
...
Uses https://github.com/Valodim/zsh-capture-completion with some slight
modifications.
2018-05-26 15:35:29 -06:00
Eric Freese
5549b68e6e
Async is less reliable in zsh versions < 5.0.8
...
`stty` occasionally hangs (always in CircleCI) inside the async pty.
Disable the tests for now until we can figure out and fix/workaround
this issue.
2018-05-26 15:34:57 -06:00
Eric Freese
63789e96b5
Fix handling of newline + carriage return in async pty ( #333 )
2018-05-26 14:16:00 -06:00
Eric Freese
d7c796719e
Merge pull request #332 from zsh-users/develop
...
v0.4.3
2018-05-21 11:40:10 -06:00
Eric Freese
aa0b10db44
v0.4.3
2018-05-21 11:38:41 -06:00
Eric Freese
72ccee33b4
Pull out separate doc for installation instructions
2018-05-21 11:35:26 -06:00
Eric Freese
c113e49fe2
Update license copyright year
2018-05-21 10:52:41 -06:00
Eric Freese
3b39b9561c
Merge branch 'master' into develop
2018-05-21 10:47:20 -06:00
Eric Freese
b003b2238a
Update changelog for v0.4.3 release
2018-05-21 10:46:03 -06:00
Eric Freese
df5fb858aa
Destroy old pty even if it's no longer running ( #249 )
...
For unknown reasons, the pty will occasionally quit running. In these
cases, we still want to remove it so that a fresh one can be created. We
don't actually need this check because error messages from `zle` and
`zpty` are redirected to /dev/null.
One sure way to kill all currently running pty's is to run `exit` in a
subshell. Even without zsh-autosuggestions loaded, the following works:
% zmodload zsh/zpty
% zpty -b foo cat
% zpty -b bar cat
% zpty
(31689) bar: cat
(31666) foo: cat
% $(exit)
% zpty
(finished) bar: cat
(finished) foo: cat
2018-05-15 13:55:37 -06:00