Skip to content

Releases: nicklockwood/SwiftFormat

0.56.3

05 Jun 01:16
Compare
Choose a tag to compare
  • Fixed issue where trailingCommas rule would insert commas in closure types and tuple types used in typealaises (not supported in Swift 6.1)

0.56.2

27 May 13:36
Compare
Choose a tag to compare
  • Fixed issues where trailingCommas rule would insert commas in @escpaing or @Sendable closure types (not supported in Swift 6.1)
  • Fixed issue where privateStateVariables rule handled @Previewable attributes on previous line incorrectly

0.56.1

14 May 02:58
Compare
Choose a tag to compare
  • Fixed several issues where trailingCommas rule would insert commas in places not actually supported by Swift 6.1
  • Fixed issue where --wrapeffects option would incorrectly unwrap async let properties following function call
  • Fixed issue where redundantEquatable rule would incorrectly remove == implementation in favor of synthesized implementation even if type contained non-Equatable properties like tuples
  • Fixed issue where extensionAccessControl rule would incorrectly hoist public ACL in @preconcurrency conformances
  • Fixed issue where organizeDeclarations rule would sometimes break property declarations with if expression values

0.56.0

13 May 03:21
Compare
Choose a tag to compare
  • Added wrapMultilineFunctionChains rule to wrap chained method calls
  • Added environmentEntry rule to update SwiftUI EnvironmentValues definitions to use the @Entry macro
  • Added redundantEquatable rule to remove explicit Equatable conformances that would be compiler-synthesized
  • Added preferSwiftTesting rule to migrate XCTest-based tests to Swift Testing
  • Added swiftTestingTestCaseNames rule to remove redundant "test" prefix from Swift Testing test case methods
  • Added preferCountWhere rule to prefer count(where:) over filter(_:).count
  • Added fileMacro rule to prefer either #file or #fileID, which have the same behavior in Swift 6 and later
  • Added blankLinesAfterGuardStatements rule to remove blank lines between consecuitve guard statements, and add blank line after last guard statement.
  • Added privateStateVariables rule to add private access control to @State properties
  • Added emptyExtensions rule to remove extensions that contain no declarations or conformances
  • Added --preserveacronyms option to acronyms rule
  • Added --wrapreturntype never option to wrapArguments rule
  • Updated trailingCommas to support Swift 6.1 trailing comma functionality
  • opaqueGenericParameters now supports protocol requirements without a body
  • --wrapeffects and --wrapreturntype now support protocol requirements and closure types
  • Fixed indentation of trailing closures after chained multiline method call when using same-line closing parens
  • blankLinesAtStartOfScope rule now supports switch cases and closure capture / parameter lists
  • Fixed issue where type under organizeDeclarations line count threshold would ignore swiftformat:sort directives
  • Fixed issue where organizeDeclarations rule would unexpectedly remove non-mark comments
  • Compiling SwiftFormat now requires Swift 5.7+
  • SwiftFormat prerelease builds can now be installed via Homebrew using brew install swiftformat --head. Prerelease builds are subject to breaking changes.

0.55.6

02 May 21:44
Compare
Choose a tag to compare
  • Fixed parsing bugs related to parameter packs (repeat, each keywords)
  • Fixed bug where propertyTypes rule could cause build failure in properties with some type
  • Fixed bug where --callsiteparen balanced would have no effect when using --closingparen same-line
  • Fatal error messages now include the name of the currently-running rule
  • Docker build now uses Swift 6.0.3

0.55.5

20 Jan 23:55
Compare
Choose a tag to compare
  • Fixed bug with yodaConditions rule mangling generic function calls
  • Fixed indenting of guard else or opening brace following if/switch expression
  • The organizeDeclarations rule no longer treats properties with didSet as computed
  • Improved formatting support for async and throwing closures

0.55.4

22 Dec 16:37
Compare
Choose a tag to compare
  • Fixed inconsistent indenting of wrapped where clause for switch ... case statements
  • Fixed bug where unusedArguments could remove required arguments in some cases
  • The sortTypealiases rule now correctly handles any keyword

0.55.3

27 Nov 01:21
Compare
Choose a tag to compare
  • Fixed bug where sortTypealiases rule could mangle generic types, or ones using the any keyword
  • The preferKeyPaths rule now only uses \\.self for Swift 6 and later (fix din't land yet in 5.10)
  • Added speculative fix for plugin artifactbundle not working on ubuntu-latest

0.55.2

24 Nov 09:47
Compare
Choose a tag to compare
  • Fixed bug where unusedArguments failed to remove arguments that matched switch variable bindings
  • Fixed bug where unusedArguments failed to remove arguments that matched nested function call labels
  • Fixed spurious lint errors for blankLinesAtStartOfScope when using organizeDeclarations rule
  • Fixed bug where indentation errors were incorrectly reported as wrap rule lint errors
  • The preferKeyPaths rule now handles the \\.self case for Swift 5.10 and later
  • Fixed parsing of keyPaths beginning with \.?

0.55.1

20 Nov 23:41
Compare
Choose a tag to compare
  • Fixed bug where docCommentsBeforeModifiers got confused by enum cases that match modifier names
  • Fixed bug where wrapEnumCases would mangle nested or successive enum declarations
  • Artifact Bundle now includes pre-built binary for ARM-based Linux systems