mirror of
https://github.com/sharkdp/bat.git
synced 2025-03-20 01:28:49 +00: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()) {
|
match input.open(io::stdin().lock()) {
|
||||||
Err(error) => {
|
Err(error) => {
|
||||||
print_error(&error, writer);
|
print_error(&error, writer);
|
||||||
@ -128,6 +128,7 @@ impl<'b> Controller<'b> {
|
|||||||
&mut *printer,
|
&mut *printer,
|
||||||
writer,
|
writer,
|
||||||
&mut opened_input,
|
&mut opened_input,
|
||||||
|
index != 0,
|
||||||
#[cfg(feature = "git")]
|
#[cfg(feature = "git")]
|
||||||
&line_changes,
|
&line_changes,
|
||||||
);
|
);
|
||||||
@ -148,10 +149,11 @@ impl<'b> Controller<'b> {
|
|||||||
printer: &mut dyn Printer,
|
printer: &mut dyn Printer,
|
||||||
writer: &mut dyn Write,
|
writer: &mut dyn Write,
|
||||||
input: &mut OpenedInput,
|
input: &mut OpenedInput,
|
||||||
|
add_header_padding: bool,
|
||||||
#[cfg(feature = "git")] line_changes: &Option<LineChanges>,
|
#[cfg(feature = "git")] line_changes: &Option<LineChanges>,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
if !input.reader.first_line.is_empty() || self.config.style_components.header() {
|
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() {
|
if !input.reader.first_line.is_empty() {
|
||||||
|
@ -33,7 +33,12 @@ use crate::terminal::{as_terminal_escaped, to_ansi_color};
|
|||||||
use crate::wrapping::WrappingMode;
|
use crate::wrapping::WrappingMode;
|
||||||
|
|
||||||
pub(crate) trait Printer {
|
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_footer(&mut self, handle: &mut dyn Write, input: &OpenedInput) -> Result<()>;
|
||||||
|
|
||||||
fn print_snip(&mut self, handle: &mut dyn Write) -> Result<()>;
|
fn print_snip(&mut self, handle: &mut dyn Write) -> Result<()>;
|
||||||
@ -56,7 +61,12 @@ impl SimplePrinter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Printer for 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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,7 +229,12 @@ impl<'a> InteractivePrinter<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Printer for 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 !self.config.style_components.header() {
|
||||||
if Some(ContentType::BINARY) == self.content_type && !self.config.show_nonprintable {
|
if Some(ContentType::BINARY) == self.content_type && !self.config.show_nonprintable {
|
||||||
writeln!(
|
writeln!(
|
||||||
@ -232,6 +247,8 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
)?;
|
)?;
|
||||||
} else if self.config.style_components.grid() {
|
} else if self.config.style_components.grid() {
|
||||||
self.print_horizontal_line(handle, '┬')?;
|
self.print_horizontal_line(handle, '┬')?;
|
||||||
|
} else if add_header_padding {
|
||||||
|
writeln!(handle)?;
|
||||||
}
|
}
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
@ -248,6 +265,9 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
.paint(if self.panel_width > 0 { "│ " } else { "" }),
|
.paint(if self.panel_width > 0 { "│ " } else { "" }),
|
||||||
)?;
|
)?;
|
||||||
} else {
|
} else {
|
||||||
|
if add_header_padding {
|
||||||
|
writeln!(handle)?;
|
||||||
|
}
|
||||||
write!(handle, "{}", " ".repeat(self.panel_width))?;
|
write!(handle, "{}", " ".repeat(self.panel_width))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -611,7 +611,7 @@ fn filename_multiple_ok() {
|
|||||||
.arg("--file-name=bar")
|
.arg("--file-name=bar")
|
||||||
.assert()
|
.assert()
|
||||||
.success()
|
.success()
|
||||||
.stdout("File: foo\nFile: bar\n")
|
.stdout("File: foo\n\nFile: bar\n")
|
||||||
.stderr("");
|
.stderr("");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +628,18 @@ fn filename_multiple_err() {
|
|||||||
.failure();
|
.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")]
|
#[cfg(target_os = "linux")]
|
||||||
#[test]
|
#[test]
|
||||||
fn file_with_invalid_utf8_filename() {
|
fn file_with_invalid_utf8_filename() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user