Commit Graph

500 Commits

Author SHA1 Message Date
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
Eric Freese 726bc4eb5c Create general spec for async behavior 2018-05-15 13:42:18 -06:00
Harm te Hennepe 59c72c6805 Don't break kill ring rotation 2018-05-15 12:54:09 -06:00
Eric Freese 393f7b8bb9 Fix vi-mode partial-accept
Issue #188. PR #324.

Thanks to @toadjaune and @IngoHeimbach.
2018-05-15 11:44:42 -06:00
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.
2018-05-15 11:44:42 -06:00
Eric Freese 51fef255da Add method to connect terminal to tmux session during tests
Useful with `binding.pry` to inspect behavior of tests.
2018-05-15 11:44:18 -06:00
Eric Freese 19ad3ba7cd Add new 5.5.1 version of zsh to CI 2018-05-15 11:44:18 -06:00
Benjamin Denhartog b2b9bf3b8c update arch linux installation instructions (now available via pacman)
closes #328
2018-05-14 10:43:45 -06:00
Eric Freese 67a364bc17
Merge pull request #321 from babaorum/fix/documentation/oh-my-zsh-install
make Oh my zsh install works without ZSH_CUSTOM defined
2018-04-17 15:00:46 -06:00
babaorum afc14f79cc make Oh my zsh install works without ZSH_CUSTOM defined 2018-04-16 22:37:54 +02:00
Eric Freese 60aff2d944 Remove unused local `$suggestion` variable 2018-03-27 14:51:37 -06:00
Eric Freese 6dfe9c8cd8
Merge pull request #319 from zsh-users/fixes/async_history
Don't fetch suggestions after [up,down]-line-or-beginning-search
2018-03-23 16:15:56 -06:00
Eric Freese 3136700ccf Don't fetch suggestions after [up,down]-line-or-beginning-search
These widgets rely on `$LASTWIDGET` being set to restore the cursor
position. 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.
2018-03-23 16:08:11 -06:00
Eric Freese 2202ed7bac
Merge pull request #304 from okdana/dana/no-beep
Avoid ringing bell when accepting suggestions
2018-01-16 14:11:06 -07:00
dana c978004c0e ..._invoke_original_widget: Return 0 when given no arguments
`_zsh_autosuggest_widget_accept()` (&al.) passes this function's return status
on, and ZLE rings the bell if it's >0. Not having an original widget isn't an
error condition, so always returning 0 here should be OK to avoid the bell

Fixes #228
2018-01-16 14:10:29 -06:00
Eric Freese c7d4a85031
Merge pull request #299 from zsh-users/develop
v0.4.2
2017-12-06 08:31:52 -07:00
Eric Freese 15931f04ff v0.4.2 2017-12-06 08:30:12 -07:00
Eric Freese 9f1046727a
Merge pull request #298 from zsh-users/fixes/support_older_versions
Fixes/support older versions
2017-12-06 08:27:18 -07:00
Eric Freese f462410b3c Add zsh version requirements to readme 2017-12-06 08:21:27 -07:00
Eric Freese 4ea825faf8 Fix #247 and #248 without using `(b)` flag
To support older versions of zsh (< 5.0.8).

We were missing the EXTENDED_GLOB option that allows use of `(#m)` flag.
2017-12-06 08:09:14 -07:00
Eric Freese a1babef972 Revert "Simplify escaping of pattern and fix match_prev_cmd strategy"
This reverts commit 7f8ff2867c.
2017-12-06 08:08:53 -07:00
Eric Freese be8bba6f38 Run CI on prominent versions of zsh back to 4.3.11
RHEL6 bundles v4.3.11
Ubuntu 14.04 and Amazon Linux bundle v5.0.2
2017-12-06 07:45:45 -07:00
Eric Freese dda220f140
Merge pull request #295 from zsh-users/develop
v0.4.1
2017-11-28 10:14:41 -07:00
Eric Freese 9f9237ab8a v0.4.1 2017-11-28 10:07:49 -07:00
Eric Freese 29257230fe Add missing issue/pr numbers from last version 2017-11-28 10:07:49 -07:00