printConfigPreview static method
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');
}