aboutsummaryrefslogtreecommitdiff
path: root/helix-tui
diff options
context:
space:
mode:
authorGokul Soumya2022-07-08 22:05:06 +0000
committerPascal Kuthe2022-10-01 15:00:32 +0000
commit999b45b28c157418c20a9a8cd9219db6ce0beac7 (patch)
tree2e865dec1254cfe759b04c72ece5e7d2af5d0991 /helix-tui
parentc9584251f321a8540cf530561896b2f48f0b76a2 (diff)
Support different kinds of underline rendering
Adds four new modifiers that can be used in themes: - undercurled - underdashed - underdotted - double-underline
Diffstat (limited to 'helix-tui')
-rw-r--r--helix-tui/src/backend/crossterm.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/helix-tui/src/backend/crossterm.rs b/helix-tui/src/backend/crossterm.rs
index eff098b3..252036f3 100644
--- a/helix-tui/src/backend/crossterm.rs
+++ b/helix-tui/src/backend/crossterm.rs
@@ -153,7 +153,7 @@ impl ModifierDiff {
if removed.contains(Modifier::ITALIC) {
map_error(queue!(w, SetAttribute(CAttribute::NoItalic)))?;
}
- if removed.contains(Modifier::UNDERLINED) {
+ if removed.intersects(Modifier::ANY_UNDERLINE) {
map_error(queue!(w, SetAttribute(CAttribute::NoUnderline)))?;
}
if removed.contains(Modifier::DIM) {
@@ -179,6 +179,18 @@ impl ModifierDiff {
if added.contains(Modifier::UNDERLINED) {
map_error(queue!(w, SetAttribute(CAttribute::Underlined)))?;
}
+ if added.contains(Modifier::UNDERCURLED) {
+ map_error(queue!(w, SetAttribute(CAttribute::Undercurled)))?;
+ }
+ if added.contains(Modifier::UNDERDOTTED) {
+ map_error(queue!(w, SetAttribute(CAttribute::Underdotted)))?;
+ }
+ if added.contains(Modifier::UNDERDASHED) {
+ map_error(queue!(w, SetAttribute(CAttribute::Underdashed)))?;
+ }
+ if added.contains(Modifier::DOUBLE_UNDERLINED) {
+ map_error(queue!(w, SetAttribute(CAttribute::DoubleUnderlined)))?;
+ }
if added.contains(Modifier::DIM) {
map_error(queue!(w, SetAttribute(CAttribute::Dim)))?;
}