fixupImports method

void fixupImports(
  1. String filePath
)

Sorts imports in the file and removes duplicates

Implementation

void fixupImports(String filePath) {
  final allImports = <String>[];

  for(var lineIdx = lines.length - 1; lineIdx >= 0; lineIdx--) {
    final line = lines[lineIdx];
    if(line.startsWith("import ")) {
      final parsedLines = line.split("\n");
      allImports.addAll(parsedLines.where((l) => l.trim().isNotEmpty));
      lines.removeAt(lineIdx);
    }
  }

  if(allImports.isEmpty) {
    return;
  }

  allImports.removeWhere((l) => l.trim().isEmpty);
  allImports.sort();

  // remove any duplicate imports.
  for(var i = allImports.length - 1; i >= 1; i--) {
    final cur = allImports[i];
    final prev = allImports[i-1];
    if(prev.trim() == cur.trim()) {
      allImports.removeAt(i);
    }
  }

  allImports.add("");
  lines.insertAll(0, allImports);
}