fix(prettier): Improve file exclusion in the Prettier formatter to skip unnecessary files and directories.

This commit is contained in:
2025-08-08 05:28:01 +00:00
parent 4003944139
commit b629a7d70b
3 changed files with 44 additions and 2 deletions

View File

@@ -12,12 +12,48 @@ export class PrettierFormatter extends BaseFormatter {
const changes: IPlannedChange[] = [];
const globPattern = '**/*.{ts,tsx,js,jsx,json,md,css,scss,html,xml,yaml,yml}';
// Directories to exclude from formatting
const excludePatterns = [
'node_modules/**',
'.git/**',
'dist/**',
'dist_*/**',
'.nogit/**',
'coverage/**',
'.nyc_output/**',
'vendor/**',
'bower_components/**',
'jspm_packages/**',
'*.min.js',
'*.min.css'
];
// Get all files that match the pattern
const files = await plugins.smartfile.fs.listFileTree('.', globPattern);
// Filter out any potential directories and ensure we only process files
// Filter out excluded directories and ensure we only process files
const validFiles: string[] = [];
for (const file of files) {
// Check if file matches any exclude pattern
let shouldExclude = false;
for (const pattern of excludePatterns) {
// Simple pattern matching for common cases
const patternBase = pattern.replace('/**', '').replace('**/', '').replace('*', '');
if (pattern.endsWith('/**') && file.startsWith(patternBase + '/')) {
shouldExclude = true;
logVerbose(`Excluding ${file} - matches exclude pattern ${pattern}`);
break;
} else if (pattern.startsWith('*.') && file.endsWith(patternBase)) {
shouldExclude = true;
logVerbose(`Excluding ${file} - matches exclude pattern ${pattern}`);
break;
}
}
if (shouldExclude) {
continue;
}
try {
const stats = await plugins.smartfile.fs.stat(file);
if (!stats.isDirectory()) {