impeccable_flutter_lints 0.0.1
impeccable_flutter_lints: ^0.0.1 copied to clipboard
Detector estático de anti-padrões de design para apps Flutter. Plugin custom_lint que cobre AI slop (gradient AppBar, deepPurple seed, bounce easing) e quality (TextStyle literal, missing Semantics, t [...]
Changelog #
Todos os releases do impeccable_flutter_lints. Segue Keep a Changelog e SemVer.
0.0.1 (initial release) #
Adicionadas — 25 regras de detecção #
Slop (10):
impeccable_ai_color_palette—Color(0xFF<hex>)da família roxo/índigo IA (10 hexes).impeccable_border_accent_on_rounded—Border.all(width: >2)+borderRadiusarredondado.impeccable_deep_purple_seed—ColorScheme.fromSeed(seedColor: Colors.deepPurple).impeccable_bounce_elastic_curve—Curves.bounce*ouCurves.elastic*.impeccable_dark_glow—BoxShadowcomblurRadius >30.impeccable_gradient_text—ShaderMask+LinearGradientenvolvendoText.impeccable_italic_serif_display—TextStyleitalic + serif (Fraunces, Lora, etc.) +fontSize >32.impeccable_nested_cards—Cardaninhado emCard.impeccable_side_tab—Border(left: BorderSide(width: >1))desigual.impeccable_single_font—TextThemecom mesmafontFamilyem ≥4 papéis.
Quality (15):
impeccable_all_caps_body—Text('STRING')>12 chars todo em uppercase.impeccable_black_white_literal—Colors.black/Colors.whiteliteral.impeccable_cramped_padding—EdgeInsets.all(<8).impeccable_justified_text—TextAlign.justifyem mobile.impeccable_layout_transition—AnimatedContainermudando width/height/padding/margin/constraints.impeccable_material_baseline—MaterialApp/CupertinoAppsemtheme:/darkTheme:.impeccable_missing_safe_area—Scaffold(extendBodyBehindAppBar: true)semSafeArea.impeccable_missing_semantics—GestureDetector/InkWellinterativo semSemantics/Text/tooltip.impeccable_missing_tooltip—IconButtonsemtooltip:.impeccable_textstyle_outside_theme—TextStyle(...)literal em vez detextTheme.X.impeccable_tight_leading—TextStyle.height <1.15.impeccable_tiny_text—TextStyle.fontSize <12.impeccable_touch_target_too_small—IconButton(padding: EdgeInsets.zero)ou compact density + iconSize <24.impeccable_use_material3_false—useMaterial3: false.impeccable_wide_tracking—TextStyle.letterSpacing >2.
Conhecido — limitações #
monotonous_spacingeeverything_centeredprecisam de agregação cross-node, não suportada bem porcustom_lint_core0.7.5. Implementadas via--fastregex no CLIimpeccable_flutter.overused_font(GoogleFonts da reflex-reject list) não dispara viaaddMethodInvocation/addSimpleIdentifieremcustom_lint_core0.7.5. Implementada via--fastregex.
Testes #
- 26 integration tests via
dart test. Cada regra é validada contra fixtures emexample/lib/should_flag.dart(deve flagar) eexample/lib/should_pass.dart(não deve flagar). Tempo de suite: ~13s.