Skip to content

Releases: pinterest/ktlint

0.38.0

21 Aug 21:28
73e1123
Compare
Choose a tag to compare

New release with Kotlin 1.4.0 support and several enhancements and bugfixes.

Added

  • Experimental SpacingAroundAngleBracketsRule (#769)
  • Checksum generation for executable Jar (#695)
  • Enable Gradle dependency verification
  • parameter-list-wrapping rule now also considers function arguments while wrapping (#620)
  • Publish snapshots built against kotlin development versions
  • Initial support for tab-based indentation (#128)

Fixed

  • Safe-called wrapped trailing lambdas indented correctly (#776)
  • provideDelegate imports are not marked as unused anymore (#669)
  • Set continuation indent to 4 in IDE integration codestyle (#775)
  • No empty lines between annotation and annotated target (#688)
  • Unused imports reported correctly (#526) (#405)
  • No false empty lines inserted in multiline if-else block (#793)
  • No-wildcard-imports properly handles custom infix function with asterisk (#799)
  • Do not require else to be in the same line of a right brace if the right brace is not part of the if statement (#756)
  • Brace-less if-else bodies starting with parens indented correctly (#829)
  • If-condition with multiline call expression inside indented correctly (#796)

Changed

  • Update Gradle to 6.6 version
  • Update ec4j to 0.2.2 version. Now it should report path to .editorconfig file on failed parsing
    and allow empty .editorconfig files.
  • Update Kotlin to 1.4.0 version (#830)

0.38.0 Alpha 1

18 Aug 01:10
a94b43f
Compare
Choose a tag to compare
0.38.0 Alpha 1 Pre-release
Pre-release

Alpha release built against Kotlin 1.4.

0.37.2

16 Jun 16:53
Compare
Choose a tag to compare

Minor release to fix further bugs in ImportOrderingRule.

Fixed

  • Imports with aliases no longer removed (#766)

0.37.1

08 Jun 22:17
f19c100
Compare
Choose a tag to compare

Minor release to fix some bugs in the 0.37.0 release.

Fixed

  • Invalid path exception error on Windows machines when loading properties from .editorconfig (#761)
  • Imports with as no longer removed (#761)
  • The contents of raw strings are no longer modified by the indent rule (#682)

0.37.0

03 Jun 05:18
02cfb32
Compare
Choose a tag to compare

Thank you to Tapchicoma and romtsn for all their hard work on this release!

Added

  • Gradle wrapper validation (#684)
  • Experimental SpacingAroundDoubleColon rule (#722)
  • Experimental SpacingBetweenDeclarationsWithCommentsRule and SpacingBetweenDeclarationsWithAnnotationsRule. Fixes (#721)
  • kotlin_imports_layout config for .editorconfig file so that import ordering is configurable. Fixes (#527)

Changed

  • Kotlin was updated to 1.3.70 version
  • Loading properties from .editorconfig was fully delegated to ec4j library. This fixes ability to override
    properties for specific files/directories (#742)
  • Promote experimental "indent" rule to standard one, old standard "indent" rule is removed
  • Functions to calculate line/column are now public so they can be used by 3rd party tools (#725)
  • AnnotationRule now handles file annotations as well (#714)

Fixed

  • Ignore keywords in KDoc comments (#671)
  • Allow multiple spaces in KDoc comments (#706)
  • Trailing comment no longer reported as incorrect indentation (#710)
  • Annotated function types no longer reported as an error (#737)
  • FinalNewlineRule no longer reports error for empty files (#723)
  • EOL comments will no longer cause AnnotationRule to report an error (#736)
  • Formatter will no longer break class declaration with trailing comment (#728)
  • Formatting for single line if/else statements (#174)
  • Exception in NoLineBreakBeforeAssignmentRule (#693)

Removed

  • Removed Maven; builds all run under Gradle (#445)
  • Old standard IndentRule

0.36.0

03 Dec 19:43
Compare
Choose a tag to compare

Added

  • HTML reporter (#641)
  • Experimental rule to lint enum entry names (#638)
  • @Suppress("RemoveCurlyBracesFromTemplate") now respected (#263)

Upgraded

  • Gradle version to 5.6.2 (#616)
  • Kotlin to 1.3.60 (#658)

Fixed

  • .git directory now discovered instead of hardcoded (#623)
  • Several bugs with the experimental annotation rule (#628) (#642) (#654) (#624)
  • Allow newline after lambda return type (#643)
  • Allow empty first line in a function that returns an anonymous object (#655)
  • Indentation with lambda argument (#627)
  • ktlint can now lint UTF-8 files with BOM (#630
  • Indentation with newline before return type (#663)
  • Build/tests on Windows (#640)
  • Allow whitespace after ( followed by a comment (#664)

0.35.0

13 Oct 06:39
2956522
Compare
Choose a tag to compare

Added

  • Support for specifying color for output via --color-name command line flag. (#585)
  • Support for custom rulesets and providers on Java 9+ (#573)

Deprecated

  • --apply-to-idea flag; use applyToIDEA subcommand instead (#554)
  • --apply-to-idea-project flag; use applyToIDEAProject subcommand instead (#593)
  • 0.0.0-SNAPSHOT builds; snapshot builds are now versioned, e.g. 0.35.0-SNAPSHOT (#588)
    • Note: When using the new snapshot builds, you may need to add an explicit dependency on kotlin-compiler-embeddable to your ruleset project.

Removed

  • Support for loading 3rd party rulesets via Maven (#566)

Upgraded

  • Kotlin version to 1.3.50 (#565) (#611)

Fixed

  • Bugs with spacing in experimental AnnotationRule (#552) (#601
  • Brackets would be removed from empty companion object (#600)
  • Bugs with experimental IndentationRule (#597) (#599)
  • Erroneous space between } and ] (#596)
  • Spacing around multiplication sign in lambdas (#598)
  • --version output with gradle-built JAR (#613)

0.34.2

23 Jul 04:34
f7fc4eb
Compare
Choose a tag to compare

Minor bugfix release for 0.34.0. (Note: 0.34.1 deprecated/deleted due to regression in disabled_flags .editorconfig support.)

Added

  • Support for globally disabling rules via --disabled_rules command line flag. (#534)

Fixed

  • Regression with --stdin flag for printAST command (#528)
  • Regressions with NoUnusedImports rule (#531, #526)
    • Note: this re-introduces #405
  • Indentation for enums with multi-line initializers (#518)

0.34.0

15 Jul 07:50
c518d8d
Compare
Choose a tag to compare

Added

  • Support for Kotlin 1.3.41
  • Support for globally disabling rules via custom disabled_rules property in .editorconfig (#503)
  • experimental:no-empty-first-line-in-method-block (#474)
  • Unit tests for ruleset providers

Upgraded

  • AssertJ from 3.9.0 to 3.12.2 (#520)

Enabled

  • Final newline by default (#446)
  • no-wildcard-import (Re-enabled after temporarily disabling in 0.33.0)
  • experimental:annotation (#509)
  • experimental:multiline-if-else (no autocorrection)
  • experimental:package-name (currently only disallows underscores in package names)

Deprecated

  • MavenDependencyResolver. Scheduled to be removed in 0.35.0 ([#468])(#468)
  • --install-git-pre-commit-hook flag; use installGitPreCommitHook subcommand instead (#487)
  • --print-ast flag; use printAST subcommand instead (#500)

Removed

  • Support for --ruleset-repository and --ruleset-update flags

Fixed

  • import-ordering will now refuse to format import lists that contain top-level comments (#408)
  • no-unused-imports reporting false negatives or false positives in some cases (#405) and (#506)
  • experimental:indent incorrectly formatting a lambda's closing brace (#479)

0.33.0

28 May 17:38
c5d19e5
Compare
Choose a tag to compare

Added

  • Support for Kotlin 1.3.31

Disabled

  • No wildcard imports rule (#48). Developers wishing to still enforce this rule should add the code into a custom ruleset.

Fixed

  • Spec file parsing is now platform-agnostic (#365)
  • Unnecessary newline after -> in some cases (#403)
  • SpacingAroundCommaRule will no longer move code into comments
  • Made newlines after = less aggressive (#368) (#380)
  • Erroneous newline when parameter comments are used (#433)