From e90308e1f8272b0cb863e568facc4ab4108178ef Mon Sep 17 00:00:00 2001 From: Nisheet Sinvhal Date: Thu, 1 Nov 2018 22:02:04 +0530 Subject: [PATCH] italics enable|disable working --- src/clap_app.rs | 4 +++- src/printer.rs | 7 +++++-- src/terminal.rs | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/clap_app.rs b/src/clap_app.rs index e7cd6504..89b799f8 100644 --- a/src/clap_app.rs +++ b/src/clap_app.rs @@ -324,10 +324,12 @@ pub fn build_app(interactive_output: bool) -> ClapApp<'static, 'static> { Arg::with_name("enable-italics") .long("enable-italics") .takes_value(true) + .multiple(false) + .value_name("always|*never*") .possible_values(&["always", "never"]) .default_value("never") .hide_default_value(true) - .help("Use italics in output (always, *never)") + .help("Use italics in output (always, *never*)") ) .subcommand( SubCommand::with_name("cache") diff --git a/src/printer.rs b/src/printer.rs index 5346d4e8..ac3d404e 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -305,13 +305,14 @@ impl<'a> Printer for InteractivePrinter<'a> { if self.config.output_wrap == OutputWrap::None { let true_color = self.config.true_color; let colored_output = self.config.colored_output; - + let italics = self.config.italics; + for &(style, region) in regions.iter() { let text = &*self.preprocess(region, &mut cursor_total); write!( handle, "{}", - as_terminal_escaped(style, &*text, true_color, colored_output,) + as_terminal_escaped(style, &*text, true_color, colored_output, italics,) )?; } @@ -367,6 +368,7 @@ impl<'a> Printer for InteractivePrinter<'a> { ), self.config.true_color, self.config.colored_output, + self.config.italics ) )?; break; @@ -406,6 +408,7 @@ impl<'a> Printer for InteractivePrinter<'a> { ), self.config.true_color, self.config.colored_output, + self.config.italics ), panel_wrap.clone().unwrap() )?; diff --git a/src/terminal.rs b/src/terminal.rs index 7a6850ca..630ac48f 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -18,6 +18,7 @@ pub fn as_terminal_escaped( text: &str, true_color: bool, colored: bool, + italics: bool, ) -> String { let style = if !colored { Style::default() @@ -28,7 +29,7 @@ pub fn as_terminal_escaped( color.bold() } else if style.font_style.contains(FontStyle::UNDERLINE) { color.underline() - } else if style.font_style.contains(FontStyle::ITALIC) { + } else if style.font_style.contains(FontStyle::ITALIC) && italics { color.italic() } else { color.normal()