mirror of
https://github.com/sharkdp/bat
synced 2024-11-27 14:20:45 +00:00
Add --squeeze/-s option
Co-authored-by: einfachIrgendwer0815 <85333734+einfachIrgendwer0815@users.noreply.github.com>
This commit is contained in:
parent
e1a3fc5529
commit
c36ed32816
4 changed files with 30 additions and 0 deletions
|
@ -290,6 +290,11 @@ impl App {
|
|||
#[cfg(feature = "lessopen")]
|
||||
use_lessopen: self.matches.get_flag("lessopen"),
|
||||
set_terminal_title: self.matches.get_flag("set-terminal-title"),
|
||||
squeeze_lines: if self.matches.get_flag("squeeze") {
|
||||
1
|
||||
} else {
|
||||
0
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
@ -387,6 +387,14 @@ pub fn build_app(interactive_output: bool) -> Command {
|
|||
.help("Display all supported highlighting themes.")
|
||||
.long_help("Display a list of supported themes for syntax highlighting."),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("squeeze")
|
||||
.long("squeeze")
|
||||
.short('s')
|
||||
.action(ArgAction::SetTrue)
|
||||
.help("Squeeze consecutive empty lines.")
|
||||
.long_help("Squeeze consecutive empty lines into a single empty line.")
|
||||
)
|
||||
.arg(
|
||||
Arg::new("style")
|
||||
.long("style")
|
||||
|
|
|
@ -97,6 +97,9 @@ pub struct Config<'a> {
|
|||
|
||||
// Weather or not to set terminal title when using a pager
|
||||
pub set_terminal_title: bool,
|
||||
|
||||
/// The maximum number of consecutive empty lines to display
|
||||
pub squeeze_lines: usize,
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "minimal-application", feature = "paging"))]
|
||||
|
|
|
@ -187,6 +187,7 @@ pub(crate) struct InteractivePrinter<'a> {
|
|||
pub line_changes: &'a Option<LineChanges>,
|
||||
highlighter_from_set: Option<HighlighterFromSet<'a>>,
|
||||
background_color_highlight: Option<Color>,
|
||||
consecutive_empty_lines: usize,
|
||||
}
|
||||
|
||||
impl<'a> InteractivePrinter<'a> {
|
||||
|
@ -272,6 +273,7 @@ impl<'a> InteractivePrinter<'a> {
|
|||
line_changes,
|
||||
highlighter_from_set,
|
||||
background_color_highlight,
|
||||
consecutive_empty_lines: 0,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -577,6 +579,18 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||
return Ok(());
|
||||
}
|
||||
|
||||
// Skip squeezed lines.
|
||||
if self.config.squeeze_lines > 0 {
|
||||
if line.trim_end_matches(|c| c == '\r' || c == '\n').is_empty() {
|
||||
self.consecutive_empty_lines += 1;
|
||||
if self.consecutive_empty_lines > self.config.squeeze_lines {
|
||||
return Ok(());
|
||||
}
|
||||
} else {
|
||||
self.consecutive_empty_lines = 0;
|
||||
}
|
||||
}
|
||||
|
||||
let mut cursor: usize = 0;
|
||||
let mut cursor_max: usize = self.config.term_width;
|
||||
let mut cursor_total: usize = 0;
|
||||
|
|
Loading…
Reference in a new issue