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.
2017-02-18 11:15: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
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.
2017-02-17 23:20:04 -07:00
Eric Freese
75e850577d
Gracefully handle being sourced multiple times
...
Should fix #126
2017-02-17 23:19:55 -07:00
Eric Freese
a0fcd81ce1
Destroy zpty on load if it already exists
2017-02-17 22:47:28 -07:00
Eric Freese
39ca3dac45
Use a different name for feature detection zpty
...
So that it doesn't conflict when the file is sourced again
2017-02-17 22:07:48 -07:00
Eric Freese
dcce973287
Remove support for long-deprecated options
...
These options have been deprecated for over a year.
2017-02-17 18:45:46 -07:00
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
2017-02-17 18:32:52 -07:00
Eric Freese
a109f52fe4
Merge pull request #180 from zsh-users/features/async
...
Asynchronous suggestions
2017-02-17 18:28:54 -07:00
Eric Freese
23ef16c297
Do not show suggestions if the buffer is empty
2017-02-17 18:26:34 -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
06fca77ffb
Readme updates for v0.4.0
2017-02-16 20:12:04 -07:00
Eric Freese
9feac573c9
Do not show any error output from async zpty server process
2017-02-16 19:27:32 -07:00
Eric Freese
ed8056c5e8
Lots of async changes
2017-02-16 19:19:30 -07:00
Eric Freese
38eb7cdafd
Update license date
2017-02-16 19:07:41 -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
2c465a932a
Rename async pty name config var
2017-01-29 10:39:07 -07:00
Eric Freese
e3eb286ea2
Lots of little async cleanups
2017-01-27 15:18:26 -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
40bb2e7804
little cleanup
2017-01-26 17:00:56 -07:00
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)
2017-01-26 16:50:19 -07:00
Eric Freese
f33b605a63
Move async initialization into `start` function to keep in one place
2017-01-26 16:40:34 -07:00
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)
2017-01-26 16:40:34 -07:00
Eric Freese
3f57198d07
Only bind widgets once, on initial sourcing
2017-01-26 16:23:27 -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
6c5cd42331
Go back to tracking last pid because `kill %1` didn't seem to be working
2017-01-25 00:00:53 -07:00
Eric Freese
54e1eee924
Optimize case where manually typing in a suggestion
2017-01-25 00:00:13 -07:00
Eric Freese
21d9eda5dd
Wrap suggestion fetch command in parens to actually run in background
2017-01-24 23:59:38 -07:00
Eric Freese
50e6832b8c
Escape the prefix passed into the match_prev_cmd strategy
2017-01-24 23:06:41 -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
b3208b08af
Pass the chosen strategy into the suggestion server pty
2017-01-24 22:48:30 -07:00
Eric Freese
ab2742537f
Quote the suggestion to support sh_split_word option
2017-01-24 22:27:47 -07:00
Eric Freese
e5a5b0c1e0
Output only newlines in the pty
2017-01-24 22:27:09 -07:00
Eric Freese
0337005eb0
Disable word splitting while reading to preserve whitespace
2017-01-24 21:59:22 -07:00
Eric Freese
b530b0c996
Use `zpty -r` with pattern matching to fetch suggestion
2017-01-24 20:01:30 -07:00
Eric Freese
5c891afd48
Reset zsh options inside pty (from zsh-async)
2017-01-24 20:01:27 -07:00
Eric Freese
e33eb570c4
Send only the prefix to the suggestion server
2017-01-24 20:01:11 -07:00
Eric Freese
fba20b042e
Use %1 instead of tracking pid
2017-01-24 20:00:50 -07:00
Eric Freese
0308ed797e
Rename worker to server
2017-01-24 20:00:34 -07:00
Eric Freese
e72c2d87e5
add a bunch of comments
2017-01-24 19:53:59 -07:00
Eric Freese
ab8f295225
First pass at async functionality
2017-01-24 19:45:11 -07:00