parseAnalyzerReport function

Iterable<FileWithIssues> parseAnalyzerReport(
  1. File analyzerReport
)

Parsing Dart Analyzer output and returning files with issues.

Implementation

Iterable<FileWithIssues> parseAnalyzerReport(File analyzerReport) {
  final files = <String, FileWithIssues>{};
  analyzerReport.readAsLinesSync().where((element) {
    final line = element.trim();
    return line.isNotEmpty && _isErrorLine(line);
  }).forEach((line) {
    final issue = _parseIssue(line);
    if (files.containsKey(issue.path)) {
      files[issue.path]?.issues.add(issue);
    } else {
      files[issue.path] = FileWithIssues(issue.path, [issue]);
    }
  });
  return files.values;
}