processAllFiles method
Process all files and collect results
Implementation
Future<ProcessingResult> processAllFiles({
void Function(FileInfo info)? onFileProcessed,
void Function(int processed, int total)? onProgress,
}) async {
final files = <FileInfo>[];
final ignoredFiles = <FileInfo>[];
final ignoreReasons = <String, int>{};
// First, collect all files to get total count
final allFiles = await discoverFiles().toList();
final int total = allFiles.length;
int processed = 0;
for (final file in allFiles) {
final info = await processFile(file);
processed++;
if (info.wasIgnored) {
ignoredFiles.add(info);
final String reason = info.ignoreReason ?? 'Unknown';
ignoreReasons[reason] = (ignoreReasons[reason] ?? 0) + 1;
if (config.verbose) {
verbose('Ignoring: ${info.relativePath} ($reason)');
}
} else {
files.add(info);
if (config.verbose) {
verbose('Processing: ${info.relativePath}');
}
}
onFileProcessed?.call(info);
onProgress?.call(processed, total);
}
return ProcessingResult(
files: files,
ignoredFiles: ignoredFiles,
ignoreReasons: ignoreReasons,
);
}