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 and GitHub
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 and GitHub
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 and GitHub
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
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 and GitHub
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
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 and GitHub
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 and GitHub
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 and GitHub
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 and GitHub
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
Eric Freese
528e338e57
Update changelog for v0.5.2 release
2019-04-11 10:15:13 -06:00
Eric Freese
c1910348c7
Implement completion suggestion strategy ( #111 )
...
Based on https://github.com/Valodim/zsh-capture-completion
`zpty -r` with a pattern seems to have some funky behavior on older
versions, giving unpredictable results
Don't use `-s` option to `zmodload`. It is not available in zsh versions
older than 5.3
If running in sync mode and a completion takes a long time, the user can
^C out of it. We need to use `always` in the strategy function or 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.
User can have many different completion styles set that will modify what
they've already typed. These styles will result in suggestions that
don't match what the user has already typed. We try our best to unset
some of the more problematic ones, but add some code to fetch to
invalidate suggestions that don't match what the user's already typed.
2019-04-11 09:53:55 -06:00
Eric Freese and GitHub
937d6fc241
Merge pull request #418 from zsh-users/features/manual-rebind
...
Allow disabling of automatic widget re-binding
2019-04-10 13:53:37 -06:00
Eric Freese
b9fee8a324
Allow disabling of automatic widget re-binding
...
Addresses github #411
2019-04-10 11:43:21 -06:00
Eric Freese
db290c518b
cleanup: Leave max size config unset by default to match other options
2019-04-10 11:43:20 -06:00
Eric Freese
d8ba53678e
cleanup: Use + param expansion flag in arithmetic context
2019-04-10 11:42:25 -06:00
Eric Freese
4cd210b70d
Fix async suggestions when SH_WORD_SPLIT is set
2019-04-10 09:51:33 -06:00
Eric Freese and GitHub
586b51366b
Merge pull request #417 from zsh-users/features/async-process-substitution
...
Refactor async mode to no longer use zpty
2019-04-10 08:06:52 -06:00
Eric Freese
e405afab29
Refactor async mode to no longer use zpty
...
See technique used in `fast-syntax-highlighting`:
- https://github.com/zdharma/fast-syntax-highlighting/commit/ca2e18bbc9e27b9264206c257d2ab68838162c70
- http://www.zsh.org/mla/users/2018/msg00424.html
Also see http://www.zsh.org/mla/users/2018/msg00432.html
In 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.
There is an upstream bug that prevents ctrl-c from resetting the prompt
immediately after a suggestion has been fetched asynchronously. A patch
has been submitted, but a workaround for now is to add `command true`
after the exec.
See https://github.com/zsh-users/zsh-autosuggestions/issues/364
2019-04-09 14:45:22 -06:00
Eric Freese
a5dc4a8db4
Fix version in compiled plugin script
2019-04-09 14:43:48 -06:00
Eric Freese
543f2b5477
Support new zsh version
2019-04-09 14:12:35 -06:00
Eric Freese
a36a9aca44
Enable tcsetpgrp to support job control
...
See https://github.com/zsh-users/zsh-docker/pull/15
2019-04-09 13:14:34 -06:00
Eric Freese and GitHub
cbf0e24b18
Merge pull request #415 from zsh-users/develop
...
v0.5.1
2019-04-03 10:58:45 -06:00
Eric Freese
f94e667f59
v0.5.1
2019-04-03 10:52:43 -06:00
Eric Freese
3ee91c731c
Update changelog for v0.5.1 release
2019-04-03 10:51:48 -06:00
Eric Freese and GitHub
0b13f663da
Merge pull request #413 from zsh-users/features/faster-prompts
...
Features/faster prompts
2019-04-02 07:39:55 -06:00
Eric Freese
f76472272e
cleanup: Remove unnecessary braces
2019-04-01 14:36:31 -06:00
Eric Freese
50579b3371
Move widget definitions inside anonymous function
2018-12-21 23:20:08 -07:00
Eric Freese and GitHub
66b842579a
Merge pull request #403 from okdana/dana/typeset-g
...
Set global parameters with typeset -g
2018-12-21 23:19:23 -07:00
Eric Freese and GitHub
ebc2c07ac8
Merge pull request #402 from zsh-users/fixes/autocd-tab-completion
...
Respect user's set options when running original widget
2018-12-17 17:59:06 -07:00
Eric Freese
e937e89267
Respect user's set options when running original widget
...
Fixes GitHub #379
2018-12-16 21:13:02 -07:00
Eric Freese
11251d97ca
Merge branch 'master' into develop
2018-12-16 20:50:16 -07:00
Eric Freese
41657e3565
Revert async process substitution & completion strategy
...
They're not quite ready. Keep them on a feature branch for now.
2018-12-16 20:49:06 -07:00
Eric Freese
70f36c007d
Finish renaming "default" strategy to "history"
2018-11-24 15:07:08 -07:00
Eric Freese and GitHub
a7f0106b31
Merge pull request #393 from zsh-users/releases/v0.5.0
...
Releases/v0.5.0
2018-11-24 10:00:59 -07:00
Eric Freese
286656635c
v0.5.0
2018-11-24 09:56:52 -07:00
Eric Freese
0d994d4732
Update changelog for v0.5.0 release
2018-11-24 09:56:52 -07:00
Eric Freese
f0f1332e6b
Add after_sourcing hook for tests
...
Is executed immediately after sourcing the plugin
2018-11-24 09:56:52 -07:00
Eric Freese
a78ea16c50
Support fallback strategies by setting array in config
2018-11-24 09:56:30 -07:00
Eric Freese
62f5f14f2f
default => history
2018-11-24 09:56:00 -07:00
Eric Freese
4540304fa0
Reset opts in some functions affected by GLOB_SUBST
...
Should fix GitHub #334
2018-11-19 15:15:48 -07:00
Eric Freese
df6f6f9ff4
Add install directions for Antigen
2018-11-19 15:15:48 -07:00
Eric Freese
4097d6e0ae
Support widgets starting with dashes (ex: -a-widget)
...
Fixes #337
2018-11-19 15:15:48 -07:00
Eric Freese
822a1f30e0
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-11-19 15:15:48 -07:00
Eric Freese
0f80f9511d
Fix handling of newline + carriage return in async pty ( #333 )
2018-11-19 15:15:48 -07:00
Eric Freese
4838222dde
Merge branch 'master' into develop
2018-11-18 22:32:17 -07:00
Eric Freese and GitHub
35c286de9a
Merge pull request #390 from zsh-users/features/no-overwrite-config
...
Features/no overwrite config
2018-11-18 22:19:31 -07:00
Eric Freese
be6b22b864
Add info to the readme about docker testing image
2018-11-18 21:35:52 -07:00
Eric Freese
69d7fa14d3
Build docker image for running tests
...
Published at `ericfreese/zsh-autosuggestions-test`.
Contains:
- Ruby 2.5.3
- Supported zsh versions 4.3.11 through 5.6.2
- Test ruby dependencies
Also updates Circle CI config to use built docker image.
2018-11-18 21:11:35 -07:00
Eric Freese
4b28d92e01
Add after_sourcing hook for tests
...
Is executed immediately after sourcing the plugin
2018-11-10 14:55:13 -07:00
Eric Freese
b512a1b040
Merge branch 'master' into develop
2018-11-10 13:43:47 -07:00
Eric Freese
affe7c687e
Run circle-ci upgrade script
...
From: https://raw.githubusercontent.com/CircleCI-Public/circleci-config-generator/9979b712033a072c3135aafb3c06e252c4e791f1/cci-config-generator.sh
2018-11-10 13:11:25 -07:00
Eric Freese and GitHub
fa5d9c0ff5
Merge pull request #360 from zsh-users/fixes/glob-subst-bad-pattern
...
Reset opts in some functions affected by GLOB_SUBST
2018-07-17 22:26:55 -07:00
Eric Freese
681ffc7b28
Reset opts in some functions affected by GLOB_SUBST
...
Should fix GitHub #334
2018-07-13 22:16:53 -06:00
Eric Freese and GitHub
b8bf86f6ab
Merge pull request #359 from zsh-users/fixes/async-bad-file-descriptor
...
Fixes/async bad file descriptor
2018-07-13 20:50:31 -07:00
Eric Freese
7ab2124904
Kill async process by id when job control disabled
2018-07-13 21:48:25 -06:00
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 and GitHub
ebaf409002
Merge pull request #355 from amehmeto/patch-1
...
Update INSTALL.md
2018-07-02 20:59:14 -06:00
Eric Freese and GitHub
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
Eric Freese and GitHub
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 and GitHub
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 and GitHub
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
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 and GitHub
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