fix: Merge default palette with user palette

pull/712/head
Gokul Soumya 3 years ago committed by Blaž Hrastnik
parent e40e6db227
commit e4e93e176c

@ -124,7 +124,9 @@ 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:
The default palette uses the terminal's default 16 colors, and the colors names
are listed below. The `[palette]` section in the config file takes precedence
over it and is merged into the default palette.
| Color Name |
| --- |

@ -143,7 +143,8 @@ struct ThemePalette {
impl Default for ThemePalette {
fn default() -> Self {
Self::new(hashmap! {
Self {
palette: hashmap! {
"black".to_string() => Color::Black,
"red".to_string() => Color::Red,
"green".to_string() => Color::Green,
@ -160,13 +161,19 @@ impl Default for ThemePalette {
"light-cyan".to_string() => Color::LightCyan,
"light-gray".to_string() => Color::LightGray,
"white".to_string() => Color::White,
})
},
}
}
}
impl ThemePalette {
pub fn new(palette: HashMap<String, Color>) -> Self {
Self { palette }
let ThemePalette {
palette: mut default,
} = ThemePalette::default();
default.extend(palette);
Self { palette: default }
}
pub fn hex_string_to_rgb(s: &str) -> Result<Color, String> {

Loading…
Cancel
Save