Iterable maxUnindent()

in tool/extract.dart [177:189]


Iterable<String> maxUnindent(Iterable<String> lines) {
  final nonblankLines = lines.where((s) => !blankLine.hasMatch(s));
  // Length of leading spaces to be trimmed
  final lengths = nonblankLines.map((s) {
    final match = _leadingWhitespace.firstMatch(s);
    return match == null ? 0 : match[0].length;
  });
  if (lengths.isEmpty) return lines;
  final len = lengths.reduce(min);
  return len == 0
      ? lines
      : lines.map((line) => line.length < len ? line : line.substring(len));
}