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
d7171232c3
Merge branch 'develop' into features/completion-suggestions
2018-06-11 02:34:24 -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
bcbdad83e9
Support fallback strategies by setting array in config
2018-06-06 22:03:56 -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
3dbd9afaec
Fix completion strategy killing other pty's
...
Only a problem in synchronous mode
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
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
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
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
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.
2017-11-27 08:31:41 -07:00
Eric Freese
218acf2fbe
Merge branch 'fixes/match_prev_cmd_special_chars' into develop
2017-09-26 08:30:43 -06:00
Eric Freese
0681a1c121
Remove flaky test that doesn't really matter that much
...
Seems like this would happen on some machines but not on others. Not
sure exactly what's going on, but this is such an edge case I'm just
going to remove the test.
2017-09-26 08:23:00 -06:00
Eric Freese
9e110406fa
Add test for special characters with match_prev_cmd strategy
...
Github #247 and #258
2017-08-18 11:18:07 -06:00
Eric Freese
83129dd796
Make asynchronous suggestions disabled by default
...
While they are still experimental
2017-04-14 08:48:54 -06:00
Eric Freese
a2f0ffb122
Enabling suggestions should not fetch a suggestion if buffer is empty
2017-03-05 12:53:13 -05:00
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`.
2017-03-03 18:43:17 -05:00
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
2017-03-03 18:43:17 -05:00
Eric Freese
c52c428793
Fix issues with widgets wrapped by other plugins
...
Puts in a better fix for #126 and related issues.
2017-03-03 18:43:10 -05:00
Eric Freese
ea505b01e5
Add a spec for unlisted widgets fetching a new suggestion
2017-03-03 18:43:10 -05:00
Eric Freese
502fb4a174
Make tmux_socket_name public so you can access easily from binding.pry
...
Can attach while tests are stopped with `tmux -L <socket_name> attach`
2017-03-03 18:43:10 -05:00
Eric Freese
468b7403e9
Test should be passing block to RSpec wait_for
...
Fixes flaky test
2017-02-26 14:18:22 -07:00
Eric Freese
c9a51e0c4c
Handle dashes at the beginning of commands
2017-02-18 16:51:53 -07:00
Eric Freese
2cd99e64b7
Add a test for modifying widget list vars after sourcing plugin
2017-02-18 11:15:53 -07:00
Eric Freese
c70d685d15
Clean up widget list spec
2017-02-18 11:12:10 -07:00
Eric Freese
255359dbb8
Use +=
to be a bit more true to the spec language
2017-02-18 10:35:30 -07:00
Eric Freese
938144530c
Fix tests
2017-02-17 16:01:07 -07:00
Eric Freese
c4bfd8e2c6
Need to prevent zpty feature detection from HUPing existing zptys
2017-02-17 15:51:50 -07:00
Eric Freese
c959408305
Only wait a max of 2 seconds for content to match after clearing screen
2017-02-17 15:33:09 -07:00
Eric Freese
ed8056c5e8
Lots of async changes
2017-02-16 19:19:30 -07:00
Eric Freese
64e7ec5bf8
Rename internal term session method
2017-01-29 10:43:20 -07:00
Eric Freese
98f926d53d
Clean up TerminalSession constructor a bit
2017-01-29 10:43:00 -07:00
Eric Freese
51e8755634
TerminalSession methods return self to support chaining
2017-01-29 10:42:28 -07:00
Eric Freese
5151adfe40
Make TerminalSession#clear block until the screen is cleared
2017-01-29 10:40:05 -07:00
Eric Freese
c3425870f1
Wait for the terminal.clear to go through before continuing
...
Prevents some flakiness in tests
2017-01-27 14:07:06 -07:00
Eric Freese
89dd69d517
Add pry gem for debugging support
2017-01-27 14:06:37 -07:00
Eric Freese
2dbd261989
Allow configuring of zsh binary to run integration tests against
2017-01-26 16:04:46 -07:00
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.
2017-01-24 23:04:07 -07:00
Eric Freese
8e06a54b1c
Add test for string with "\n" in it
2017-01-24 22:49:21 -07:00
Eric Freese
debbffc79a
Add rspec test around accepting suggestions
2017-01-19 22:38:19 -07:00
Eric Freese
c22ab0e399
Implement suggestion integration tests in RSpec + tmux
2017-01-19 22:38:19 -07:00
Eric Freese
07a6768fcb
Add TerminalSession helper for managing a tmux session
2017-01-19 22:38:19 -07:00
Eric Freese
e6591d5de0
Add RSpec for high-level integration testing
2017-01-19 22:33:17 -07:00