mirror of
https://github.com/sharkdp/bat
synced 2026-07-28 17:51:44 +00:00
Merge branch 'master' into master
This commit is contained in:
+2
-1
@@ -405,7 +405,7 @@ impl App {
|
||||
Some("character") => WrappingMode::Character,
|
||||
Some("never") => WrappingMode::NoWrapping(true),
|
||||
Some("auto") | None => {
|
||||
if style_components.plain() {
|
||||
if style_components.plain() && maybe_term_width.is_none() {
|
||||
WrappingMode::NoWrapping(false)
|
||||
} else {
|
||||
WrappingMode::Character
|
||||
@@ -461,6 +461,7 @@ impl App {
|
||||
Some("auto") => StripAnsiMode::Auto,
|
||||
_ => unreachable!("other values for --strip-ansi are not allowed"),
|
||||
},
|
||||
quiet_empty: self.matches.get_flag("quiet-empty"),
|
||||
theme: theme(self.theme_options()).to_string(),
|
||||
visible_lines: match self.matches.try_contains_id("diff").unwrap_or_default()
|
||||
&& self.matches.get_flag("diff")
|
||||
|
||||
@@ -643,6 +643,18 @@ pub fn build_app(interactive_output: bool) -> Command {
|
||||
.hide_short_help(true)
|
||||
.help("Show diagnostic information for bug reports."),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("quiet-empty")
|
||||
.long("quiet-empty")
|
||||
.short('E')
|
||||
.action(ArgAction::SetTrue)
|
||||
.help("Produce no output when the input is empty.")
|
||||
.long_help(
|
||||
"When this flag is set, bat will produce no output at all when \
|
||||
the input is empty. This is useful when piping commands that may \
|
||||
produce empty output, like 'git diff'.",
|
||||
),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("acknowledgements")
|
||||
.long("acknowledgements")
|
||||
|
||||
+5
-2
@@ -99,14 +99,17 @@ pub struct Config<'a> {
|
||||
#[cfg(feature = "lessopen")]
|
||||
pub use_lessopen: bool,
|
||||
|
||||
// Weather or not to set terminal title when using a pager
|
||||
// Whether 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: Option<usize>,
|
||||
|
||||
// Weather or not to set terminal title when using a pager
|
||||
// Whether or not to strip ANSI escape codes from the input
|
||||
pub strip_ansi: StripAnsiMode,
|
||||
|
||||
/// Whether or not to produce no output when input is empty
|
||||
pub quiet_empty: bool,
|
||||
}
|
||||
|
||||
#[cfg(all(feature = "minimal-application", feature = "paging"))]
|
||||
|
||||
@@ -454,6 +454,11 @@ impl Printer for InteractivePrinter<'_> {
|
||||
input: &OpenedInput,
|
||||
add_header_padding: bool,
|
||||
) -> Result<()> {
|
||||
// If input is empty and quiet_empty is enabled, skip all output
|
||||
if self.content_type.is_none() && self.config.quiet_empty {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
if add_header_padding && self.config.style_components.rule() {
|
||||
self.print_horizontal_line_term(handle, self.colors.rule)?;
|
||||
}
|
||||
@@ -556,6 +561,11 @@ impl Printer for InteractivePrinter<'_> {
|
||||
}
|
||||
|
||||
fn print_footer(&mut self, handle: &mut OutputHandle, _input: &OpenedInput) -> Result<()> {
|
||||
// If input is empty and quiet_empty is enabled, skip footer
|
||||
if self.content_type.is_none() && self.config.quiet_empty {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
if self.config.style_components.grid()
|
||||
&& (self.content_type.is_some_and(|c| c.is_text())
|
||||
|| self.config.show_nonprintable
|
||||
|
||||
Reference in New Issue
Block a user