mirror of
https://github.com/sharkdp/bat.git
synced 2024-11-22 07:43:39 +01:00
Fix spacing issue with git feature disabled
This commit is contained in:
parent
38cbbfac55
commit
8c072fd7d7
@ -156,3 +156,33 @@ impl Decoration for GridBorderDecoration {
|
|||||||
self.cached.width
|
self.cached.width
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(crate) struct PlaceholderDecoration {
|
||||||
|
cached: DecorationText,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl PlaceholderDecoration {
|
||||||
|
pub(crate) fn new(length: usize) -> Self {
|
||||||
|
Self {
|
||||||
|
cached: DecorationText {
|
||||||
|
text: " ".repeat(length),
|
||||||
|
width: length,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Decoration for PlaceholderDecoration {
|
||||||
|
fn generate(
|
||||||
|
&self,
|
||||||
|
_line_number: usize,
|
||||||
|
_continuation: bool,
|
||||||
|
_printer: &InteractivePrinter,
|
||||||
|
) -> DecorationText {
|
||||||
|
self.cached.clone()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn width(&self) -> usize {
|
||||||
|
self.cached.width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -24,6 +24,7 @@ use crate::config::Config;
|
|||||||
use crate::decorations;
|
use crate::decorations;
|
||||||
#[cfg(feature = "git")]
|
#[cfg(feature = "git")]
|
||||||
use crate::decorations::LineChangesDecoration;
|
use crate::decorations::LineChangesDecoration;
|
||||||
|
use crate::decorations::PlaceholderDecoration;
|
||||||
use crate::decorations::{Decoration, GridBorderDecoration, LineNumberDecoration};
|
use crate::decorations::{Decoration, GridBorderDecoration, LineNumberDecoration};
|
||||||
#[cfg(feature = "git")]
|
#[cfg(feature = "git")]
|
||||||
use crate::diff::LineChanges;
|
use crate::diff::LineChanges;
|
||||||
@ -260,6 +261,28 @@ impl<'a> InteractivePrinter<'a> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let insert_placeholder = {
|
||||||
|
let git_feature_enabled = cfg!(feature = "git");
|
||||||
|
let changes_component;
|
||||||
|
#[cfg(feature = "git")]
|
||||||
|
{
|
||||||
|
changes_component = config.style_components.changes();
|
||||||
|
}
|
||||||
|
#[cfg(not(feature = "git"))]
|
||||||
|
{
|
||||||
|
changes_component = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let soft_limit_active = config.soft_line_limit.is_some();
|
||||||
|
let numbers_and_grid =
|
||||||
|
config.style_components.grid() && config.style_components.numbers();
|
||||||
|
|
||||||
|
(!git_feature_enabled || !changes_component) && numbers_and_grid && soft_limit_active
|
||||||
|
};
|
||||||
|
if insert_placeholder {
|
||||||
|
decorations.push(Box::new(PlaceholderDecoration::new(1)))
|
||||||
|
}
|
||||||
|
|
||||||
let mut panel_width: usize =
|
let mut panel_width: usize =
|
||||||
decorations.len() + decorations.iter().fold(0, |a, x| a + x.width());
|
decorations.len() + decorations.iter().fold(0, |a, x| a + x.width());
|
||||||
|
|
||||||
|
@ -1343,11 +1343,11 @@ fn bom_stripped_when_no_color_and_not_loop_through() {
|
|||||||
.success()
|
.success()
|
||||||
.stdout(
|
.stdout(
|
||||||
"\
|
"\
|
||||||
─────┬──────────────────────────────────────────────────────────────────────────
|
───────┬────────────────────────────────────────────────────────────────────────
|
||||||
│ File: test_BOM.txt
|
│ File: test_BOM.txt
|
||||||
─────┼──────────────────────────────────────────────────────────────────────────
|
───────┼────────────────────────────────────────────────────────────────────────
|
||||||
1 │ hello world
|
1 │ hello world
|
||||||
─────┴──────────────────────────────────────────────────────────────────────────
|
───────┴────────────────────────────────────────────────────────────────────────
|
||||||
",
|
",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1595,15 +1595,16 @@ fn header_narrow_terminal() {
|
|||||||
.success()
|
.success()
|
||||||
.stdout(
|
.stdout(
|
||||||
"\
|
"\
|
||||||
─────┬────────────────────────
|
───────┬──────────────────────
|
||||||
│ File: this-file-path-is
|
│ File: this-file-path-
|
||||||
│ -really-long-and-would-
|
│ is-really-long-and-wo
|
||||||
│ have-broken-the-layout-
|
│ uld-have-broken-the-l
|
||||||
│ of-the-header.txt
|
│ ayout-of-the-header.t
|
||||||
─────┼────────────────────────
|
│ xt
|
||||||
1 │ The header is not broke
|
───────┼──────────────────────
|
||||||
│ n
|
1 │ The header is not bro
|
||||||
─────┴────────────────────────
|
│ ken
|
||||||
|
───────┴──────────────────────
|
||||||
",
|
",
|
||||||
)
|
)
|
||||||
.stderr("");
|
.stderr("");
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
─────┬──────────────────────────────────────────────────────────────────────────
|
───────┬────────────────────────────────────────────────────────────────────────
|
||||||
│ File: sample.rs
|
│ File: sample.rs
|
||||||
─────┼──────────────────────────────────────────────────────────────────────────
|
───────┼────────────────────────────────────────────────────────────────────────
|
||||||
1 │ /// A rectangle. First line is changed to prevent a regression of #1869
|
1 │ /// A rectangle. First line is changed to prevent a regression of #1869
|
||||||
2 │ struct Rectangle {
|
2 │ struct Rectangle {
|
||||||
3 │ width: u32,
|
3 │ width: u32,
|
||||||
4 │ height: u32,
|
4 │ height: u32,
|
||||||
5 │ }
|
5 │ }
|
||||||
6 │
|
6 │
|
||||||
7 │ fn main() {
|
7 │ fn main() {
|
||||||
8 │ let rect1 = Rectangle { width: 30, height: 50 };
|
8 │ let rect1 = Rectangle { width: 30, height: 50 };
|
||||||
9 │
|
9 │
|
||||||
10 │ println!(
|
10 │ println!(
|
||||||
11 │ "The perimeter of the rectangle is {} pixels.",
|
11 │ "The perimeter of the rectangle is {} pixels.",
|
||||||
12 │ perimeter(&rect1)
|
12 │ perimeter(&rect1)
|
||||||
13 │ );
|
13 │ );
|
||||||
14 │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
14 │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
||||||
15 │ }
|
15 │ }
|
||||||
16 │
|
16 │
|
||||||
17 │ fn area(rectangle: &Rectangle) -> u32 {
|
17 │ fn area(rectangle: &Rectangle) -> u32 {
|
||||||
18 │ rectangle.width * rectangle.height
|
18 │ rectangle.width * rectangle.height
|
||||||
19 │ }
|
19 │ }
|
||||||
20 │
|
20 │
|
||||||
21 │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
21 │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
||||||
22 │ (rectangle.width + rectangle.height) * 2
|
22 │ (rectangle.width + rectangle.height) * 2
|
||||||
23 │ }
|
23 │ }
|
||||||
─────┴──────────────────────────────────────────────────────────────────────────
|
───────┴────────────────────────────────────────────────────────────────────────
|
||||||
|
50
tests/snapshots/output/grid_numbers.snapshot.txt
vendored
50
tests/snapshots/output/grid_numbers.snapshot.txt
vendored
@ -1,25 +1,25 @@
|
|||||||
─────┬──────────────────────────────────────────────────────────────────────────
|
───────┬────────────────────────────────────────────────────────────────────────
|
||||||
1 │ /// A rectangle. First line is changed to prevent a regression of #1869
|
1 │ /// A rectangle. First line is changed to prevent a regression of #1869
|
||||||
2 │ struct Rectangle {
|
2 │ struct Rectangle {
|
||||||
3 │ width: u32,
|
3 │ width: u32,
|
||||||
4 │ height: u32,
|
4 │ height: u32,
|
||||||
5 │ }
|
5 │ }
|
||||||
6 │
|
6 │
|
||||||
7 │ fn main() {
|
7 │ fn main() {
|
||||||
8 │ let rect1 = Rectangle { width: 30, height: 50 };
|
8 │ let rect1 = Rectangle { width: 30, height: 50 };
|
||||||
9 │
|
9 │
|
||||||
10 │ println!(
|
10 │ println!(
|
||||||
11 │ "The perimeter of the rectangle is {} pixels.",
|
11 │ "The perimeter of the rectangle is {} pixels.",
|
||||||
12 │ perimeter(&rect1)
|
12 │ perimeter(&rect1)
|
||||||
13 │ );
|
13 │ );
|
||||||
14 │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
14 │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
||||||
15 │ }
|
15 │ }
|
||||||
16 │
|
16 │
|
||||||
17 │ fn area(rectangle: &Rectangle) -> u32 {
|
17 │ fn area(rectangle: &Rectangle) -> u32 {
|
||||||
18 │ rectangle.width * rectangle.height
|
18 │ rectangle.width * rectangle.height
|
||||||
19 │ }
|
19 │ }
|
||||||
20 │
|
20 │
|
||||||
21 │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
21 │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
||||||
22 │ (rectangle.width + rectangle.height) * 2
|
22 │ (rectangle.width + rectangle.height) * 2
|
||||||
23 │ }
|
23 │ }
|
||||||
─────┴──────────────────────────────────────────────────────────────────────────
|
───────┴────────────────────────────────────────────────────────────────────────
|
||||||
|
Loading…
Reference in New Issue
Block a user