Skip to content

Releases: AndroidPoet/compose-guard

v1.2.2

28 May 07:47

Choose a tag to compare

What's Changed

  • Fixed inspection registration mismatch by aligning ComposeGuard inspection shortName with plugin.xml metadata.
  • Added regression tests to ensure inspection registration and shortName consistency stay correct.

Verification

  • Ran Configuration on demand is an incubating feature.

Task :compose-guard:checkKotlinGradlePluginConfigurationErrors SKIPPED
Task :compose-guard:compileKotlin UP-TO-DATE
Task :compose-guard:compileJava NO-SOURCE
Task :compose-guard:initializeIntellijPlatformPlugin
Task :compose-guard:patchPluginXml UP-TO-DATE
Task :compose-guard:processResources UP-TO-DATE
Task :compose-guard:classes UP-TO-DATE
Task :compose-guard:generateManifest UP-TO-DATE
Task :compose-guard:instrumentCode UP-TO-DATE
Task :compose-guard:jar UP-TO-DATE
Task :compose-guard:compileTestKotlin UP-TO-DATE
Task :compose-guard:compileTestJava NO-SOURCE
Task :compose-guard:processTestResources UP-TO-DATE
Task :compose-guard:testClasses UP-TO-DATE
Task :compose-guard:instrumentTestCode UP-TO-DATE
Task :compose-guard:instrumentedJar UP-TO-DATE
Task :compose-guard:composedJar UP-TO-DATE
Task :compose-guard:prepareTestSandbox UP-TO-DATE
Task :compose-guard:prepareTest
Task :compose-guard:test UP-TO-DATE

BUILD SUCCESSFUL in 5s
14 actionable tasks: 1 executed, 13 up-to-date successfully.

  • Ran Configuration on demand is an incubating feature.

Task :compose-guard:initializeIntellijPlatformPlugin
Task :compose-guard:patchPluginXml UP-TO-DATE
Task :compose-guard:generateManifest UP-TO-DATE
Task :compose-guard:checkKotlinGradlePluginConfigurationErrors SKIPPED
Task :compose-guard:compileKotlin UP-TO-DATE
Task :compose-guard:compileJava NO-SOURCE
Task :compose-guard:processResources UP-TO-DATE
Task :compose-guard:classes UP-TO-DATE
Task :compose-guard:instrumentCode UP-TO-DATE
Task :compose-guard:jar UP-TO-DATE
Task :compose-guard:instrumentedJar UP-TO-DATE
Task :compose-guard:composedJar UP-TO-DATE
Task :compose-guard:prepareSandbox UP-TO-DATE
Task :compose-guard:buildSearchableOptions SKIPPED
Task :compose-guard:prepareJarSearchableOptions SKIPPED
Task :compose-guard:jarSearchableOptions SKIPPED
Task :compose-guard:buildPlugin UP-TO-DATE

BUILD SUCCESSFUL in 2s
11 actionable tasks: 1 executed, 10 up-to-date successfully.

ComposeGuard v1.2.1

15 May 11:15

Choose a tag to compare

ComposeGuard v1.2.1

1.2.1

  • False Positive Fix: DerivedStateOfCandidate now ignores collection copies and other computed values inside event handlers such as onClick/onRemove, where the work runs only when the event fires rather than on every recomposition

ComposeGuard v1.2.0

13 Apr 16:45

Choose a tag to compare

ComposeGuard v1.2.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.1.0

25 Dec 04:25

Choose a tag to compare

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

15 Dec 16:08

Choose a tag to compare

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

15 Dec 09:42

Choose a tag to compare

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

15 Dec 09:01

Choose a tag to compare

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

14 Dec 07:16

Choose a tag to compare

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

10 Dec 15:37

Choose a tag to compare

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

10 Dec 13:55

Choose a tag to compare

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)

  1. In Android Studio: Settings → Plugins → Marketplace
  2. Search for "ComposeGuard"
  3. Click Install

Manual Installation

  1. Download the .zip file from this release
  2. In Android Studio: Settings → Plugins → ⚙️ → Install Plugin from Disk
  3. Select the downloaded .zip file
  4. 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.