Martin Väth
43a011026f
Do not leak global variables REPLY and strategy
...
https://github.com/zsh-users/zsh-autosuggestions/issues/341
7 years ago
Eric Freese
cd81522b30
Attempt to kill async worker process when new request comes in
...
See http://www.zsh.org/mla/users/2018/msg00432.html
7 years ago
Eric Freese
d7171232c3
Merge branch 'develop' into features/completion-suggestions
7 years ago
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
7 years ago
Eric Freese
b0ffc34fb8
completion should be a local var
7 years ago
Eric Freese
4e466f0e4e
Support widgets starting with dashes (ex: `-a-widget`)
...
Fixes #337
7 years ago
Eric Freese
bcbdad83e9
Support fallback strategies by setting array in config
7 years ago
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
7 years ago
Eric Freese
973205005c
Add spec for `completion` strategy
7 years ago
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
7 years ago
Eric Freese
3dbd9afaec
Fix completion strategy killing other pty's
...
Only a problem in synchronous mode
7 years ago
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).
7 years ago
Eric Freese
0a548c62f4
Forgot to make after small tweak
7 years ago
Eric Freese
4cca26ec84
Modify completion code to better fit our needs
...
Only need the first completion result
7 years ago
Eric Freese
c5551daabc
Default strategy now tries history first and falls back to completion
7 years ago
Eric Freese
82b08e2dc8
First pass at getting suggestions from completion engine ( #111 )
...
Uses https://github.com/Valodim/zsh-capture-completion with some slight
modifications.
7 years ago
Eric Freese
63789e96b5
Fix handling of newline + carriage return in async pty ( #333 )
7 years ago
Eric Freese
aa0b10db44
v0.4.3
7 years ago
Eric Freese
c113e49fe2
Update license copyright year
7 years ago
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
7 years ago
Harm te Hennepe
59c72c6805
Don't break kill ring rotation
7 years ago
Eric Freese
393f7b8bb9
Fix vi-mode partial-accept
...
Issue #188 . PR #324 .
Thanks to @toadjaune and @IngoHeimbach.
7 years ago
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.
7 years ago
Eric Freese
60aff2d944
Remove unused local `$suggestion` variable
7 years ago
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.
7 years ago
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
8 years ago
Eric Freese
15931f04ff
v0.4.2
8 years ago
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.
8 years ago
Eric Freese
a1babef972
Revert "Simplify escaping of pattern and fix match_prev_cmd strategy"
...
This reverts commit 7f8ff2867c
.
8 years ago
Eric Freese
9f9237ab8a
v0.4.1
8 years ago
Kaleb Elwert
940e10a691
Fix conditionals to use [[ and (( rather than [
...
This fixes a small issue in src/widgets.zsh which makes it so if you
alias [ to g[ (as is done in prezto if the gnu-utility module is loaded)
autosuggestions would fail.
The documentation for GNU test mentions that -o and -a should be avoided
if possible because it's not very clear. Also, with zsh and [[ -o
actually tests if an option is set, which makes this option even more
confusing.
8 years ago
Eric Freese
9f1f322979
Update comment about KEYS_QUEUED_COUNT support
...
Now that patch has released
8 years ago
Eric Freese
256293cbb6
Use typeset -g to avoid warnnestedvar warnings
...
Fixes github issue #271
8 years ago
Stefan Siegel
7f8ff2867c
Simplify escaping of pattern and fix match_prev_cmd strategy
...
Maybe this is also a fix for #247 , #248 and #258 . Supersedes #267 .
Testcase:
Using match_prev_cmd strategy and with these lines in history:
echo '1^'
echo '2^'
echo '1^'
type:
echo (unexpected suggestion echo '1^' instead of echo '2^')
echo '1^1 (wrong suggestion echo '1^1echo '1^')
echo '1^# (error "bad math expression")
8 years ago
Alexander Neumann
1915e28882
Add 'emacs-forward-word'
...
This commit adds the 'emacs-forward-word' widget to the list of partial
accept widgets.
8 years ago
Eric Freese
14179d869d
Bump version
8 years ago
Eric Freese
83129dd796
Make asynchronous suggestions disabled by default
...
While they are still experimental
8 years ago
Eric Freese
a2f0ffb122
Enabling suggestions should not fetch a suggestion if buffer is empty
9 years ago
Eric Freese
7d4a1d9a4a
Add enable/disable/toggle widgets to disable suggestion functionality
...
[GitHub #219 ]
Intended to be helpful for folks using bracketed-paste-magic and other
widgets that use `zle -U`.
9 years ago
Eric Freese
e1959d0f61
Put in a general fix for #219 - Handling input from `zle -U`
...
Depends on patch to ZSH from workers/40702:
http://www.zsh.org/mla/workers/2017/msg00414.html
9 years ago
Eric Freese
c52c428793
Fix issues with widgets wrapped by other plugins
...
Puts in a better fix for #126 and related issues.
9 years ago
Eric Freese
c9a51e0c4c
Handle dashes at the beginning of commands
9 years ago
Eric Freese
48a21bf79e
[cleanup] Remove an extra newline
9 years ago
Eric Freese
4afbbbadda
We only need to run the feature detection if starting async
9 years ago
Eric Freese
e3fa4e4904
Don't do anything but re-bind widgets on each precmd
...
There's no need to re-run feature detection or async_start on every
precmd. Just do those once.
9 years ago
Eric Freese
4321fc097c
We need to bind on every precmd to ensure we wrap other wrappers
...
Specifically, highlighting breaks if our widgets are wrapped by z-syn-h
widgets.
9 years ago
Eric Freese
75e850577d
Gracefully handle being sourced multiple times
...
Should fix #126
9 years ago
Eric Freese
a0fcd81ce1
Destroy zpty on load if it already exists
9 years ago
Eric Freese
39ca3dac45
Use a different name for feature detection zpty
...
So that it doesn't conflict when the file is sourced again
9 years ago
Eric Freese
dcce973287
Remove support for long-deprecated options
...
These options have been deprecated for over a year.
9 years ago
Christian Höltje
0c940e70f2
Don't bind any zle-* methods
...
It seems like all the zle-* methods are special and shouldn't be
monkeyed with.
Specifically `zle-isearch-update` and friends. Binding that widget
caused `history-incremental-pattern-search` to stop working.
Fixes zsh-users/zsh-syntax-highlighting#387
9 years ago
Eric Freese
23ef16c297
Do not show suggestions if the buffer is empty
9 years ago
Eric Freese
c4bfd8e2c6
Need to prevent zpty feature detection from HUPing existing zptys
9 years ago
Eric Freese
9feac573c9
Do not show any error output from async zpty server process
9 years ago
Eric Freese
ed8056c5e8
Lots of async changes
9 years ago
Eric Freese
2c465a932a
Rename async pty name config var
9 years ago
Eric Freese
e3eb286ea2
Lots of little async cleanups
9 years ago
Eric Freese
40bb2e7804
little cleanup
9 years ago
Eric Freese
16666da488
Handle versions of zsh where zpty does not set REPLY to fd of opened pty
...
Based on e702ec4697/async.zsh (L400-L406)
9 years ago
Eric Freese
f33b605a63
Move async initialization into `start` function to keep in one place
9 years ago
Eric Freese
78ba07179a
Add feature detection
...
Checks whether `zpty` gives a file descriptor, which was not the case in
older versions of zsh.
Based on a4b2f81c96/async.zsh (L395-L401)
9 years ago
Eric Freese
3f57198d07
Only bind widgets once, on initial sourcing
9 years ago
Eric Freese
6c5cd42331
Go back to tracking last pid because `kill %1` didn't seem to be working
9 years ago
Eric Freese
54e1eee924
Optimize case where manually typing in a suggestion
9 years ago
Eric Freese
21d9eda5dd
Wrap suggestion fetch command in parens to actually run in background
9 years ago
Eric Freese
50e6832b8c
Escape the prefix passed into the match_prev_cmd strategy
9 years ago
Eric Freese
0305908adf
Revert `fc` usage in calculating suggestion
...
As far as I know, `fc` makes it impossible to tell whether history items
used an actual newline character or the string "\n". Pulling from the
`$history` array gives a more accurate representation of the actual
command that was run.
9 years ago
Eric Freese
b3208b08af
Pass the chosen strategy into the suggestion server pty
9 years ago
Eric Freese
ab2742537f
Quote the suggestion to support sh_split_word option
9 years ago
Eric Freese
e5a5b0c1e0
Output only newlines in the pty
9 years ago
Eric Freese
0337005eb0
Disable word splitting while reading to preserve whitespace
9 years ago
Eric Freese
b530b0c996
Use `zpty -r` with pattern matching to fetch suggestion
9 years ago
Eric Freese
5c891afd48
Reset zsh options inside pty (from zsh-async)
9 years ago
Eric Freese
e33eb570c4
Send only the prefix to the suggestion server
9 years ago
Eric Freese
fba20b042e
Use %1 instead of tracking pid
9 years ago
Eric Freese
0308ed797e
Rename worker to server
9 years ago
Eric Freese
e72c2d87e5
add a bunch of comments
9 years ago
Eric Freese
ab8f295225
First pass at async functionality
9 years ago
Eric Freese
9cfaf5d342
v0.3.3
9 years ago
Eric Freese
b377c39d0e
Only fetch a new suggestion if buffer has changed
9 years ago
Eric Freese
a44aa59321
Remove unnecessary reset of POSTDISPLAy
9 years ago
Eric Freese
25f4afb058
Add ZSH_AUTOSUGGEST_IGNORE_WIDGETS array
9 years ago
Lorenzo Bolla
cdf56a3305
Include result of `make`
9 years ago
Lorenzo Bolla
7b81eb79b8
Disable autosuggest if buffer is too large
...
Make buffer max size configurable, defaulted to infinity
9 years ago
Eric Freese
63816c5da8
Fix #164 : Use `fc` builtin instead of `$history` array for lookup
...
According to a few tests, the `fc` builtin appears to be quite a bit
faster than searching through the `$history` associative array when
dealing with large history files (500K+).
9 years ago
Eric Freese
b4b3a82ee3
Fix #168 and #130 : Escape tildes when fetching suggestions
9 years ago
Tassilo Horn
ca70612d3c
Document caveats of match_prev_cmd strategy
...
This strategy relies on the history being exactly in the order in which
commands have been entered. Therefore, options like suppressing
duplicates or expiring duplicates first will lead to unexpected
suggestions.
9 years ago
Eric Freese
cce68de46d
v0.3.2
9 years ago
Eric Freese
e87bc74654
Fix 118: Clear suggestion before original widget to fix completions
...
See PR #149
9 years ago
Eric Freese
964773aa75
Use array indices for forward compatibility
...
See issue #152
9 years ago
Eric Freese
945c660856
Fix #152 by escaping widget names inside evals
...
Solves problems when dealing with widget names with irregular
characters such as those that come from `opp.zsh`.
9 years ago
Eric Freese
011d8bdfd1
Refactor to remove prev cmd function and simplify escaping
9 years ago
Eric Freese
6d6e7820f3
Fix #143 : Add `vi-add-eol` to list of accept widgets.
9 years ago
Eric Freese
1d4f7e157e
Keep track of return value from original widget ( #135 )
9 years ago
Eric Freese
87facd9b85
bump version v0.3.1
9 years ago
Eric Freese
dc822c54f8
Fix #133
9 years ago
Eric Freese
15c5db898f
Fix #137
9 years ago
Eric Freese
46d5fe174d
Remove extra newline
9 years ago
Eric Freese
97b51a2c57
bump version v0.3.0
9 years ago
Eric Freese
a314a01a6a
Fix various bugs found while testing
9 years ago