ren 0.1.0
ren: ^0.1.0 copied to clipboard
A static analysis tool that measures the performance weight of each feature in your Flutter app — detecting costly AST patterns and reporting a gravity score per feature.
0.1.0 #
Added #
- Compound rule detection — 20+ widget combinations with elevated weights:
- Level 3 (critical × 2.5) —
BackdropFilter/ShaderMask/ImageFiltered/ColorFilteredinsideListView/GridView,Opacity/ClipPath/ClipRRectinsideAnimatedBuilder,OpacityinsideListView/GridView. - Level 2 (high × 1.5) —
BackdropFilterinsideStack/PageView,NetworkImageinsideListView/GridView,CustomPaint/ClipPathinsideAnimatedBuilder/ListView/GridView,HeroinsideListView/GridView,ShaderMaskinsideAnimatedBuilder.
- Level 3 (critical × 2.5) —
- Top contributors breakdown per feature — shows which patterns contribute most to the gravity score.
[inside ParentWidget]context tag on compound patterns.renwexecutable — fallback for Windows PowerShell whererenconflicts withRename-Item.- New patterns —
ClipRRect,Hero. lambda-depthtracking to avoid false positives onsetStateinside callbacks.
Fixed #
setStatefalse positives on callbacks with target (e.g.state.setState,logic.setState).GridView.countand other non-lazy named constructors now correctly flagged.Image.networkdetection via full name matching invisitMethodInvocation.
0.0.1 #
- Feature detection by folder convention (
lib/features/,lib/modules/). --featuresflag for custom feature roots (e.g.lib/ui/screens).--excludeflag — comma-separated list of paths to exclude from analysis (e.g.lib/generated,lib/_tools).- Simplified CLI —
renruns analysis directly without subcommand. - AST-based pattern detection across six categories:
- GPU-costly widgets —
BackdropFilter,ShaderMask,Opacity,ColorFiltered,ImageFiltered,saveLayer,ClipPath,CustomPaint. - Unoptimized lists —
ListView,GridView,SingleChildScrollView,Wrap. - Uncached images —
Image.network,NetworkImage,FadeInImage. - Rebuild patterns —
RepaintBoundary,MediaQuery.of. - Memory leaks —
Timer,Timer.periodic,StreamController,StreamSubscription. - Lifecycle misuse —
setState in build,setState in initState,setState in dispose.
- GPU-costly widgets —
- Gravity score (0–100) per feature mapped to
LOW / MEDIUM / HIGH / CRITICAL. - ANSI console output with gravity bar and per-pattern hints.
- JSON output (
--format json) for CI/CD pipelines. --fail-onflag — exits with code 1 if any feature reaches the specified level.