formatAnchoredContext function

List<String> formatAnchoredContext(
  1. List<int> anchorLines,
  2. List<String> fileLines
)

Numbered LINE:TEXT rows around anchorLines (±mismatchContextLines), *-marking anchors, ... between non-adjacent runs. Out-of-range anchors contribute no rows.

Implementation

List<String> formatAnchoredContext(
  List<int> anchorLines,
  List<String> fileLines,
) {
  final anchorSet = anchorLines.toSet();
  final rows = <String>[];
  var previous = -1;
  final sorted = _anchoredDisplayLines(anchorLines, fileLines.length).toList()
    ..sort();
  for (final lineNum in sorted) {
    if (previous != -1 && lineNum > previous + 1) rows.add('...');
    previous = lineNum;
    final marker = anchorSet.contains(lineNum) ? '*' : ' ';
    rows.add('$marker${formatNumberedLine(lineNum, fileLines[lineNum - 1])}');
  }
  return rows;
}