parseLineBounds function
Parses a 1-based line range of format <start>-<end> (e.g. 45-80).
Implementation
(int, int) parseLineBounds(String lines) {
final parts = lines.split('-');
if (parts.length != 2) {
throw FormatException(
'Invalid lines format "$lines". Expected <start>-<end> (e.g. 45-80).',
);
}
final start = int.tryParse(parts[0].trim());
final end = int.tryParse(parts[1].trim());
if (start == null || start < 1) {
throw FormatException('Invalid start line: "${parts[0]}". Must be >= 1.');
}
if (end == null || end < start) {
throw FormatException(
'Invalid end line: "${parts[1]}". Must be >= start line ($start).',
);
}
return (start, end);
}