mirror of
https://github.com/sharkdp/bat.git
synced 2025-01-29 17:08:44 +01:00
Add padding above headers when no grid
This commit is contained in:
parent
1a6e8d297f
commit
0040fef215
@ -75,7 +75,7 @@ impl<'b> Controller<'b> {
|
||||
}
|
||||
};
|
||||
|
||||
for input in inputs.into_iter() {
|
||||
for (index, input) in inputs.into_iter().enumerate() {
|
||||
match input.open(io::stdin().lock()) {
|
||||
Err(error) => {
|
||||
print_error(&error, writer);
|
||||
@ -128,6 +128,7 @@ impl<'b> Controller<'b> {
|
||||
&mut *printer,
|
||||
writer,
|
||||
&mut opened_input,
|
||||
index != 0,
|
||||
#[cfg(feature = "git")]
|
||||
&line_changes,
|
||||
);
|
||||
@ -148,10 +149,11 @@ impl<'b> Controller<'b> {
|
||||
printer: &mut dyn Printer,
|
||||
writer: &mut dyn Write,
|
||||
input: &mut OpenedInput,
|
||||
add_header_padding: bool,
|
||||
#[cfg(feature = "git")] line_changes: &Option<LineChanges>,
|
||||
) -> Result<()> {
|
||||
if !input.reader.first_line.is_empty() || self.config.style_components.header() {
|
||||
printer.print_header(writer, input)?;
|
||||
printer.print_header(writer, input, add_header_padding)?;
|
||||
}
|
||||
|
||||
if !input.reader.first_line.is_empty() {
|
||||
|
@ -33,7 +33,12 @@ use crate::terminal::{as_terminal_escaped, to_ansi_color};
|
||||
use crate::wrapping::WrappingMode;
|
||||
|
||||
pub(crate) trait Printer {
|
||||
fn print_header(&mut self, handle: &mut dyn Write, input: &OpenedInput) -> Result<()>;
|
||||
fn print_header(
|
||||
&mut self,
|
||||
handle: &mut dyn Write,
|
||||
input: &OpenedInput,
|
||||
add_header_padding: bool,
|
||||
) -> Result<()>;
|
||||
fn print_footer(&mut self, handle: &mut dyn Write, input: &OpenedInput) -> Result<()>;
|
||||
|
||||
fn print_snip(&mut self, handle: &mut dyn Write) -> Result<()>;
|
||||
@ -56,7 +61,12 @@ impl SimplePrinter {
|
||||
}
|
||||
|
||||
impl Printer for SimplePrinter {
|
||||
fn print_header(&mut self, _handle: &mut dyn Write, _input: &OpenedInput) -> Result<()> {
|
||||
fn print_header(
|
||||
&mut self,
|
||||
_handle: &mut dyn Write,
|
||||
_input: &OpenedInput,
|
||||
_add_header_padding: bool,
|
||||
) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -219,7 +229,12 @@ impl<'a> InteractivePrinter<'a> {
|
||||
}
|
||||
|
||||
impl<'a> Printer for InteractivePrinter<'a> {
|
||||
fn print_header(&mut self, handle: &mut dyn Write, input: &OpenedInput) -> Result<()> {
|
||||
fn print_header(
|
||||
&mut self,
|
||||
handle: &mut dyn Write,
|
||||
input: &OpenedInput,
|
||||
add_header_padding: bool,
|
||||
) -> Result<()> {
|
||||
if !self.config.style_components.header() {
|
||||
if Some(ContentType::BINARY) == self.content_type && !self.config.show_nonprintable {
|
||||
writeln!(
|
||||
@ -232,6 +247,8 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
||||
)?;
|
||||
} else if self.config.style_components.grid() {
|
||||
self.print_horizontal_line(handle, '┬')?;
|
||||
} else if add_header_padding {
|
||||
writeln!(handle)?;
|
||||
}
|
||||
return Ok(());
|
||||
}
|
||||
@ -248,6 +265,9 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
||||
.paint(if self.panel_width > 0 { "│ " } else { "" }),
|
||||
)?;
|
||||
} else {
|
||||
if add_header_padding {
|
||||
writeln!(handle)?;
|
||||
}
|
||||
write!(handle, "{}", " ".repeat(self.panel_width))?;
|
||||
}
|
||||
|
||||
|
@ -611,7 +611,7 @@ fn filename_multiple_ok() {
|
||||
.arg("--file-name=bar")
|
||||
.assert()
|
||||
.success()
|
||||
.stdout("File: foo\nFile: bar\n")
|
||||
.stdout("File: foo\n\nFile: bar\n")
|
||||
.stderr("");
|
||||
}
|
||||
|
||||
@ -628,6 +628,18 @@ fn filename_multiple_err() {
|
||||
.failure();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn header_padding() {
|
||||
bat()
|
||||
.arg("--decorations=always")
|
||||
.arg("--style=plain")
|
||||
.arg("test.txt")
|
||||
.arg("single-line.txt")
|
||||
.assert()
|
||||
.stdout("hello world\n\nSingle Line\n")
|
||||
.stderr("");
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
#[test]
|
||||
fn file_with_invalid_utf8_filename() {
|
||||
|
Loading…
Reference in New Issue
Block a user