mirror of
https://github.com/wez/wezterm.git
synced 2024-11-26 16:34:23 +03:00
term+termwiz: add Overline support
This commit teaches the terminal model about the overline attribute and the SGR codes to enable/disable overline. The render layer in the GUI doesn't yet understand this attribute.
This commit is contained in:
parent
4e6357b218
commit
badc4f9d9c
@ -2386,6 +2386,9 @@ impl TerminalState {
|
||||
Sgr::Underline(underline) => {
|
||||
self.pen.set_underline(underline);
|
||||
}
|
||||
Sgr::Overline(overline) => {
|
||||
self.pen.set_overline(overline);
|
||||
}
|
||||
Sgr::Blink(blink) => {
|
||||
self.pen.set_blink(blink);
|
||||
}
|
||||
|
@ -158,6 +158,7 @@ impl CellAttributes {
|
||||
bitfield!(strikethrough, set_strikethrough, 8);
|
||||
bitfield!(invisible, set_invisible, 9);
|
||||
bitfield!(wrapped, set_wrapped, 10);
|
||||
bitfield!(overline, set_overline, 11);
|
||||
|
||||
/// Returns true if the attribute bits in both objects are equal.
|
||||
/// This can be used to cheaply test whether the styles of the two
|
||||
|
@ -1094,6 +1094,7 @@ pub enum Sgr {
|
||||
Font(Font),
|
||||
Foreground(ColorSpec),
|
||||
Background(ColorSpec),
|
||||
Overline(bool),
|
||||
}
|
||||
|
||||
impl Display for Sgr {
|
||||
@ -1135,6 +1136,8 @@ impl Display for Sgr {
|
||||
Sgr::Invisible(false) => code!(InvisibleOff),
|
||||
Sgr::StrikeThrough(true) => code!(StrikeThroughOn),
|
||||
Sgr::StrikeThrough(false) => code!(StrikeThroughOff),
|
||||
Sgr::Overline(true) => code!(OverlineOn),
|
||||
Sgr::Overline(false) => code!(OverlineOff),
|
||||
Sgr::Font(Font::Default) => code!(DefaultFont),
|
||||
Sgr::Font(Font::Alternate(1)) => code!(AltFont1),
|
||||
Sgr::Font(Font::Alternate(2)) => code!(AltFont2),
|
||||
@ -1873,6 +1876,8 @@ impl<'a> CSIParser<'a> {
|
||||
SgrCode::InvisibleOff => one!(Sgr::Invisible(false)),
|
||||
SgrCode::StrikeThroughOn => one!(Sgr::StrikeThrough(true)),
|
||||
SgrCode::StrikeThroughOff => one!(Sgr::StrikeThrough(false)),
|
||||
SgrCode::OverlineOn => one!(Sgr::Overline(true)),
|
||||
SgrCode::OverlineOff => one!(Sgr::Overline(false)),
|
||||
SgrCode::DefaultFont => one!(Sgr::Font(Font::Default)),
|
||||
SgrCode::AltFont1 => one!(Sgr::Font(Font::Alternate(1))),
|
||||
SgrCode::AltFont2 => one!(Sgr::Font(Font::Alternate(2))),
|
||||
@ -1940,6 +1945,8 @@ pub enum SgrCode {
|
||||
BackgroundCyan = 46,
|
||||
BackgroundWhite = 47,
|
||||
BackgroundDefault = 49,
|
||||
OverlineOn = 53,
|
||||
OverlineOff = 55,
|
||||
|
||||
ForegroundBrightBlack = 90,
|
||||
ForegroundBrightRed = 91,
|
||||
|
Loading…
Reference in New Issue
Block a user