diff options
| author | Aram Drevekenin <aram@poor.dev> | 2021-04-06 15:16:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-06 15:16:18 +0200 |
| commit | 1c71d16eb534bb60fbaa0dd894a03cb9ef16a37a (patch) | |
| tree | c28e072fd463d6cdf8d1ad9f7c3dfb9c55151dc7 /src/client | |
| parent | fix(terminal): do not hang app if terminal refuses to quit (#255) (diff) | |
| download | sl0ppij-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.rs | 64 |
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)); |
