Releases: AndroidPoet/compose-guard
Releases · AndroidPoet/compose-guard
ComposeGuard v1.1.0
ComposeGuard v1.1.0
1.1.0
-
5 New Performance Rules: Advanced static analysis for recomposition issues
-
UnstableLambdaCaptureRule: Detects lambdas capturing var declarations
-
ObjectCreationInCompositionRule: Detects object instantiation without remember {}
-
WideRecompositionScopeRule: Detects state reads at top of large composables
-
DeferStateReadsRule: Suggests lambda-based modifiers for animations
-
FrequentRecompositionRule: Suggests lifecycle-aware state collection
-
New Quick Fixes: Wrap in Column/Row/Box, UseGraphicsLayerFix, AddStableAnnotationFix
- Total rules increased from 36 to 39
ComposeGuard v1.0.9
ComposeGuard v1.0.9
1.0.9
-
State/Callback Pairing: ReorderParametersFix now keeps state/callback pairs together (e.g., value/onValueChange, checked/onCheckedChange)
-
Improved Parameter Ordering: Smart pairing for common patterns like text/onTextChange, query/onQueryChange, selected/onSelectedChange
ComposeGuard v1.0.8
ComposeGuard v1.0.8
1.0.8
-
Rule Enable/Disable Bug Fix: Fixed critical issue with rule enable/disable functionality
-
Restructured Settings Architecture: Improved enable/disable state management for individual rules
-
Settings Persistence Fix: Rule states are now correctly saved and restored across IDE restarts
ComposeGuard v1.0.7
ComposeGuard v1.0.7
1.0.7
-
All Rules Enabled by Default: All rules including experimental are now enabled out of the box
-
Simplified Settings UX: Completely redesigned settings panel
- All checkboxes are now always interactive (no more grayed-out states)
- "Enable All Rules" master switch to select/deselect all rules at once
- Category checkboxes act as "select all/none" for rules in that category
- Parent checkbox states automatically derived from child selections
- Standard IDE settings pattern (like IntelliJ inspections panel)
-
Fixed Critical Settings Bug: Disabling one rule no longer disables ALL rules
-
Hierarchical Rule Control: Proper Master → Category → Rule hierarchy
-
Fixed Rule Category Mismatch: LambdaParameterInEffect moved to correct STATE category
-
Comprehensive Test Coverage: 45+ new tests for settings and enable/disable functionality
ComposeGuard v1.0.6
ComposeGuard v1.0.6
1.0.6
-
Statistics Dashboard: New tool window with violation analytics by category, file, and rule
-
Parameter Ordering Fix: Fixed modifier position to follow official Jetpack Compose guidelines
- Modifier is now correctly enforced as the FIRST optional parameter (not last)
- Order: required → modifier (first optional) → other optionals → content lambda
- Updated ReorderParametersFix quick fix to use correct ordering
-
Suppress Built-in Compose Inspections: Automatically hides Android Studio's built-in Compose lint warnings when ComposeGuard handles them
- New setting: "Suppress built-in Compose inspections" in Settings → Tools → ComposeGuard
-
Comprehensive Test Coverage: Added tests for all 36 rules
- New test files for Modifier, Naming, State, Composable, Stricter, Effects, and Performance categories
- Added EventParameterNaming rule with past tense detection
- Improved settings UI with category toggles
ComposeGuard v1.0.5
ComposeGuard v1.0.5
1.0.5
- Fixed Suppress action not working for ModifierRequired, MultipleContentEmitters, ParameterOrdering rules
- SuppressComposeRuleFix now correctly handles name identifier elements
- Added AddLambdaAsEffectKeyFix and UseRememberUpdatedStateFix quick fixes
- Improved ModifierReuseRule, ParameterOrderingRule, and LambdaParameterInEffectRule
ComposeGuard v1.0.4
ComposeGuard v1.0.4
Real-time detection of Compose best practices and rule violations in Android Studio.
What's New
1.0.4
- Fixed Suppress action not working for ModifierRequired, MultipleContentEmitters, ParameterOrdering rules
- SuppressComposeRuleFix now correctly handles name identifier elements
- Added AddLambdaAsEffectKeyFix and UseRememberUpdatedStateFix quick fixes
- Improved ModifierReuseRule, ParameterOrderingRule, and LambdaParameterInEffectRule
Installation
From JetBrains Marketplace (Recommended)
- In Android Studio: Settings → Plugins → Marketplace
- Search for "ComposeGuard"
- Click Install
Manual Installation
- Download the
.zipfile from this release - In Android Studio: Settings → Plugins → ⚙️ → Install Plugin from Disk
- Select the downloaded
.zipfile - Restart Android Studio
Features
- 🔍 32 Compose Rules: Naming, modifiers, state, parameters, effects, and more
- ⚡ Real-time Highlighting: See violations as you type
- 🎯 Gutter Icons: Visual indicators for composable rule status
- 💡 Quick Fixes: One-click fixes shown directly in popup
- ⚙️ Settings UI: Enable/disable individual rules (Settings → Tools → ComposeGuard)
Based on Compose Rules documentation.
1.1.3
Here’s a clean, polished, GitHub-ready release notes version of your text:
✨ ComposeGuard 1.0.3 — Initial Release
ComposeGuard brings real-time Jetpack Compose linting inside Android Studio, helping you write clean, stable, and production-ready Compose UI with zero friction.
🚀 Highlights
- 32 Compose Rules across naming, modifiers, state, parameters, effects, and composable structure
- Real-time detection as you type
- Gutter icons showing rule violation status
- Inline hints for parameter-level issues
- Quick Fixes for common violations
- Full suppression support (
@Suppress+//noinspection) - Supports Android Studio from Ladybug (2024.2) → Narwhal (2025.3)
🧩 Rule Categories
🔤 Naming Rules
- Composable naming
- Modifier naming
- CompositionLocal naming
- Preview naming
- Annotation naming conventions
🎛️ Modifier Rules
- Required modifiers
- Default modifier values
- Modifier ordering
- Modifier reuse
- Topmost modifier placement
- Avoiding
composedmisuse
📦 State Rules
- Proper
rememberusage - Type-specific state rules
- State hoisting
- Avoiding mutable parameters
⚙️ Parameter Rules
- Parameter ordering
- Trailing lambda rules
- Multiple content slot restrictions
- ViewModel forwarding rules
🧱 Composable Structure Rules
- Content emission
- Preview visibility
- Effect key correctness
- Lambda parameters inside effects
- Content slot reuse
🚫 Stricter Rules
- Blocking Material 2 usage
- Detecting unstable collections
📝 Suppression Support
- Full support for
@Suppress("ComposeGuardRule") - IntelliJ-style
// noinspection ComposeGuardRule
If you'd like, I can also generate a CHANGELOG.md section, tag description, or a GitHub release banner text.