# ktlint changelog > An anti-bikeshedding Kotlin linter and formatter. - Vendor: Pinterest - Category: Developer Tools - License: MIT - Language: Kotlin - Official site: https://pinterest.github.io/ktlint/ - Tracked by: What's New (https://whatsnew.fyi/product/ktlint) - Harvested from: GitHub (pinterest/ktlint) - Entries below: 13 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: release facts (products, versions, dates, links, CVE ids and flags) are open data under CC BY 4.0, from the API at https://whatsnew.fyi/api/v1 or the nightly dataset at https://github.com/whatsnew-fyi/dataset. The summaries, labels and curation are © What's New: quote freely with attribution and a link back; wholesale republication of them is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### 2.0.0-ALPHA-4 - Date: 2026-08-21 - Version: 2.0.0-ALPHA-4 - Original notes: https://github.com/ktlint/ktlint/releases/tag/2.0.0-ALPHA-4 - Permalink: https://whatsnew.fyi/product/ktlint/releases/2.0.0-alpha-4 - Labels: Pre-release - **changed** — Change Maven coordinates from com.pinterest.ktlint to io.github.ktlint - **changed** — Execute all rules on same AST Node before proceeding to next AST Node - **added** — Add RuleV2 to enforce autocorrect approve visitor - **added** — Add rule call-expression-wrapping and improve wrapping in chain-method-continuation and function-literal - **added** — Add blank line check between package and import statements - **added** — Add experimental rule lambda-return - **changed** — Update Kotlin to v2.4.0 and set Java compilation to 26 - **changed** — Enable rule blank-line-before-declaration by default for android_studio - **added** — Add experimental rules for blank lines between sections - **added** — Add GraalVM native-image binaries to release for Linux, macOS, and Windows - **added** — Add experimental rule no-blank-line-at-start-of-file - **fixed** — Handle trailing comments on when entries in BlankLineBetweenWhenConditions - **fixed** — Keep no-unused-import as opt-in - **fixed** — Fix handling of EOL-comment in paren-spacing - **fixed** — Respect suppressions on ktlint:standard:max-line-length - **fixed** — Keep EOL comments on same line as when condition - **fixed** — Do not remove UTF BOM character - **fixed** — Do not wrap an annotated expression before a lambda expression - **fixed** — Fix writing formatted code containing a percent character provided via --stdin IMPORTANT: This project is no longer maintained by Pinterest. As a result the Maven coordinates of the project have changed from `com.pinterest.ktlint` to `io.github.ktlint`. Read more in the [documentation](https://ktlint.github.io/ktlint/dev-snapshot/api/migrate-to-ktlint-2.x/). Note: Earlier alpha versions are not available as GitHub, nor as Maven Central download due to problems in fixing the release pipeline. ###### 🆕 Features * Execute all rules on same AST Node before proceeding to next AST Node (possibly breaking change) - [#3252](https://github.com/ktlint/ktlint/pull/3252), by @paul-dingemans Due to changing the order in which rules are executed, this is a potentially breaking change when rules are not well written. Normal rules only manipulate the AST for nodes that have not yet been visited. In case a rule for a given AST Node decides to manipulate an AST Node that already has been visited before, this might result in a failure. * Add RuleV2 to enforce autocorrect approve visitor - [#3241](https://github.com/ktlint/ktlint/pull/3241), by @paul-dingemans * Add rule `call-expression-wrapping`, and improve wrapping in `chain-method-continuation` and `function-literal` - [#3253](https://github.com/ktlint/ktlint/pull/3253), by @paul-dingemans * Add blank line check between package and import statements - [#3266](https://github.com/ktlint/ktlint/pull/3266), by @maheen8q * Add experimental rule `lambda-return` - [#3274](https://github.com/ktlint/ktlint/pull/3274), by @paul-dingemans * Update kotlin to v2.4.0 / set java compilation to 26 - [#3316](https://github.com/ktlint/ktlint/pull/3316), by @paul-dingemans * Enable rule `blank-line-before-declaration` by default for `android_studio` - [#3318](https://github.com/ktlint/ktlint/pull/3318), by @paul-dingemans * Add experimental rules for blank lines between sections - [#3319](https://github.com/ktlint/ktlint/pull/3319), by @paul-dingemans * feat: add GraalVM native-image binaries to release (linux, macOS, Windows) - [#3284](https://github.com/ktlint/ktlint/pull/3284), by @zeitlinger * Add experimental rule no-blank-line-at-start-of-file - [#3361](https://github.com/ktlint/ktlint/pull/3361), by @paul-dingemans ###### 🔧 Fixes * Handle trailing comments on when entries in `BlankLineBetweenWhenConditions` - [#3177](https://github.com/ktlint/ktlint/pull/3177), by @jonapoul * Keep `no-unused-import` as opt-in - [#3192](https://github.com/ktlint/ktlint/pull/3192), by @paul-dingemans * Fix handling of EOL-comment in `paren-spacing` - [#3236](https://github.com/ktlint/ktlint/pull/3236), by @SubhrajyotiSen * Fix Square brackets spacing rule heading level - [#3244](https://github.com/ktlint/ktlint/pull/3244), by @moon-dylan * Respect suppressions on "ktlint:standard:max-line-length" - [#3255](https://github.com/ktlint/ktlint/pull/3255), by @paul-dingemans * Keep EOL comments on same line as when condition - [#3261](https://github.com/ktlint/ktlint/pull/3261), by @paul-dingemans * Do not remove UTF BOM character - [#3264](https://github.com/ktlint/ktlint/pull/3264), by @paul-dingemans * Do not wrap an annotated expression before a lambda expression - [#3268](https://github.com/ktlint/ktlint/pull/3268), by @paul-dingemans * Fix writing formatted code containing a "%" character provided via --stdin - [#3281](https://github.com/ktlint/ktlint/pull/3281), by @paul-dingemans * Do not join supertype with previous line when that line ends with and EOL comment - [#3312](https://github.com/ktlint/ktlint/pull/3312), by @paul-dingemans * Prevent throwing a NullPointerException after fixing EOL comment by `comment-spacing` rule - [#3314](https://github.com/ktlint/ktlint/pull/3314), by @paul-dingemans * Load `.editorconfig` correctly when `--stdin-path` is a relative path - [#3322](https://github.com/ktlint/ktlint/pull/3322), by @paul-dingemans * Fix call expression wrapping when function literal has an empty multiline block body. - [#3353](https://github.com/ktlint/ktl _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/2.0.0-ALPHA-4]_ ### 2.0.0-ALPHA-3 - Date: 2026-08-21 - Version: 2.0.0-ALPHA-3 - Original notes: https://github.com/ktlint/ktlint/releases/tag/2.0.0-ALPHA-3 - Permalink: https://whatsnew.fyi/product/ktlint/releases/2.0.0-alpha-3 - Labels: Pre-release - **changed** — Execute all rules on same AST Node before proceeding to next AST Node, which is a potentially breaking change for rules that manipulate already-visited AST nodes - **added** — Add RuleV2 to enforce autocorrect approve visitor - **added** — Add rule call-expression-wrapping and improve wrapping in chain-method-continuation and function-literal - **added** — Add blank line check between package and import statements - **added** — Add experimental rule lambda-return - **changed** — Update Kotlin to v2.4.0 and set Java compilation to 26 - **changed** — Enable rule blank-line-before-declaration by default for android_studio - **added** — Add experimental rules for blank lines between sections - **added** — Add GraalVM native-image binaries to release for Linux, macOS, and Windows - **added** — Add experimental rule no-blank-line-at-start-of-file - **fixed** — Handle trailing comments on when entries in BlankLineBetweenWhenConditions - **fixed** — Keep no-unused-import as opt-in - **fixed** — Fix handling of EOL-comment in paren-spacing - **fixed** — Respect suppressions on ktlint:standard:max-line-length - **fixed** — Keep EOL comments on same line as when condition - **fixed** — Do not remove UTF BOM character - **fixed** — Do not wrap an annotated expression before a lambda expression - **fixed** — Fix writing formatted code containing a percent character provided via --stdin - **fixed** — Load .editorconfig correctly when --stdin-path is a relative path - **fixed** — Rename context-receiver-list-wrapping to context-parameter-list-wrapping IMPORTANT: This project is no longer maintained by Pinterest. As a result the Maven coordinates of the project have changed from `com.pinterest.ktlint` to `io.github.ktlint`. Read more in the [documentation](https://ktlint.github.io/ktlint/dev-snapshot/api/migrate-to-ktlint-2.x/). Note: Earlier alpha versions are not available as GitHub, nor as Maven Central download due to problems in fixing the release pipeline. ###### 🆕 Features * Execute all rules on same AST Node before proceeding to next AST Node (possibly breaking change) - [#3252](https://github.com/ktlint/ktlint/pull/3252), by @paul-dingemans Due to changing the order in which rules are executed, this is a potentially breaking change when rules are not well written. Normal rules only manipulate the AST for nodes that have not yet been visited. In case a rule for a given AST Node decides to manipulate an AST Node that already has been visited before, this might result in a failure. * Add RuleV2 to enforce autocorrect approve visitor - [#3241](https://github.com/ktlint/ktlint/pull/3241), by @paul-dingemans * Add rule `call-expression-wrapping`, and improve wrapping in `chain-method-continuation` and `function-literal` - [#3253](https://github.com/ktlint/ktlint/pull/3253), by @paul-dingemans * Add blank line check between package and import statements - [#3266](https://github.com/ktlint/ktlint/pull/3266), by @maheen8q * Add experimental rule `lambda-return` - [#3274](https://github.com/ktlint/ktlint/pull/3274), by @paul-dingemans * Update kotlin to v2.4.0 / set java compilation to 26 - [#3316](https://github.com/ktlint/ktlint/pull/3316), by @paul-dingemans * Enable rule `blank-line-before-declaration` by default for `android_studio` - [#3318](https://github.com/ktlint/ktlint/pull/3318), by @paul-dingemans * Add experimental rules for blank lines between sections - [#3319](https://github.com/ktlint/ktlint/pull/3319), by @paul-dingemans * feat: add GraalVM native-image binaries to release (linux, macOS, Windows) - [#3284](https://github.com/ktlint/ktlint/pull/3284), by @zeitlinger * Add experimental rule no-blank-line-at-start-of-file - [#3361](https://github.com/ktlint/ktlint/pull/3361), by @paul-dingemans ###### 🔧 Fixes * Handle trailing comments on when entries in `BlankLineBetweenWhenConditions` - [#3177](https://github.com/ktlint/ktlint/pull/3177), by @jonapoul * Keep `no-unused-import` as opt-in - [#3192](https://github.com/ktlint/ktlint/pull/3192), by @paul-dingemans * Fix handling of EOL-comment in `paren-spacing` - [#3236](https://github.com/ktlint/ktlint/pull/3236), by @SubhrajyotiSen * Fix Square brackets spacing rule heading level - [#3244](https://github.com/ktlint/ktlint/pull/3244), by @moon-dylan * Respect suppressions on "ktlint:standard:max-line-length" - [#3255](https://github.com/ktlint/ktlint/pull/3255), by @paul-dingemans * Keep EOL comments on same line as when condition - [#3261](https://github.com/ktlint/ktlint/pull/3261), by @paul-dingemans * Do not remove UTF BOM character - [#3264](https://github.com/ktlint/ktlint/pull/3264), by @paul-dingemans * Do not wrap an annotated expression before a lambda expression - [#3268](https://github.com/ktlint/ktlint/pull/3268), by @paul-dingemans * Fix writing formatted code containing a "%" character provided via --stdin - [#3281](https://github.com/ktlint/ktlint/pull/3281), by @paul-dingemans * Do not join supertype with previous line when that line ends with and EOL comment - [#3312](https://github.com/ktlint/ktlint/pull/3312), by @paul-dingemans * Prevent throwing a NullPointerException after fixing EOL comment by `comment-spacing` rule - [#3314](https://github.com/ktlint/ktlint/pull/3314), by @paul-dingemans * Load `.editorconfig` correctly when `--stdin-path` is a relative path - [#3322](https://github.com/ktlint/ktlint/pull/3322), by @paul-dingemans * Fix call expression wrapping when function literal has an empty multiline block body. - [#3353](https://github.com/ktlint/ktl _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/2.0.0-ALPHA-3]_ ### 2.0.0-ALPHA-2 - Date: 2026-08-20 - Version: 2.0.0-ALPHA-2 - Original notes: https://github.com/ktlint/ktlint/releases/tag/2.0.0-ALPHA-2 - Permalink: https://whatsnew.fyi/product/ktlint/releases/2.0.0-alpha-2 - Labels: Pre-release ### 1.8.0 - Date: 2025-11-14 - Version: 1.8.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.8.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.8.0 - **added** — Set languageVersion to KOTLIN_2_0 to ensure metadata compatibility with Kotlin 2.0 - **added** — Simplify creation of a custom ruleset - **added** — Add rule then-spacing - **added** — Add CLI option --ignore-autocorrect-failures - **added** — Allow _ as backing property name - **added** — Promote experimental rules to standard rules: blank-line-between-when-conditions, kdoc, mixed-condition-operators, square-brackets-spacing, and when-entry-bracing - **fixed** — Fix indent of function parameter with multiline expression in android_studio ###### 🆕 Features * Set languageVersion to KOTLIN_2_0 to ensure metadata compatibility with Kotlin 2.0 - [#3110](https://github.com/pinterest/ktlint/pull/3110), by @hugoncosta * Simplify creation of a custom ruleset - [#3118](https://github.com/pinterest/ktlint/pull/3118), by @paul-dingemans * Add rule `then-spacing` - [#3129](https://github.com/pinterest/ktlint/pull/3129), by @paul-dingemans * Add CLI option '--ignore-autocorrect-failures' - [#3157](https://github.com/pinterest/ktlint/pull/3157), by @paul-dingemans * Allow `_` as backing property name (needed for KEEP-412) - [#3166](https://github.com/pinterest/ktlint/pull/3166), by @serras * Promote experimental rules to standard rules - [#3171](https://github.com/pinterest/ktlint/pull/3171), by @paul-dingemans: * blank-line-between-when-conditions * kdoc * "mixed-condition-operators" * square-brackets-spacing * when-entry-bracing ###### 🔧 Fixes * Fix link to maven wrapper - [#3112](https://github.com/pinterest/ktlint/pull/3112), by @paul-dingemans * Fix links in documentation, and fix some typo's/formatting - [#3127](https://github.com/pinterest/ktlint/pull/3127), by @paul-dingemans * Fix indent of function parameter with multiline expression in `android_studio` - [#3131](https://github.com/pinterest/ktlint/pull/3131), by @paul-dingemans * fix(deps): update dependency com.vanniktech:gradle-maven-publish-plugin to v0.35.0 - [#3169](https://github.com/pinterest/ktlint/pull/3169), by @renovate[bot] ###### 💬 Other * Validate @SinceKtlint annotations with test and uniformize existing rules - [#3101](https://github.com/pinterest/ktlint/pull/3101), by @hugoncosta * Fix snapshot repository location - [#3106](https://github.com/pinterest/ktlint/pull/3106), by @paul-dingemans * Add code vulnerability scanning with CodeQL - [#3113](https://github.com/pinterest/ktlint/pull/3113), by @paul-dingemans * Disable gradle build cache in code scanning workflow - [#3116](https://github.com/pinterest/ktlint/pull/3116), by @paul-dingemans * Restrict access to GitHub token to "contents: read" - [#3115](https://github.com/pinterest/ktlint/pull/3115), by @paul-dingemans * Change language for code-scanning workflow to 'kotlin' - [#3117](https://github.com/pinterest/ktlint/pull/3117), by @paul-dingemans * Allow publication documents workflow to write to Github pages - [#3121](https://github.com/pinterest/ktlint/pull/3121), by @paul-dingemans * Allow manual dispatch of workflow for publishing documentation - [#3122](https://github.com/pinterest/ktlint/pull/3122), by @paul-dingemans * Set contents write permission on workflows for publishing documentation - [#3123](https://github.com/pinterest/ktlint/pull/3123), by @paul-dingemans * Switch publication config to vanniktech's maven-publish plugin - [#3068](https://github.com/pinterest/ktlint/pull/3068), by @mateuszkwiecinski * Add SECURITY.md file - [#3114](https://github.com/pinterest/ktlint/pull/3114), by @paul-dingemans * Add public key to GitHub - [#3139](https://github.com/pinterest/ktlint/pull/3139), by @shashachu * Ignore renovate updates for JUnit v6 as it requires Java17+ - [#3146](https://github.com/pinterest/ktlint/pull/3146), by @paul-dingemans ### 1.7.1 - Date: 2025-07-21 - Version: 1.7.1 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.7.1 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.7.1 - **fixed** — Make Ktlint code backwards compatible with lower Kotlin versions down to 2.0 - **fixed** — Fix conflict between modifier-list-spacing and context-receiver-list-wrapping rules - **deprecated** — Mark operand-expression-wrapping rule as experimental ###### 🔧 Fixes * Make Ktlint code backwards compatible with lower Kotlin versions (down to 2.0) - [#3063](https://github.com/pinterest/ktlint/pull/3063), by @mateuszkwiecinski * Fix conflict between `modifier-list-spacing` and `context-receiver-list-wrapping` - [#3077](https://github.com/pinterest/ktlint/pull/3077), by @paul-dingemans * Mark `operand-expression-wrapping` rule as experimental - [#3081](https://github.com/pinterest/ktlint/pull/3081), by @paul-dingemans ###### 💬 Other * Update signing config, fix configuration-cache compatibility - [#3058](https://github.com/pinterest/ktlint/pull/3058), by @mateuszkwiecinski * Refactor ShadowJarExecutableTask to KtlintCLiTask - [#3078](https://github.com/pinterest/ktlint/pull/3078), by @paul-dingemans ### 1.7.0 - Date: 2025-07-15 - Version: 1.7.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.7.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.7.0 - **added** — Add context-receiver-list-wrapping rule - **added** — Add context receiver list to modifier-order rule - **added** — Add experimental rule expression-operand-wrapping - **changed** — Ignore context parameters in rule context-receiver-wrapping - **changed** — Upgrade to Kotlin 2.2.0 with support for context parameters - **removed** — Do not run no-unused-imports rule by default - **deprecated** — Deprecate functions in ASTNodeExtensions and provide property accessors instead - **deprecated** — condition-wrapping rule no longer reports and fixes violations and will be removed in Ktlint 2.0 - **fixed** — Do not remove an empty value parameter list from a call expression when it is nested - **fixed** — Clarify violation message in filename rule - **fixed** — Suppress warning sun.misc.Unsafe::objectFieldOffset in Ktlint CLI for Java 24+ - **fixed** — Suppress error A restricted method in java.lang.System has been called on Java 24 in KtLint CLI - **changed** — Remove unneeded --add-opens=java.base/java.lang=ALL-UNNAMED parameter ###### 🆕 Features ###### Context receiver / parameters With upgrade to Kotlin 2.2.0, Ktlint 1.7.0 supports context parameters. * Add `context-receiver-list-wrapping` rule - [#3034](https://github.com/pinterest/ktlint/pull/3034), by @paul-dingemans * Add context receiver list to `modifier-order` rule - [#3031](https://github.com/pinterest/ktlint/pull/3031), by @paul-dingemans * Ignore context parameters in rule `context-receiver-wrapping` - [#3033](https://github.com/pinterest/ktlint/pull/3033), by @paul-dingemans ###### Other rule changes * Do not run `no-unused-imports` rule by default - [#3039](https://github.com/pinterest/ktlint/pull/3039), by @paul-dingemans The `no-unused-import` rule is no longer run by default as it keeps causing problems. It will be removed in Ktlint `2.0`. Until then, the rule can still be run, when enabled explicitly in `.editorconfig`. * Add experimental rule `expression-operand-wrapping` - [#3056](https://github.com/pinterest/ktlint/pull/3056), by @paul-dingemans This rule aligns wrapping of arithmetic and logical multiline expressions. The `condition-wrapping` rule which did something similar for logical multiline expressions only no longer reports and fixes violations. It will be removed in Ktlint `2.0`. ###### Other features * Deprecate functions in `ASTNodeExtensions`, and where applicable provide property accessors - [#3026](https://github.com/pinterest/ktlint/pull/3026), by @paul-dingemans When using `ASTNodeExtensions` please replace function calls with the new (temporary) property accessors. The temporary property accessors are needed to maintain backwards compatability with Java integration. In Ktlint `2.0` the 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](https://github.com/pinterest/ktlint/pull/3040), by @paul-dingemans * Suppress error "A restricted method in java.lang.System has been called" on Java 24 in KtLint CLI only - [#3043](https://github.com/pinterest/ktlint/pull/3043), by @paul-dingemans * Remove unneeded "--add-opens=java.base/java.lang=ALL-UNNAMED" - [#3044](https://github.com/pinterest/ktlint/pull/3044), by @paul-dingemans ###### 🔧 Fixes * Do not remove an empty value parameter list from a call expression when it is nested - [#3017](https://github.com/pinterest/ktlint/pull/3017), by @paul-dingemans * Clarify violation message in `filename` rule - [#3046](https://github.com/pinterest/ktlint/pull/3046), by @paul-dingemans ###### 📦 Dependencies * chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v1 - [#2989](https://github.com/pinterest/ktlint/pull/2989), by @renovate[bot] * chore(deps): update plugin com.gradle.develocity to v4.0.2 - [#2996](https://github.com/pinterest/ktlint/pull/2996), by @renovate[bot] * fix(deps): update junit5 monorepo - [#3005](https://github.com/pinterest/ktlint/pull/3005), by @renovate[bot] * fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.2.0-rc3 - [#3015](https://github.com/pinterest/ktlint/pull/3015), by @renovate[bot] * fix(deps): update dependency org.junit.jupiter:junit-jupiter to v5.13.2 - [#3020](https://github.com/pinterest/ktlint/pull/3020), by @renovate[bot] * fix(deps): update dependency org.junit.platform:junit-platform-launcher to v1.13.2 - [#3021](https://github.com/pinterest/ktlint/pull/3021), by @renovate[bot] * fix(deps): update kotlin monorepo to v2.2.0 - [#3018](https://github.com/pinterest/ktlint/pull/3018), by @renovate[bot] * chore(deps): update plugin shadow to v8.3.8 - [#3030](https://github.com/pinterest/ktlint/pull/3030), by @renovate[bot] * fix(deps): update junit-framework monorepo - [#3037](https://github.com/pinterest/ktlint/pull/3037), by @renovate[bot] * chore(deps): update plugin kotlinx-binary-compatibiltiy-validator to v0.18.1 - [#3050](https://github.com/pinterest/ktlint _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/1.7.0]_ ### 1.6.0 - Date: 2025-05-19 - Version: 1.6.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.6.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.6.0 - **added** — Add configuration option to handle certain annotation with parameters identical to annotations without parameters - **added** — Set system properties to prevent failure when running in ktlint-intellij-plugin with custom installation - **fixed** — Fix incorrect error message in PropertyNamingRule when enforcing PascalCase - **fixed** — Sort RuleProvider declarations in StandardRuleSetProvider - **fixed** — Remove usages of getPsi() - **fixed** — Refactor KotlinPsiFileFactory to KotlinCompiler - **fixed** — Reduce the number of conversions between psi and ASTNode - **fixed** — Fix slow response of the git pre commit hook as generated by ktlint - **fixed** — Move logic of missing whitespace before block comment to NoSingleLineBlockCommentRule - **fixed** — Report and fix a single line condition wrapped between parentheses with an unexpected newline - **fixed** — Do not wrap an operation reference after an annotated expression to a separate new line ###### 🆕 Features * Add configuration option to handle (certain) annotation with parameters identical to annotations without parameters - [#2950](https://github.com/pinterest/ktlint/pull/2950), by @paul-dingemans * Set system properties to prevent failure when running in ktlint-intellij-plugin with custom installation - [#2970](https://github.com/pinterest/ktlint/pull/2970), by @paul-dingemans ###### 🔧 Fixes * Deprecations in 1.5.0 - [#2913](https://github.com/pinterest/ktlint/pull/2913), by @paul-dingemans * Fix incorrect error message in PropertyNamingRule when enforcing PascalCase - [#2[93](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:94)4](https://github.com/pinterest/ktlint/pull/2934), by @lsurvila * Sort RuleProvider declarations in StandardRuleSetProvider - [#2[94](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:95)1](https://github.com/pinterest/ktlint/pull/2941), by @3flex * Remove usages of getPsi() - [#2901](https://github.com/pinterest/ktlint/pull/2901), by @mgroth0 * Refactor KotlinPsiFileFactory to KotlinCompiler - [#2[95](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:96)1](https://github.com/pinterest/ktlint/pull/2951), by @paul-dingemans * Reduces the number of conversions between "psi" and ASTNode - [#2[96](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:97)4](https://github.com/pinterest/ktlint/pull/2964), by @paul-dingemans * Fix slow response of the git pre commit hook as generated by ktlint - [#2[97](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:98)8](https://github.com/pinterest/ktlint/pull/2978), by @paul-dingemans * Move logic of missing whitespace before block comment to NoSingleLineBlockCommentRule - [#2979](https://github.com/pinterest/ktlint/pull/2979), by @paul-dingemans * Report and fix a single line condition wrapped between parentheses with an unexpected newline - [#2[98](https://github.com/pinterest/ktlint/actions/runs/15097892192/job/42435539066#step:7:99)0](https://github.com/pinterest/ktlint/pull/2980), by @paul-dingemans * Do not wrap an operation reference after an annotated expression to a separate new line - [#2983](https://github.com/pinterest/ktlint/pull/2983), by @paul-dingemans ###### 📦 Dependencies * fix(deps): update dependency org.jetbrains.dokka:dokka-gradle-plugin to v2 - [#2906](https://github.com/pinterest/ktlint/pull/2906), by @renovate[bot] * chore(deps): update plugin kotlinx-binary-compatibiltiy-validator to v0.17.0 - [#2907](https://github.com/pinterest/ktlint/pull/2907), by @renovate[bot] * Complete upgrade Dokka to V2 - [#2914](https://github.com/pinterest/ktlint/pull/2914), by @paul-dingemans * fix(deps): update dependency ch.qos.logback:logback-classic to v1.3.15 - [#2917](https://github.com/pinterest/ktlint/pull/2917), by @renovate[bot] * fix(deps): update dependency org.assertj:assertj-core to v3.27.3 - [#2927](https://github.com/pinterest/ktlint/pull/2927), by @renovate[bot] * chore(deps): update plugin shadow to v8.3.6 - [#2935](https://github.com/pinterest/ktlint/pull/2935), by @renovate[bot] * fix(deps): update dependency com.github.ajalt.clikt:clikt to v5.0.3 - [#2938](https://github.com/pinterest/ktlint/pull/2938), by @renovate[bot] * fix(deps): update dependency org.slf4j:slf4j-simple to v2.0.17 - [#2947](https://github.com/pinterest/ktlint/pull/2947), by @renovate[bot] * chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v0.10.0 - [#2963](https://github.com/pinterest/ktlint/pull/2963), by @renovate[bot] * fix(deps): update dependency org.junit.jupiter:junit-jupiter to v5.12.2 - [#2945](https://github.com/pinterest/ktlint/pull/2945), by @renovate[bot] * fix(deps): update dependency io.github.oshai:kotlin-logging-jvm to v7.0.7 - [#2965](https://github.com/pinterest/k _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/1.6.0]_ ### 1.5.0 - Date: 2024-12-04 - Version: 1.5.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.5.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.5.0 - **added** — Add missing space between `fun` keyword and identifier when latter is wrapped between backticks - **added** — Add configuration setting for constant names in `property-naming` rule - **added** — Allow backing property to be defined in the companion object in `backing-property-naming` rule - **fixed** — Ignore multi dollar string interpolation prefix in `string-template-indent` rule - **fixed** — Wrap the expression body in case `.editorconfig` property `ktlint_function_signature_body_expression_wrapping` is set to `always` - **fixed** — Fix false positive when empty parameter list is in between trailing lambda's of a nested call expression - **fixed** — Do not wrap a context receiver in a function parameter type reference - **fixed** — Allow comment before parameter list in function literal in `function-literal` rule - **changed** — Update Kotlin to 2.1.0 The release of Kotlin 2.1 is the primary reason for publishing this release earlier than planned. Because of the removal of some language elements in Kotlin 2.1, the embedded Kotlin compiler in KtLint blocked Kotlinter users from upgrading to Kotlin 2.1. ###### 🆕 Features * Add missing space between `fun` keyword and identifier when latter is wrapped between backticks - [#2890](https://github.com/pinterest/ktlint/pull/2890), by @paul-dingemans * Add configuration setting for constant names in `property-naming` rule - [#2893](https://github.com/pinterest/ktlint/pull/2893), by @paul-dingemans * Allow backing property to be defined in the companion object (`backing-property-naming`) - [#2895](https://github.com/pinterest/ktlint/pull/2895), by @paul-dingemans ###### 🔧 Fixes * Ignore multi dollar string interpolation prefix in `string-template-indent` rule - [#2888](https://github.com/pinterest/ktlint/pull/2888), by @paul-dingemans * Wrap the expression body in case `.editorconfig` property `ktlint_function_signature_body_expression_wrapping` is set to `always` - [#2873](https://github.com/pinterest/ktlint/pull/2873), by @paul-dingemans * Fix false positive when empty parameter list is in between trailing lambda's of a nested call expression - [#2891](https://github.com/pinterest/ktlint/pull/2891), by @paul-dingemans * Do not wrap a context receiver in a function parameter type reference - [#2892](https://github.com/pinterest/ktlint/pull/2892), by @paul-dingemans * Allow comment before parameter list in function literal (`function-literal`) - [#2894](https://github.com/pinterest/ktlint/pull/2894), by @paul-dingemans ###### 📦 Dependencies * chore(deps): update plugin com.gradle.develocity to v3.18.2 - [#2865](https://github.com/pinterest/ktlint/pull/2865), by @renovate[bot] * chore(deps): update dependency gradle to v8.11.1 - [#2875](https://github.com/pinterest/ktlint/pull/2875), by @renovate[bot] * fix(deps): update dependency io.github.hakky54:logcaptor to v2.10.0 - [#2874](https://github.com/pinterest/ktlint/pull/2874), by @renovate[bot] * fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.1.0-rc2 - [#2871](https://github.com/pinterest/ktlint/pull/2871), by @renovate[bot] * fix(deps): update dependency io.github.oshai:kotlin-logging-jvm to v7.0.3 - [#2883](https://github.com/pinterest/ktlint/pull/2883), by @renovate[bot] * fix(deps): update kotlin monorepo to v2.1.0 - [#2880](https://github.com/pinterest/ktlint/pull/2880), by @renovate[bot] * fix(deps): update dependency com.github.ajalt.clikt:clikt to v5.0.2 - [#2886](https://github.com/pinterest/ktlint/pull/2886), by @renovate[bot] * chore(deps): update plugin org.gradle.toolchains.foojay-resolver-convention to v0.9.0 - [#2887](https://github.com/pinterest/ktlint/pull/2887), by @renovate[bot] * fix(deps): update dependency dev.drewhamilton.poko:poko-gradle-plugin to v0.18.0 - [#2889](https://github.com/pinterest/ktlint/pull/2889), by @renovate[bot] ### 1.4.1 - Date: 2024-11-05 - Version: 1.4.1 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.4.1 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.4.1 - **fixed** — Catch java.lang.NoSuchFieldError when looking for WHEN_ENTRY_GUARD in kotlin version 2.0.1 - **changed** — Update plugin shadow to v8.3.5 - **changed** — Update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.1.0-rc ###### 🔧 Fixes * Catch java.lang.NoSuchFieldError when looking for WHEN_ENTRY_GUARD in kotlin version 2.0.1 - [#2857](https://github.com/pinterest/ktlint/pull/2857), by @paul-dingemans ###### 📦 Dependencies * chore(deps): update plugin shadow to v8.3.5 - [#2851](https://github.com/pinterest/ktlint/pull/2851), by @renovate[bot] * fix(deps): update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v2.1.0-rc - [#2853](https://github.com/pinterest/ktlint/pull/2853), by @renovate[bot] ### 1.4.0 - Date: 2024-10-24 - Version: 1.4.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.4.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.4.0 - **added** — Suppress backing-property-naming on @Suppress("PropertyName") - **added** — Check that code can still be parsed after a format - **added** — Support suppressing backing-property-naming via ObjectPropertyName - **added** — Ignore properties starting with _ in backing-property-naming rule - **added** — Suppress backing-property-naming rule with @Suppress("LocalVariableName") - **added** — Do not repeat formatting if file is unchanged - **added** — Add new rule when-entry-bracing - **added** — Add .editorconfig property ij_kotlin_indent_before_arrow_on_new_line - **added** — Add CLI option --stdin-path to provide a virtual file location for stdin - **added** — Add .editorconfig property ktlint_enum_entry_name_casing - **fixed** — Prevent line separators to be changed from CRLF to LF - **fixed** — Do not remove arrow from lambdas that are when/if leaf nodes - **fixed** — Fix false positive in no-semi rule for enum class without enum entries - **fixed** — Prevent conflict between multiline-expression-wrapping and function-signature - **fixed** — Ignore max_line_length property unless max-line-length rule is enabled - **fixed** — Fix false positive in class-signature when EOL comment is between a class annotation and other class modifier - **fixed** — Fix globs ending with ** - **fixed** — Return exit code 1 in case violations have been found but file is unchanged - **fixed** — Ignore missing whitespace after trailing comma in single line parameter value list - **fixed** — Remove HEADER_KEYWORD & IMPL_KEYWORD ###### 🆕 Features * Suppress `backing-property-naming` on `@Suppress("PropertyName")` - [#2741](https://github.com/pinterest/ktlint/pull/2741), by @paul-dingemans * Check that code can still be parsed after a format - [#2742](https://github.com/pinterest/ktlint/pull/2742), by @paul-dingemans * Support suppressing backing-property-naming via ObjectPropertyName - [#2751](https://github.com/pinterest/ktlint/pull/2751), by @Goooler * Ignore properties starting with `_` in `backing-property-naming` rule - [#2753](https://github.com/pinterest/ktlint/pull/2753), by @paul-dingemans * Suppress `backing-property-naming` rule with `@Suppress("LocalVariableName")` - [#2785](https://github.com/pinterest/ktlint/pull/2785), by @paul-dingemans * Do not repeat formatting if file is unchanged - [#2805](https://github.com/pinterest/ktlint/pull/2805), by @paul-dingemans * Add new rule `when-entry-bracing` - [#2829](https://github.com/pinterest/ktlint/pull/2829), by @paul-dingemans * Add `.editorconfig` property `ij_kotlin_indent_before_arrow_on_new_line` - [#2838](https://github.com/pinterest/ktlint/pull/2838), by @paul-dingemans * Add CLI option `--stdin-path` to provide a virtual file location for stdin - [#2836](https://github.com/pinterest/ktlint/pull/2836), by @adecker89 * Add property `.editorconfig` property `ktlint_enum_entry_name_casing` - [#2839](https://github.com/pinterest/ktlint/pull/2839), by @paul-dingemans ###### 🔧 Fixes * Prevent line separators to be changed from CRLF to LF - [#2752](https://github.com/pinterest/ktlint/pull/2752), by @paul-dingemans * fix: don't remove arrow from lambdas that are when/if leaf nodes - [#2758](https://github.com/pinterest/ktlint/pull/2758), by @tKe * Fix false positive in `no-semi` rule for enum class without enum entries - [#2774](https://github.com/pinterest/ktlint/pull/2774), by @paul-dingemans * Prevent conflict between `multiline-expression-wrapping` and `function-signature` - [#2775](https://github.com/pinterest/ktlint/pull/2775), by @paul-dingemans * Ignore `max_line_length` property unless `max-line-length` rule is enabled - [#2783](https://github.com/pinterest/ktlint/pull/2783), by @paul-dingemans * Fix false positive in `class-signature` when EOL comment is between a class annotation and other class modifier - [#2786](https://github.com/pinterest/ktlint/pull/2786), by @paul-dingemans * Fix globs ending with `**` - [#2787](https://github.com/pinterest/ktlint/pull/2787), by @paul-dingemans * Return exit code 1 in case violations have been found but file is unchanged - [#2803](https://github.com/pinterest/ktlint/pull/2803), by @paul-dingemans * Ignore missing whitespace after trailing comma in single line parameter value list - [#2806](https://github.com/pinterest/ktlint/pull/2806), by @paul-dingemans * Remove HEADER_KEYWORD & IMPL_KEYWORD - [#2810](https://github.com/pinterest/ktlint/pull/2810), by @3flex * Function signature rule ignores context receiver when on separate line - [#2814](https://github.com/pinterest/ktlint/pull/2814), by @paul-dingemans * Do not remove imports for which the fully qualified path is identical to the package name - [#2822](https://github.com/pinterest/ktlint/pull/2822), by @paul-dingemans * Fix indentation of a multiline parameter list inside a function literal for code style `ktlint_official` - [#2823](https://github.com/pinterest/ktlint/pull/2823), by @paul-dingemans * Do not insert a trailing comma in a multiline when-entry containing a guard - [#2825](https://github.com/pinterest/ktlint/pull/2825), by @paul-dingemans * Fix wrapping of expression body when `max_line_length` not set - [#2833](https://github.com/pinterest/ktlint/pull/2833), by @paul-dingemans ###### 📦 Dependencies * Update dependency io.github.oshai:kotlin-logging-jvm to v7 - [#2701](https://github.com/pinterest/ktlint/pull/2701), by @renovate[bot] * Update dependency org.assertj:assertj-core to v3.26.3 - [#2738](https://github.com/pinterest/ktlint/pull/273 _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/1.4.0]_ ### 1.3.1 - Date: 2024-07-02 - Version: 1.3.1 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.3.1 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.3.1 - **fixed** — Do not insert a whitespace element as first or last child inside a composite element - **fixed** — Do not rewrite a class to a single line signature in case it contains an EOL comment - **fixed** — Fix false positive when anonymous function is used as value argument - **fixed** — Fix suppression handling when 'formatter:on' not properly specified - **fixed** — Fix false positive when primary constructor has no arguments and a secondary constructor exists - **fixed** — Ignore suppressions for no-unused-imports rule - **fixed** — Fix false alert 'Format was not able to resolve all violations which (theoretically) can be autocorrected' - **fixed** — Fix 'unset' value for property ktlint_chain_method_rule_force_multiline_when_chain_operator_count_greater_or_equal_than ###### 🔧 Fixes * Add link for backing-property-naming, correct binary-expression-wrapping - [#2704](https://github.com/pinterest/ktlint/pull/2704), by @rsmith20 * Do not insert a whitespace element as first or last child inside a composite element - [#2715](https://github.com/pinterest/ktlint/pull/2715), by @paul-dingemans * Do not rewrite a class to a single line signature in case it contains an EOL comment - [#2716](https://github.com/pinterest/ktlint/pull/2716), by @paul-dingemans * Fix false positive when anonymous function is used as value argument - [#2718](https://github.com/pinterest/ktlint/pull/2718), by @paul-dingemans * Fix suppression handling when 'formatter:on' not properly specified - [#2719](https://github.com/pinterest/ktlint/pull/2719), by @paul-dingemans * Fix false positive when primary constructor has no arguments and a secondary constructor exists - [#2717](https://github.com/pinterest/ktlint/pull/2717), by @paul-dingemans * Ignore suppressions for no-unused-imports rule - [#2720](https://github.com/pinterest/ktlint/pull/2720), by @paul-dingemans * Ignore suppressions in rule `no-unused-imports` - [#2725](https://github.com/pinterest/ktlint/pull/2725), by @paul-dingemans * Fix false alert `Format was not able to resolve all violations which (theoretically) can be autocorrected` - [#2727](https://github.com/pinterest/ktlint/pull/2727), by @paul-dingemans * Fix "unset" value for property ktlint_chain_method_rule_force_multiline_when_chain_operator_count_greater_or_equal_than - [#2728](https://github.com/pinterest/ktlint/pull/2728), by @paul-dingemans ###### 📦 Dependencies * Update dependency gradle to v8.8 - [#2680](https://github.com/pinterest/ktlint/pull/2680), by @renovate[bot] * Update plugin com.gradle.develocity to v3.17.5 - [#2697](https://github.com/pinterest/ktlint/pull/2697), by @renovate[bot] * Update actions/checkout digest to 692973e - [#2699](https://github.com/pinterest/ktlint/pull/2699), by @renovate[bot] * Update dependency io.github.hakky54:logcaptor to v2.9.3 - [#2707](https://github.com/pinterest/ktlint/pull/2707), by @renovate[bot] * Update dependency org.junit.jupiter:junit-jupiter to v5.10.3 - [#2721](https://github.com/pinterest/ktlint/pull/2721), by @renovate[bot] ###### 💬 Other * Remove sdkman - [#2693](https://github.com/pinterest/ktlint/pull/2693), by @paul-dingemans ### 1.3.0 - Date: 2024-06-04 - Version: 1.3.0 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.3.0 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.3.0 - **added** — Support partial formatting - **added** — Suppress property-name rule for ObjectPropertyName or PrivatePropertyName - **added** — Let API Consumer decide whether a LintError has to be autocorrected or not - **changed** — Promote experimental rules to non-experimental: backing-property-naming, binary-expression-wrapping, chain-method-continuation, class-signature, condition-wrapping, function-expression-body, function-literal, function-type-modifier-spacing, multiline-loop - **fixed** — Do not wrap operation reference after multiline string template - **fixed** — Ignore max line length in case the line contains only a string template followed by a comma - **fixed** — Ignore nested reference expressions in chain-method-continuation - **fixed** — Prevent exception in binary-expression-wrapping rule - **fixed** — Do not merge opening quotes of multiline string template with single line function signature - **fixed** — Fix replacement of redundant curly braces - **fixed** — Set and reset Locale to pass test for non-english contributor - **fixed** — Fix unwanted whitespace between super class constructor and its argument list - **fixed** — Handle trailing space on preceding line in call to lineLengthWithoutNewlinePrefix - **fixed** — Fix not checking for spacing around binary operators inside unary expression - **fixed** — Fixed [{ }] notation for issue #2675 - **fixed** — Simplify default properties loading ###### 🆕 Features * Support partial formatting - [#2631](https://github.com/pinterest/ktlint/pull/2631), by @paul-dingemans * Suppress `property-name` rule for `ObjectPropertyName` or `PrivatePropertyName` - [#2643](https://github.com/pinterest/ktlint/pull/2643), by @paul-dingemans * Let API Consumer decide whether a LintError has to be autocorrected, or not - [#2671](https://github.com/pinterest/ktlint/pull/2671), by @paul-dingemans * Promote experimental rules to non-experimental - [#2674](https://github.com/pinterest/ktlint/pull/2674), by @paul-dingemans - [backing-property-naming](https://pinterest.github.io/ktlint/latest/rules/standard/#backing-property-naming) - [binary-expression-wrapping](https://pinterest.github.io/ktlint/latest/rules/standard/#binary-expression-wrapping) - [chain-method-continuation](https://pinterest.github.io/ktlint/latest/rules/standard/#chain-method-continuation) - [class-signature](https://pinterest.github.io/ktlint/latest/rules/standard/#class-signature) - [condition-wrapping](https://pinterest.github.io/ktlint/latest/rules/standard/#condition-wrapping) - [function-expression-body](https://pinterest.github.io/ktlint/latest/rules/standard/#function-expression-body) - [function-literal](https://pinterest.github.io/ktlint/latest/rules/standard/#function-literal) - [function-type-modifier-spacing](https://pinterest.github.io/ktlint/latest/rules/standard/#function-type-modifier-spacing) - [multiline-loop](https://pinterest.github.io/ktlint/latest/rules/standard/#multiline-loop) ###### 🔧 Fixes * Do not wrap operation reference after multiline string template - [#2591](https://github.com/pinterest/ktlint/pull/2591), by @paul-dingemans * Ignore max line length in case the line contains only a string template followed by a comma - [#2598](https://github.com/pinterest/ktlint/pull/2598), by @paul-dingemans * Ignore nested reference expressions in `chain-method-continuation` - [#2606](https://github.com/pinterest/ktlint/pull/2606), by @paul-dingemans * Prevent exception in `binary-expression-wrapping` rule - [#2607](https://github.com/pinterest/ktlint/pull/2607), by @paul-dingemans * Do not merge opening quotes of multiline string template with (single line) function signature - [#2609](https://github.com/pinterest/ktlint/pull/2609), by @paul-dingemans * Fix replacement of redundant curly braces - [#2617](https://github.com/pinterest/ktlint/pull/2617), by @paul-dingemans * Set and reset Locale to pass test for non-english contributor. - [#2622](https://github.com/pinterest/ktlint/pull/2622), by @Jaehwa-Noh * Fix unwanted whitespace between super class constructor and its argument list - [#2630](https://github.com/pinterest/ktlint/pull/2630), by @tKe * Fix typo's - [#2641](https://github.com/pinterest/ktlint/pull/2641), by @paul-dingemans * Handle trailing space on preceding line in call to `lineLengthWithoutNewlinePrefix` - [#2644](https://github.com/pinterest/ktlint/pull/2644), by @paul-dingemans * Fix KDoc for RuleSetProviderV3 - [#2645](https://github.com/pinterest/ktlint/pull/2645), by @gumimin * Fix not checking for spacing around binary operators inside unary expression - [#2653](https://github.com/pinterest/ktlint/pull/2653), by @cflee * Fix `blank line before declarations` rule code example - [#2657](https://github.com/pinterest/ktlint/pull/2657), by @k-taro56 * Fixed [{ }] notation for issue #2675 - [#2677](https://github.com/pinterest/ktlint/pull/2677), by @Jolanrensen * Simplify default properties loading - [#2679](https://github.com/pinterest/ktlint/pull/2679), by @Goooler ###### 📦 Dependencies * Update dependency org.jetbrains.dokka:dokka-gradle-plugin to v1.9.20 - [#2590](https://github.com/pinterest/ktlint/pull/2590), by @renovate[bot] * Update softprops/action-gh-release action to v2 - [#2600](https://github.com/pinterest/ktlint/pull/2600), by @renovate[bot] * Update dependency io.github. _[Truncated at 4000 characters — full notes: https://github.com/ktlint/ktlint/releases/tag/1.3.0]_ ### 1.2.1 - Date: 2024-02-29 - Version: 1.2.1 - Original notes: https://github.com/ktlint/ktlint/releases/tag/1.2.1 - Permalink: https://whatsnew.fyi/product/ktlint/releases/1.2.1 - **fixed** — Mark new rules as experimental - **fixed** — Fix null byte as default value for --pattern-from-stdin - **fixed** — Fix handling of --reporter CLI parameter ###### 🆕 Features None ###### 🔧 Fixes * Mark new rules as experimental - [#2579](https://github.com/pinterest/ktlint/pull/2579), by @paul-dingemans * Fix null byte as default value for "--pattern-from-stdin" - [#2580](https://github.com/pinterest/ktlint/pull/2580), by @paul-dingemans * Fix handling of "--reporter" CLI parameter - [#2581](https://github.com/pinterest/ktlint/pull/2581), by @paul-dingemans