highlighted method

HighlightedDiff highlighted(
  1. FileDiff file, {
  2. Duration? budget,
})

file's highlighting.

With a budget, a file not highlighted yet gets at most that long, and tokenize finishes it. Without one, the file is finished now.

Implementation

HighlightedDiff highlighted(FileDiff file, {Duration? budget}) {
  final grammar = HighlightedDiff._grammarFor(file, highlighter, language);
  if (_highlights[file] case (
    final cached,
    final highlighted,
  ) when identical(cached, grammar)) {
    if (budget == null) highlighted.tokenize();
    return highlighted;
  }
  final highlighted = HighlightedDiff.of(
    file,
    highlighter: highlighter,
    theme: theme,
    language: language,
    budget: budget,
  );
  _highlights[file] = (grammar, highlighted);
  return highlighted;
}