formatLineRanges function

String formatLineRanges(
  1. List<int> lines
)

Compresses a line list into a sorted 1-4, 7, 10-12 range string.

Implementation

String formatLineRanges(List<int> lines) {
  final sorted = lines.toSet().toList()..sort();
  if (sorted.isEmpty) return '';
  final parts = <String>[];
  var start = sorted[0];
  var prev = sorted[0];
  for (var i = 1; i <= sorted.length; i++) {
    final current = i < sorted.length ? sorted[i] : null;
    if (current != null && current == prev + 1) {
      prev = current;
      continue;
    }
    parts.add(start == prev ? '$start' : '$start-$prev');
    if (current == null) break;
    start = current;
    prev = current;
  }
  return parts.join(', ');
}