Skip to content

Commit

Permalink
feat: Default theme palette using 16 terminal colors
Browse files Browse the repository at this point in the history
  • Loading branch information
sudormrfbin authored and archseer committed Sep 5, 2021
1 parent 95cd2c6 commit e40e6db
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 4 deletions.
21 changes: 21 additions & 0 deletions book/src/themes.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,3 +123,24 @@ black = "#000000"

Remember that the `[palette]` table includes all keys after its header,
so you should define the palette after normal theme options.

If there is no `[palette]` section, a default palette which uses the terminal's default 16 colors are used:

| Color Name |
| --- |
| `black` |
| `red` |
| `green` |
| `yellow` |
| `blue` |
| `magenta` |
| `cyan` |
| `gray` |
| `light-red` |
| `light-green` |
| `light-yellow` |
| `light-blue` |
| `light-magenta` |
| `light-cyan` |
| `light-gray` |
| `white` |
6 changes: 3 additions & 3 deletions helix-view/src/graphics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,13 +224,13 @@ pub enum Color {
Magenta,
Cyan,
Gray,
DarkGray,
LightRed,
LightGreen,
LightYellow,
LightBlue,
LightMagenta,
LightCyan,
LightGray,
White,
Rgb(u8, u8, u8),
Indexed(u8),
Expand All @@ -250,14 +250,14 @@ impl From<Color> for crossterm::style::Color {
Color::Blue => CColor::DarkBlue,
Color::Magenta => CColor::DarkMagenta,
Color::Cyan => CColor::DarkCyan,
Color::Gray => CColor::Grey,
Color::DarkGray => CColor::DarkGrey,
Color::Gray => CColor::DarkGrey,
Color::LightRed => CColor::Red,
Color::LightGreen => CColor::Green,
Color::LightBlue => CColor::Blue,
Color::LightYellow => CColor::Yellow,
Color::LightMagenta => CColor::Magenta,
Color::LightCyan => CColor::Cyan,
Color::LightGray => CColor::Grey,
Color::White => CColor::White,
Color::Indexed(i) => CColor::AnsiValue(i),
Color::Rgb(r, g, b) => CColor::Rgb { r, g, b },
Expand Down
20 changes: 19 additions & 1 deletion helix-view/src/theme.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ use std::{
};

use anyhow::Context;
use helix_core::hashmap;
use log::warn;
use once_cell::sync::Lazy;
use serde::{Deserialize, Deserializer};
Expand Down Expand Up @@ -142,7 +143,24 @@ struct ThemePalette {

impl Default for ThemePalette {
fn default() -> Self {
Self::new(HashMap::new())
Self::new(hashmap! {
"black".to_string() => Color::Black,
"red".to_string() => Color::Red,
"green".to_string() => Color::Green,
"yellow".to_string() => Color::Yellow,
"blue".to_string() => Color::Blue,
"magenta".to_string() => Color::Magenta,
"cyan".to_string() => Color::Cyan,
"gray".to_string() => Color::Gray,
"light-red".to_string() => Color::LightRed,
"light-green".to_string() => Color::LightGreen,
"light-yellow".to_string() => Color::LightYellow,
"light-blue".to_string() => Color::LightBlue,
"light-magenta".to_string() => Color::LightMagenta,
"light-cyan".to_string() => Color::LightCyan,
"light-gray".to_string() => Color::LightGray,
"white".to_string() => Color::White,
})
}
}

Expand Down

0 comments on commit e40e6db

Please sign in to comment.