New: Implement ModifierComposed check to lint against use of Modifier.composed, which is no longer recommended in favor of the new Modifier.Node API.
New: Implement ComposeUnstableReceiver check to warn when composable extension functions or composables instance functions have unstable receivers/containing classes.
New: Check for property accessors with composition locals.
Enhancement: The ComposeComposableModifier message now recommends the new Modifier.Node API.
Enhancement: Make lints significantly more robust to edge cases like typealiases, import aliases, parentheses, fully-qualified references, and whitespace. Our tests now cover all these cases.
Enhancement: Update @Preview detection to also detect Compose Desktop's own @Preview annotation.
Enhancement: Improve the ComposeParameterOrder check to only lint the parameter list and add a quickfix.
Enhancement: Add support for checking for loops in multiple content emitters.
Fix: Fix allowed names config for Unit-returning functions.
Fix: Ignore context receivers in multiple content emissions lint.
Fix: Allow nullable types for trailing lambdas in ComposeParameterOrder.
Fix: Best-effort work around name mangling when comparing name in M2ApiDetector's allow list.
Fix: Fix ComposePreviewPublic to always just require private, remove preview parameter configuration.
Docs: Improve docs for ComposeContentEmitterReturningValues
Build against lint-api 31.2.2.
Test against lint-api 31.4.0-alpha06.
Raise Kotlin apiVersion/languageVersion to 1.9.0.
Special thanks to @jzbrooks, @joeMalebe, and @dellisd for contributing to this release!
What's Changed
Update dependency Pygments to v2.15.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/108
Update dependency tornado to v6.3.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/111
Update dependency gradle to v8.1.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/110
Update dependency mkdocs-material to v9.1.7 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/112
Update dependency termcolor to v2.3.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/113
Update dependency mkdocs-material to v9.1.8 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/114
Update plugin ksp to v1.8.21-1.0.11 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/115
Update lint-latest to v31.2.x alphas by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/109
Update dependency com.facebook:ktfmt to v0.44 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/116
Update dependency mkdocs to v1.4.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/119
Update dependency mkdocs-material to v9.1.9 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/120
Update dependency com.google.auto.service:auto-service-annotations to v1.1.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/126
Update plugin detekt to v1.23.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/127
Update plugin spotless to v6.19.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/128
Update dependency mkdocs-macros-plugin to v1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/130
Update dependency MarkupSafe to v2.1.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/131
Update plugin dokka to v1.8.20 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/132
Update dependency pymdown-extensions to v10 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/124
Update dependency com.android.tools.lint:lint-api to v31.0.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/117
Update dependency mkdocs-material to v9.1.15 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/122
Update plugin lint to v8.0.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/118
Update dependency tornado to v6.3.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/123
Allow nullable types for trailing lambdas in ComposeParameterOrder by @mrmans0n in https://github.com/slackhq/compose-lints/pull/134
Ignore context receivers in multiple content emissions lint by @mrmans0n in https://github.com/slackhq/compose-lints/pull/135
Update dependency com.google.auto.service:auto-service-annotations to v1.1.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/136
Fix allowed names for Unit-returning functions by @dellisd in https://github.com/slackhq/compose-lints/pull/139
Update plugin ksp to v1.8.22-1.0.11 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/133
Update lint-latest to v31.2.0-alpha09 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/121
Update dependency mkdocs-material to v9.1.17 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/138
Update lint-latest to v31.2.0-alpha10 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/140
Update dependency click to v8.1.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/144
Update dependency mkdocs-material to v9.1.18 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/143
Update lint-latest to v31.2.0-alpha11 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/145
Update dependency gradle to v8.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/141
Update plugin mavenPublish to v0.25.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/142
Update dependency dev.zacsweers.autoservice:auto-service-ksp to v1.1.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/147
Update lint-latest to v31.2.0-alpha12 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/150
Update dependency mkdocs-macros-plugin to v1.0.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/151
Update dependency gradle to v8.2.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/149
Update dependency PyYAML to v6.0.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/154
Update plugin spotless to v6.20.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/155
Update dependency mkdocs-material to v9.1.19 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/156
Update lint-latest to v31.2.0-alpha13 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/157
Slight Improvement for rules documentation by @joeMalebe in https://github.com/slackhq/compose-lints/pull/170
Update dependency click to v8.1.7 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/152
Update dependency pymdown-extensions to v10.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/153
Update dependency Markdown to v3.4.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/158
Update dependency mkdocs-material to v9.4.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/160
Update dependency com.android.tools.lint:lint-api to v31.1.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/161
Update dependency mkdocs to v1.5.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/162
Update plugin lint to v8.1.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/163
Update plugin detekt to v1.23.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/164
Kotlin 1.9.10 + gradle 8.3 and a couple other things by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/146
Update dependency com.android.tools.lint:lint-api to v31.1.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/174
Update dependency mkdocs-macros-plugin to v1.0.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/175
Update lint-latest to v31.3.0-alpha06 + fix baselined issues by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/159
Update actions/checkout action to v4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/181
Update dependency tornado to v6.3.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/176
Update dependency lunr to v0.7.0.post1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/178
Update dependency mkdocs-material-extensions to v1.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/179
Update plugin spotless to v6.22.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/180
Update dependency Pygments to v2.16.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/177
Update lint-latest to v31.3.0-alpha12 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/184
Update dependency Markdown to v3.5.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/185
Update plugin dokka to v1.9.10 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/186
Update dependency org.jetbrains.kotlin.jvm to v1.9.20 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/190
Update dependency mkdocs-material to v9.4.7 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/182
Update dependency gradle to v8.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/183
Update dependency pymdown-extensions to v10.3.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/188
Update plugin detekt to v1.23.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/191
Update dependency mkdocs-material-extensions to v1.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/187
Update dependency pymdown-extensions to v10.5 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/199
Update dependency mkdocs-material-extensions to v1.3.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/201
Update plugin lint to v8.1.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/196
Update dependency org.jetbrains.kotlin.jvm to v1.9.21 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/202
Update lint-latest to v31.3.0-alpha14 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/198
Update dependency mkdocs-macros-plugin to v1.0.5 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/192
Update plugin ksp to v1.9.20-1.0.14 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/193
Update dependency Pygments to v2.17.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/200
Update dependency com.android.tools.lint:lint-api to v31.1.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/195
Update dependency mkdocs-material to v9.4.12 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/194
Update dependency mkdocs-material to v9.4.14 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/207
Update plugin detekt to v1.23.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/208
Implement ModifierComposed check by @ZacSweers in https://github.com/slackhq/compose-lints/pull/204
Add support for checking for loops in multiple content emitters by @ZacSweers in https://github.com/slackhq/compose-lints/pull/205
Update plugin ksp to v1.9.21-1.0.15 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/210
Update actions/setup-python action to v5 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/221
Update lint-latest to v31.3.0-alpha16 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/212
Update dependency gradle to v8.5 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/214
Update actions/setup-java action to v4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/215
Update plugin lint to v8.2.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/217
Update plugin spotless to v6.23.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/211
Update dependency termcolor to v2.4.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/219
Update dependency tornado to v6.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/213
Update dependency com.android.tools.lint:lint-api to v31.2.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/216
Update dependency mkdocs-material to v9.5.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/223
Update plugin ksp to v1.9.22-1.0.16 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/224
Update dependency pymdown-extensions to v10.7 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/228
Update dependency org.jetbrains.kotlin.jvm to v1.9.22 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/227
Update actions/upload-artifact action to v4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/225
Improve the parameter order check by @jzbrooks in https://github.com/slackhq/compose-lints/pull/229
Update lint-latest to v31.3.0-beta01 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/222
Update plugin mavenPublish to v0.26.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/226
Update lint-latest to v31.3.0-beta02 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/236
Update plugin lint to v8.2.1 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/231
Update plugin mavenPublish to v0.27.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/232
Update dependency Markdown to v3.5.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/235
Update dependency Jinja2 to v3.1.3 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/234
Update lint-latest to 31.4.0-x by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/230
Update dependency MarkupSafe to v2.1.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/242
Update plugin spotless to v6.24.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/237
Update dependency mkdocs-material to v9.5.4 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/238
Update plugin ksp to v1.9.22-1.0.17 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/240
Fix most test mode issues in lints, better harden them against different edge cases lint helps test for. by @ZacSweers in https://github.com/slackhq/compose-lints/pull/209
Update dependency com.facebook:ktfmt to v0.47 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/239
Add testDocumentationExample by @ZacSweers in https://github.com/slackhq/compose-lints/pull/244
Misc repo infra work by @ZacSweers in https://github.com/slackhq/compose-lints/pull/243
Implement UnstableReceiverDetector by @ZacSweers in https://github.com/slackhq/compose-lints/pull/245
Check for property accessors with composition locals by @ZacSweers in https://github.com/slackhq/compose-lints/pull/249
Add support for checking inherited stability in UnstableReceiverDetector by @ZacSweers in https://github.com/slackhq/compose-lints/pull/248
Fix PreviewPublicDetector by @ZacSweers in https://github.com/slackhq/compose-lints/pull/206
Update dependency com.android.tools.lint:lint-api to v31.2.2 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/250
Update dependency mkdocs-material to v9.5.5 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/251
Update lint-latest to v31.4.0-alpha05 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/246
Update lint-latest to v31.4.0-alpha06 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/254
Update plugin spotless to v6.25.0 by @slack-oss-bot in https://github.com/slackhq/compose-lints/pull/255
Add name mangling workaround by @ZacSweers in https://github.com/slackhq/compose-lints/pull/253
New Contributors
@dellisd made their first contribution in https://github.com/slackhq/compose-lints/pull/139
@joeMalebe made their first contribution in https://github.com/slackhq/compose-lints/pull/170
@jzbrooks made their first contribution in https://github.com/slackhq/compose-lints/pull/229
Full Changelog: https://github.com/slackhq/compose-lints/compare/1.2.0...1.3.0