Commit Graph

515 Commits (9ad039443f8fca082d93efb16b36c20c92f444e0)
 

Author SHA1 Message Date
Eric Freese 302bd7c059 Setup zshexit hook immediately in both sync/async cases
Eric Freese 245f5d2ba2 Improve completion suggestions
Just insert the first completion directly into the buffer and read the
whole buffer from the zpty.
Martin Väth 8ae0283c90 Do not rely on implicit NULLCMD=cat
Eric Freese 07b37fd9ce
Merge pull request from zsh-users/features/antigen-install-directions
Add install directions for Antigen
Eric Freese 7c83775bc7
Merge pull request from zsh-users/fixes/no-zpty
Fixes/no zpty
Eric Freese e97d132b3b Add install directions for Antigen
Eric Freese c0315e96d8 Don't use `-s` option to `zmodload`
It is not available in zsh versions older than 5.3
Eric Freese 5529102afc zpty module is only needed for `completion` strategy
Eric Freese dad6be4d5e Remove unused feature detection
Not needed after move away from zpty for async
Eric Freese 7d968869e3 Return if no completion found
Eric Freese 8593624996
Merge pull request from zsh-users/features/completion-suggestions
Features/completion suggestions
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`.
Martin Väth 43a011026f Do not leak global variables REPLY and strategy
https://github.com/zsh-users/zsh-autosuggestions/issues/341
Eric Freese cd81522b30 Attempt to kill async worker process when new request comes in
See http://www.zsh.org/mla/users/2018/msg00432.html
Eric Freese 4a268da1df Fix readme- async no longer uses zpty
Eric Freese d7171232c3 Merge branch 'develop' into features/completion-suggestions
Eric Freese faf0f9a698
Merge pull request from zsh-users/fixes/async-refactor
Refactor async mode to no longer use zpty
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
Eric Freese b0ffc34fb8 completion should be a local var
Eric Freese 4e466f0e4e Support widgets starting with dashes (ex: `-a-widget`)
Fixes 
Eric Freese bcbdad83e9 Support fallback strategies by setting array in config
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
Eric Freese 973205005c Add spec for `completion` strategy
Eric Freese 7d19f8f9b2 Rename default spec to history spec
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
Eric Freese 3dbd9afaec Fix completion strategy killing other pty's
Only a problem in synchronous mode
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).
Eric Freese 0a548c62f4 Forgot to make after small tweak
Eric Freese 4cca26ec84 Modify completion code to better fit our needs
Only need the first completion result
Eric Freese f63afd5969 Fix async pty name option spec
Eric Freese c5551daabc Default strategy now tries history first and falls back to completion
Eric Freese 82b08e2dc8 First pass at getting suggestions from completion engine ()
Uses https://github.com/Valodim/zsh-capture-completion with some slight
modifications.
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.
Eric Freese 63789e96b5 Fix handling of newline + carriage return in async pty ()
Eric Freese d7c796719e
Merge pull request from zsh-users/develop
v0.4.3
Eric Freese aa0b10db44 v0.4.3
Eric Freese 72ccee33b4 Pull out separate doc for installation instructions
Eric Freese c113e49fe2 Update license copyright year
Eric Freese 3b39b9561c Merge branch 'master' into develop
Eric Freese b003b2238a Update changelog for v0.4.3 release
Eric Freese df5fb858aa Destroy old pty even if it's no longer running ()
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
Eric Freese 726bc4eb5c Create general spec for async behavior
Harm te Hennepe 59c72c6805 Don't break kill ring rotation
Eric Freese 393f7b8bb9 Fix vi-mode partial-accept
Issue . PR .

Thanks to @toadjaune and @IngoHeimbach.
Eric Freese 42f5a06f7f Need to reset the POSTDISPLAY if exiting early
Specific case where this matters is following:

Be in vi insert mode with some text in the buffer and the cursor at the
end of the buffer. Press `esc` to trigger `vi-cmd-mode widget`, then
before the cursor moves (KEYTIMEOUT), press `h` to trigger
`vi-backward-char` widget. When `vi-cmd-mode` original widget exits,
KEYS_QUEUED_COUNT will be non-zero and the suggestion will be lost.
Eric Freese 51fef255da Add method to connect terminal to tmux session during tests
Useful with `binding.pry` to inspect behavior of tests.
Eric Freese 19ad3ba7cd Add new 5.5.1 version of zsh to CI
Benjamin Denhartog b2b9bf3b8c update arch linux installation instructions (now available via pacman)
closes 
Eric Freese 67a364bc17
Merge pull request from babaorum/fix/documentation/oh-my-zsh-install
make Oh my zsh install works without ZSH_CUSTOM defined
babaorum afc14f79cc make Oh my zsh install works without ZSH_CUSTOM defined