1.7.0
π Features
Context receiver / parameters
With upgrade to Kotlin 2.2.0, Ktlint 1.7.0 supports context parameters.
-
Add
context-receiver-list-wrappingrule - #3034, by @paul-dingemans -
Add context receiver list to
modifier-orderrule - #3031, by @paul-dingemans -
Ignore context parameters in rule
context-receiver-wrapping- #3033, by @paul-dingemans
Other rule changes
-
Do not run
no-unused-importsrule by default - #3039, by @paul-dingemans
Theno-unused-importrule is no longer run by default as it keeps causing problems. It will be removed in Ktlint2.0. Until then, the rule can still be run, when enabled explicitly in.editorconfig. -
Add experimental rule
expression-operand-wrapping- #3056, by @paul-dingemans
This rule aligns wrapping of arithmetic and logical multiline expressions. Thecondition-wrappingrule which did something similar for logical multiline expressions only no longer reports and fixes violations. It will be removed in Ktlint2.0.
Other features
-
Deprecate functions in
ASTNodeExtensions, and where applicable provide property accessors - #3026, by @paul-dingemans
When usingASTNodeExtensionsplease replace function calls with the new (temporary) property accessors. The temporary property accessors are needed to maintain backwards compatability with Java integration. In Ktlint2.0the functions will be removed, and the temporary property accessors will be replaced with final names. -
Suppress warning "sun.misc.Unsafe::objectFieldOffset" in Ktlint CLI (Java24+) - #3040, by @paul-dingemans
-
Suppress error "A restricted method in java.lang.System has been called" on Java 24 in KtLint CLI only - #3043, by @paul-dingemans
-
Remove unneeded "--add-opens=java.base/java.lang=ALL-UNNAMED" - #3044, by @paul-dingemans
π§ Fixes
-
Do not remove an empty value parameter list from a call expression when it is nested - #3017, by @paul-dingemans
-
Clarify violation message in
filenamerule - #3046, by @paul-dingemans
π¦ Dependencies
-
chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v1 - #2989, by @renovate[bot]
-
chore(deps): update plugin com.gradle.develocity to v4.0.2 - #2996, by @renovate[bot]
-
fix(deps): update junit5 monorepo - #3005, by @renovate[bot]
-
fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.2.0-rc3 - #3015, by @renovate[bot]
-
fix(deps): update dependency org.junit.jupiter:junit-jupiter to v5.13.2 - #3020, by @renovate[bot]
-
fix(deps): update dependency org.junit.platform:junit-platform-launcher to v1.13.2 - #3021, by @renovate[bot]
-
fix(deps): update kotlin monorepo to v2.2.0 - #3018, by @renovate[bot]
-
chore(deps): update plugin shadow to v8.3.8 - #3030, by @renovate[bot]
π¬ Other
-
Update publishing URLs to point to Central Portal OSSRH staging API - #3006, by @shashachu
-
Update publishing credentials to use new Central Portal username/token - #3007, by @shashachu
-
Improve build - #3025, by @mateuszkwiecinski
-
Bump
poko-gradle-pluginwith a workaround (enforce compatible Kotlin version) - #3035, by @mateuszkwiecinski -
Java 24 - #3049, by @paul-dingemans
-
Make
build-logicplugins expose binary plugins - #3047, by @mateuszkwiecinski -
Cleanup Java 24 bump - #3051, by @mateuszkwiecinski