summaryrefslogtreecommitdiffstats
path: root/src/config.rs
diff options
context:
space:
mode:
authorFlorent <cheap.glitch@gmail.com>2021-04-22 18:09:21 +0200
committerGitHub <noreply@github.com>2021-04-22 12:09:21 -0400
commit2deaa572afa222cdccf1de294935a8d7c3f159d2 (patch)
tree65fd8200b50352673b8b662faba54ae86e11b704 /src/config.rs
parentaaf1f246d7ee079da3a51707cc3c8adad8874be3 (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.rs27
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("");