fix(prettier): Improve file exclusion in the Prettier formatter to skip unnecessary files and directories.
This commit is contained in:
@@ -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()) {
|
||||
|
Reference in New Issue
Block a user