mirror of
https://github.com/realm/SwiftLint.git
synced 2026-06-06 20:18:40 +00:00
## Summary Convert AccessibilityTraitForButtonRule to use SwiftSyntax instead of SourceKit for improved performance and better accessibility trait detection in SwiftUI modifier chains. ## Key Technical Improvements - **Bidirectional modifier chain analysis** for comprehensive accessibility trait detection - **Better context awareness** through SwiftSyntax tree traversal - **Accurate container exemption logic** for Button/Link components - **Enhanced gesture detection** supporting `.onTapGesture` and `.gesture` modifiers - **Improved performance** with SwiftSyntax visitor pattern over SourceKit AST parsing ## Migration Details - Replaced `ASTRule` with `@SwiftSyntaxRule(optIn: true)` annotation - Implemented `ViolationsSyntaxVisitor` pattern for systematic tree traversal - Added bidirectional accessibility trait detection that checks both before and after tap gestures - Enhanced exemption logic for inherently accessible containers (Button, NavigationLink) - Maintained full compatibility with existing rule behavior and test cases