in tool/canonical/scorecard.dart [63:117]
StringBuffer buildFooter(ScoreCard scorecard, List<Detail> details) {
var scoreLintCount = 0;
var scoreFixCount = 0;
var recommendLintCount = 0;
var recommendFixCount = 0;
var needsBulkFix = <String>[];
var fixable = <String>[];
for (var score in scorecard.scores) {
for (var ruleSet in score.ruleSets) {
var hasFixOrAssist = score.hasFix || score.hasAssist;
if (ruleSet == 'core') {
++scoreLintCount;
if (hasFixOrAssist) {
++scoreFixCount;
}
}
if (ruleSet == 'recommend') {
++recommendLintCount;
if (hasFixOrAssist) {
++recommendFixCount;
}
}
var lint = score.name;
if (hasFixOrAssist && !score.hasBulkFix) {
needsBulkFix.add(lint);
}
if (!hasFixOrAssist && !unfixableLints.contains(lint)) {
fixable.add(lint);
}
}
}
var footer = StringBuffer('\n${scorecard.lintCount} lints: ');
footer.write('$scoreLintCount score [$scoreFixCount fixes], ');
footer.write('rec $recommendLintCount [$recommendFixCount fixes]');
if (needsBulkFix.isNotEmpty) {
footer.writeln('\n\nTODO: add bulk fixes for');
for (var lint in needsBulkFix) {
footer.writeln(' - [ ] `$lint`');
}
}
if (fixable.isNotEmpty) {
footer.writeln('\n\nTODO: add fixes for');
for (var lint in fixable) {
footer.writeln(' - [ ] `$lint`');
}
}
return footer;
}