mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-22 13:12:29 +01:00
Only leave space for git diff markers if any line is modified (#3406)
Previously, setting `--style=changes` would always print a 2-space indent, even if the file was unmodified. This changes the style to only print an indent if there is at least one +/- git marker in the sidebar.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
- Send all bat errors to stderr by default, see #3336 (@JerryImMouse)
|
||||
- Make --map-syntax target case insensitive to match --language, see #3206 (@keith-hall)
|
||||
- Correctly determine the end of the line in UTF16LE/BE input #3369 (@keith-hall)
|
||||
- `--style=changes` no longer prints a two-space indent when the file is unmodified, see issue #2710 and PR #3406 (@jyn514)
|
||||
|
||||
## Other
|
||||
|
||||
|
@@ -227,7 +227,9 @@ impl<'a> InteractivePrinter<'a> {
|
||||
|
||||
#[cfg(feature = "git")]
|
||||
{
|
||||
if config.style_components.changes() {
|
||||
if config.style_components.changes()
|
||||
&& line_changes.as_ref().is_some_and(|c| !c.is_empty())
|
||||
{
|
||||
decorations.push(Box::new(LineChangesDecoration::new(&colors)));
|
||||
}
|
||||
}
|
||||
|
@@ -1854,11 +1854,11 @@ fn header_default() {
|
||||
.success()
|
||||
.stdout(
|
||||
"\
|
||||
───────┬────────────────────────────────────────────────────────────────────────
|
||||
─────┬──────────────────────────────────────────────────────────────────────────
|
||||
│ File: single-line.txt
|
||||
───────┼────────────────────────────────────────────────────────────────────────
|
||||
─────┼──────────────────────────────────────────────────────────────────────────
|
||||
1 │ Single Line
|
||||
───────┴────────────────────────────────────────────────────────────────────────
|
||||
─────┴──────────────────────────────────────────────────────────────────────────
|
||||
",
|
||||
)
|
||||
.stderr("");
|
||||
@@ -1878,16 +1878,31 @@ fn header_default_is_default() {
|
||||
.success()
|
||||
.stdout(
|
||||
"\
|
||||
───────┬────────────────────────────────────────────────────────────────────────
|
||||
─────┬──────────────────────────────────────────────────────────────────────────
|
||||
│ File: single-line.txt
|
||||
───────┼────────────────────────────────────────────────────────────────────────
|
||||
─────┼──────────────────────────────────────────────────────────────────────────
|
||||
1 │ Single Line
|
||||
───────┴────────────────────────────────────────────────────────────────────────
|
||||
─────┴──────────────────────────────────────────────────────────────────────────
|
||||
",
|
||||
)
|
||||
.stderr("");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "git")] // Expected output assumes git is enabled
|
||||
// Make sure indent isn't printed if there's no changes
|
||||
fn header_and_changes_only() {
|
||||
bat()
|
||||
.arg("--style=header-filename,changes")
|
||||
.arg("--decorations=always")
|
||||
.arg("--color=never")
|
||||
.arg("single-line.txt")
|
||||
.assert()
|
||||
.success()
|
||||
.stdout("File: single-line.txt\nSingle Line\n")
|
||||
.stderr("");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn filename_stdin() {
|
||||
bat()
|
||||
@@ -2282,12 +2297,12 @@ fn grid_for_file_without_newline() {
|
||||
.success()
|
||||
.stdout(
|
||||
"\
|
||||
───────┬────────────────────────────────────────────────────────────────────────
|
||||
─────┬──────────────────────────────────────────────────────────────────────────
|
||||
│ File: single-line.txt
|
||||
│ Size: 11 B
|
||||
───────┼────────────────────────────────────────────────────────────────────────
|
||||
─────┼──────────────────────────────────────────────────────────────────────────
|
||||
1 │ Single Line
|
||||
───────┴────────────────────────────────────────────────────────────────────────
|
||||
─────┴──────────────────────────────────────────────────────────────────────────
|
||||
",
|
||||
)
|
||||
.stderr("");
|
||||
|
Reference in New Issue
Block a user