mirror of
https://github.com/sharkdp/bat
synced 2024-11-23 12:23:19 +00:00
printer.rs: De-duplicate code to highlight long lines
We do this to only have one invocation of `highlighter.highlight(...)` so we don't need to change to `highlighter.highlight_line(...)` in two places in #2181.
This commit is contained in:
parent
05ebf5ed26
commit
0851bbbb28
1 changed files with 13 additions and 10 deletions
|
@ -445,18 +445,21 @@ impl<'a> Printer for InteractivePrinter<'a> {
|
|||
return Ok(());
|
||||
}
|
||||
};
|
||||
|
||||
// skip syntax highlighting on long lines
|
||||
if line.len() > 1024 * 16 {
|
||||
let mut empty = highlighter_from_set
|
||||
.highlighter
|
||||
.highlight(&"\n", highlighter_from_set.syntax_set);
|
||||
empty[0].1 = line.as_ref();
|
||||
empty
|
||||
} else {
|
||||
highlighter_from_set
|
||||
.highlighter
|
||||
.highlight(&line, highlighter_from_set.syntax_set)
|
||||
let too_long = line.len() > 1024 * 16;
|
||||
|
||||
let for_highlighting: &str = if too_long { "\n" } else { &line };
|
||||
|
||||
let mut highlighted_line = highlighter_from_set
|
||||
.highlighter
|
||||
.highlight(for_highlighting, highlighter_from_set.syntax_set);
|
||||
|
||||
if too_long {
|
||||
highlighted_line[0].1 = &line;
|
||||
}
|
||||
|
||||
highlighted_line
|
||||
};
|
||||
|
||||
if out_of_range {
|
||||
|
|
Loading…
Reference in a new issue