1.2 KiB
1.2 KiB
SmartFile Implementation Hints
listFileTree Function Enhancement (ts/fs.ts:367-415)
Issue Fixed
The listFileTree
function previously had inconsistent behavior with **/*.extension
patterns across different systems and glob implementations. Some implementations would miss root-level files when using patterns like **/*.ts
.
Solution Implemented
Modified the function to explicitly handle **/
patterns by:
- Detecting when a pattern starts with
**/
- Extracting the file pattern after
**/
(e.g.,*.ts
from**/*.ts
) - Running both the original pattern and the extracted root pattern
- Using a Set to deduplicate results and ensure consistent ordering
Key Benefits
- Guarantees consistent behavior across all systems
- Ensures both root-level and nested files are found with
**/*
patterns - Maintains backward compatibility
- No performance degradation due to efficient deduplication
Test Coverage
Added comprehensive tests to verify:
- Both root and nested files are found with
**/*.ts
- No duplicate entries in results
- Edge cases with various file extensions work correctly
This fix ensures tools like tsbuild check **/*.ts
work reliably across all systems.