feat: implement high-performance dual-engine gitignore parser #433
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
π Feature: High-Performance Dual-Engine Gitignore Parser
Implements issue #432 - Replace existing gitignore logic with a high-performance dual-engine gitignore parser.
π What's Changed
ποΈ Architecture
enableHomeSpunGitIgnore
settingπ§ Core Components
IgnoreEngine
&IgnoreRule
interfacesHomeSpunIgnoreEngine
- Custom high-performance implementationBasjesIgnoreEngine
- Third-party library wrapper (nl.basjes.gitignore)GitIgnoreFlagWrapper
- Dual-engine coordinatorPatternConverter
- Gitignore pattern to regex conversionIgnorePatternCache
- Thread-safe pattern cachingThreadSafeMatcher
- Concurrent regex matchingGitIgnoreUtil
- Convenient utility classβ‘ Performance Optimizations
π― Gitignore Features Supported
*
,?
)**
)/
)!
)/
)π File Structure
π Integration Points
Updated Files
AutoDevCoderSettingService.kt
- Added feature flagProjectFileUtil.kt
- Updated to use new engineDirInsCommand.kt
- Replaced gitignore logicWorkspaceFileSearchPopup.kt
- Updated ignore checkingLocalSearchInsCommand.kt
- Updated ignore checkingDependencies
nl.basjes.gitignore:gitignore-reader:1.6.0
π§ͺ Testing
π Build Results
π§ Usage
ποΈ Configuration
Users can control the engine through AutoDev settings:
π Backward Compatibility
π Performance Benefits
π Documentation
See
GITIGNORE_ENGINE_IMPLEMENTATION.md
for detailed implementation documentation.Closes #432
Pull Request opened by Augment Code with guidance from the PR author