feat: Update code version with fixes #91
Open
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.
Motivation
This PR represents a comprehensive update to the
dart_codemodlibrary, bringing it up to modern Dart standards (SDK 3.9.0+) and adding significant new features and improvements. The primary goals were to:The changes ensure the library remains competitive with modern Dart tooling while maintaining 100% backward compatibility.
Changes
🆕 New Features
1. Ignore Mechanism (
lib/src/ignore_util.dart)// codemod_ignoreor// codemod_ignore: reason// codemod_ignore_start...// codemod_ignore_end//and/* */comment stylesexample/ignore_example.dart2. Statistics Tracking (
lib/src/codemod_stats.dart)CodemodStatsclass tracks comprehensive execution metrics:3. Advanced File Filtering (
lib/src/file_filter.dart)FileFilterandFileFilterConfigclasses for sophisticated file selection4. Enhanced Terminal Output (
lib/src/terminal_output.dart)TerminalOutpututility class with 18 specialized methods:5. Comprehensive Documentation (
docs/directory)🐛 Bug Fixes and Improvements
Critical Fixes
Logger.root.onRecord.listennow properly cancelled infinallyblocklate Patch prevtoPatch? prevto preventLateInitializationError_readFileSafely()to handle missing files gracefullyapplyPatchesAndSaveto prevent data lossunit.accept(this)intry-finallyto ensure AST visitor state is always resetHigh Priority Fixes
validatePatch()function to check for valid patch offsets before applicationMedium Priority Improvements
🔧 Technical Improvements
Dependency Updates
analyzer: ^10.0.0args: ^2.7.0glob: ^2.1.2io: ^1.0.4logging: ^1.2.0dart_style: ^3.1.4lints: ^6.0.0(replaced deprecatedpedantic)Code Quality
librarydirectivesTesting
📊 Impact Summary
Release Notes
Version 1.3.0 - Major feature release with modernizations and enhancements
// codemod_ignorecomments (single-line and block)CodemodStatsclass for comprehensive execution statistics trackingFileFilterandFileFilterConfigfor advanced file filtering with glob patternsTerminalOutpututility class with 18 methods for professional CLI outputpedanticlinter withlintspackageReview
This PR represents a significant modernization effort that maintains 100% backward compatibility while adding substantial new features. All changes have been thoroughly tested and documented.
Key areas for review:
Please review: @Workiva/app-frameworks
QA Checklist
Merge Checklist
While we perform many automated checks before auto-merging, some manual checks are needed: