diff options
author | Florent <cheap.glitch@gmail.com> | 2021-04-22 18:09:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-22 12:09:21 -0400 |
commit | 2deaa572afa222cdccf1de294935a8d7c3f159d2 (patch) | |
tree | 65fd8200b50352673b8b662faba54ae86e11b704 /src/config.rs | |
parent | aaf1f246d7ee079da3a51707cc3c8adad8874be3 (diff) |
feat(config): Add support for `inverted` token in style strings (#2589)
* Add support for `reverse` keyword in style strings
* Duplicate test case and keep original
* Rename keyword to `inverted`
* Add explanatory sentence in readme
Diffstat (limited to 'src/config.rs')
-rw-r--r-- | src/config.rs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/config.rs b/src/config.rs index 2a5163b6e..b76eb22ff 100644 --- a/src/config.rs +++ b/src/config.rs @@ -359,7 +359,8 @@ impl StarshipConfig { - 'underline' - 'bold' - 'italic' - - '<color>' (see the parse_color_string doc for valid color strings) + - 'inverted' + - '<color>' (see the parse_color_string doc for valid color strings) */ pub fn parse_style_string(style_string: &str) -> Option<ansi_term::Style> { style_string @@ -383,6 +384,7 @@ pub fn parse_style_string(style_string: &str) -> Option<ansi_term::Style> { "bold" => Some(style.bold()), "italic" => Some(style.italic()), "dimmed" => Some(style.dimmed()), + "inverted" => Some(style.reverse()), // When the string is supposed to be a color: // Decide if we yield none, reset background or set color. color_string => { @@ -675,7 +677,7 @@ mod tests { } #[test] - fn table_get_styles_bold_italic_underline_green_dimmy_silly_caps() { + fn table_get_styles_bold_italic_underline_green_dimmed_silly_caps() { let config = Value::from("bOlD ItAlIc uNdErLiNe GrEeN diMMeD"); let mystyle = <Style>::from_config(&config).unwrap(); assert!(mystyle.is_bold); @@ -694,6 +696,27 @@ mod tests { } #[test] + fn table_get_styles_bold_italic_underline_green_dimmed_inverted_silly_caps() { + let config = Value::from("bOlD ItAlIc uNdErLiNe GrEeN diMMeD InVeRTed"); + let mystyle = <Style>::from_config(&config).unwrap(); + assert!(mystyle.is_bold); + assert!(mystyle.is_italic); + assert!(mystyle.is_underline); + assert!(mystyle.is_dimmed); + assert!(mystyle.is_reverse); + assert_eq!( + mystyle, + ansi_term::Style::new() + .bold() + .italic() + .underline() + .dimmed() + .reverse() + .fg(Color::Green) + ); + } + + #[test] fn table_get_styles_plain_and_broken_styles() { // Test a "plain" style with no formatting let config = Value::from(""); |