From 9dca3126b330c654c3958f6d9af1b53cf6ef99f2 Mon Sep 17 00:00:00 2001 From: Nakul Chaudhari Date: Thu, 3 May 2018 22:21:45 +0200 Subject: [PATCH] Hide everything but content for plain option style fix #5 --- src/main.rs | 66 ++++++++++++++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 24 deletions(-) diff --git a/src/main.rs b/src/main.rs index ae70cf2c..2cf24ea6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -118,17 +118,24 @@ fn print_file>( let (_, term_width) = term.size(); let term_width = term_width as usize; - print_horizontal_line(&mut handle, '┬', term_width)?; + // Show file name and bars for all but plain style + match options.style { + OptionsStyle::LineNumbers | OptionsStyle::Full => { + print_horizontal_line(&mut handle, '┬', term_width)?; - writeln!( - handle, - "{}{} File {}", - " ".repeat(PANEL_WIDTH), - Fixed(GRID_COLOR).paint("│"), - White.bold().paint(filename.as_ref().to_string_lossy()) - )?; + writeln!( + handle, + "{}{} File {}", + " ".repeat(PANEL_WIDTH), + Fixed(GRID_COLOR).paint("│"), + White.bold().paint(filename.as_ref().to_string_lossy()) + )?; + + print_horizontal_line(&mut handle, '┼', term_width)?; + } + OptionsStyle::Plain => {} + }; - print_horizontal_line(&mut handle, '┼', term_width)?; for (idx, maybe_line) in reader.lines().enumerate() { let line_nr = idx + 1; @@ -147,23 +154,34 @@ fn print_file>( Style::default().paint(" ") }; - writeln!( - handle, - "{} {} {} {}", - Fixed(244).paint(match options.style { - OptionsStyle::Plain => " ".to_owned(), - _ => format!("{:4}", line_nr), - }), - match options.style { - OptionsStyle::Full => line_change, - _ => Style::default().paint(" "), - }, - Fixed(GRID_COLOR).paint("│"), - as_terminal_escaped(®ions, options.true_color) - )?; + + match options.style { + // Show only content for plain style + OptionsStyle::Plain => writeln!( + handle, + "{}", as_terminal_escaped(®ions, options.true_color))?, + _ => + writeln!( + handle, + "{} {} {} {}", + Fixed(244).paint(format!("{:4}", line_nr)), + // Show git modificiation markers only for full style + match options.style { + OptionsStyle::Full => line_change, + _ => Style::default().paint(" "), + }, + Fixed(GRID_COLOR).paint("│"), + as_terminal_escaped(®ions, options.true_color) + )? + } } - print_horizontal_line(&mut handle, '┴', term_width)?; + // Show bars for all but plain style + match options.style { + OptionsStyle::LineNumbers | OptionsStyle::Full => + print_horizontal_line(&mut handle, '┴', term_width)?, + OptionsStyle::Plain => {} + }; Ok(()) }