Wez Furlong
52a65370fa
cargo fmt with rust 1.38
2019-09-28 21:40:40 -07:00
Wez Furlong
950a7d2b22
cargo fix dyn
2019-09-28 20:29:48 -07:00
Wez Furlong
23e174a324
fully bump filedescriptor dep
2019-07-23 09:50:48 -07:00
Wez Furlong
6ace6d4fcc
avoid a panic when resizing a muxed tab as the first event
2019-07-16 09:34:51 -07:00
Wez Furlong
d18383416e
termwiz: update version
...
This pulls in the new vtparse crate and publishes Mark's new
API in the termwiz parser.
2019-06-29 19:20:11 -07:00
Wez Furlong
5440cbe521
replace vte with our own vtparse crate
...
This enables using large OSC buffers in a form that we can publish
to crates.io without blocking on an external crate. Large OSC
buffers are important both for some tunnelling use cases and for
eg: iTerm2 image protocol handling.
2019-06-29 16:28:39 -07:00
Wez Furlong
2361d88c2a
initial take on a low level vt parser
...
This is based on the state machine described by
https://vt100.net/emu/dec_ansi_parser
and the public domain C implementation:
https://github.com/haberman/vtparse
2019-06-29 15:21:09 -07:00
Mark Thomas
dbb0bd565e
add parse_first_as_vec
...
Add a convenience function to the escape parser that, like `parse_first`,
matches only the first escape sequence, but instead collects all matching
actions.
2019-06-25 06:44:30 -07:00
Wez Furlong
2c7138cc6e
use consistent version of filedescriptor crate
2019-06-22 14:31:19 -07:00
Wez Furlong
cb4fa1ac21
get_dirty_lines now uses Cow<Line>
...
This avoids some extra allocations in the local tab case.
2019-06-22 06:57:35 -07:00
Wez Furlong
97daa8b246
switch to using the poll stuff from filedescriptor 0.3
2019-06-19 00:01:35 -07:00
Wez Furlong
b58d329b07
some plumbing to use Surface+Change for the mux protocol
2019-06-16 21:04:53 -07:00
Wez Furlong
01a8c32b55
unblock tunneled mux protocol work
...
It's taking a while for https://github.com/jwilm/vte/pull/20 to get
merged, so point to my branch directly while I build out some
tunneled mux protocol escape sequences.
I'll need to fork vte on crates.io if vte doesn't merge the PR
before the next termwiz crate bump.
2019-06-13 06:57:10 -07:00
Wez Furlong
86cd39eb4e
we can now send input to a client tab
2019-06-09 16:33:57 -07:00
Wez Furlong
8055957406
clippy
2019-06-09 07:33:00 -07:00
Wez Furlong
5ccff722ef
more log
2019-06-08 15:37:55 -07:00
Wez Furlong
3b94cddf8e
allow specifying key bindings in wezterm.toml
...
refs: https://github.com/wez/wezterm/issues/32
2019-06-08 08:28:34 -07:00
Wez Furlong
e9780d6a34
termwiz: bump version for crates.io/streampager
2019-06-02 21:00:26 -07:00
Wez Furlong
43fcca6343
termwiz: ensure that the tty is in blocking mode
...
Refs: https://github.com/markbt/streampager/issues/1
Refs: https://github.com/markbt/streampager/issues/3
2019-06-02 20:36:01 -07:00
Wez Furlong
c0e3bdfb70
termwiz: avoid emitting a wake event on a spurious pipe wakeup
2019-06-02 18:27:15 -07:00
Wez Furlong
ae303fea56
termwiz: avoid emitting a resize event on a spurious sigwinch read
2019-06-02 18:11:07 -07:00
Wez Furlong
d000938fef
emulate poll(2) on macos using select(2)
...
Refs: https://github.com/wez/wezterm/issues/31
2019-06-02 16:15:17 -07:00
Wez Furlong
090c24554f
introduce our own poll function
...
This is just a minor refactoring at this stage
Refs https://github.com/wez/wezterm/issues/31
2019-06-02 14:53:07 -07:00
Wez Furlong
00c1000caa
bump termwiz version for crates.io
2019-06-02 13:55:25 -07:00
Mark Thomas
70741d4f80
set underline and blink in fallback path
...
pull/29 inadvertently removed the fallback path for setting single
underline and slow blink. Restore it.
2019-06-02 13:55:07 -07:00
Mark Thomas
3f16979067
clean up flush_pending_attr
...
The `flush_pending_attr` method does lots of unnecessary comparisons.
If the attributes have changed, then it works by resetting the
attributes and then setting new values. There's no need to emit the
codes for exiting modes.
It also doesn't support double underscore or rapid blink in the cases
where the terminfo capabilities are used, as these capabilities can't
express these attributes. Fall back to CSI sequences when these
attributes are requested.
2019-06-02 12:41:46 -07:00
Mark Thomas
90689d4406
set colors after resetting attributes
...
Changing the terminal attributes (bold, underline, etc.) involves
emitting the `exit_attribute_mode` or SGR reset sequence. This also
resets the colors back to their defaults. If this happens when the
foreground or background colors haven't changed, set the colors again.
2019-06-02 12:41:46 -07:00
Wez Furlong
99919dc807
implement answerback for osc 4, 10-18
...
These codes are used to change the color palette, but if the `?`
string is used in place of a color spec, then we must respond with
the current color value string for that palette entry, so lets
implement that!
2019-06-02 12:19:58 -07:00
Wez Furlong
8f8d03fc05
support osc 10-19 dynamic color changing
2019-06-01 21:47:25 -07:00
Wez Furlong
276e9aef91
osc 4 accepts multiple parameters
2019-06-01 19:59:44 -07:00
Wez Furlong
d18dbe9ff7
parse OSC 4
...
This code is used to change the color palette at runtime.
We can parse it but not do anything useful with it yet.
2019-06-01 15:39:46 -07:00
Wez Furlong
fb1a5b42d2
bump filedescriptor crate
2019-06-01 08:23:23 -07:00
Wez Furlong
906aa0c95c
termwiz: use filedescriptor crate instead of RawHandle bits
2019-06-01 07:43:06 -07:00
Wez Furlong
38adc117f4
termwiz: use filedescriptor crate instead of RawFd bits
2019-05-31 22:52:40 -07:00
Wez Furlong
3c6552b975
cargo publish wants a.b.c rather than a.b for package.version
2019-05-27 20:09:33 -07:00
Wez Furlong
98bd82e212
bump some deps
2019-05-27 20:08:30 -07:00
Wez Furlong
91ea7cd576
add keywords
2019-05-27 19:57:44 -07:00
Wez Furlong
37f451843c
termwiz: prep for publishing on crates.io
2019-05-27 19:53:52 -07:00
Wez Furlong
3a3755fbe6
moved varbincode to its own repo
2019-05-27 19:44:55 -07:00
Wez Furlong
5976e8d229
lineedit: add tab completion support
2019-05-27 17:39:10 -07:00
Wez Furlong
330c8e8c1f
lineedit: add ctrl-d -> EOF
2019-05-27 16:17:49 -07:00
Wez Furlong
a94c802a74
lineedit: add history
2019-05-27 13:35:24 -07:00
Wez Furlong
2b85d5dca4
termwiz: introduce host concept, prompt and coloring
...
The LineEditorHost trait allows colorizing the line editor.
2019-05-27 12:42:19 -07:00
Wez Furlong
fb5d0464fb
lineedit: ctrl-c cancels the current line
2019-05-27 10:29:22 -07:00
Wez Furlong
3e24ef2ea8
cargo fmt
2019-05-27 10:20:33 -07:00
Wez Furlong
0d2bbcfce6
lineedit: add ctrl-w to delete word up to cursor
2019-05-27 09:21:19 -07:00
Wez Furlong
56885e5bad
lineedit: add word movement commands
2019-05-27 09:18:36 -07:00
Wez Furlong
0f3869be16
lineedit: implement ctrl-k and fixup deletion of emoji
2019-05-27 08:17:24 -07:00
Wez Furlong
8a44344937
lineedit: split out action and movement concepts
...
This makes it a bit easier to implement more key bindings and
to make them configurable in the future
2019-05-27 08:02:38 -07:00
Wez Furlong
8a74eff72e
lineedit: add ctrl-L repaint/refresh binding
2019-05-27 07:14:39 -07:00