Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions compose-stability-analyzer-idea/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ All notable changes to the IntelliJ IDEA plugin will be documented in this file.

## [0.5.0] - 2025-11-08

### Breaking Changes
- **Minimum IDE version updated**: Now requires IntelliJ IDEA 2024.2+ (build 242+)
- Previous minimum was 2023.2 (build 232)
- This aligns with modern K2 Analysis API requirements and ensures better stability

### Added
- **New Compose Stability Tool Window** - View all composables in your project at a glance (Issue #14)
- Tree view grouped by module -> package -> file
Expand Down Expand Up @@ -35,15 +40,23 @@ All notable changes to the IntelliJ IDEA plugin will be documented in this file.
- **Performance optimization** - Tool window now reads pre-computed stability information from JSON files instead of re-analyzing all files
- Significantly faster load times for large projects
- Reduced CPU usage when opening the tool window
- **Added IntelliJ Plugin Verifier integration**
- Automated compatibility testing across multiple IDE versions
- Prevents API compatibility issues before release
- Can be run locally with `./gradlew verifyPlugin`

### Fixed
- **Fixed PluginException in IntelliJ IDEA 2025.2.4** (Issue #33)
- Added explicit `shortName` attribute to inspection registration in plugin.xml
- Resolved "Short name not matched" error that occurred due to stricter validation in newer IDE versions
- Fixed double-click navigation to source code in tool window
- Fixed typealias detection for Composable function types (Issue #16)
- Typealiases like `typealias SettingsButtons = @Composable (PlayerUiState) -> Unit` now correctly expand to their underlying function types before stability analysis
- Fixed ImmutableList/ImmutableSet/ImmutableMap showing as unstable in test code (Issue #21)
- Added fallback type resolution by simple name for immutable collections when FQN resolution fails in test source sets
- Improved cross-module stability detection by reading @StabilityInferred(parameters) annotation (Issue #18)
- Classes from other modules now correctly marked as UNSTABLE unless annotated with @Stable/@Immutable or @StabilityInferred(parameters=0)
- Extended plugin compatibility range to support IntelliJ IDEA 2025.3 (build 253)

---

Expand Down
12 changes: 10 additions & 2 deletions compose-stability-analyzer-idea/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ dependencies {
intellijIdeaCommunity("2025.2")
bundledPlugin("org.jetbrains.kotlin")
testFramework(org.jetbrains.intellij.platform.gradle.TestFrameworkType.Platform)
pluginVerifier()
}

testImplementation(kotlin("test"))
Expand All @@ -53,8 +54,8 @@ intellijPlatform {

pluginConfiguration {
ideaVersion {
sinceBuild = "232"
untilBuild = "252.*"
sinceBuild = "242"
untilBuild = "253.*"
}

description = """
Expand Down Expand Up @@ -125,6 +126,13 @@ intellijPlatform {
""".trimIndent()

}

pluginVerification {
ides {
// Verify compatibility with recommended IDE versions
recommended()
}
}
}

tasks {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
<!-- Inspection for unstable composables -->
<localInspection
language="kotlin"
shortName="UnstableComposable"
displayName="Unstable Composable Function"
groupName="Compose"
enabledByDefault="true"
Expand Down