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:
Martin Nordholts 2022-05-05 07:00:03 +02:00
parent 05ebf5ed26
commit 0851bbbb28

View File

@ -445,18 +445,21 @@ impl<'a> Printer for InteractivePrinter<'a> {
return Ok(()); return Ok(());
} }
}; };
// skip syntax highlighting on long lines // skip syntax highlighting on long lines
if line.len() > 1024 * 16 { let too_long = line.len() > 1024 * 16;
let mut empty = highlighter_from_set
.highlighter let for_highlighting: &str = if too_long { "\n" } else { &line };
.highlight(&"\n", highlighter_from_set.syntax_set);
empty[0].1 = line.as_ref(); let mut highlighted_line = highlighter_from_set
empty .highlighter
} else { .highlight(for_highlighting, highlighter_from_set.syntax_set);
highlighter_from_set
.highlighter if too_long {
.highlight(&line, highlighter_from_set.syntax_set) highlighted_line[0].1 = &line;
} }
highlighted_line
}; };
if out_of_range { if out_of_range {