diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2022-02-14 19:10:13 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-14 19:10:13 +0300 |
commit | ed5dbc11183030367c9a510a9706f6791b54430f (patch) | |
tree | 3fd9bf595e164c8d89fb1215c8d68dc2d913324e /alacritty_terminal/src/term | |
parent | 774eb03f4ff01f692f645d930da54990bf92d19c (diff) | |
download | alacritty-ed5dbc11183030367c9a510a9706f6791b54430f.tar.gz alacritty-ed5dbc11183030367c9a510a9706f6791b54430f.zip |
Add support for dashed and dotted underlines
This finishes implementation of underline styles provided by
`CSI 4 : [1-5] m` escape sequence.
Diffstat (limited to 'alacritty_terminal/src/term')
-rw-r--r-- | alacritty_terminal/src/term/cell.rs | 10 | ||||
-rw-r--r-- | alacritty_terminal/src/term/mod.rs | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/alacritty_terminal/src/term/cell.rs b/alacritty_terminal/src/term/cell.rs index 49d25eb3..2af1fbac 100644 --- a/alacritty_terminal/src/term/cell.rs +++ b/alacritty_terminal/src/term/cell.rs @@ -25,7 +25,11 @@ bitflags! { const LEADING_WIDE_CHAR_SPACER = 0b0000_0100_0000_0000; const DOUBLE_UNDERLINE = 0b0000_1000_0000_0000; const UNDERCURL = 0b0001_0000_0000_0000; - const ALL_UNDERLINES = Self::UNDERLINE.bits | Self::DOUBLE_UNDERLINE.bits | Self::UNDERCURL.bits; + const DOTTED_UNDERLINE = 0b0010_0000_0000_0000; + const DASHED_UNDERLINE = 0b0100_0000_0000_0000; + const ALL_UNDERLINES = Self::UNDERLINE.bits | Self::DOUBLE_UNDERLINE.bits + | Self::UNDERCURL.bits | Self::DOTTED_UNDERLINE.bits + | Self::DASHED_UNDERLINE.bits; } } @@ -119,9 +123,7 @@ impl GridCell for Cell { && self.fg == Color::Named(NamedColor::Foreground) && !self.flags.intersects( Flags::INVERSE - | Flags::UNDERLINE - | Flags::DOUBLE_UNDERLINE - | Flags::UNDERCURL + | Flags::ALL_UNDERLINES | Flags::STRIKEOUT | Flags::WRAPLINE | Flags::WIDE_CHAR_SPACER diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs index 4d30602b..5ad1b4ad 100644 --- a/alacritty_terminal/src/term/mod.rs +++ b/alacritty_terminal/src/term/mod.rs @@ -1850,6 +1850,14 @@ impl<T: EventListener> Handler for Term<T> { cursor.template.flags.remove(Flags::ALL_UNDERLINES); cursor.template.flags.insert(Flags::UNDERCURL); }, + Attr::DottedUnderline => { + cursor.template.flags.remove(Flags::ALL_UNDERLINES); + cursor.template.flags.insert(Flags::DOTTED_UNDERLINE); + }, + Attr::DashedUnderline => { + cursor.template.flags.remove(Flags::ALL_UNDERLINES); + cursor.template.flags.insert(Flags::DASHED_UNDERLINE); + }, Attr::CancelUnderline => cursor.template.flags.remove(Flags::ALL_UNDERLINES), Attr::Hidden => cursor.template.flags.insert(Flags::HIDDEN), Attr::CancelHidden => cursor.template.flags.remove(Flags::HIDDEN), |