parseLineBounds function

(int, int) parseLineBounds(
  1. String lines
)

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);
}