StringBuffer buildFooter()

in tool/scorecard.dart [55:115]


StringBuffer buildFooter(ScoreCard scorecard, List<Detail> details) {
  var pedanticLintCount = 0;
  var flutterUserLintCount = 0;
  var flutterRepoLintCount = 0;
  var fixCount = 0;
  var pedanticFixCount = 0;

  for (var score in scorecard.scores) {
    for (var ruleSet in score.ruleSets!) {
      if (ruleSet == 'pedantic') {
        ++pedanticLintCount;
        if (score.hasFix!) {
          ++pedanticFixCount;
        }
      }
      if (ruleSet == 'flutter') {
        ++flutterUserLintCount;
      }
      if (ruleSet == 'flutter_repo') {
        ++flutterRepoLintCount;
      }
    }
    if (score.hasFix!) {
      ++fixCount;
    }
  }

  var footer = StringBuffer('\n_${scorecard.lintCount} lints');

  var breakdowns = StringBuffer();
  if (details.contains(Detail.pedantic)) {
    breakdowns.write('$pedanticLintCount pedantic');
  }
  if (details.contains(Detail.flutterUser)) {
    if (breakdowns.isNotEmpty) {
      breakdowns.write(', ');
    }
    breakdowns.write('$flutterUserLintCount flutter user');
  }
  if (details.contains(Detail.flutterRepo)) {
    if (breakdowns.isNotEmpty) {
      breakdowns.write(', ');
    }
    breakdowns.write('$flutterRepoLintCount flutter repo');
  }

  if (breakdowns.isNotEmpty) {
    breakdowns.write('; ');
  }
  breakdowns.write('$fixCount w/ fixes');
  if (details.contains(Detail.pedantic)) {
    breakdowns.write(' ($pedanticFixCount pedantic)');
  }

  if (breakdowns.isNotEmpty) {
    footer.write(': $breakdowns');
  }

  footer.writeln('_');
  return footer;
}