fix: Merge default palette with user palette

This commit is contained in:
Gokul Soumya 2021-09-03 16:42:29 +05:30 committed by Blaž Hrastnik
parent e40e6db227
commit e4e93e176c
2 changed files with 29 additions and 20 deletions

View File

@ -124,7 +124,9 @@ ## Color palettes
Remember that the `[palette]` table includes all keys after its header, Remember that the `[palette]` table includes all keys after its header,
so you should define the palette after normal theme options. 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 | | Color Name |
| --- | | --- |

View File

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