printConfigPreview static method

void printConfigPreview(
  1. GenConfig config
)

Print a pretty configuration preview box

Implementation

static void printConfigPreview(GenConfig config) {
  const int width = 50;
  final line = '\u2500' * width;

  print('');
  print('\u256d$line\u256e');
  _printBoxLine('Configuration Preview', width, center: true);
  print('\u251c$line\u2524');
  _printBoxLine('Project Type:  ${config.projectTypeName}', width);
  _printBoxLine('Source:        ${config.sourceDir}', width);
  _printBoxLine('Output Prefix: ${config.outputPrefix}', width);
  _printBoxLine('Max Size:      ${config.targetSizeKB} KB', width);
  _printBoxLine('Format:        ${config.outputFormatName}', width);
  _printBoxLine('Comments:      ${config.removeComments ? "Removed" : "Kept"}', width);

  // Show file extensions
  print('\u251c$line\u2524');
  final exts = config.effectiveExtensions.join(', ');
  _printBoxLine('Extensions:    $exts', width);

  if (config.verbose) {
    _printBoxLine('Verbose:       Yes', width);
  }

  // Show ignore patterns (compact)
  final patterns = config.effectiveIgnorePatterns;
  if (patterns.isNotEmpty) {
    print('\u251c$line\u2524');
    _printBoxLine('Ignore Patterns: (${patterns.length})', width);
    for (final pattern in patterns.take(3)) {
      _printBoxLine('  \u2022 $pattern', width);
    }
    if (patterns.length > 3) {
      _printBoxLine('  ... and ${patterns.length - 3} more', width);
    }
  }

  if (config.extraRootFiles.isNotEmpty) {
    print('\u251c$line\u2524');
    _printBoxLine('Extra Root Files:', width);
    for (final file in config.extraRootFiles.take(3)) {
      _printBoxLine('  \u2022 $file', width);
    }
    if (config.extraRootFiles.length > 3) {
      _printBoxLine('  ... and ${config.extraRootFiles.length - 3} more', width);
    }
  }

  print('\u2570$line\u256f');
}