mirror of
https://github.com/sharkdp/bat.git
synced 2025-02-21 12:28:30 +00:00
Underline highlighted lines in ANSI theme (#1985)
* Underline highlighted lines in ANSI theme * add test for ansi highlight underline, fix underscore in plain
This commit is contained in:
parent
f6ce5d2054
commit
d21f1e8f17
@ -3,6 +3,7 @@
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee)
|
- New style component `header-filesize` to show size of the displayed file in the header. See #1988 (@mdibaiee)
|
||||||
|
- Use underline for line highlighting on ANSI, see #1730 (@mdibaiee)
|
||||||
|
|
||||||
## Bugfixes
|
## Bugfixes
|
||||||
|
|
||||||
|
@ -463,6 +463,10 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
let highlight_this_line =
|
let highlight_this_line =
|
||||||
self.config.highlighted_lines.0.check(line_number) == RangeCheckResult::InRange;
|
self.config.highlighted_lines.0.check(line_number) == RangeCheckResult::InRange;
|
||||||
|
|
||||||
|
if highlight_this_line && self.config.theme == "ansi" {
|
||||||
|
self.ansi_style.update("^[4m");
|
||||||
|
}
|
||||||
|
|
||||||
let background_color = self
|
let background_color = self
|
||||||
.background_color_highlight
|
.background_color_highlight
|
||||||
.filter(|_| highlight_this_line);
|
.filter(|_| highlight_this_line);
|
||||||
@ -649,6 +653,11 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||||||
writeln!(handle)?;
|
writeln!(handle)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if highlight_this_line && self.config.theme == "ansi" {
|
||||||
|
self.ansi_style.update("^[24m");
|
||||||
|
write!(handle, "\x1B[24m")?;
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1290,6 +1290,25 @@ fn grid_for_file_without_newline() {
|
|||||||
.stderr("");
|
.stderr("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// For ANSI theme, use underscore as a highlighter
|
||||||
|
#[test]
|
||||||
|
fn ansi_highlight_underline() {
|
||||||
|
bat()
|
||||||
|
.arg("--paging=never")
|
||||||
|
.arg("--color=never")
|
||||||
|
.arg("--terminal-width=80")
|
||||||
|
.arg("--wrap=never")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.arg("--theme=ansi")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--highlight-line=1")
|
||||||
|
.write_stdin("Ansi Underscore Test\nAnother Line")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("\x1B[4mAnsi Underscore Test\n\x1B[24mAnother Line")
|
||||||
|
.stderr("");
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure that ANSI passthrough is emitted properly for both wrapping and non-wrapping printer.
|
// Ensure that ANSI passthrough is emitted properly for both wrapping and non-wrapping printer.
|
||||||
#[test]
|
#[test]
|
||||||
fn ansi_passthrough_emit() {
|
fn ansi_passthrough_emit() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user