1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-18 02:42:05 +03:00
wezterm/vtparse
Wez Furlong b35f3aa199 Add Curly, Dotted, Dashed and colored underline concept to model
These aren't currently rendered, but the parser and model now support
recognizing expanded underline sequences:

```
CSI 24 m   -> No underline
CSI 4 m    -> Single underline
CSI 21 m   -> Double underline
CSI 60 m   -> Curly underline
CSI 61 m   -> Dotted underline
CSI 62 m   -> Dashed underline

CSI 58 ; 2 ; R ; G ; B m   -> set underline color to specified true color RGB
CSI 58 ; 5 ; I m           -> set underline color to palette index I (0-255)
CSI 59                     -> restore underline color to default
```

The Curly, Dotted and Dashed CSI codes are a wezterm assignment in the
SGR space.  This is by no means official; I just picked some numbers
that were not used based on the xterm ctrl sequences.

The color assignment codes 58 and 59 are prior art from Kitty.

refs: https://github.com/wez/wezterm/issues/415
2021-01-05 10:29:36 -08:00
..
src Add Curly, Dotted, Dashed and colored underline concept to model 2021-01-05 10:29:36 -08:00
Cargo.toml deps: misc updates 2020-12-29 09:24:34 -08:00
README.md vtparse: document things 2019-06-29 19:13:45 -07:00

vtparse

This is an implementation of a parser for escape and control sequences. It is based on the DEC ANSI Parser.

It has been modified slightly to support UTF-8 sequences.

vtparse is the lowest level parser; it categorizes the basic types of sequences but does not ascribe any semantic meaning to them.

You may wish to look at termwiz::escape::parser::Parser in the termwiz crate if you're looking for semantic parsing.

Comparison with the vte crate

vtparse has support for dynamically sized OSC buffers, which makes it suitable for processing large escape sequences, such as those used by the iTerm2 image protocol.