printSummary method

void printSummary()

Implementation

void printSummary() {
  print('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
  print('🩺 DANGI DOCTOR — DIAGNOSIS REPORT');
  print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
  print('📊 Total widgets on screen : $totalWidgets');
  print('📏 Maximum nesting depth   : $maxDepthFound');
  print('🔍 Issues found            : ${issues.length}');
  print('');

  if (issues.isEmpty) {
    print('✅ No issues found. Your app looks healthy!');
    return;
  }

  final errors = issues.where((i) => i.severity == 'error').toList();
  final warnings = issues.where((i) => i.severity == 'warning').toList();
  final infos = issues.where((i) => i.severity == 'info').toList();

  if (errors.isNotEmpty) {
    print('🔴 ERRORS (${errors.length})');
    for (final i in errors) {
      print('  $i');
    }
    print('');
  }
  if (warnings.isNotEmpty) {
    print('🟡 WARNINGS (${warnings.length})');
    for (final i in warnings) {
      print('  $i');
    }
    print('');
  }
  if (infos.isNotEmpty) {
    print('🔵 INFO (${infos.length})');
    for (final i in infos) {
      print('  $i');
    }
    print('');
  }

  print('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');

  // Top 5 most used widgets
  print('\n📦 Top widgets on this screen:');
  final sorted = widgetCounts.entries.toList()
    ..sort((a, b) => b.value.compareTo(a.value));
  for (final entry in sorted.take(5)) {
    print('  ${entry.key}: ${entry.value}x');
  }
}