printReport method
Public method or function.
Implementation
void printReport(DiagnosticReport report) {
terminal.writeLine('');
terminal.writeLine('═══════════════════════════════════════════');
terminal.writeLine(' FireDoctor Diagnostic Report');
terminal.writeLine('═══════════════════════════════════════════');
terminal.writeLine('');
terminal.writeLine(' ┌─ Project');
terminal.writeLine(' │ Project: ${report.projectName}');
terminal.writeLine(' │ Path: ${report.projectPath}');
terminal.writeLine(' └─');
if (report.healthScore != null) {
final hs = report.healthScore!;
terminal.writeLine('');
terminal.writeLine(' ┌─ Health Score');
terminal.writeLine(' │ Overall: ${_formatScore(hs.overallScore)}/100');
terminal.writeLine(' │ Issues: ${hs.totalIssues}');
terminal.writeLine(
' │ Weight: ${hs.totalWeight}/${hs.maxPossibleWeight}',
);
terminal.writeLine(' └─');
terminal.writeLine('');
terminal.writeLine(' ┌─ Category Scores');
for (final cat in hs.categoryScores) {
final bar = _scoreBar(cat.score);
terminal.writeLine(
' │ ${cat.displayName}: ${_formatScore(cat.score)}/100 $bar',
);
}
terminal.writeLine(' └─');
terminal.writeLine('');
terminal.writeLine(' ┌─ Priority Breakdown');
for (final group in PriorityGroup.values) {
final count = hs.priorityGroups[group]?.length ?? 0;
if (count > 0) {
terminal.writeLine(' │ ${group.label}: $count');
}
}
terminal.writeLine(' └─');
if (hs.recommendations.isNotEmpty) {
terminal.writeLine('');
terminal.writeLine(' ┌─ Recommended Next Actions');
for (var i = 0; i < hs.recommendations.length; i++) {
final rec = hs.recommendations[i];
terminal.writeLine(' │ ${i + 1}. ${rec.formatted}');
}
terminal.writeLine(' └─');
}
}
terminal.writeLine('');
terminal.writeLine(' ┌─ Analyzer Results');
for (final result in report.results) {
terminal.writeLine(' │ ${result.analyzerName}: ${result.status.label}');
for (final issue in result.issues) {
terminal.writeLine(
' │ ${issue.severity.emoji} [${issue.code}] ${issue.title}',
);
}
}
terminal.writeLine(' └─');
terminal.writeLine('');
terminal.writeLine(' Score: ${report.score.toStringAsFixed(1)}/100');
terminal.writeLine(' Status: ${report.passed ? "PASSED" : "FAILED"}');
terminal.writeLine('');
terminal.writeLine(' Issues: ${report.totalIssues}');
terminal.writeLine(' Errors: ${report.totalErrors}');
terminal.writeLine(' Warnings: ${report.totalWarnings}');
terminal.writeLine('');
}