Wez Furlong
7c0536f9a3
avoid panic if an app sets an invalid scroll region
2018-02-20 08:42:08 -08:00
Wez Furlong
279b2018fd
Render cursor and selection for resized lines
...
If the user enlarges the terminal we can have regions of the vertex
buffer that have colors that default to alpha channel 0. This is
normally fine but breaks rendering of the cursor and the selection;
those attributes are out of band from the normal cell attributes,
especially for whitespace cells, so we need to handle those in
the degenerate case at the end of a line render.
Refactor the code that computes the cursor and selection colors
so that we can call it and use it in both places.
2018-02-19 21:29:27 -08:00
Wez Furlong
25e2dc2a96
fix an issue with the selection when in scrollback
2018-02-19 16:26:10 -08:00
Wez Furlong
dd238d5b50
add DCH
2018-02-19 15:33:13 -08:00
Wez Furlong
d041b7be0d
fix an issue with scrolling within a region
2018-02-19 14:39:07 -08:00
Wez Furlong
37e5d8571a
add HVP sequence. Just like CUP.
2018-02-19 14:02:54 -08:00
Wez Furlong
c9eba103d1
Use vecdeque for screen lines
...
This brings us back in the right perf ballpark
2018-02-19 13:08:47 -08:00
Wez Furlong
58f423eebe
fix bounds for scrolling
...
unfortunately this is super expensive and halves the cat test perf.
2018-02-19 11:26:19 -08:00
Wez Furlong
02846f4c82
use Cell::reset to clear portions of a line
2018-02-19 10:51:34 -08:00
Wez Furlong
a0b4630998
micro opt cursor moving during print
2018-02-19 10:47:49 -08:00
Wez Furlong
aa95eaefd9
micro-opt scroll_up some more
2018-02-19 10:27:28 -08:00
Wez Furlong
48997f02d1
micro optimize cell creation
2018-02-19 09:08:17 -08:00
Wez Furlong
1b989b011d
improve scroll_up perf
...
We were marking the entire scrollback history as dirty on each line
scroll. This was from the early days and isn't needed any more.
This brings the runtime of:
```
$ find /usr > /tmp/usr-files.txt
$ time cat /tmp/usr-files.txt
```
down from ~2.5s to ~1.2s.
Also avoid a redundant line_mut() call in set_cell().
2018-02-19 08:14:03 -08:00
Wez Furlong
563408df6f
micro optimization for scroll_up
2018-02-19 07:55:49 -08:00
Wez Furlong
450ed0e82c
don't explode when scrolling back
2018-02-18 23:04:11 -08:00
Wez Furlong
fa0549b76e
add some more comments
...
and back out the get_all flag that was added as a temp workaround
in the earlier stages of adding opengl support.
2018-02-18 17:21:02 -08:00
Wez Furlong
de700e0207
make it very slightly cheaper to enumerate the screen lines
2018-02-17 15:04:48 -08:00
Wez Furlong
b8eb6dbedc
make color -> uniform conversion more ergonomic
2018-02-17 08:25:59 -08:00
Wez Furlong
c8a58cac06
we now render useless blocks in the fg color via gl
2018-02-16 23:28:51 -08:00
Wez Furlong
20965e786f
start hacking on OpenGL ES2 rendering
2018-02-16 21:44:56 -08:00
Wez Furlong
20f4b21f13
add some more tests
2018-02-12 08:25:31 -08:00
Wez Furlong
28179ff981
check negative value for ECH, too
2018-02-12 08:15:35 -08:00
Wez Furlong
438822d63b
add ECH handling
2018-02-12 07:57:22 -08:00
Wez Furlong
09f481e753
avoid ambiguous true color csi SGR sequence
2018-02-12 07:40:35 -08:00
Wez Furlong
ad3524bfc8
run down an off-by-one in VPA handling
...
This manifested with vim-inside-tmux losing my top tmux status line.
Add a test!
2018-02-11 23:56:42 -08:00
Wez Furlong
0870e6c7e4
tweak comments and error printing around OSC
2018-02-11 22:29:21 -08:00
Wez Furlong
6fb12c3520
add test for reverse index
2018-02-11 21:58:53 -08:00
Wez Furlong
18990a24b4
Basic tab stops
2018-02-11 21:54:18 -08:00
Wez Furlong
4c087d32c1
add NEL sequence and test
2018-02-11 20:56:05 -08:00
Wez Furlong
e6fdd4140b
add more tests
2018-02-11 20:46:59 -08:00
Wez Furlong
5e49a79705
fix a selection range issue
...
When dragging a multi-line selection down and to the left, we were
incorrectly setting the computed column range.
Add a test and fix it.
2018-02-11 18:35:58 -08:00
Wez Furlong
2ee0414b66
avoid panic when dragging onto partial rows/columns
2018-02-11 18:09:48 -08:00
Wez Furlong
d0de936f62
add some tests for a double-width selection bug
2018-02-11 17:56:49 -08:00
Wez Furlong
adc11f303a
Add some tests for hyperlink parsing and handling
2018-02-11 13:48:51 -08:00
Wez Furlong
ac339f9258
refactor term tests to make it less repeaty
2018-02-11 13:01:36 -08:00
Wez Furlong
21f0e3fd98
Recognize clicks on hyperlinks
...
There's plumbing for handling these events in the TerminalHost
trait, but we don't do anything beyond printing them at the moment.
2018-02-11 12:28:37 -08:00
Wez Furlong
b6aa2cffea
make hyperlinks show underlined on hover
...
Adds some plumbing to track the current mouse position and
extract the hyperlink from the cell that is being hovered over.
We render those cells with underline, possibly in a different color.
We don't yet do anything on click.
2018-02-11 12:11:02 -08:00
Wez Furlong
1546c2ef0b
avoid constructing a vec in the common answerback code path
2018-02-11 09:44:04 -08:00
Wez Furlong
7ad2468937
hide AnswerBack from the public interface
...
This felt a bit repeatey and it pre-dated the TerminalHost trait.
I'd like to remove it completely but there are some frustrating and
fiddly lifetime concerns with mutable TerminalHost reference so I'm
hiding it from the public interface and bridging it the answerback
stream into the host at the bottom of the advance_bytes method for
now.
2018-02-11 09:40:02 -08:00
Wez Furlong
5a6ed045ad
Render underline and double underline
2018-02-10 21:25:43 -08:00
Wez Furlong
ff34198b8a
move terminalstate to its own file
2018-02-10 19:14:16 -08:00
Wez Furlong
2329783082
move Terminal to its own file
2018-02-10 19:10:04 -08:00
Wez Furlong
b967bfe3fd
move screen to own file
2018-02-10 19:01:44 -08:00
Wez Furlong
604d1c27d7
move line to its own file
2018-02-10 18:55:43 -08:00
Wez Furlong
ddef4e7f7c
move cell types to their own file
2018-02-10 18:49:57 -08:00
Wez Furlong
7e7c622b79
move input types to their own file
2018-02-10 18:41:58 -08:00
Wez Furlong
55ae1fb76a
move selection types to their own file
2018-02-10 18:41:40 -08:00
Wez Furlong
68949808ba
parse and record hyperlinks as cell attributes
2018-02-10 15:45:45 -08:00
Wez Furlong
1500063c96
Start adding hyperlink support code
2018-02-10 15:12:21 -08:00
Wez Furlong
76fe17b20b
Cell is no longer Copy
...
This will support Cells owning `Rc<>` to things like hyperlink
data or image data.
2018-02-10 09:52:14 -08:00