parseAnalyzerReport function
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;
}