aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorAram Drevekenin <aram@poor.dev>2021-04-06 15:16:18 +0200
committerGitHub <noreply@github.com>2021-04-06 15:16:18 +0200
commit1c71d16eb534bb60fbaa0dd894a03cb9ef16a37a (patch)
treec28e072fd463d6cdf8d1ad9f7c3dfb9c55151dc7 /src/client
parentfix(terminal): do not hang app if terminal refuses to quit (#255) (diff)
downloadsl0ppij-1c71d16eb534bb60fbaa0dd894a03cb9ef16a37a.tar.gz
sl0ppij-1c71d16eb534bb60fbaa0dd894a03cb9ef16a37a.tar.xz
sl0ppij-1c71d16eb534bb60fbaa0dd894a03cb9ef16a37a.zip
fix(terminal): support bright colors (#256)
* fix(terminal): support bright colors * style(fmt): make it uglier because rustfmt
Diffstat (limited to 'src/client')
-rw-r--r--src/client/panes/terminal_character.rs64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/client/panes/terminal_character.rs b/src/client/panes/terminal_character.rs
index 053ebd3f..ce967ef8 100644
--- a/src/client/panes/terminal_character.rs
+++ b/src/client/panes/terminal_character.rs
@@ -37,6 +37,14 @@ pub enum NamedColor {
Magenta,
Cyan,
White,
+ BrightBlack,
+ BrightRed,
+ BrightGreen,
+ BrightYellow,
+ BrightBlue,
+ BrightMagenta,
+ BrightCyan,
+ BrightWhite,
}
impl NamedColor {
@@ -50,6 +58,14 @@ impl NamedColor {
NamedColor::Magenta => format!("{}", 35),
NamedColor::Cyan => format!("{}", 36),
NamedColor::White => format!("{}", 37),
+ NamedColor::BrightBlack => format!("{}", 90),
+ NamedColor::BrightRed => format!("{}", 91),
+ NamedColor::BrightGreen => format!("{}", 92),
+ NamedColor::BrightYellow => format!("{}", 93),
+ NamedColor::BrightBlue => format!("{}", 94),
+ NamedColor::BrightMagenta => format!("{}", 95),
+ NamedColor::BrightCyan => format!("{}", 96),
+ NamedColor::BrightWhite => format!("{}", 97),
}
}
fn to_background_ansi_code(&self) -> String {
@@ -62,6 +78,14 @@ impl NamedColor {
NamedColor::Magenta => format!("{}", 45),
NamedColor::Cyan => format!("{}", 46),
NamedColor::White => format!("{}", 47),
+ NamedColor::BrightBlack => format!("{}", 100),
+ NamedColor::BrightRed => format!("{}", 101),
+ NamedColor::BrightGreen => format!("{}", 102),
+ NamedColor::BrightYellow => format!("{}", 103),
+ NamedColor::BrightBlue => format!("{}", 104),
+ NamedColor::BrightMagenta => format!("{}", 105),
+ NamedColor::BrightCyan => format!("{}", 106),
+ NamedColor::BrightWhite => format!("{}", 107),
}
}
}
@@ -383,6 +407,46 @@ impl CharacterStyles {
params_used += 1; // even if it's a bug, let's not create an endless loop, eh?
}
[49, ..] => *self = self.background(Some(AnsiCode::Reset)),
+ [90, ..] => {
+ *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightBlack)))
+ }
+ [91, ..] => *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightRed))),
+ [92, ..] => {
+ *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightGreen)))
+ }
+ [93, ..] => {
+ *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightYellow)))
+ }
+ [94, ..] => *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightBlue))),
+ [95, ..] => {
+ *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightMagenta)))
+ }
+ [96, ..] => *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightCyan))),
+ [97, ..] => {
+ *self = self.foreground(Some(AnsiCode::NamedColor(NamedColor::BrightWhite)))
+ }
+ [100, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightBlack)))
+ }
+ [101, ..] => *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightRed))),
+ [102, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightGreen)))
+ }
+ [103, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightYellow)))
+ }
+ [104, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightBlue)))
+ }
+ [105, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightMagenta)))
+ }
+ [106, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightCyan)))
+ }
+ [107, ..] => {
+ *self = self.background(Some(AnsiCode::NamedColor(NamedColor::BrightWhite)))
+ }
_ => {
// if this happens, it's a bug
let _ = debug_log_to_file(format!("unhandled csi m code {:?}", ansi_params));