* Convert glob pattern to regex
(pattern: string)
| 4111 | * Convert glob pattern to regex |
| 4112 | */ |
| 4113 | private globToRegex(pattern: string): RegExp { |
| 4114 | const escaped = pattern |
| 4115 | .replace(/[.+^${}()|[\]\\]/g, '\\$&') // Escape special regex chars except * and ? |
| 4116 | .replace(/\*\*/g, '{{GLOBSTAR}}') // Temp placeholder for ** |
| 4117 | .replace(/\*/g, '[^/]*') // * matches anything except / |
| 4118 | .replace(/\?/g, '[^/]') // ? matches single char except / |
| 4119 | .replace(/\{\{GLOBSTAR\}\}/g, '.*'); // ** matches anything including / |
| 4120 | return new RegExp(escaped); |
| 4121 | } |
| 4122 | |
| 4123 | /** |
| 4124 | * Format files as a flat list |