formatLineRanges function
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(', ');
}