Commit Graph

259 Commits

Author SHA1 Message Date
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
Eric Freese debbffc79a Add rspec test around accepting suggestions 2017-01-19 22:38:19 -07:00
Eric Freese 4850119887 Add separate test task for RSpec 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