1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-18 10:52:16 +03:00
Commit Graph

2506 Commits

Author SHA1 Message Date
Wez Furlong
edd5911535 Add a small font styling engine
This enables selecting an italic font when the cell is italic,
but has more power beyond just that simple property.

This runs a little hot on the CPU so there's probably some caching and
tweaking that can be done to make the evaluation a bit cheaper.
2018-02-07 09:23:24 -08:00
Wez Furlong
4d03fce569 tweak note 2018-02-07 07:53:51 -08:00
Wez Furlong
7ade4434fe Add basic config file parsing
So that we no longer assume Operator Mono SSm.
We now default to `monospace`.  I just tried this and the font metrics
appear to be wonky, so there's some tweaking to do.
2018-02-07 07:51:04 -08:00
Wez Furlong
401530a899 lookup the $SHELL for the user rather than assume zsh 2018-02-06 22:48:28 -08:00
Wez Furlong
a78efced1c Meh, TravisCI Ubuntu is too old. 2018-02-06 22:24:36 -08:00
Wez Furlong
b0e8e2bfeb tweak travis config 2018-02-06 21:55:52 -08:00
Wez Furlong
7229de2ce6 Add a travis config 2018-02-06 21:44:26 -08:00
Wez Furlong
38bfd8bdc9 flesh out some details prior to pushing to github 2018-02-06 21:32:40 -08:00
Wez Furlong
532cf28782 add support for setting the primary selection 2018-02-06 20:40:46 -08:00
Wez Furlong
7657a91188 refactor to make it easier to use and extend TerminalHost 2018-02-05 08:52:35 -08:00
Wez Furlong
a4c7de7b9b We now support shift+insert to paste the selection 2018-02-05 08:22:08 -08:00
Wez Furlong
b24ac14c05 Add TerminalHost trait
This will make it easier to add copy/paste handling in a follow up.
2018-02-04 22:35:33 -08:00
Wez Furlong
5261f9f3d8 Enable mouse reporting
There's a bit of restructuring of XCB event handling going on to enable
this, and we only support SGR reporting at the moment.
2018-02-04 20:53:03 -08:00
Wez Furlong
f89d37401b Enable viewing the scrollback
Both mouse wheel and shift+{PageUp,PageDown} can be used to adjust
the scroll viewport.
2018-02-04 14:19:12 -08:00
Wez Furlong
0bec822f75 create the palette when we create the window
Rather than every time we paint and resize
2018-02-04 09:19:25 -08:00
Wez Furlong
09c70930b9 improve resize handling
Both in terms of resizing the window and running the `resize` utility.
2018-02-04 09:17:05 -08:00
Wez Furlong
4c8e3ffd75 improve clustering and cursor rendering
We weren't quite right with handling the cursor around double-width
characters.  We're now a bit more robust at this because we're
clustering and taking pains to consider the printable width of the
cell as well as the width of the shaped (eg: with contextual ligatures)
glyph.

There may still be issues with contextual ligatures of length 3,
but I haven't managed to nail down exactly the issue yet.
2018-02-04 08:28:32 -08:00
Wez Furlong
78c2df34fc use Range for scroll region 2018-02-02 09:02:30 -08:00
Wez Furlong
904f8fc059 better typing for rows and cursor position 2018-02-02 08:16:07 -08:00
Wez Furlong
c63c39409a use Position for line positioning CSIAction's 2018-02-02 07:35:08 -08:00
Wez Furlong
d152055700 reduce the variations on set/delta for cursor positioning 2018-02-02 00:46:04 -08:00
Wez Furlong
bb186da400 avoid eagerly casting some parsed sequences to usize
This helps to avoid unexpected integer overflow
2018-02-02 00:23:30 -08:00
Wez Furlong
25773466fb add a couple of sequences used by tmux when man is running 2018-02-01 07:42:16 -08:00
Wez Furlong
5cdb5149c3 suppress keypress debug prints 2018-02-01 00:26:01 -08:00
Wez Furlong
1cc180b813 test and fix a scrolling related bug 2018-02-01 00:22:33 -08:00
Wez Furlong
622c573201 fix boundary issue when scrolling and scrollback exceeded 2018-01-31 21:26:05 -08:00
Wez Furlong
e7e0aeebc2 Add support for cursor keys 2018-01-31 20:31:06 -08:00
Wez Furlong
a49e4b653b fix an issue with CR processing
This eliminates the zsh reversed % artifact issue.

