From fc160b0dcdcd47708cd152b3a7c6848de61c1bef Mon Sep 17 00:00:00 2001 From: eth-p <32112321+eth-p@users.noreply.github.com> Date: Sat, 12 May 2018 06:32:23 -0700 Subject: [PATCH] PR #102 Review Changes - Reformatted code. - Removed leftover code. - Removed leftover comments. - Fixed compiling on Rust 1.24.0 --- src/app.rs | 2 +- src/printer.rs | 125 ++++++++++++++++++++++-------------------------- src/style.rs | 2 +- src/terminal.rs | 24 +--------- 4 files changed, 61 insertions(+), 92 deletions(-) diff --git a/src/app.rs b/src/app.rs index fd2b5bde..85dc542b 100644 --- a/src/app.rs +++ b/src/app.rs @@ -59,7 +59,7 @@ impl App { .use_delimiter(true) .takes_value(true) .possible_values(&[ - "auto", "full", "plain", "changes", "header", "grid", "numbers", + "auto", "full", "plain", "changes", "header", "grid", "numbers" ]) .default_value("auto") .help("Additional info to display along with content"), diff --git a/src/printer.rs b/src/printer.rs index f19efe73..e1b6b651 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -12,7 +12,7 @@ const LINE_NUMBER_WIDTH: usize = 4; struct PrintSegment { size: usize, - text: String + text: String, } pub struct Printer<'a> { @@ -42,13 +42,7 @@ impl<'a> Printer<'a> { // Generate the panel (gutter) width. let decorations = instance.gen_decorations(0); - instance.panel_width = decorations.len() - + decorations.iter().fold(0, |a, x| a + x.size) - + if config.output_components.grid() { - 0 - } else { - 0 - }; + instance.panel_width = decorations.len() + decorations.iter().fold(0, |a, x| a + x.size); // Return the instance. return instance; @@ -66,11 +60,9 @@ impl<'a> Printer<'a> { self.handle, "{}{} ", " ".repeat(self.panel_width), - self.colors.grid.paint(if self.panel_width > 0 { - "│" - } else { - "" - }), + self.colors + .grid + .paint(if self.panel_width > 0 { "│" } else { "" }), )?; } @@ -101,8 +93,8 @@ impl<'a> Printer<'a> { line_number: usize, regions: &[(highlighting::Style, &str)], ) -> Result<()> { - let mut cursor:usize = 0; - let mut cursor_max:usize = self.config.term_width - 2; + let mut cursor: usize = 0; + let mut cursor_max: usize = self.config.term_width - 2; // Line decoration. let decorations = self.gen_decorations(line_number); @@ -110,11 +102,15 @@ impl<'a> Printer<'a> { if gutter_width > 0 { cursor_max -= gutter_width; - write!(self.handle, "{} ", decorations - .iter() - .map(|seg| seg.text.to_owned()) - .collect::>() - .join(" "))?; + write!( + self.handle, + "{} ", + decorations + .iter() + .map(|seg| seg.text.to_owned()) + .collect::>() + .join(" ") + )?; } // Grid border. @@ -123,7 +119,7 @@ impl<'a> Printer<'a> { } else { PrintSegment { size: 0, - text: "".to_owned() + text: "".to_owned(), } }; @@ -133,7 +129,7 @@ impl<'a> Printer<'a> { // Line contents. for &(style, text) in regions.iter() { let mut chars = text.chars().filter(|c| *c != '\n'); - let mut remaining = chars.clone().count(); + let mut remaining = text.chars().filter(|c| *c != '\n').count(); while remaining > 0 { let available = cursor_max - cursor; @@ -143,12 +139,16 @@ impl<'a> Printer<'a> { let text = chars.by_ref().take(remaining).collect::(); cursor += remaining; - write!(self.handle, "{}", as_terminal_escaped( - style, - &*text, - self.config.true_color, - self.config.colored_output - ))?; + write!( + self.handle, + "{}", + as_terminal_escaped( + style, + &*text, + self.config.true_color, + self.config.colored_output + ) + )?; break; } @@ -158,12 +158,18 @@ impl<'a> Printer<'a> { cursor = 0; remaining -= available; - write!(self.handle, "{}\n{}{} ", as_terminal_escaped( - style, - &*text, - self.config.true_color, - self.config.colored_output - ), " ".repeat(gutter_width), border.text.to_owned())?; + write!( + self.handle, + "{}\n{}{} ", + as_terminal_escaped( + style, + &*text, + self.config.true_color, + self.config.colored_output + ), + " ".repeat(gutter_width), + border.text.to_owned() + )?; continue; } @@ -172,17 +178,10 @@ impl<'a> Printer<'a> { // Finished. write!(self.handle, "\n")?; - return Ok(()); + Ok(()) } - - - #[doc = " - Generates all the line decorations. - - # Arguments - * `line_number` - The line number. - "] + /// Generates all the line decorations. fn gen_decorations(&self, line_number: usize) -> Vec { let mut decorations = Vec::new(); @@ -197,28 +196,18 @@ impl<'a> Printer<'a> { return decorations; } - #[doc = " - Generates the decoration for displaying the line number. - - # Arguments - * `line_number` - The line number. - "] + /// Generates the decoration for displaying the line number. fn gen_deco_line_number(&self, line_number: usize) -> PrintSegment { - let plain:String = format!("{:width$}", line_number, width = LINE_NUMBER_WIDTH); + let plain: String = format!("{:width$}", line_number, width = LINE_NUMBER_WIDTH); let color = self.colors.line_number.paint(plain.to_owned()); return PrintSegment { text: color.to_string(), - size: plain.len() - } + size: plain.len(), + }; } - #[doc = " - Generates the decoration for displaying the git changes. - - # Arguments - * `line_number` - The line number. - "] + /// Generates the decoration for displaying the git changes. fn gen_deco_line_changes(&self, line_number: usize) -> PrintSegment { let color = if let Some(ref changes) = self.line_changes { match changes.get(&(line_number as u32)) { @@ -234,29 +223,31 @@ impl<'a> Printer<'a> { return PrintSegment { text: color.to_string(), - size: 1 - } + size: 1, + }; } - #[doc = " - Generates the vertical grid border. - "] + /// Generates the vertical grid border. fn gen_border(&self) -> PrintSegment { return PrintSegment { text: self.colors.grid.paint("│").to_string(), - size: 2 - } + size: 2, + }; } fn print_horizontal_line(&mut self, grid_char: char) -> Result<()> { if self.panel_width == 0 { - writeln!(self.handle, "{}", self.colors.grid.paint("─".repeat(self.config.term_width)))?; + writeln!( + self.handle, + "{}", + self.colors.grid.paint("─".repeat(self.config.term_width)) + )?; } else { let hline = "─".repeat(self.config.term_width - (self.panel_width + 1)); let hline = format!("{}{}{}", "─".repeat(self.panel_width), grid_char, hline); writeln!(self.handle, "{}", self.colors.grid.paint(hline))?; } - return Ok(()); + Ok(()) } } diff --git a/src/style.rs b/src/style.rs index c993eb34..491d0fec 100644 --- a/src/style.rs +++ b/src/style.rs @@ -15,7 +15,7 @@ pub enum OutputComponent { #[derive(Debug, Eq, PartialEq, Copy, Clone, Hash)] pub enum OutputWrap { - Character + Character, } impl OutputComponent { diff --git a/src/terminal.rs b/src/terminal.rs index d1057add..b8a22aa4 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -26,30 +26,8 @@ fn rgb2ansi(r: u8, g: u8, b: u8) -> u8 { } } -//pub fn as_terminal_escaped( -// v: &[(highlighting::Style, &str)], -// true_color: bool, -// colored: bool, -//) -> String { -// let mut s: String = String::new(); -// for &(ref style, text) in v.iter() { -// let style = if !colored { -// Style::default() -// } else if true_color { -// RGB(style.foreground.r, style.foreground.g, style.foreground.b).normal() -// } else { -// let ansi = rgb2ansi(style.foreground.r, style.foreground.g, style.foreground.b); -// Fixed(ansi).normal() -// }; -// -// write!(s, "{}", style.paint(text)).unwrap(); -// } -// -// s -//} - pub fn as_terminal_escaped( - color:highlighting::Style, + color: highlighting::Style, text: &str, true_color: bool, colored: bool,