Added a feature flag to turn on diagnostics even in release mode;

`cargo run --release --features debug-escape-sequences`
2018-01-31 19:00:15 -08:00
Wez Furlong
659ce4fc2d Make answerback more generic, enable title changing 2018-01-31 15:15:23 -08:00
Wez Furlong
11e6d538fc move term to its own crate
This makes it harder to accidentally violate separation of concerns.
2018-01-31 10:50:21 -08:00
Wez Furlong
4dcab21a97 placeholder for alt graphics mode
These are emitted by `top`
2018-01-31 10:15:39 -08:00
Wez Furlong
45793bd594 Add some more tests and bounds checks/limits 2018-01-31 10:07:50 -08:00
Wez Furlong
a55395d7c9 start building out unit tests 2018-01-30 22:44:14 -08:00
Wez Furlong
0eb4dd44b3 add IL and DL sequences
These probably aren't quite right
2018-01-30 07:31:31 -08:00
Wez Furlong
cb9a2129be handle reverse index escape sequence
This unlocks pressing `b` in `less` and `more` to scroll backwards.
To facilitate this I had to do a better job at scrolling up and down,
so beef up the code to enable that.  Scroll regions still need some
work; test case for that is running vim and then opening help.

Also: fixup the y position when rending rows; it was off by one row.
2018-01-29 23:29:56 -08:00
Wez Furlong
0ebf84ee1c adopt dirtying mechanism for more efficient screen updates
We now keep track of the dirty status on a per-line basis
and use that status to realize when we need to repaint a portion
of the screen.  This reduces the compute cost of redrawing
quite significantly; we're no longer on `top` when we're running
`top`!
2018-01-29 20:38:48 -08:00
Wez Furlong
740c3339a5 Add glyph caching 2018-01-29 09:38:06 -08:00
Wez Furlong
5b1ccc59b6 make CSIParser a bit more compact
The simpler escape sequences were getting a bit boiler-platey and long,
so hoist them up and perform matching at the main level.  This has the
side effect of discarding params after a match; that's fine for these
as it only seems to be important for the SGR sequences.
2018-01-29 08:00:30 -08:00
Wez Furlong
be30b1cb54 there's already a wterm, rename to wezterm 2018-01-28 23:52:21 -08:00
Wez Furlong
544dd70ac1 Add CUU, CUD, CUB handling 2018-01-28 23:50:53 -08:00
Wez Furlong
67f07b4fcc add primitive auto wrapping support 2018-01-28 23:44:38 -08:00
Wez Furlong
5dbf90412f bounds check should be on the actual number of cols
Don't trust that a given Line has exactly phys_cols columns.
2018-01-28 23:33:31 -08:00
Wez Furlong
4a4d8c7186 add CUF cursor move support 2018-01-28 22:25:53 -08:00
Wez Furlong
2e73b937bb Add some state to track vertical scroll regions
However, it doesn't really do very much that is useful yet
2018-01-28 21:16:59 -08:00
Wez Furlong
6ed0e81f02 fix SetCursorPosXY; had rows/cols flipped 2018-01-28 21:13:11 -08:00
Wez Furlong
13a856bbb2 add device attributes answerback 2018-01-28 20:46:34 -08:00
Wez Furlong
1059620233 add stub for setting the scroll region 2018-01-28 20:33:21 -08:00
Wez Furlong
2011eec9f2 clamp cursor y position when moving the cursor 2018-01-28 19:30:07 -08:00
Wez Furlong
001eda902b tidy up basic scroll handling
Previously, we would not allocate a new line and would end up
panicking when we went off the end of the default screen height.
2018-01-28 18:05:22 -08:00
Wez Furlong
8d9cd83e6d add some more comments on CSIParser 2018-01-28 17:11:05 -08:00