mirror of
https://github.com/nicklockwood/SwiftFormat.git
synced 2026-06-16 10:34:34 +00:00
2596 lines
157 KiB
Markdown
2596 lines
157 KiB
Markdown
# Change Log
|
|
|
|
## [0.61.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.61.1) (2026-04-27)
|
|
|
|
- Fixed race condition when parsing config files
|
|
- Fixed `redundantStaticSelf` false positive inside closures and nested functions
|
|
- Fixed `unsafe` keyword dot-spacing edge case
|
|
- Fixed `redundantSelf` crash on switch expression inside if-let binding chain
|
|
- Fixed `redundantEquatable` removing manual `==` for types with `Any.Type` stored properties
|
|
|
|
## [0.61.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.61.0) (2026-04-11)
|
|
|
|
- Added `wrapCaseBodies` rule
|
|
- Added `redundantEmptyView` rule
|
|
- Added `preferSwiftStringAPI` rule
|
|
- Added `--test-case-access-control` option for `testSuiteAccessControl` rule
|
|
- Updated `sortImports` to support `--import-grouping length,alpha`
|
|
- Updated `--self-required` to support assignment type names like `OSLogMessage`
|
|
- Updated `--suite-name-format` default value to `preserve`
|
|
- Fixed conditional import parsing with access modifiers
|
|
- Fixed infinite loop in `organizeDeclarations` when opening brace has a trailing comment
|
|
- Fixed closing brace indentation with `--trimwhitespace nonblank-lines`
|
|
- Fixed indentation of multiline raw string literals with `--indent-strings`
|
|
- Fixed `redundantParens` incorrectly removing `()` from `@MainActor` closure signatures
|
|
- Fixed wrapping inside parens of function declarations with no parameters
|
|
- Fixed `extensionAccessControl` incorrectly hoisting `public` onto extensions of nested internal types
|
|
- Fixed `spaceAroundParens` incorrectly removing space after `nonisolated(nonsending)` modifier
|
|
- Fixed `noGuardInTests` incorrectly transforming `guard #available` conditions
|
|
- Fixed trailing comma for `@convention` closures
|
|
- Fixed number handling in Swift Testing test case name conversion
|
|
- Fixed `redundantSelf` inserting `self.` inside `#if`/`#elseif` compiler directive conditions
|
|
|
|
## [0.60.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.60.1) (2026-03-07)
|
|
|
|
- Fixed issue where `redundantSendable` rule would unexpectedly remove `Sendable` conformance on type defined in public extension
|
|
- Fixed issue where `redundantSendable` rule would leave behind extra space when removing `:`
|
|
- Renamed `redundantProperty` rule to `redundantVariable`
|
|
- Updated `redundantVariable` rule to preserve variables with explicit type annotations
|
|
- Updated `enumNamespaces` rule to preserve Swift Testing suites as structs
|
|
|
|
## [0.60.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.60.0) (2026-03-03)
|
|
|
|
- Added `redundantSwiftTestingSuite` rule
|
|
- Added `redundantSendable` rule
|
|
- Added `preferExplicitFalse` rule
|
|
- Added support for `::` module selector syntax
|
|
- Added support for value generics syntax
|
|
- Updated `swiftTestingTestCaseNames` to use raw identifiers by default
|
|
- Updated `swiftTestingTestCaseNames` to use UpperCamelCase for test suite names
|
|
- Updated `redundantSelf` to handle `guard` statements
|
|
- Updated `unusedArguments` to handle for loop variables
|
|
- Updated `redundantType` to better handle `Set` literals
|
|
- Updated `redundantParents` to remove empty parens from attributes
|
|
- Updated `sortImports` to sort imports by access control
|
|
- Updated `blankLinesBetweenImports` to preserve indentation when indent disabled
|
|
- Updated `unusedPrivateDeclaration` rule to preserve private `@Test` functions
|
|
- Updated `preferSwiftTesting` rule to convert tests in extensions within the same file
|
|
- Updated `--stdin-path` to not require the file to actually exist
|
|
- Updated `simplifyGenericConstraints` to avoid adding duplicate constraints
|
|
- Updated `blankLinesAroundMark` to insert blank line before MARK at start of scope when allowed by `blankLinesAtStartOfScope` config
|
|
- Updated `redundantEquatable` to preserve `==` implementation in types with `Strideable` conformance
|
|
- Fixed handling of switch statements with `#if` blocks in several rules
|
|
- Fixed issue where `async` function declarations were wrapped using `wrapArguments` instead of `wrapParameters`
|
|
- Fixed issue where `redundantViewBuilder` would remove `@ViewBuilder` from protocol members
|
|
- Fixed `redundantSelf` parsing issue with throwing closure return types and switch expressions in `if let` condition
|
|
- Fixed `trailingCommas` rule incorrectly adding commas to if `#available` checks
|
|
- Fixed `guard...else` indentation in `wrapArguments` with `wrap-conditions`
|
|
- Fixed issue where `simplifyGenericConstraints` would leave dangling `where` keyword in protocol members
|
|
- Fixed issue where `trailingCommas` didn't handle closure capture lists with macro expressions
|
|
- Fixed indentation for closure parameters on separate lines
|
|
- Fixed issue where `.init` would be removed in code like `[Foo].init { ... }` (not supported until Swift 6.4).
|
|
- Fixed issue where `.swift-version` files were read from excluded directories
|
|
- Fixed incorrect replacement of `&&` operator with `,` inside a ternary condition
|
|
- Fixed `unusedArguments` bug in code with `try? await`
|
|
- Fixed handling of `MainActor` attributes in `redundantViewBuilder`
|
|
|
|
## [0.59.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.59.1) (2026-01-29)
|
|
|
|
- Reverted changes to `indent` rule `--ifdef` handling from 0.59.0
|
|
- Updated `docComments` rule to use doc comments on nested functions and handle conditional compilation blocks in function bodies
|
|
- Updated `spaceAroundBrackets` to preserve space between global actor attribute and closure capture list
|
|
- Updated `redundantMemberwiseInit` to preserve inits with attributes
|
|
- Fixed handling of `any` keyword in `sortTypealiases` rule
|
|
- Resolved build issue related to macOS 13 SDK availability
|
|
|
|
## [0.59.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.59.0) (2026-01-25)
|
|
|
|
- Added `simplifyGenericConstraints` rule
|
|
- Added `validateTestCases` rule
|
|
- Added `testSuiteAccessControl` rule
|
|
- Added `wrapPropertyBodies` rule
|
|
- Added `wrapFunctionBodies` rule
|
|
- Added `redundantViewBuilder` rule
|
|
- Added `--ifdef preserve` option to `indent` rule
|
|
- Added `--prefer-synthesized-init-for-internal-structs` option to `redundantMemberwiseInit` rule
|
|
- Enabled more rules by default: `blankLinesBetweenImports`, `docComments`, `emptyExtensions`, `environmentEntry`, `noForceTryInTests`, `noForceUnwrapInTests`, `redundantAsync`, `redundantEquatable`, `redundantMemberwiseInit`, `redundantProperty`, `redundantThrows`
|
|
- Updated `typeSugar` to only preserve explicit `Optional<T>` in structs with a synthesized memberwise initializer
|
|
- Updated closing paren of single-argument functions and collections to wrap if needed
|
|
- Updated `redundantMemberwiseInit` rule to support result builder attributes
|
|
- Improved how `organizeDeclarations` handles structs with a synthesized memberwise initializer
|
|
- Updated `docComments` rule to preserve formatting of comments with directives
|
|
- Fixed `--ifdef no-indent` handling of method chains and nested directives
|
|
- Fixed issue where `XMLReporter` did not properly escape strings
|
|
- Fixed support for `unsafe` keyword
|
|
- Fixed edge cases in `spaceAroundBrackets` rule
|
|
- Fixed crash in `sortTypealiases` rule
|
|
- Fixed issue where `redundantSelf` rule could crash if encountering a function with no body (e.g.`@_silgen_name`)
|
|
|
|
## [0.58.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.7) (2025-11-29)
|
|
|
|
- Fixed `redundantSelf` not being applied inside `if #available(...) { ... }` clauses
|
|
- Fixed `fileHeader` rule incorrectly setting creation year to current when file path contains spaces
|
|
- Fixed mis-insertion for `nil-init` rule related to optional closure return values
|
|
- Fixed `unusedPrivateDeclarations` false positive when call site was outside enabled range
|
|
- Fixed `sortImports` rule incorrectly moving `// swift-tools-version:` comment directive
|
|
- Fixed `hoistTry` rule sometimes producing mangled code when hoisting across line boundaries
|
|
- Fixed crash in `--ruleinfo` command when rule options exceed the old max length requirement
|
|
- Fixed crash in `unusedArguments` due to scope range bug
|
|
|
|
## [0.58.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.6) (2025-11-11)
|
|
|
|
- Fixed `docComments` not being applied correctly after conditional `switch...case`
|
|
- Trailing commas are no longer inserted inside `#selector(...)` expressions
|
|
- Source files listed with `--filelist` are now formatted concurrently
|
|
- Trailing comments are now kept with the same line when wrapping
|
|
- Fixed spurious `return` removal inside `repeat...while` loops
|
|
- Fixed bug with `trailingClosures` rule and property wrappers
|
|
- Fixed performance regression introduced in 0.58.5
|
|
- Reduced timeout threshold to 1ms per token
|
|
|
|
## [0.58.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.5) (2025-10-17)
|
|
|
|
- Fixed regression with indenting of macros (introduced in 0.58.4)
|
|
- Fixed spurious removal of `return` keyword inside `for ... where` loops
|
|
- Fixed parsing error with `for await case ...` loops
|
|
- Added `XCTUnwrap` to the default exclusion list for `hoistTry`
|
|
|
|
## [0.58.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.4) (2025-10-16)
|
|
|
|
- Whitespace is no longer added or removed from blank lines in multiline string literals
|
|
- Fixed `trailingComma` rule incorrectly inserting commas inside typed `throws`
|
|
- Fixed issue where `opaqueGenericParameters` rule could cause build errors with existential types
|
|
- Fixed false positive with `unusedArguments` when argument is only referenced inside a macro
|
|
- The `noGuardInTests` rule now preserves custom failure messages
|
|
- The `noGuardInTests` rule no longer adds `throws` to test methods when not needed
|
|
- Removed redundant "default" values from options help descriptions
|
|
|
|
## [0.58.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.3) (2025-10-04)
|
|
|
|
- Fixed parsing of `[n of X]` syntax for `InlineArray` in Swift 6.2
|
|
- Fixed parsing error when an opening multiline string delimiter is followed by a space
|
|
- Fixed issue where `redundantInit` rule could leave orphaned parentheses
|
|
- Fixed bug where `redundantInit` was incorrectly applied to `(Foo.self as Bar.Type)` expressions
|
|
- Fixed bug with parsing empty property accessors that broke `redundantSelf` rule
|
|
- Fixed aliasing issue with `acronyms` rule where one acronym overlaps another
|
|
- Fixed unexpected wrapping of closing parenthesis in `wrapArguments` rule
|
|
- Added `--unknown-rules` option to support environments with older SwiftFormat versions
|
|
|
|
## [0.58.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.2) (2025-09-29)
|
|
|
|
- Fixed issue where `modifierOrder` rule confused `async` effect for `async` modifier
|
|
- Fixed issue where testing related rules incorrectly treated functions with arguments as test cases
|
|
- Updated `redundantInit` rule to apply to `init` calls with single trailing closure
|
|
- Updated `README.md` to reflect actual precedence behavior between `.swift-version` files and `--swift-version` arguments.
|
|
|
|
## [0.58.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.1) (2025-09-24)
|
|
|
|
- Fixed issue where `async` effect could be confused for `async` modifier, breaking `docCommentsBeforeModifiers` rule in protocol body with async functions
|
|
- Fixed issue where `wrapAttributes` rule would unexpectedly wrap `async` effect
|
|
- Fixed issue where `.swift-version` file was ignored if not also using config file
|
|
- Fixed issue where multiple trailing closure syntax could be applied to ineligible function calls
|
|
- Fixed issue where `redundantAsync` ignored `await` keyword in string interpolation
|
|
- Fixed bug where `acronyms` rule would incorrectly always capitalize potentially matching acronyms one letter before end of identifier
|
|
- Updated `redundantLet` rule to handle `#Preview` macro
|
|
|
|
## [0.58.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.58.0) (2025-09-22)
|
|
|
|
- Added `noForceUnwrapInTests` rule
|
|
- Added `redundantThrows` rule
|
|
- Added `redundantAsync` rule
|
|
- Added `preferFinalClasses` rule
|
|
- Added support for Swift 6.2 raw identifiers
|
|
- Updated `trailingCommas` rule to handle cases now supported by Swift 6.2
|
|
- Updated `trailingClosures` rule to support multiple trailing closures
|
|
- Added support for filtering config file options to a specific file path glob
|
|
- Added `--allow-partial-wrapping false` option to disallow partial wrapping of functions and collections
|
|
- Updated `propertyTypes` rule to support array, dictionary, and set literals
|
|
- Added `organizeDeclarations` threshold options to organize types without adding marks
|
|
- Added `--type-body-marks remove` option to `organizeDeclarations`
|
|
- Updated `organizeDeclarations` to support organizing protocol bodies
|
|
- Updated `organizeDeclarations` to treat `associatedtype` declarations as nested types, like `typealias` declarations.
|
|
- Added `--blank-line-after-switch-case always` option to `blankLineAfterSwitchCase`
|
|
- Add `--default-test-suite-attributes` option to `preferSwiftTesting` rule
|
|
- Renamed `--markdown-files` options to `strict` and `lenient`
|
|
- Updated `redundantPublic` rule to apply to private types
|
|
- Updated `trailingClosures` and `trailingCommas` rules to support optional function calls
|
|
- Fixed bug where `markTypes` rule wouldn't add marks after extensions
|
|
- Fixed issue where `redundantPublic` broke `@_spi` annotated members
|
|
- Improved parsing of nested markdown code blocks
|
|
- Fixed issue where `hoistTry` rule could break `@Test` attribute
|
|
- Fixed issue where `redundantVoidReturnType` rule could accidentally remove closure type
|
|
- Fix `blankLinesAroundMark` not ignoring trailing comments at start of scope
|
|
- Renamed `throwingTests` rule to `noForceTryInTests`
|
|
- Updated `singlePropertyPerLine` to preserve `async let` declarations
|
|
|
|
## [0.57.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.57.2) (2025-07-14)
|
|
|
|
- Updated `trailingCommas` rule to handle function declarations with generic arguments.
|
|
- Updated `--trailing-commas always` to preserve trailing commas rather than unnecessarily removing trailing commas in some edge cases.
|
|
- Fixed spurious deprecation message when using some non-deprecated options.
|
|
|
|
## [0.57.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.57.1) (2025-07-14)
|
|
|
|
- Fixed issue where trailing commas were unexpectedly removed from initializer argument lists when using `--trailing-commas always`.
|
|
- Fixed issue where `redundantPublic` rule didn't handle extensions on types defined in public extensions.
|
|
- Added `@Bindable` to list of SwiftUI property wrappers used by `organizeDeclarations` rule.
|
|
- Fixed case-sensitivity issue with `preferFileMacro` rule.
|
|
|
|
## [0.57.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.57.0) (2025-07-13)
|
|
|
|
- Options now use `--kebab-case`. Existing option names without dashes remain supported for backwards compatibility. Some options have been renamed to improve clarity.
|
|
- Added support for `:this` and `:previous` in comment directives.
|
|
- Added support for formatting code blocks in Markdown files.
|
|
- Added support for multiple `--config` file arguments.
|
|
- Added `singlePropertyPerLine` rule to convert property declarations defining multiple properties into separate declarations.
|
|
- Added `redundantMemberwiseInit` rule to remove explicit memberwise initializers that are identical to the `struct`'s compiler-synthesized initializer.
|
|
- Added `redundantPublic` rule to remove public access control from properties of internal types.
|
|
- Added `modifiersOnSameLine` rule to keep declaration modifiers on the same line.
|
|
- Added `throwingTests` rule to prefer using `try` and `throws` in unit tests rather than `try!`.
|
|
- Added `noGuardInTests` rule to prefer convert guard statements in unit tests to `try #require(...)` / `#expect(...)` or `try XCTUnwrap(...)` / `XCTAssert(...)`.
|
|
- Added `urlMacro` rule to convert `URL(string: "...")!` initializers to a provided `#URL("...")` macro.
|
|
- Added `--trailing-commas collections-only` and `--trailing-commas multi-element-lists` options to `trailingCommas` rule.
|
|
- Added `--type-blank-lines insert` option to `blankLinesAtStartOfScope` and `blankLinesAtEndOfScope` rules.
|
|
- Added `--wrap-string-interpolation` option to support disabling line wrapping within string interpolation.
|
|
- Added `--line-between-guards` option to `blankLinesAfterGuardStatements` rule.
|
|
- Added support for SARIF output format.
|
|
- Improved performance of the `docComments` rule.
|
|
- Fixed bug in `docComments` rule where trailing comments would be converted to doc comments.
|
|
- Fixed bug where `redundantNilInit` rule would ignore type bodies with conformances.
|
|
- Fixed bug where `wrapEnumCases` didn't handle some nested types correctly.
|
|
- Fixed issue where `#` characters in config files couldn't be escaped.
|
|
- Fixed issue where SwiftFormat for Xcode app would generate invalid config files with unescaped `#` characters.
|
|
- Fixed issue where `--wrap-return-type never` didn't respect `--allman true`.
|
|
|
|
## [0.56.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.56.4) (2025-06-15)
|
|
|
|
- Fixed issue where `trailingCommas` rule would not insert trailing commas in function declarations with return type
|
|
- Fixed issue where `trailingCommas` rule would not insert trailing commas in array literals following `!` operator
|
|
- Fixed issue where `unusedArguments` rule would ignore function declarations with trailing commas
|
|
- Fixed issue where `void` rule would not handle `()` types in typealiases
|
|
- Fixed issue where `redundantLet` rule did not detect code inside result builders when nested in conditional compilation blocks
|
|
|
|
## [0.56.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.56.3) (2025-06-04)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.56.2) (2025-05-27)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.56.1) (2025-05-13)
|
|
|
|
- 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 factor of synthesized implementation even if type contained non-Equatable properies 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.56.0) (2025-05-12)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.6) (2025-04-29)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.5) (2025-01-20)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.4) (2024-12-22)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.3) (2024-11-26)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.2) (2024-11-24)
|
|
|
|
- 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](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.1) (2024-11-20)
|
|
|
|
- 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
|
|
|
|
## [0.55.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.55.0) (2024-11-16)
|
|
|
|
- Added `docCommentsBeforeModifiers` rule to hoist doc comments above declaration modifiers
|
|
- Added `unusedPrivateDeclarations` rule to remove unused `private` or `fileprivate` declarations
|
|
- Added `propertyTypes` rule to control the use of inferred or explicit types for properties
|
|
- Renamed the `--redundanttype` option to `--propertytypes` as it's shared by both rules
|
|
- Added `--ranges preserve` and `--operatorfunc preserve` options
|
|
- Added `--languagemode` option to specify if you are using Swift 5 or 6 language mode
|
|
- The `organizeDeclarations` rule can now sort declarations by name/type/visibility/etc
|
|
- Fixed `organizeDeclarations` bug where `--beforemarks` unexpectedly matched keywords in function bodies
|
|
- Fixed missing lint output for `organizeDeclarations` rule
|
|
- Fixed bug in `markTypes` rule for chained protocol extension names
|
|
- Renamed the confusing `--onelineforeach` option to `--inlinedforeach`
|
|
- Git info can now be used in header comments when formatting code from stdin
|
|
- You can now use the `--outputtokens` option to print output as tokens in JSON format
|
|
- Each rule and test is now defined in a separate file to make it easier to maintain/contribute
|
|
- Updated minimum Swift version for building SwiftFormat to 5.3 (you can still format older Swift code)
|
|
- Docker build now uses static Linux SDK
|
|
|
|
## [0.54.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.6) (2024-10-07)
|
|
|
|
- Fixed incorrect wrapping of conditional bodies inside single-line string literals
|
|
- Fixed properties inside type with where clause being treated as local scope
|
|
- Fixed regression in `wrapMultilineStatementBraces` rule
|
|
- Fixed tokenizing of a throwing closure type in a generics clause
|
|
- Fixed bug in `parseDeclarations` where incorrect tokens could cause rules to time out
|
|
- Fixed issue where `organizeDeclarations` would add extra blank lines if type had blank lines with spaces
|
|
- Updated SwiftFormat for Xcode installation instructions for macOS 15 Sequoia
|
|
- Added known issue to README for `preferForLoop` rule
|
|
|
|
## [0.54.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.5) (2024-09-11)
|
|
|
|
- Fixed crash in `unusedArguments` rule
|
|
- Fixed bug where `preferForLoop` failed if `forEach` contains `guard ... else { return }`
|
|
|
|
## [0.54.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.4) (2024-09-07)
|
|
|
|
- Fixed bug where trailing comma was erroneously inserted into a wrapped array type extension
|
|
- Fixed bug where `return` was incorrectly removed inside `catch` statement with `where` clause
|
|
- Fixed `opaqueGenericParameters` rule being incorrectly applied to functions with typed `throws`
|
|
- Fixed `spaceAroundBrackets` behaving incorrectly inside a macro invocation
|
|
- Fixed `unusedArguments` false positive inside multiline string literal
|
|
- Fixed a case where removing `return` resulted in non-compiling code for opaque return types
|
|
- Redundant `Void` return type is now removed from functions in protocol declarations
|
|
- Fixed a bug where `unusedArguments` didn't handle conditional assignment shadowing correctly
|
|
- Fixed Xcode 16 Beta warnings related to unhandled files when building SwiftFormat package
|
|
- The Swift runtime is now packaged with the installer on Windows as on Linux
|
|
- The Windows installer now uses a more conventional directory structure
|
|
- SwiftFormat for Windows now supports arm64
|
|
|
|
## [0.54.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.3) (2024-07-28)
|
|
|
|
- Fixed issue where `--wrapeffects never` could unexpectedly remove unrelated code
|
|
- Fixed `--condassignment` option (setting this previously had no effect)
|
|
- The `redundantReturn` rule no longer removes conditional `return`s if `conditionalAssignment` is disabled
|
|
- The `redundantObjc` rule now strips implicit `@objc` attribute for `@IBSegueAction` functions
|
|
- Fixed bug where violations for rules that insert new lines were sometimes ignored in lint output
|
|
|
|
## [0.54.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.2) (2024-07-22)
|
|
|
|
- Fixed broken formatter cache, which caused a significant performance regression since 0.54.0
|
|
- The `blankLinesBetweenChainedFunctions` rule now removes blank line after comments in the chain
|
|
- The `blankLinesBetweenChainedFunctions` rule no longer conflicts with `blankLinesAroundMark`
|
|
- Fixed`redundantInternal` removing required `internal` keyword in extensions with `where` clause
|
|
- Fixed another case of spurious `return` removal in conditional blocks
|
|
- Fixed `redundantNilInit` rule inserting `nil` after `as` keyword
|
|
|
|
## [0.54.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.1) (2024-07-10)
|
|
|
|
- The `--nilInit insert` option is no longer applied to lazy or attributed properties
|
|
- The `blankLinesBetweenChainedFunctions` rule now correctly handles comments in the chain
|
|
- Fixed indenting of wrapped arguments in `--fragment` mode
|
|
- Fixed bug where attributes were mistaken for an accessor in a computer property
|
|
- Fixed indenting of commented code after an opening bracket
|
|
- Fixed spurious removal of `return` in conditional blocks
|
|
- Fixed `--lint` mode reporter output when using `stdin`
|
|
|
|
## [0.54.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.54.0) (2024-06-11)
|
|
|
|
- Added `blankLineAfterSwitchCase` rule for inserting blank lines after switch cases
|
|
- Added `consistentSwitchCaseSpacing` rule for ensuring consistent spacing between switch cases
|
|
- Added `redundantProperty` rule for removing variable assignments where value is immediately returned
|
|
- Added `redundantTypedThrows` rule for stripping redundant `Never` or `any Error` `throws` types
|
|
- Setting `--report` without `--reporter` type now raises an error if type can't be inferred
|
|
- Added XML reporter for Checkstyle-compatible lint reporting (use the `--reporter xml` option)
|
|
- Added `--typedelimiter` option for controlling spacing around the colon in type definitions
|
|
- Added `--initcodernil` option for returning `nil` instead of asserting in unavailable `init?(coder:)`
|
|
- The `fileHeader` rule now uses git info for `created` date (if available) instead of file system
|
|
- Added git `author`, `author.name` and `author.email` tokens for file header templates
|
|
- Added `--callsiteparen` option for controlling closing paren placement at function call sites
|
|
- The `wrapAttributes` rule can now be applied differently to computed properties vs stored properties
|
|
- The `wrapAttributes` rule can now be applied differently to complex (parameterized) vs simple attributes
|
|
- Replaced `--varattributes` with `--storedvarattrs`, `--computedvarattrs` and `--complexattrs` options
|
|
- Added `—-nilinit` option for controlling whether `redundantNilInit` adds or removes explicit `nil`
|
|
- Added ability to organize declarations by type over visibility (use `--organizationmode type`)
|
|
- Fixed bug where enabling `organizeDeclarations` for structs caused `sortDeclarations` to have no effect
|
|
- Fixed bug where if statement body could be incorrectly parsed as a trailing closure
|
|
- Improved attribute handling in `opaqueGenericParameters rule`
|
|
- SwiftFormat now recognizes `init` and `_modify` property accessors
|
|
- Fixed bug with `preferForLoop` rule and tuple argument matching
|
|
- Extended `conditionalAssignment` rule to handle more cases
|
|
- Added `--condassignment after-property` option
|
|
- Fixed await being hoisted outside of macro arguments
|
|
- Fixed unsafe adding/removal of `self` within macros
|
|
- Added `os_log` to `--selfrequired` defaults
|
|
|
|
## [0.53.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.10) (2024-05-18)
|
|
|
|
- Fixed creation of spurious `stdout` directory when using `--output stdout`
|
|
- Fixed `unusedArguments` false positive for multiline function call arguments
|
|
- Fixed parsing of generic arguments containing attributes or `~` operator
|
|
- Fixed spurious errors about missing `--report` or `--reporter` arguments
|
|
- Fixed `strongifiedSelf` removing required backticks around nonisolated `self`
|
|
- Deprecated explicit `default` value for `--reporter` (introduced in 0.53.9)
|
|
- Added support for `sending` keyword
|
|
|
|
## [0.53.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.9) (2024-05-12)
|
|
|
|
- Fixed bug in `unusedArguments` when shadowing function argument with conditional assignment declaration
|
|
- Individual `--lint` errors are no longer shown in `--quiet` mode (restores pre-0.53.8 behavior)
|
|
|
|
## [0.53.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.8) (2024-04-22)
|
|
|
|
- Added `--strict` option to emit non-zero exit code after applying changes in formatting mode
|
|
- The `enumNamespaces` rule is no longer applied to structs with macros that have generic arguments
|
|
- The `opaqueGenericParameters` rule is no longer applied to structs with macros or attributes
|
|
- Fixed another case where `redundantParens` spuriously removed parens inside a closure
|
|
- Fixed bug where `redundantInit` mishandled a `.init` after a ternary operator
|
|
|
|
## [0.53.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.7) (2024-04-14)
|
|
|
|
- Fixed bug with `redundantParens` where first parens inside a closure were spuriously removed
|
|
- Fixed `wrapEnumCases` rule mangling unindented cases
|
|
- The `wrapEnumCases` rule no longer wraps cases inside inline enum declarations
|
|
- Improved the `redundantInit` metatype heuristic to reduce false positives
|
|
|
|
## [0.53.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.6) (2024-04-11)
|
|
|
|
- Fixed bug where a space was incorrectly added before a `.` operator inside attribute arguments
|
|
- The `redundantType` rule no longer strips required explicit type from `@Model` class default values
|
|
- Fixed issue where `redundantInit` didn't work on collection types
|
|
- The `redundantParens` rule now correctly handles `@MainActor` closures
|
|
- Fixed bug where required parens were removed around `each X` parameter pack expressions
|
|
- Fixed issue where `--wrapreturntype if-multiline` didn't work with arrays, dictionaries, tuples, or generic types
|
|
- The `spaceAroundParens/Brackets` rules now correctly insert a space after `borrowing`/`consuming` and `isolated`
|
|
- Fixed spurious line breaks inserted between scoped `import` statements
|
|
- Added `--doccomments preserve` option to preserve all doc comments, even if not followed by a declaration
|
|
|
|
## [0.53.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.5) (2024-03-17)
|
|
|
|
- Fixed bug with trailing comma being inserted into wrapped capture list
|
|
- Fixed bugs with parsing `nonisolated(unsafe)` modifiers
|
|
- Fixed bug with hoisting `try` or `async` after a string literal expression
|
|
- Fixed issue with parsing expressions containing generic arguments
|
|
- Lint warnings are now displayed as errors when not running in `--lenient` mode
|
|
- Improved error message for unexpected `static`/`class` modifiers
|
|
- Added Swift 6.0 to list of supported Swift versions
|
|
|
|
## [0.53.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.4) (2024-03-09)
|
|
|
|
- The `enumNamespaces` rule is no longer applied to structs with attributes or macros
|
|
- The new `nonisolated(unsafe)` modifier is now handled correctly
|
|
- Added support for `do throws(Type) { ... }` clauses
|
|
|
|
## [0.53.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.3) (2024-03-02)
|
|
|
|
- The `preferForLoop` rule now correctly singularizes loop conditions that end with "cases"
|
|
- Fixed bug where `preferForLoop` mangled throwing or async `forEach` expressions
|
|
- Fixed extension body not being sorted if `organizeDeclarations` was enabled but excluded declaration type
|
|
- Fixed conditionalAssignment bugs with `@unknown default` cases
|
|
- Fixed some unsafe applications of the `enumNamespaces` rule
|
|
- Added preliminary support for typed `throws`
|
|
|
|
## [0.53.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.2) (2024-02-17)
|
|
|
|
- Fixed bug where `hoistAwait` rule could move `await` before `try` keyword
|
|
- Fixed bug where `redundantSelf` rule was confused by `@MainActor` annotation
|
|
- Fixed edge case where `unusedArguments` removed required argument inside `guard`
|
|
|
|
## [0.53.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.1) (2024-01-26)
|
|
|
|
- Fixed bug where `fileHeader` could duplicate headers containing a colon
|
|
- The `redundantInternal` rule no longer strips `internal` from `import` statements
|
|
- Fixed false positive with `unusedArguments` rule
|
|
|
|
## [0.53.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.0) (2024-01-07)
|
|
|
|
- Added `preferForLoop` rule to convert `forEach { ... }` calls to regular `for` loops
|
|
- Added `wrapLoopBodies` rule to wrap single-line loop bodies over multiple lines
|
|
- Added `noExplicitOwnership` rule to remove unwanted `borrowing` and `consuming` modifiers
|
|
- Added `wrapMultilineConditionalAssignment` rule to wrap `if` or `switch` expressions to new line
|
|
- The `wrapAttributes` rule no longer unwraps attributes if they would exceed `--maxwidth`
|
|
- The `typeSugar` rule's `--shortoptionals` option now defaults to `except-properties`
|
|
- Enabled `blankLinesBetweenChainedFunctions` rule by default
|
|
- Enabled `blankLineAfterImports` rule by default
|
|
- Fixed `self` being incorrectly inserted before `set` clause in computed properties
|
|
- Fixed a bug in `parseType()` helper function where qualified types were not recognized
|
|
- Fixed Xcode command plugin
|
|
|
|
## [0.52.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.11) (2023-12-05)
|
|
|
|
- Updated `if`/`switch` expression workaround for Swift 5.9 bug to handle `as!` casts
|
|
- Fixed indent logic for wrapped conditional assignment expressions
|
|
- Fixed assertion failure in `redundantSelf` rule
|
|
- Fixed raw string parsing bug
|
|
|
|
## [0.52.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.10) (2023-11-14)
|
|
|
|
- Fixed `enumNamespaces` rule breaking `import struct`/`class` statements
|
|
- Fixed unsafe application of `conditionalAssignment` rule to `switch` statements containing `#if` blocks
|
|
|
|
## [0.52.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.9) (2023-11-10)
|
|
|
|
- Fixed `redundantClosure` removing required closure around conditional statements
|
|
- Fixed `redundantClosure` removing closure containing conditional expressions inside a method call
|
|
- Fixed `redundantClosure` generating invalid code when the `redundantReturn` rule is disabled
|
|
- Fixed issue where if/switch expressions with `as?` cast would break build in Swift 5.9
|
|
- Fixed `blankLineAfterImports` introducing spurious blank line before `@preconcurrency` attribute
|
|
- Fixed bug where `enumNamespaces` rule wouldn't be applied immediately after an `import` statement
|
|
- Fixed issue where `switch` case with multiple `where` clauses could be parsed incorrectly
|
|
- The SwiftFormat SPM plugin now formats local dependencies, not just final product targets
|
|
|
|
## [0.52.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.8) (2023-10-17)
|
|
|
|
- Fixed `redundantClosure` rule in cases where an `if`/`switch` expression is not permitted
|
|
- The `docComments` rule now correctly handles macro comments
|
|
- The `docComments` rule is now only applied to a comment block if all lines match the pattern
|
|
|
|
## [0.52.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.7) (2023-10-06)
|
|
|
|
- Fixed bug where `conditionalAssignment` and `redundantClosure` rules would be applied incorrectly
|
|
- Fixed `redundantClosure` rule leaving stray `try` or `await` keywords behind
|
|
|
|
## [0.52.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.6) (2023-10-01)
|
|
|
|
- Fixed bug where `redundantReturn` rule was incorrectly applied to consecutive `if` statements in Swift 5.9
|
|
|
|
## [0.52.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.5) (2023-09-30)
|
|
|
|
- Fixed bug where `redundantReturn` rule could break fallible initializers in Swift 5.9
|
|
- Fixed incorrect application of `docComments` rule inside `#if` statements
|
|
- The `docComments` rule no longer treats comments starting with `Note:` as a special directive
|
|
- Fixed incorrect indenting inside `#if` statements immediately preceded by a comment
|
|
- Removed arbitrary unwrap threshold for `braces` rule when no `--maxwidth` is specified
|
|
- You can now include operators in the `--asynccapturing` list
|
|
|
|
## [0.52.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.4) (2023-09-17)
|
|
|
|
- Fixed `docComments` rule incorrectly replacing comments inside switch cases and if/guard conditions
|
|
- Fixed `redundantLet` rule removing required `let` inside `ViewBuilder` modifiers
|
|
- Fixed `redundantLet` rule removing required `let` after `@MainActor` or `@Sendable`
|
|
- Fixed bug when using `--wrapconditions after-first` if first line of condition is a comment
|
|
- Added more context to "failed to terminate" error message to aid tracking down issues
|
|
- Updated `sortTypealiases` rule to also remove duplicate protocols in declaration
|
|
- Added some fixes to support parameter packs in Swift 5.9
|
|
|
|
## [0.52.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.3) (2023-09-02)
|
|
|
|
- Fixed incorrect hoisting of `try` inside multiline string literal interpolations
|
|
- Fixed incorrect hoisting of `try` inside generic type initializer calls
|
|
- Fixed case where parens were incorrectly removed around optional function calls
|
|
- Fixed bug where early `return` statements added while debugging would be incorrectly removed
|
|
|
|
## [0.52.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.2) (2023-08-19)
|
|
|
|
- Fixed static `Self` being incorrectly removed in `let` or `if let` expressions
|
|
- Fixed `// swiftformat:disable` directive not working for `redundantReturn` rule
|
|
- Fixed spurious assertion failure
|
|
|
|
## [0.52.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.1) (2023-08-17)
|
|
|
|
- Fixed various bugs and edge cases in `redundantStaticSelf` rule
|
|
- Fixed bug with `redundantReturn` rule for switch statements containing `fallthrough`
|
|
- Fixed `redundantReturn` rule stripping required return from `Void` switch statements
|
|
- Fixed some more cases where prefix `/` operator could be mistaken for a regex literal
|
|
- The `redundantReturn` rule now handles statements containing comments or raw strings
|
|
- Fixed spurious warning for unused options when using `--lintonly` rules
|
|
- Including `/` operator in `--nospaceoperators` or `--nowrapoperators` now works again
|
|
|
|
## [0.52.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.52.0) (2023-08-13)
|
|
|
|
- Added `redundantInternal` rule to remove redundant `internal` access modifiers
|
|
- Added `sortTypealiases` rule to sort `typealias` types alphabetically
|
|
- Added `headerFileName` rule to ensure filename in header comment matches actual file
|
|
- Added `redundantStaticSelf` rule to remove redundant `self` inside static functions
|
|
- Added `blankLinesBetweenChainedFunctions` rule to remove blank lines inside function chains
|
|
- Added `applicationMain` rule to remove obsolete `@UIApplicationMain` and `@NSApplicationMain` attributes
|
|
- Renamed `sortedSwitchCases` rule to `sortSwitchCases` for consistency
|
|
- Renamed `sortedImports` rule to `sortImports` for consistency
|
|
- Redundant `return` is now correctly removed in switch cases with associated values
|
|
- Fixed failure to terminate when removing returns from long switch statement
|
|
- Fixed spurious "unexpected static" error in `redundantSelf` rule
|
|
- Deliberate blank line before `else` statement is now preserved
|
|
- Rule options are now case-insensitive
|
|
|
|
## [0.51.15](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.15) (2023-08-06)
|
|
|
|
- Fixed regression in `unusedArguments` rule that caused used parameters to be marked unused
|
|
- Fixed some additional cases where regex literal was mistaken for `/` operator
|
|
- Vertical tab and form feed characters in source file no longer cause spurious errors
|
|
|
|
## [0.51.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.14) (2023-08-05)
|
|
|
|
- Withdrawn
|
|
|
|
## [0.51.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.13) (2023-07-18)
|
|
|
|
- Fixed bug where importing a type caused the `redundantSelf` rule to be silently disabled
|
|
- Fixed bug where `unusedArguments` would remove an argument that was used after an `if`
|
|
- Fixed Windows support and added Windows release binaries (thanks to Saleem Abdulrasool)
|
|
- Fixed bug where backticks were incorrectly stripped from standalone `$` identifier
|
|
- Added support for `package` keyword in `organizeDeclarations` rule
|
|
|
|
## [0.51.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.12) (2023-06-13)
|
|
|
|
- Fixed `hoistTry` bugs with generics, subscripts and collection literals
|
|
- Fixed hoisting bugs with statements containing both `try?` and `try`
|
|
- Fixed hoisting of `try` inside an optional function
|
|
- Fixed function argument wrapping bug
|
|
- Fixed bug where nested closure `in` was mistaken for part of a `for` loop
|
|
- Added preliminary support for wrapping Swift 5.9 macro declarations
|
|
- Added preliminary support for Swift 5.9 `package` access modifier
|
|
- Added preliminary support for Swift 5.9 `consume` and `discard` operators
|
|
- Added preliminary support for Swift 5.9 `borrowing` and `consuming` modifiers
|
|
|
|
## [0.51.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.11) (2023-05-29)
|
|
|
|
- Fixed unexpected static function error false positive in `redundantSelf` rule
|
|
- Fixed failure to report lint error when removing a duplicate blank line at the end of the file
|
|
- Fixed bug where `hoistTry` rule failed with more than 10 `try` expressions at the same scope level
|
|
- Comments containing `TODO:` directives are no longer converted by the `docComments` rule
|
|
|
|
## [0.51.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.10) (2023-05-21)
|
|
|
|
- Fixed bug in `wrapAttributes` rule due to `class` declaration being mistaken for class-scoped var
|
|
- Fixed another case of incorrect indenting inside an `#ifdef` block
|
|
- Fixed line breaks being incorrectly removed by `sortedSwitchCases`
|
|
|
|
## [0.51.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.9) (2023-05-04)
|
|
|
|
- Fixed `typeSugar` rule unwrapping Optional `some/any` without inserting required parentheses
|
|
- Fixed indenting of function arguments inside an `#ifdef` block after a closing brace
|
|
- Fixed comment directive state leaking between rules
|
|
|
|
## [0.51.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.8) (2023-05-02)
|
|
|
|
- Fixed `redundantSelf` removing non-unwrapped weak `self` inside closures
|
|
- Fixed `fileprivate` rule making `init` private when inherited by subclass in the same file
|
|
- Fixed `hoistPatternLet` rule inserting `let` inside dictionary type literal
|
|
- Fixed indenting for chained members inside conditional compilation blocks
|
|
- Fixed `unusedArguments` incorrectly removing used argument after conditional compilation block
|
|
- Improved `unusedArguments` rule error handling
|
|
|
|
## [0.51.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.7) (2023-04-18)
|
|
|
|
- Fixed `redundantSelf` incorrectly inserting `self` for local variables declared in capture list
|
|
- Fixed `blankLineAfterImports` rule inserting blank line before `@_spi` imports
|
|
- Fixed `fileHeader` rule ignoring headers containing URLs
|
|
|
|
## [0.51.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.6) (2023-04-12)
|
|
|
|
- Required `self` is now preserved in function bodies inside closures with `[weak self]` captures
|
|
- Fixed bug with `hoistTry` inside chains of concatenated interpolated strings
|
|
- Fixed indenting of dot-prefixed identifiers inside `#else` and `#elseif` blocks
|
|
- Fixed parsing bug in `redundantSelf` rule
|
|
|
|
## [0.51.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.5) (2023-04-09)
|
|
|
|
- Added `--baseconfig` option to replicate old `--config` behavior
|
|
- Fixed `self` being incorrectly inserted inside capture list
|
|
- Fixed indenting of `.init` inside `#if` statements
|
|
- Fixed `redundantInit` glitch inside `#if` statements
|
|
- Fixed `redundantSelf` inside `if case` expressions
|
|
- Fixed `hoistTry` for strings containing multiple interpolation clauses
|
|
- Fixed redundant parens not being removed after `return` keyword
|
|
- Fixed spacing after attribute when using `--funcattributes same-line`
|
|
- Fixed false positive in collection literals for `unusedArguments`
|
|
- Fixed file access permissions errors not being reported
|
|
|
|
## [0.51.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.4) (2023-04-01)
|
|
|
|
- Limited `redundantReturn` inside if / switch expressions to Swift 5.9+
|
|
- Fixed `hoistTry` and `hoistAwait` inside multiline string literals
|
|
- Fixed invalid indenting of blank lines inside multiline string literals
|
|
|
|
## [0.51.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.3) (2023-03-27)
|
|
|
|
- Fixed `hoistTry` and `hoistAwait` rule breaking string interpolations
|
|
- Fixed bug where `opaqueGenericParameters` rule would remove non-redundant generic type
|
|
- Fixed parsing bug with trailing closures on optional methods
|
|
- Fixed `redundantSelf` rule parsing bug affecting string literals
|
|
- Updated if / switch expression features to be enabled only in Swift 5.9+
|
|
|
|
## [0.51.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.2) (2023-03-07)
|
|
|
|
- Fixed `hoistTry` rule breaking multiline function chains
|
|
- Added `--asynccapturing` and `--throwcapturing` options for `hoistTry` and `hoistAwait` rules
|
|
- Fixed changes in last line of file not being correctly tracked
|
|
|
|
## [0.51.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.1) (2023-03-02)
|
|
|
|
- Fixed `redundantNilInit` removing required `nil` inside Result Builders
|
|
- Fixed `redundantLet` removing required `let` inside Result Builder `switch/case` statements
|
|
- Fixed `hoistTry` rule removing second `try` inside XCTAssert statements
|
|
|
|
## [0.51.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.51.0) (2023-02-28)
|
|
|
|
- Added `hoistAwait` and `hoistTry` rules to hoist inline `await`/`try` to start of expression
|
|
- Extended `redundantPattern` rule to remove redundant `let` in patterns
|
|
- The `wrapMultilineStatementBraces` rules is now applied more consistently
|
|
- Updated `redundantReturn`/`Closure` rules to support `if`/`switch` expressions in Swift 5.8
|
|
- Added `conditionalAssignment` rule to assign variables using `if`/`switch` expressions in Swift 5.8
|
|
- Updated `redundantType` rule to support `if`/`switch` expression assignment Swift 5.8
|
|
- Extended `redundantSelf` rule to support implicit `self` in eligible closures in Swift 5.8
|
|
- SwiftFormat now ignores `.swiftformat` files when explicit `--config` file is provided
|
|
- Added `--wrapenumcases with-values` option to only wrap enum cases with values
|
|
- Added `--wrapeffects` option for wrapping function effects
|
|
- Removed unsafe `preferDouble` rule
|
|
|
|
## [0.50.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.9) (2023-02-16)
|
|
|
|
- Added GitHub actions log reporter (see `--reporter` option for details)
|
|
- Fixed bug where `redundantType` sometimes stripped in cases where it couldn't be inferred
|
|
- The `redundantType` rule now supports removing type in more cases where supported
|
|
- Made SwiftFormat for Xcode instructions dynamic according to OS version
|
|
- Fixed bug where a trailing comma could be left behind by `opaqueGenericParameters` rule
|
|
- Fixed bug where `wrapAttributes` rule sometimes wrapped inline attributes like `@MainActor`
|
|
- Improved support for `// swiftformat:options` comment directives
|
|
- Removed deprecated options from the example `.swiftformat` file
|
|
|
|
## [0.50.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.8) (2023-01-29)
|
|
|
|
- The `redundantBackticks` rule no longer removes required comments around `self`
|
|
- Associated type headerdoc comments are now handles correctly by the `docComments` rule
|
|
- Fixed mangled comments when using the `sortedSwitchCases` rule
|
|
- Hex, octal or binary literals are now sorted correctly in `sortedSwitchCases` rule
|
|
- Fixed regression in closed brace indentation (introduced in 0.50.7)
|
|
- Fixed unsafe semicolon removal after inferred `var` properties
|
|
- Added fileHeader placeholder documentation
|
|
|
|
## [0.50.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.7) (2022-12-27)
|
|
|
|
- Fixed parsing of regex literals preceded by `try` or `await`
|
|
- Fixed required parens being removed around `await` keyword
|
|
- Fixed indent for nested, wrapped parameters
|
|
|
|
## [0.50.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.6) (2022-12-03)
|
|
|
|
- Fixed regression in `fileHeader` rule where blank lines were removed after header
|
|
- Fixed globs matching when command-line tool is invoked from a directory such as `/var/tmp`
|
|
- Fixed bug in parsing regex literals beginning with `^` character
|
|
|
|
## [0.50.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.5) (2022-11-29)
|
|
|
|
- Fixed incorrect macOS command line binary that accidentally shipped with 0.50.4
|
|
|
|
## [0.50.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.4) (2022-11-23)
|
|
|
|
- Added Swift package command plugin
|
|
- Added `docComments` rule to convert between regular and documentation comments
|
|
- Fixed `redundantLet` rule incorrectly stripping `let` inside Result Builders
|
|
- Fixed `void` rule in cases where `Void` has been locally shadowed
|
|
- Fixed `fileHeader` rule when file only contains header comment
|
|
- Fixed unexpected indent and spurious `wrap` warning for blank lines
|
|
- Fixed parsing bug in `redundantSelf` rule
|
|
|
|
## [0.50.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.3) (2022-10-19)
|
|
|
|
- Fixed bug where `redundantFileprivate` rule could break Array extensions using type sugar
|
|
- Fixed bug and crash in `wrapSingleLineComments` rule relating to long URLs
|
|
- Improved `wrapSingleLineComments` handling of comments containing long URLs
|
|
- The `opaqueGenericParameters` rule is now correctly applied to initializers and subscripts
|
|
- Added some known issues for `opaqueGenericParameters` and `genericExtensions` to README
|
|
|
|
## [0.50.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.2) (2022-10-12)
|
|
|
|
- Fixed `redundantImports` dropping `@_implementationOnly` or `@_exported` annotations
|
|
- Fixed `blankLineAfterImports` bug affecting `@_implementationOnly` or `@_exported` imports
|
|
- Fixed case where regex literals were incorrectly interpreted as division operators
|
|
- Fixed bug with `genericExtensions` and nested generics
|
|
- Fixed crash in `opaqueGenericParameters` rule
|
|
|
|
## [0.50.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.1) (2022-10-05)
|
|
|
|
- Fixed bug in `opaqueGenericParameters` where type constraint depended on another type parameter
|
|
- Fixed crash in `opaqueGenericParameters` rule where type constraint contained closure type
|
|
- Fixed bug where `opaqueGenericParameters` broke variadic parameter expressions
|
|
- Fixed several bugs in `wrapSingleLineComments` rule
|
|
- Fixed crash in `andOperator` rule
|
|
|
|
## [0.50.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.50.0) (2022-09-28)
|
|
|
|
- Added `genericExtensions` rule for simplifying conditional type extensions in Swift 5.7
|
|
- Added `markTypes` support for type definitions in extensions
|
|
- Added `opaqueGenericParameters` rule to use opaque generic parameter syntax where equivalent
|
|
- Added `blankLineAfterImports` rule
|
|
- Added `redundantOptionalBinding` rule for simplifying `if let` expressions in Swift 5.7
|
|
- Added `--enumnamespaces structs-only` option
|
|
- Added `wrapSingleLineComments` rule
|
|
- A `--swiftversion` in the `.swiftformat` config now takes precedence over `.swift-version` file
|
|
- Multiline string interpolations can now wrap inside parenthesized expression
|
|
- Comma-delimited options in descendent `.swiftformat` config files are no longer merged
|
|
- SwiftFormat now requires a minimum of Swift 5.1 to build
|
|
|
|
## [0.49.18](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.18) (2022-08-30)
|
|
|
|
- Fixed bug in `unusedArguments` when argument is shadowed in a `switch` case statement
|
|
- Fixed `enumNamespaces` rule breaking `open` class declarations
|
|
- Fixed `redundantLet` removing `let` incorrectly in `async let` statement
|
|
- Fixed indent regression when using `--xcodeindentation` option
|
|
|
|
## [0.49.17](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.17) (2022-08-16)
|
|
|
|
- Fixed unexpected token error occurring at end of scope after a `<<` operator
|
|
- Fixed bug where function arguments named `async:` would expectedly be indented
|
|
- SwiftFormat command-line tool now logs the location and version of .swift-version files it encounters
|
|
- Added Docker image (thanks to Arthur Semenyutin for the script, see README for details)
|
|
|
|
## [0.49.16](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.16) (2022-08-15)
|
|
|
|
- Fixed `async let` indenting regression (broken in 0.49.15)
|
|
|
|
## [0.49.15](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.15) (2022-08-11)
|
|
|
|
- Fixed illegal wrapping of ternary expressions inside single-line string interpolation
|
|
- Fixed bug where `await case` was incorrectly interpreted as ending the current scope
|
|
- Fixed issue where `async throws` was indented incorrectly
|
|
- Fixed bug where a pair of less-than, greater-than operators could be interpreted as generics
|
|
- Fixed case where `andOperator` rule could introduce parser ambiguity
|
|
|
|
## [0.49.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.14) (2022-08-02)
|
|
|
|
- Fixed `unusedArguments` rule incorrectly removing `async` keyword from closure arguments
|
|
- Fixed `unusedArguments` not being applied correctly to throwing closures
|
|
- Fixed assertion failure when parsing `@unchecked Sendable` enum
|
|
- Fixed assertion failure after applying typeSugar rule to array/dictionary extensions
|
|
- Fixed line indent after `wrapAttributes` rule is applied
|
|
- Fixed issue where redundantClosure would break build for Void closures calling @discardableResult functions
|
|
- Added `--typeblankline` option for `blankLinesAtStartOfScope` and `blankLinesAtEndOfScope` rules
|
|
- Added support for Xcode `SCRIPT_INPUT_FILE` arguments
|
|
|
|
## [0.49.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.13) (2022-07-15)
|
|
|
|
- Fixed `for...in` mistaken for closure `in` in indent rule
|
|
- Fixed incorrect spacing around `@MainActor`
|
|
|
|
## [0.49.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.12) (2022-07-13)
|
|
|
|
- Fixed bug with parsing ternary chains containing chevron
|
|
- Added another fix for `/` operator
|
|
- Fixed indent after wrapped closure `in`
|
|
- Improved rule search in SwiftFormat for Xcode app
|
|
- Fixed enum popups in SwiftFormat for Xcode options
|
|
- Added prebuilt SPM binary target
|
|
|
|
## [0.49.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.11) (2022-06-22)
|
|
|
|
- Fixed parsing of prefix `/` operator (as used in CasePath library)
|
|
- Fixed bug with indenting of trailing closures after a conditional statement
|
|
- Fixed bug with `wrapMultilineStatementBraces` rule
|
|
- Added Swift 5.6 and 5.7 to supported versions
|
|
|
|
## [0.49.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.10) (2022-06-18)
|
|
|
|
- Added preliminary support for Swift 5.7 regular expression literals
|
|
- Fixed conflict between `wrapMultilineStatementBraces` and `indent` rules
|
|
- Fixed bug where arguments referenced using `$` prefix were incorrectly marked as unused
|
|
- Fixed `enumNamespaces` bug where `class` modifiers were mistakenly converted to `enum`
|
|
- Fixed bug where `preferKeyPath` mangled functions using multiple trailing closure syntax
|
|
- Unterminated string literals are now treated as an error
|
|
|
|
## [0.49.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.9) (2022-05-16)
|
|
|
|
- Fixed bug where trailing comma was incorrectly added inside collection types
|
|
- Fixed some cases where `redundantVoidReturnType` failed to remove `Void`
|
|
- Fixed `unusedArguments` regression introduced in 0.49.8
|
|
|
|
## [0.49.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.8) (2022-05-03)
|
|
|
|
- Fixed `redundantInit` rule removing required init when instantiating type variables
|
|
- Fixed `unusedArguments` incorrectly marking shadowed parameters as used or unused in some cases
|
|
|
|
## [0.49.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.7) (2022-04-03)
|
|
|
|
- Redundant `self` is now correctly removed in `if let` assignments
|
|
- Fixed infinite recursion bug that would cause formatting to time out for some inputs
|
|
- Lint failure now returns an error code when using stdin, matching behavior for file inputs
|
|
- Fixed bug where parens were incorrectly removed around optional ranges
|
|
- Updated `unusedParens` rule for new shorthand `if let` syntax in Swift 5.7
|
|
- Updated indenting of function chains to match latest Xcode behavior
|
|
- Fixed build error on macOS 10.11 and earlier
|
|
|
|
## [0.49.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.6) (2022-03-15)
|
|
|
|
- Fixed bug where `redundantParens` rule removed required parens in `any` type expressions
|
|
- Fixed whitespace behavior around `some`/`any` keywords
|
|
- Fixed crash when `// swiftformat:sort` was applied to an enum with only one case
|
|
- SwiftFormat can now be built on Windows
|
|
|
|
## [0.49.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.5) (2022-03-06)
|
|
|
|
- Fixed bug where `redundantClosure` incorrectly inlined throwing closures
|
|
- Fixed bug where in `--exclude` path matching failed when using `--stdinpath`
|
|
- Fixed a bug with `typeSugar` rule when overriding stdlib types locally in your code
|
|
- Multiline statement braces are now unwrapped if `wrapMultilineStatementBraces` disabled
|
|
- Added `// swiftformat:sort` directive to sort declarations by name
|
|
- You can now use `--disable all` or `--enable all` as shorthand for all rules
|
|
- The rules in the `Rules.md` file are now grouped by their default/enabled status
|
|
|
|
## [0.49.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.4) (2022-02-07)
|
|
|
|
- Fixed creation date being modified on formatted files
|
|
- Fixed case where a closure inside an if condition was mistaken for the body
|
|
- Fixed `blockComments` rule removing leading `*`s used as bullet points
|
|
- Fixed bug when parsing a raw string containing three consecutive unescaped quotes
|
|
- Fixed spurious warning about unused `--wrapparameters` option
|
|
- Fixed edge case when using `--allman` indenting
|
|
|
|
## [0.49.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.3) (2022-01-26)
|
|
|
|
- Fixed required `let` being removed inside View Builders
|
|
- Fixed `blockComments` rule mangling code on next line after comment (really this time)
|
|
- Fixed unsafe removal of `self` inside `if` statements containing postfix operators
|
|
- Fixed `--selfrequired` behavior inside interpolated strings
|
|
- Fixed indenting of labelled trailing closures
|
|
|
|
## [0.49.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.2) (2022-01-16)
|
|
|
|
- Fixed literal values being incorrectly removed by `redundantType` rule
|
|
- Fixed `redundantSelf` rule removing `self` from shadowed variables after an `as`/`is` condition
|
|
- Fixed bug where `redundantClosure` rule could break the build for certain `Void` closures
|
|
- Fixed parsing error in function calls followed by a subscript
|
|
- Fixed `blockComments` rule mangling code on next line after comment
|
|
- The `redundantClosure` rule is no longer applied if closure calls a method that returns `Never`
|
|
- Fixed meaningless warning for deprecated options
|
|
|
|
## [0.49.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.1) (2021-12-09)
|
|
|
|
- The `blockComments` rule now handles empty leading and trailing comment lines correctly
|
|
- Fixed crash in `blockComments` rule
|
|
- The `redundantType` rule now handles comma-delimited declarations correctly
|
|
- Fixed spurious `self` removal when using `--self init-only` and `--swiftversion 5.4` or above
|
|
- Added support for the `unowned(safe)` and `unowned(unsafe)` ownership modifiers
|
|
- Fixed `wrapMultilineStatementBraces` error in SwiftFormat for Xcode app
|
|
|
|
## [0.49.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.49.0) (2021-12-04)
|
|
|
|
- The `redundantType` rule can now remove redundant types for properties initialized with literal values
|
|
- The `redundantType` rule now removes types only for local variables by default (to aid compilation performance)
|
|
- Added `assertionFailures` rule for automatically converting `assert(false, ...)` to `assertionFailure(...)`
|
|
- Added `acronyms` rule to auto-capitalize acronyms (disabled by default)
|
|
- Added `preferDouble` rule to replace `CGFloat` with `Double` on Swift 5.5 and above (disabled by default)
|
|
- Added `wrapConditionalBodies` rule to unwrap single-line guard and if statements (disabled by default)
|
|
- Added `blockComments` rule to replace multiline block comments with line comments (disabled by default)
|
|
- Added `blankLinesBetweenImports` rule to remove blank lines between import statements (disabled by default)
|
|
- Added `redundantClosure` rule to remove unnecessary closure wrappers
|
|
- Added `--lineaftermarks` option to add/remove a blank line after `// MARK:` comments
|
|
- Added `--markCategories` option for `organizeDeclarations` rule
|
|
- Added `--wrapternary` option for controlling how ternary operators are wrapped
|
|
- Added `--wraptypealiases` option for controlling how typealiases are wrapped
|
|
- Added `--indentstrings` option for controlling how multiline strings are indented
|
|
- Extended `redundantParens` rule to handle more cases
|
|
- Extended `wrapMultilineStatementBraces` rule to handle more cases
|
|
- Extended `redundantVoidReturnType` rule to apply to closure return values
|
|
- Fixed bug where `consecutiveBlankLines` rule would strip linebreaks inside multiline string
|
|
- Fixed bug with indenting of wrapped method chains when using `--xcodeindentation`
|
|
- SwiftFormat for Xcode app binary is no longer hosted in source repository
|
|
|
|
## [0.48.18](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.18) (2021-11-06)
|
|
|
|
- Fixed `redundantObjc` bug where `private(set)` prevented `@objc` attribute from being stripped
|
|
- Fixed indenting of wrapped member chains in or after `#if`/`#else`/`#endif` blocks
|
|
- The `--selfrequired` exclusion list is now applied to nested expressions within function's arguments
|
|
- Fixed parsing bug in `redundantSelf` rule that raised spurious error about missing `}`
|
|
- Fixed bug where error is `--filelist` files were incorrectly reported
|
|
|
|
## [0.48.17](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.17) (2021-10-18)
|
|
|
|
- Fixed bug where `trailingCommas` rule added comma to wrapped capture list with comment
|
|
- Fixed indenting of closure with wrapped capture list
|
|
- Fixed bug where `redundantArguments` rule stripped params used in pattern matching with inline let
|
|
- Fixed bug where `redundantArguments` failed to detect shadowed param after tuple assignment
|
|
- Fixed compilation error introduced when removing redundant parens with inner spaces
|
|
|
|
## [0.48.16](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.16) (2021-10-12)
|
|
|
|
- Fixed unexpected indentation of next line after a trailing closure
|
|
- Fixed unexpected indentation of `try` expressions
|
|
- Fixed bug where `redundantInit` could cause compilation failure
|
|
- Fixed indenting of multiple trailing closures
|
|
|
|
## [0.48.15](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.15) (2021-10-08)
|
|
|
|
- Fixed false positives in `unusedArgument` rule when using `try`/`await`
|
|
- Closing paren indent is now balanced for double-indented closures
|
|
- Fixed bug where comment directive failed to disable `redundantSelf` rule
|
|
- Fixed bug where `redundantSelf` exclusion list was not always applied
|
|
- Fixed regression introduced in 0.48.5 affecting indenting of wrapped closure bodies
|
|
- SwiftFormat directives are now recognized in the middle of a comment
|
|
|
|
## [0.48.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.14) (2021-10-06)
|
|
|
|
- Fixed some cases where function arguments were incorrectly treated as unused
|
|
- Fixed incorrect removal of self for some shadowed variables when swift version is >= 5.4
|
|
- Fixed indenting of wrapped method chains after a closing paren
|
|
- Rules listed in swiftformat comment directives are now case-insensitive
|
|
|
|
## [0.48.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.13) (2021-10-04)
|
|
|
|
- Fixed bug where `unusedArguments` incorrectly marked shadowed parameters as unused
|
|
- Fixed wrapped chained functions after an indented closing paren or square bracket
|
|
- Fixed Mint install
|
|
|
|
## [0.48.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.12) (2021-10-02)
|
|
|
|
- The `redundantSelf` rule now removes `self` from shadowed variable references where permitted
|
|
- Fixed bug where `self` was not correctly removed on the line following an assignment
|
|
- Fixed some cases where `self` was incorrectly removed from `@dynamicMemberLookup` members
|
|
- Fixed error raised where removing `self` caused ambiguity with global Swift functions
|
|
- Function parameters with shadowed names are now correctly marked as unused
|
|
- The `--selfrequired` option now applies to members, not just `@autoclosure` arguments
|
|
- Fixed trailing comment placement when using `wrapEnumCases` rule
|
|
- Fixed indenting of wrapped chained functions after a closing paren or square bracket
|
|
- Fixed bug where `some(Void)` was converted to `someVoid`
|
|
- Fixed potential range bounds crash in `editDistance()` function
|
|
- Now uses automatic test discovery on Linux instead of XCTestManifests file
|
|
|
|
## [0.48.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.11) (2021-07-20)
|
|
|
|
- Fixed parsing error introduced in 0.48.10 involving inline closures inside conditional statements
|
|
- Fixed bug where `redundantSelf` could potentially misidentify tuple labels as local variables
|
|
|
|
## [0.48.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.10) (2021-07-18)
|
|
|
|
- Fixed issue with `redundantBackticks` rule incorrectly removing required backticks around underscore
|
|
- Fixed parsing error in `redundantSelf` with guard conditions containing inline closures
|
|
|
|
## [0.48.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.9) (2021-07-09)
|
|
|
|
- Fixed regression introduced in 0.48.7 where parens around prefix expressions were incorrectly removed
|
|
|
|
## [0.48.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.8) (2021-07-08)
|
|
|
|
- Fixed regression introduced in 0.48.7 where parens around operator literals were incorrectly removed
|
|
|
|
## [0.48.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.7) (2021-07-07)
|
|
|
|
- Fixed bug where `redundantParens` rule could introduce an ambiguity by removing parens around a range argument
|
|
- Fixed bug where `unowned(unsafe)` capture argument would be mangled by `unusedArguments` rule
|
|
- Fixed spurious double-indenting of trailing closures in some cases
|
|
|
|
## [0.48.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.6) (2021-06-23)
|
|
|
|
- Fixed bug where `actor` variables were incorrectly interpreted as a keyword in certain cases
|
|
- The `redundantBackticks` rule no longer removes required backticks around `actor` properties
|
|
- Doc comments containing TODO: are no longer converted to regular comments if it would mangle the docs
|
|
|
|
## [0.48.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.5) (2021-06-15)
|
|
|
|
- Fixed bug when parsing generic result builder attributes, leading to incorrect spacing
|
|
- Fixed bug where wrapped function body was not double-indented as it should have been
|
|
- Parser now correctly handles `isolated` and `nonisolated` modifiers on `actor` members
|
|
- Fixed bug where space was incorrectly removed between closure capture list and arguments
|
|
- Fixed bug with indenting of wrapped method chains
|
|
|
|
## [0.48.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.4) (2021-05-30)
|
|
|
|
- Added support for `actor` and other async/await syntax introduced in Swift 5.5
|
|
- Functions with `@Sendable` closure parameters are now formatted correctly
|
|
- The `redundantGet` rule no longer removes effectful get clauses (i.e. `get throws` or `get async`)
|
|
- Fixed indenting of postfix expression members inside `#else` and `#elseif` clauses
|
|
- The `--typeattributes` option now applies to extension attributes as well as type declarations
|
|
- Improved indentation for accessors/method calls in multiline conditionals
|
|
|
|
## [0.48.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.3) (2021-05-22)
|
|
|
|
- Fixed bug where files would not be correctly excluded when using `--stdinpath`
|
|
- Fixed bug with `typeSugar` rule affecting optional composed protocol types
|
|
- Fixed bug where `hoistPatternLet` would incorrectly add let before `nil` or `true`/`false`
|
|
|
|
## [0.48.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.2) (2021-05-16)
|
|
|
|
- Fixed wrapping of generic property wrapper attributes
|
|
- Fixed bug where trailing comma could be inserted inside a collection type signature
|
|
|
|
## [0.48.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.1) (2021-05-08)
|
|
|
|
- Fixed bug where `typeSugar` rule triggered a Swift bug inside case statements
|
|
- Fixed double-indenting of trailing closure body on a wrapped line
|
|
- Fixed compilation failure when installing SwiftFormat using Swift Package Manager
|
|
- Fixed wrapping of name-spaced property wrapper attributes
|
|
- Fixed bug where `redundantReturn` rule removed required return inside `catch` statement
|
|
- Fixed issue where `redundantType` rule introduced compilation warnings by removing explicit Void type
|
|
- Fixed bug where trailing comma could be inserted inside a subscript nested inside a collection
|
|
- Fixed spurious space inserted in generic result builder attributes
|
|
- Successive reads of the same configuration file while formatting are now cached to improve performance
|
|
|
|
## [0.48.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.0) (2021-04-20)
|
|
|
|
- Added `--emptybraces` option to control how empty braces are formatted
|
|
- The `redundantReturn` rule now removes redundant `return` statements in Void functions
|
|
- The `redundantParens` rule now removes redundant parens around closure arguments
|
|
- Fixed parsing error with complex `guard` statements
|
|
- Extended `prefersKeyPath` to support `contains`, `allSatisfy` and `filter` methods
|
|
- Fixed matching of excluded paths containing ../
|
|
- Added support for using globs/wildcards in input paths
|
|
- Eliminated false positives in change list when using `--lint` mode
|
|
- File header comments are now inserted after the shebang/hashbang in executable Swift scripts
|
|
- Xcode Extension now silently ignores rules requiring file info that isn't available to extensions
|
|
- Fixed bug where `wrapEnumCases` rule was incorrectly applied to `if case` or `guard case`
|
|
- Added `--report` argument for exporting formatting changes or lint violations as a JSON file
|
|
- Improved tab layout in SwiftFormat for Xcode companion app
|
|
|
|
## [0.47.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.13) (2021-03-21)
|
|
|
|
- Fixed bug where `--wrapreturntype if-multiline` would unexpectedly wrap a single-line method
|
|
- Multiline chained functions are now indented correctly when using `--xcodeindentation`
|
|
- Blank lines are no longer inserted between multiline chained functions separated by comments
|
|
- Fixed bug in `hoistPatternLet` rule where `let` would be placed on the wrong line
|
|
- Fixed bug where `Void.self` would incorrectly be converted to `().self`
|
|
- Fixed incorrect spacing of closure arguments containing attributes
|
|
- Trailing commas are no longer incorrectly inserted inside wrapped type signatures
|
|
- Added `--lintonly` argument to specify rules that should only be applied in `--lint` mode
|
|
|
|
## [0.47.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.12) (2021-02-23)
|
|
|
|
- Fixed indenting of `switch` cases inside `#if`/`#endif` clauses
|
|
- Explicit `self` is no longer removed inside types using `@dynamicMemberLookup`
|
|
- Fixed indenting of wrapped, chained methods when using `--xcodeindentation`
|
|
- `await` is no longer treated as a keyword if `--swiftversion` is set to < 6
|
|
- Fixed issue where single line method after array would wrap unexpectedly
|
|
- Made repository checkoutable on Windows
|
|
|
|
## [0.47.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.11) (2021-01-29)
|
|
|
|
- Fixed bug with `redundandSelf` rule sometimes inserting `self` for a local variable
|
|
- Fixed `wrapAttributes` rule not working for convenience `init`s, or vars with `private(set)`
|
|
- Fixed bug with indenting of wrapped members when using `--xcodeindentation` mode
|
|
- Fixed erroneous space being inserted into keyPaths by `spaceAroundOperators` rule
|
|
- Fixed bug with `--nospaceoperators` affecting custom infix operators with closure operands
|
|
- Added support for sorting imports by length instead of alphabetically
|
|
|
|
## [0.47.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.10) (2020-12-28)
|
|
|
|
- The `blankLinesBetweenScopes` no longer inserts a blank line before Sourcery comment directives
|
|
- Fixed bug where `redundantFileprivate` rule could break code that uses property wrappers
|
|
- Fixed crash in `parseDeclarations` helper
|
|
|
|
## [0.47.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.9) (2020-12-24)
|
|
|
|
- Fixed bug with `redundantType` rule removing required type in `if let` expressions
|
|
- Fixed a bug in `organizeDeclarations` when file contains a class-bound protocol
|
|
- Improved `sortedSwitchCases` ordering
|
|
- Removed erroneous space inserted into array initializer by the `spaceAroundParens` rule
|
|
- Comments followed by a continuation character in SwiftFormat config files now handled correctly
|
|
- Removed spurious blank lines in console output introduced in 0.47.8
|
|
- Improved command-line typo suggestions
|
|
|
|
## [0.47.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.8) (2020-12-10)
|
|
|
|
- Fixed additional cases where `fileprivate` was incorrectly converted to `private` in extensions
|
|
- Added preliminary support for upcoming async/await syntax
|
|
|
|
## [0.47.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.7) (2020-12-09)
|
|
|
|
- Fixed critical bug where `fileprivate` was incorrectly converted to `private` in some cases
|
|
|
|
## [0.47.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.6) (2020-12-08)
|
|
|
|
- Fixed bug in `redundantReturn` when the `return` statement is not the last line in a block
|
|
- Fixed sorting of tuple cases when using `sortedSwitchCases` rule
|
|
- Added `--nevertrailing` option for excluding functions from the `trailingClosures` rule
|
|
- Added `trailingClosures` exception for Nimble `expect()` function
|
|
- The `redundantFileprivate` rule is now applied correctly to extension members
|
|
- Fixed some bugs with static members when using the `--redundanttype explicit` option
|
|
- SwiftFormat command line tool is now signed for better compliance with Big Sur
|
|
- Updated icon for Big Sur (thanks to Jim Puls for the icon design)
|
|
|
|
## [0.47.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.5) (2020-11-27)
|
|
|
|
- Added `--redundanttype` option for controlling how redundant types are resolved
|
|
- Numeric case values are now sorted naturally instead of alphabetically
|
|
- Fixed bug where `redundantFileprivate` rule broke trailing-closure inits
|
|
- Fixed various `enumNamespaces` rule edge-cases
|
|
- Broken symlinks no longer raise an error if they are ignored in config
|
|
- File creation date can now be used in header formats on Linux
|
|
- The `--symlinks` option now works correctly on Linux
|
|
|
|
## [0.47.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.4) (2020-11-15)
|
|
|
|
- Command-line tool now includes an arm64 slice for Apple Silicon
|
|
- Increased strictness of grouped extensions logic
|
|
- Fixed issue where `markTypes` rule would mistake an import declaration as a type
|
|
- Fixed some additional bugs with unhoisting pattern let
|
|
- Fixed bug with trailing comma being inserted in capture lists
|
|
- Added warning when setting options for disabled rules
|
|
- Fixed bug with `sortedImports` mangling file header comment
|
|
- Fixed bug with indenting of multiline comments
|
|
|
|
## [0.47.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.3) (2020-11-09)
|
|
|
|
- Fixed bug with `extensionAccessControl` increasing extension access level beyond extended type
|
|
- Fixed regression with non-standard .swift-version contents being flagged as an error
|
|
- Fixed bug in `hoistPatternLet` rule when using `--patternlet inline`
|
|
- Fixed case where `enumNamespaces` was incorrectly applied
|
|
- Fixed indenting of wrapped line starting with a closing paren or brace
|
|
- Fixed indenting of blocks starting on same line as a switch case
|
|
- Fixed indenting of wrapped closure parameter
|
|
- Fixed bug in `--allman` inference
|
|
|
|
## [0.47.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.2) (2020-10-30)
|
|
|
|
- The `markTypes`, `organizeDeclarations` and`extensionAccessControl` rules now respect comment directives
|
|
- Errors in .swiftformat config files no longer fail silently
|
|
- Fixed bug in `--modifierorder` config and added support for SwiftLint modifierorder syntax
|
|
- Fixed issue where `hoistPatternLet` breaks compilation due to a quirk in Swift parser
|
|
- Fixed bug in `hoistPatternLet` when expression is wrapped or contains spaces
|
|
- The `typeSugar` rule is now applied in more cases
|
|
- Fixed bug in cache logic resulting in slower formatting when using certain config options
|
|
- Fixed crash in `indent` rule
|
|
- Fixed bug in wrapped `else` indent
|
|
|
|
## [0.47.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.1) (2020-10-26)
|
|
|
|
- Fixed a crash when using the `fileHeader` rule
|
|
- Fixed occasional out-of-bounds crash in `markTypes` rule
|
|
- Fixed bug where `wrapArguments` rule unexpectedly indented blank lines inside braces or brackets
|
|
- Added `--wrapconditions` option for controlling how multiline conditional statements are wrapped
|
|
- Unicode whitespace characters other than space and tab are no longer treated as an error
|
|
- Indenting of `else` clauses now matches Xcode 12
|
|
|
|
## [0.47.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.0) (2020-10-14)
|
|
|
|
- Indenting of wrapped `if`, `guard`, `while`, etc. now matches Xcode 12 behavior
|
|
- Added `--assetliterals` option for managing how image/color literal length is handled
|
|
- Added `enumNamespaces` rule to replace classes/structs that only have static members with an enum
|
|
- Added `extensionAccessControl` rule to hoist/unhoist access control modifiers inside extensions
|
|
- Added `markTypes` rule for automatically inserting `MARK:` comments between type declarations
|
|
- Added `sortedSwitchCases` rule to automatically sort grouped switch cases alphabetically
|
|
- Added `--wrapreturntype` option to control how return type is wrapped in function declarations
|
|
- The `organizeDeclarations` rule is now also applied to extensions
|
|
- Updated `--xcodeindentation` behavior for Xcode 12
|
|
|
|
## [0.46.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.46.3) (2020-09-20)
|
|
|
|
- Fixed bug where `redundantType` rule corrupted assignments involving ternary expressions
|
|
- SwiftFormat for Xcode Extension now works in Xcode 12 out of the box
|
|
|
|
## [0.46.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.46.2) (2020-09-05)
|
|
|
|
- Fixed space being unexpectedly removed before prefix `.` operator by `spaceAroundOperators`
|
|
- Fixed bug where a pair of less-than, greater-than operators could be interpreted as generics
|
|
- Fixed `organizeDeclarations` rule mistaking function with nested class for a lifecycle method
|
|
|
|
## [0.46.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.46.1) (2020-08-30)
|
|
|
|
- Fixed bug where computed property bodies were sometimes wrongly identified as closures
|
|
- Fixed spurious blank lines in output when formatting
|
|
- The `organizeDeclarations` rule no longer inserts blank lines at start/end of scopes
|
|
- The `organizeDeclarations` rule now groups typealiases with types instead of properties
|
|
- Improved heuristic for matching `// MARK:` comments in `organizeDeclarations`
|
|
- Configuration file now allows line continuations using `\` delimiter
|
|
|
|
## [0.46.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.46.0) (2020-08-28)
|
|
|
|
- Added `organizeDeclarations` rule for grouping and organizing type members
|
|
- Added `wrapEnumCases` rule for wrapping enum cases onto separate lines
|
|
- Added `wrapSwitchCases` rule for wrapping switch cases onto separate lines
|
|
- Added `initCoderUnavailable` rule for marking stub `init(coder:)` implementations as unavailable
|
|
- Added `redundantType` rule for removing redundant type annotations from variable declarations
|
|
- Added search filter bar for rules in SwiftFormat for Xcode extension
|
|
- Selection is now preserved correctly in Xcode 12 when using SwiftFormat extension
|
|
- Fixed indenting of wrapped closure arguments when using `--closingparen same-line`
|
|
- Fixed spurious space insertion with `spaceAroundOperators` rule in some circumstances
|
|
- Switch cases marked with `@unknown` are now indented automatically instead of being ignored
|
|
- Wrapped method chains now behave more consistently when using `--xcodeindentation` option
|
|
- Removed deprecated `ranges` rule, but un-deprecated the `ranges` option for convenience
|
|
- Single-letter command-line flags now behave more usefully (e.g. -o maps to --output)
|
|
- Spaces are now permitted in comma-delimited command-line arguments
|
|
- Added more helpful feedback for mistyped arguments
|
|
|
|
## [0.45.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.6) (2020-08-12)
|
|
|
|
- Added `--yodaswap` option for more fine-grained control of `yodaConditions` rule
|
|
- Fixed indentation of wrapped type declarations when using `--xcodeindentation enabled`
|
|
- Fixed alignment of closure braces when using `--allman` style
|
|
|
|
## [0.45.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.5) (2020-08-09)
|
|
|
|
- Fixed .swiftformat configuration file processing when using `--stdinpath` option
|
|
- Fixed bug where conditional imports could be mangled by `sortedImports` rule
|
|
- Fixed indenting of braces after throwing function with wrapped return type
|
|
- Fixed indenting of wrapped `in` keyword inside closure
|
|
|
|
## [0.45.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.4) (2020-08-08)
|
|
|
|
- Improved indenting of wrapped closure braces when using `--allman` indenting
|
|
- Fixed crash in `blankLinesBetweenScopes` rule when using `--linerange` argument
|
|
- Fixed `indent` rules behavior when using `--linerange` argument
|
|
- Audited all rules for `--linerange` compatibility
|
|
- Improved `Format Selection` behavior in Swiftformat for Xcode extension
|
|
- Fixed bug with `fileHeader` rule stripping formatting comment directives at top of file
|
|
- Documented known issue with `preferKeyPath` and `compactMap()` in README file
|
|
- The value for `--wrapparameters` now defaults to match `--wraparguments`
|
|
- Fixed indenting of wrapped guard else
|
|
|
|
## [0.45.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.3) (2020-08-03)
|
|
|
|
- Added `--linerange` command-line argument for partial file formatting or linting
|
|
- Added `--varattributes` option to complement `--funcattributes` and `--typeattributes`
|
|
- Fixed spurious "Unexpected static/class ..." warning in `redundantSelf` rule
|
|
- Fixed bug in tokenIndex() calculation when last line does not end in a linebreak
|
|
- Fixed bug where `self` was incorrectly removed inside trailing closures on generic type init
|
|
- Blank lines are no longer indented when using `--trimwhitespace nonblank-lines`
|
|
|
|
## [0.45.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.2) (2020-08-01)
|
|
|
|
- You can now tweak formatting options inside source files using `// swiftformat:options ...` directive
|
|
- The `wrapMultilineStatementBraces` rule is now applied to more statement types
|
|
- Fixed spurious lint warnings due to conflict between `braces` and `wrapMultilineStatementBraces` rules
|
|
- Fixed several bugs in `redundantSelf` rule relating to for loops
|
|
- Fixed bug with indenting of closure arguments
|
|
- Fixed unsafe removal of backticks around `init`
|
|
- Rules can now raise an error if they encounter malformed code instead of failing silently
|
|
- SwiftFormat for Xcode app no longer shows deprecated rules in the rules tab
|
|
|
|
## [0.45.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.1) (2020-07-30)
|
|
|
|
- Fixed bug where `preferKeyPath` was incorrectly applied to function calls and compound expressions
|
|
- The `wrapMultilineStatementBraces` rule is now applied to `init` and `subscript` braces
|
|
- The `wrapAttributes` rule now handles `init` and `subscript` the same way as functions
|
|
|
|
## [0.45.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.45.0) (2020-07-29)
|
|
|
|
- Added `wrapAttributes` rule for controlling attribute position
|
|
- Added `wrapMultilineStatementBraces` rule for opening braces for wrapped expressions
|
|
- Added `preferKeyPath` rule for converting trivial closures to keyPaths in Swift 5.2
|
|
- Added `--smarttabs` option to support consistent indenting regardless of `--tabwidth`
|
|
- Updated Xcode extension for Xcode 12 and macOS Big Sur
|
|
- Added Swift version dropdown to SwiftFormat for Xcode configuration app
|
|
- Added `--guardelse` option to control wrapping of `else` clauses in `guard` statements
|
|
- Allman braces are now applied to closure braces, which were previously ignored
|
|
- The `void` rule now converts `Void()` literals to just `()`
|
|
- Improved indenting of closing parentheses and brackets
|
|
- Renamed `--empty` option to `--voidtype`, which better describes its function
|
|
- Renamed `specifiers` rule to `modifierOrder` for consistency with SwiftLint
|
|
- Renamed `--specifierorder` configuration option to `--modifierorder`
|
|
- Fixed bug where `--verbose` mode didn't log path for unchanged files
|
|
- Improved documentation of `numberFormatting` configuration options
|
|
- Added Sublime Text plugin instructions
|
|
|
|
## [0.44.17](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.17) (2020-07-12)
|
|
|
|
- The `wrapArguments` rule now keeps internal and external parameter labels on the same line
|
|
- Multiline string literals are now indented more consistently
|
|
- Fixed infinite recursion bug in the `redundantSelf` rule
|
|
- Fixed duplicate file path logging in `--verbose` mode
|
|
- Indented braces are now always balanced
|
|
- Add `--stdinpath` option, allowing git pre-commit hook to support file header info
|
|
- Updated instructions for git pre-commit hook (again)
|
|
- Added inference for `--noSpaceOperators` option
|
|
|
|
## [0.44.16](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.16) (2020-07-02)
|
|
|
|
- Fixed bug in `--output stdout` processing
|
|
- Reverted git pre-commit hook instructions
|
|
|
|
## [0.44.15](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.15) (2020-07-01)
|
|
|
|
- Fixed incorrect indenting for double-nested closures
|
|
- Added inference for `--wrapparameters` option
|
|
- Fixed incorrect `--wraparguments` inference
|
|
- The `spaceInsideBraces` rule will no longer add space between nested braces
|
|
- Fixed bug in `isStartOfClosure()` helper
|
|
- Fixed indent logic for closing braces
|
|
- You can now use `--output stdout` even when using a file path for input
|
|
- SwiftFormat will now raise an error if missing info needed for `fileHeader` rule
|
|
- Improved SwiftFormat for Xcode app icon
|
|
- Updated instructions for git pre-commit hook
|
|
|
|
## [0.44.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.14) (2020-06-23)
|
|
|
|
- Added new icon for SwiftFormat for Xcode app (thanks to Vikram Kriplaney for the icon design)
|
|
- Fixed `redundantParens` rule stripping parens around `#file` (used to silence warning in Swift 5.3)
|
|
- Avoid raising "Malformed .swift-version file" error when using unusual formats (e.g. for beta releases)
|
|
- Fixed `redundantBackticks` rule unescaping `get` inside subscript with `where` clause
|
|
- Fixed `redundantReturn` failing to remove `return` in function or subscript with `where` clause
|
|
- Fixed SwiftFormat for Xcode version number
|
|
|
|
## [0.44.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.13) (2020-05-28)
|
|
|
|
- Fixed indenting of closing bracket when using `wrapArguments` rule
|
|
- Added `--shortoptionals` argument to selectively disable shortening of `Optional<T>` to `T?` for properties
|
|
- Added `--minversion` argument to specify minimum SwiftFormat version to use for a given codebase
|
|
|
|
## [0.44.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.12) (2020-05-27)
|
|
|
|
- Fixed indenting of chained methods with trailing closures
|
|
- SwiftFormat command-line tool now logs the location of .swiftformat configuration files that it encounters
|
|
|
|
## [0.44.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.11) (2020-05-23)
|
|
|
|
- Fixed failure to terminate when wrapping functions after first parameter
|
|
- First element in a wrapped collection or function is now correctly indented
|
|
- Added workaround for Swift type sugar parsing bug
|
|
- The `blankLinesBetweenScopes` rule no longer inserts a blank line before an `#else` block
|
|
- Downgraded "No eligible files found" error to a warning
|
|
- Removed "Failed to format any files" error, which was sometimes triggered erroneously
|
|
- Fixed deprecation warning when building on Linux
|
|
|
|
## [0.44.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.10) (2020-05-14)
|
|
|
|
- Fixed bug where `--specifierorder` option values were sorted alphabetically
|
|
- Fixed a couple of bugs in `hoistPatternLet` when `--patternlet` is set to `inline`
|
|
- Added support for hoisting/unhoisting `var` and `let` in `do ... catch` patterns
|
|
- Added error if `--specifierorder` contains duplicate values
|
|
|
|
## [0.44.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.9) (2020-05-05)
|
|
|
|
- Added `--specifierorder` argument for overriding default order used by `specifiers` rule
|
|
- Added `--nowrapoperators` argument for preventing `wrap` rule breaking at specific operators
|
|
- The `redundantNilInit` rule no longer removes `nil` defaults from vars in structs using synthesized init
|
|
- Fixed indenting of trailing comment delimiter in multiline comments
|
|
|
|
## [0.44.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.8) (2020-05-01)
|
|
|
|
- Fixed a significant performance regression introduced in 0.44.6
|
|
- Changed ordering of `override` keyword in specifier lists to match SwiftLint
|
|
- Fixed timeout due to infinite recursion when formatting nested comments
|
|
- The `trailingSpace` rule is now called before `indent` to avoid noise when linting
|
|
- Fixed bug where `unusedArguments` rule ignored all arguments if any was already ignored
|
|
- Fixed `redundantParens` rule breaking closure argument lists where argument is named `self`
|
|
- Fixed indenting of multiline string interpolations
|
|
- Fixed broken formatting of multiline string interpolations
|
|
- Fixed crash in `wrap` rule
|
|
- The `wrap` rule now favors wrapping function args over wrapping at `.` operator
|
|
- Fixed a bug with indenting of pre-formatted multiline comments
|
|
- Fixed a misleading error message relating to `--tabwidth` option
|
|
|
|
## [0.44.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.7) (2020-04-04)
|
|
|
|
- Fixed indenting of wrapped closures after a switch statement
|
|
- Fixed bug with `redundantNilInit` removing `nil` for properties using parameterized property wrappers
|
|
- Fixed `redundantRawValues` rule not removing values for back-tick-escaped case names
|
|
- Improved error messages for misnamed rules
|
|
- Documentation improvements
|
|
|
|
## [0.44.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.6) (2020-03-21)
|
|
|
|
- Fixed timeout when formatting files containing multiple trailing closures
|
|
- Added `--filelist` argument for specifying input source files list in a standalone file
|
|
- Fixed bug in the git pre-commit hook suggested in the README file
|
|
|
|
## [0.44.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.5) (2020-03-11)
|
|
|
|
- Fixed bug with indenting of chained closures
|
|
- Fixed bug where wrapped braces were over-indented
|
|
- Fixed indenting of comments inside enum declarations
|
|
- Improved consistency of `--xcodeindentation` output with Xcode's built-in formatting
|
|
- Extension braces are now correctly wrapped
|
|
- Switch statement braces are now correctly wrapped
|
|
- Fixed bug where `duplicateImports` rule could remove a required `@testable` import
|
|
|
|
## [0.44.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.4) (2020-02-27)
|
|
|
|
- Allman braces are now applied correctly for lines that end in a numeric literal
|
|
- Blank line is now removed when stripping a redundant `return` keyword on its own line
|
|
- Fixed space being inserted before the `.` in a nested PropertyWrapper expression
|
|
- Fixed `return` being incorrectly removed inside `if` statements containing an un-parenthesized closure
|
|
|
|
## [0.44.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.3) (2020-02-20)
|
|
|
|
- Fixed incorrect indenting of closing multiline string delimiter
|
|
- Fixed bug where `redundantReturn` rule incorrectly removed `return` after a brace without leading space
|
|
- Fixed edge case where closures without surrounding parentheses were misinterpreted in if statements
|
|
- Fixed failure to wrap braces after a struct or init declaration
|
|
|
|
## [0.44.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.2) (2020-02-02)
|
|
|
|
- Fixed crash in line wrapping logic
|
|
- Fixed several cases where braces were not correctly moved according to `wrap` rule
|
|
- Prevented wrapping of image and color literals
|
|
- Fixed bug with `trailingClosures` rule breaking unwrap operators
|
|
|
|
## [0.44.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.1) (2020-01-26)
|
|
|
|
- Fixed `spaceInsideComments` rule mangling preformatted comments with multiple slashes
|
|
- Fixed `redundantFileprivate` breaking code relying on type-inference for `init`
|
|
- Reverted overly aggressive argument wrapping change in 0.44.0
|
|
- Fixed `redundantParens` rule breaking `#if` statements without space before argument
|
|
- Fixed `// swiftformat:disable` directives not affecting `wrap` or `wrapArguments` rules
|
|
- Fixed bug where `yodaConditions` rule caused formatting to never terminate
|
|
- Fixed crash in `fileHeader` rule
|
|
|
|
## [0.44.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.44.0) (2020-01-15)
|
|
|
|
- Xcode Extension now includes Lint File option
|
|
- Xcode Extension now preserves selection after formatting
|
|
- Improved range-based formatting in Xcode Extension
|
|
- Wrapping of function calls can now be configured separately from function declarations via the `--wrapparameters` option
|
|
- Numerous improvements to wrapping and indenting logic (thanks to @AnthonyMDev for the fixes)
|
|
- Fixed indent logic for unbalanced closing parens
|
|
- Fixed `self` being removed incorrectly inside if statements
|
|
- Fixed duplicate lint warnings
|
|
- Fixed failure to fix indent at start of file
|
|
- Fixed reported line index for `consecutiveBlankLines` rule
|
|
|
|
## [0.43.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.5) (2020-01-04)
|
|
|
|
- Fixed bug where `redundantBreak` rule removed entire line if break appeared after a semicolon
|
|
- Fixed a couple of cases where `redundantSelf` failed to remove `self` as expected
|
|
|
|
## [0.43.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.4) (2020-01-02)
|
|
|
|
- Fixed regression in `indent` rule` that could cause multiline strings to become mis-formatted
|
|
- Fixed bug in `--nospaceoperators` option where `..<` operator was rejected
|
|
- Added instructions for installing SwiftFormat for Xcode via Homebrew cask
|
|
|
|
## [0.43.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.3) (2019-12-31)
|
|
|
|
- Deprecated `ranges` rule and `--ranges` option (use `--nospaceoperators` with `spaceAroundOperators` rule instead)
|
|
- The `redundantSelf` rule no longer removes self in cases where property requires backtick escaping
|
|
- Fixed bug with `--nospaceoperators` potentially removing required spaced near linebreaks
|
|
- Fixed spurious lint warnings in `spaceAroundOperators`, `indent` and `wrap` rules
|
|
- Improved wrapping heuristic for closures to avoid splitting expressions if avoidable
|
|
- Fixed indenting of closing brace for line-wrapped closures
|
|
- Fixed `indent` rule performance regression introduced in 0.43.2
|
|
- Added warnings for deprecated options in config file
|
|
|
|
## [0.43.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.2) (2019-12-28)
|
|
|
|
- Added `--nospaceoperators` option for selectively removing space around specific operators
|
|
- Allow `self` in lazy vars when Swift 4 and above
|
|
- Fixed spurious lint warning when using a custom header with `fileHeader` rule
|
|
- Fixed bugs with indenting of consecutive comments
|
|
- Fixed resolving of macOS aliases when using `--symlinks follow`
|
|
- Added explicit `stdin` parameter option
|
|
- Fixed stdin timeout flakiness
|
|
- Fixed bug with `andOperator` replacing `&&` with `,` inside ViewBuilders
|
|
|
|
## [0.43.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.1) (2019-12-22)
|
|
|
|
- Fixed indent regression in wrapped `let` expressions
|
|
- Fixed failure to remove `return` in `get` accessors
|
|
|
|
## [0.43.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.43.0) (2019-12-18)
|
|
|
|
- Added per-line warning when running in `--lint` mode
|
|
- Significantly improved Xcode integration when running as a build step in `--lint` mode
|
|
- Added `--lenient` option to suppress errors when running in `--lint` mode
|
|
- Fixed bug where required `self` was sometimes incorrectly removed inside a trailing closure
|
|
- Improved `wrap` rule heuristic for prioritizing where a line should be broken
|
|
- Fixed bug in `typeSugar` rule affecting namespaced types
|
|
|
|
## [0.42.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.42.0) (2019-11-30)
|
|
|
|
- Added `wrap` rule for automatic wrapping of long statements or expressions based on `--maxwidth` option
|
|
- Fixed bug with `braces` rule inserting a redundant blank line at the start of nested scopes
|
|
|
|
## [0.41.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.41.2) (2019-11-27)
|
|
|
|
- Fixed bug with `trailingCommas` rule incorrectly inserting a comma into wrapped collection type expressions
|
|
|
|
## [0.41.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.41.1) (2019-11-25)
|
|
|
|
- Fixed bug with `wrapArguments` rule incorrectly wrapping code inside interpolated String expressions
|
|
|
|
## [0.41.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.41.0) (2019-11-23)
|
|
|
|
- The `wrapArguments` rule can now automatically wrap functions and collections to `--maxwidth`
|
|
- Added `—maxwidth` option to specify the width at which code should wrap (currently only used by `wrapArguments` rule)
|
|
- Added `—tabwidth` option to help with code indenting and wrapping when using tabs for indent
|
|
- Fixed indenting of code wrapped after the `in` in a `for...in` loop
|
|
- Fixed indenting of code wrapped before the `is` in an expression
|
|
- Added version check for `redundantBackticks` rule to support fixes in Swift 5
|
|
- Fixed error when parsing escaped triple-quote in a multiline string
|
|
- Fixed bug where a multiline comments before an opening brace could result in corrupted output
|
|
- CLI will now fail if .swiftformat file contains an invalid option, instead of ignoring it
|
|
- Added support for formatting Swift package manifest files using Xcode Extension
|
|
|
|
## [0.40.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.14) (2019-10-28)
|
|
|
|
- The `redundantReturn` rule no longer incorrectly removes `return` inside `catch let` statements
|
|
- The `andOperator` rule no longer replaces `&&` with `,` inside function builder blocks
|
|
- Fixed a bug where `redundantFileprivate` rule incorrectly made overridden `fileprivate init` methods private
|
|
- The `fileHeader` rule no longer strips tools version header from `Package.swift` files
|
|
- The `todos` rule now recognizes and fixes a wider variety of typos
|
|
|
|
## [0.40.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.13) (2019-10-10)
|
|
|
|
- The `redundantReturn` rule now removes `return` from functions and computed properties in Swift 5.1
|
|
- Fixed a bug with `let` hoisting
|
|
|
|
## [0.40.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.12) (2019-09-20)
|
|
|
|
- Fixed crash when compiling with Xcode 11
|
|
- Fixed `redundantFileprivate` rule breaking inner types
|
|
- Fixed `--quiet` option preventing formatting code to stdout
|
|
|
|
## [0.40.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.11) (2019-07-29)
|
|
|
|
- Added `--xcodeindentation` option to use Xcode-style indentation for guards and enums
|
|
- The `redundantNilInit` rule no longer removes `nil` for properties using property wrappers
|
|
- Fixed bug where `redundantParens` rule incorrectly stripped Void generic arguments
|
|
- The `void` rule is now correctly applied to generic type parameters
|
|
|
|
## [0.40.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.10) (2019-06-23)
|
|
|
|
- The `emptyBraces` rule no longer removes linebreaks in chained `else`/`catch` blocks
|
|
- Fixed duplicate `fileHeader` insertion when comment isn't followed by blank line
|
|
- SwiftFormat command-line tool no longer times out when encountering an empty file
|
|
- Fixed bug in `yodaConditions` rule affecting parenthesized subexpressions
|
|
- The `consecutiveBlankLines` rule no longer strips blank lines inside multiline string literals
|
|
- The `redundantObjc` rule no longer strips `@objc` annotation from `fileprivate` members
|
|
- The `{file}` placeholder in `fileHeader` templates now works correctly
|
|
|
|
## [0.40.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.9) (2019-05-27)
|
|
|
|
- Fixed another case of `redundantSelf` removing required `self` in closures
|
|
- Fixed behavior of `redundantSelf` in cases where `self` is shadowed
|
|
- The `redundantObjc` rule no longer strips `@objc` annotation from private members
|
|
- Fixed bug where `isEmpty` rule mangled expressions containing an array count
|
|
- The `redundantSelf` rule now correctly inserts `self` in code following a declaration
|
|
- Fixed bug where `—trailingclosures` option was being ignored
|
|
- Removed extra newline when printing content to stdout
|
|
- Fixed some bugs in the `fileHeader` rule
|
|
|
|
## [0.40.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.8) (2019-04-16)
|
|
|
|
- Fixed several bugs when using the `--self insert` option
|
|
|
|
## [0.40.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.7) (2019-04-12)
|
|
|
|
- Fixed postfix operator followed by `.` being incorrectly interpreted as infix
|
|
- Fixed bug with `andOperator` in repeat/while loops
|
|
- Fixed bug with `redundantFileprivate` affecting local subclasses
|
|
- Fixed regression with `--self insert` adding `self` to function parameter labels
|
|
- Case-differing imports are now preserved
|
|
|
|
## [0.40.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.6) (2019-04-10)
|
|
|
|
- Fixed a regression when parsing a generic type followed by `& SomeProtocol`
|
|
- Fixed bug where `--self insert` option failed to insert `self` in the line after a `let` or `var` statement
|
|
- Added `--unexclude` file paths option
|
|
- Added regression test project suite
|
|
|
|
## [0.40.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.5) (2019-04-08)
|
|
|
|
- Fixed indenting of comments before an `#if`/`#else` clause inside a `switch` statement
|
|
- Fixed indenting of `#if` statement followed by comment inside a `switch` statement
|
|
- Fixed bug in `self` removal when followed by a `switch` containing an `#ifdef`
|
|
- Fixed bug when tokenizing chevron operators
|
|
- Fixed bug when tokenizing generic declarations
|
|
- Added `init-only` support to explicitSelf inference
|
|
- Added inference for inline semicolons
|
|
|
|
## [0.40.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.4) (2019-03-23)
|
|
|
|
- Multiple instances of `--disable` or other comma-delimited config options are now merged instead of replacing previous
|
|
- The `redundantParens` rule no longer removes explicit double-parens used to suppress warnings inside `Selector(...)`
|
|
- The `trailingCommas` rule no longer breaks calls to `UICollectionView.performBatchUpdates()`
|
|
- Fixed bug in `yodaConditions` rule that broke KeyPaths
|
|
|
|
## [0.40.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.3) (2019-03-19)
|
|
|
|
- Fixed some bugs with the `redundantFileprivate` rule relating to struct members
|
|
- The `redundantFileprivate` rule no longer affects members required for protocol conformance
|
|
- Fixed a bug with `yodaConditions` rule inside ternary expressions
|
|
|
|
## [0.40.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.2) (2019-03-19)
|
|
|
|
- Fixed a bug where the `redundantParens` rule incorrectly removed parens in a subscript or function invocation
|
|
- Fixed a bug with the `trailingClosures` rule removing parens inside some conditional expressions
|
|
- Fixed a bug in the `yodaConditions` rule that broke expressions containing subscripts
|
|
- Fixed the `--swiftversion` option, which was being ignored under some circumstances
|
|
- Fixed bug that caused the `--fragment` and `--conflictmarkers` options to be ignored
|
|
- Fixed a bug in the `redundantObjc` rule that incorrectly stripped `@objc` from nested enum types
|
|
|
|
## [0.40.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.1) (2019-03-16)
|
|
|
|
- Fixed bug where `--trailingclosures` would incorrectly remove parentheses before an opening brace
|
|
- Fixed SwiftFormat for Xcode appearance when running in dark mode on macOS 10.14 (Mojave)
|
|
|
|
## [0.40.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.40.0) (2019-03-14)
|
|
|
|
- Added `--trailingclosures` option for whitelisting functions that should use trailing closure syntax
|
|
- The `trailingClosures` rule now only applies to a safe subset of methods by default
|
|
- Enabled `trailingClosures` rule by default (use `--disable trailingClosures` to opt out)
|
|
- SwiftFormat now infers values to use for indentation, linebreaks, etc. if the associated rules are disabled
|
|
- Added new `yodaConditions` rule that moves constant values to the right-hand-side of expressions
|
|
- The `--dryrun` and `--lint` modes now only list modified files when running in `--verbose` mode
|
|
- Added an automatic timeout for buggy rules, or if a rule gets stuck when processing malformed input
|
|
- Fixed a bug in the `wrapArguments` that could corrupt argument lists containing commented lines
|
|
- Fixed bug where `wrapArguments` sometimes rewrapped parenthesized expressions
|
|
- Rule documentation is now available programmatically via the command-line
|
|
- Improved command-line UI, providing additional feedback and more detail in error messages
|
|
- Simplified SwiftFormat for Xcode app interface (big thanks to @VinceBurn for the UI implementation)
|
|
|
|
## [0.39.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.5) (2019-03-06)
|
|
|
|
- Fixed bug in `braces` rule where closing brace was not wrapped onto a new line
|
|
- Fixed bug with `braces` rule affecting closures inside a `switch` statements
|
|
- Relative indentation is now preserved inside multiline comment blocks
|
|
- Fixed indenting of `switch` cases using Swift 5's new `@unknown` attribute
|
|
- Fixed some errors in documentation and warning messages
|
|
- The .swift-version file parser now permits cases like `3.0-PREVIEW-4`
|
|
- Fixed the performance test target, which was broken in Xcode 10.1
|
|
|
|
## [0.39.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.4) (2019-03-03)
|
|
|
|
- Added support for Swift 5's new raw string syntax
|
|
- Now correctly detects .swiftformat and .swift-version files placed anywhere in the input path
|
|
- The swiftformat command-line tool will no longer fail with an error if all matched files were ignored
|
|
- Fixed bug where `braces` rule failed to correctly apply Allman indenting to `switch` statements
|
|
- Disabled the `isEmpty` rule again by default (you can enable it using `--enable isEmpty`)
|
|
|
|
## [0.39.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.3) (2019-02-15)
|
|
|
|
- Fixed a bug with `hoistPatternLet` rule for switch cases without a space
|
|
- Fixed a bug in the `typeSugar` rule when referencing nested types
|
|
- The .swiftformat configuration file type is now associated with the SwiftFormat for Xcode app
|
|
|
|
## [0.39.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.2) (2019-02-14)
|
|
|
|
- Fixed bug with indenting multi-line strings (introduced in 0.39.1)
|
|
- Fixed `redundantParens` bug (introduced in 0.39.1)
|
|
- Corrected documentation for `specifiers` rule
|
|
|
|
## [0.39.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.1) (2019-02-12)
|
|
|
|
- Fixed some cases where `redundantParens` failed to remove redundant parentheses
|
|
- Fixed rare instance where `indent` rule could incorrectly indent multiline string literals
|
|
- Added `Rules.md` file to the repository, providing permalinks to the documentation for each rule
|
|
- Rules documentation is now generated automatically from the SwiftFormat source code
|
|
- The Xcode Extension app now shows tooltips for rules in the Rules tab
|
|
- Fixed unit test failure in certain timezones
|
|
|
|
## [0.39.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.0) (2019-02-04)
|
|
|
|
- Added `redundantFileprivate` rule, which replaces `fileprivate` with `private` where possible
|
|
- Added `redundantExtensionACL` rule, to remove redundant access level keywords inside extensions
|
|
- Added `typeSugar` rule to replace Array, Dictionary and Optional types with shorthand forms
|
|
- Added `redundantObjc` rule, which removes unnecessary `@objc` annotations
|
|
- Added `—selfrequired` option for excluding `@autoclosure` arguments from `redundantSelf` rule
|
|
- The `isEmpty` rule is now enabled by default, as the risk of false positives is fairly low
|
|
- Enhanced the `fileHeader` rule with macros for file name and creation date
|
|
- Added AppleScript integration instructions (thanks to @Lutzifer)
|
|
|
|
## [0.38.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.38.0) (2019-01-29)
|
|
|
|
- Added support for building, running and testing SwiftFormat on Linux
|
|
- Added `--swiftversion` option for version-specific features
|
|
- Added `anyObjectProtocol` rule to replace `class` with `AnyObject` in protocol declarations
|
|
- Added `redundantBreak` rule that removes unneeded breaks from switch cases
|
|
- Added `strongifiedSelf` rule which removed backticks in `if let ``self`` = self {}`
|
|
- The `redundantReturn` rule now removes void returns as well as ones that return a value
|
|
- Renamed some option values for consistency
|
|
- The Xcode Extension app now shows tooltips on Options tab
|
|
|
|
## [0.37.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.5) (2019-01-24)
|
|
|
|
- Fixed another regression in the `redundantReturn` rule
|
|
|
|
## [0.37.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.4) (2019-01-22)
|
|
|
|
- Fixed a regression in the `redundantReturn` rule, causing `return` to be removed when it shouldn't
|
|
|
|
## [0.37.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.3) (2019-01-19)
|
|
|
|
- Fixed bug in `wrapArguments` rule when using the `after-first` mode
|
|
- The `elseOnSameLine` rule no longer discards comments between clauses
|
|
- Fixed bug with `redundantBackticks` incorrectly stripping backticks inside keyPaths
|
|
- Wrapped closure chains inside a var declaration are now wrapped correctly
|
|
- Fixed some cases where `redundantReturn` rule was not being applied
|
|
- Fixed bug with `braces` rule affecting nested closures
|
|
|
|
## [0.37.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.2) (2019-01-01)
|
|
|
|
- Fixed codesign issues with bundled binaries
|
|
- Significantly improved performance when using globs/wildcards in `--exclude` rules
|
|
- Added glob syntax documentation to README file
|
|
|
|
## [0.37.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.1) (2018-12-18)
|
|
|
|
- Fixed a bug in the `isEmpty` rule when used inside a function argument
|
|
- Fixed bug where log messages included ANSI codes in non-terminal stderr output
|
|
|
|
## [0.37.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.37.0) (2018-12-17)
|
|
|
|
- Added `isEmpty` rule, which converts instances of `if foo.count == 0 {}` to `if foo.isEmpty` (disabled by default)
|
|
- Added `redundantLetError` rule, which removes `let error` from `catch let error {}` because it's implicit
|
|
- The `todos` rule now converts `/// MARK:` to `// MARK:`, as the former isn't recognized by Xcode
|
|
- Fixed problem with the performance tests target not building locally in Xcode 10.1
|
|
|
|
## [0.36.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.36.0) (2018-12-15)
|
|
|
|
- Fixed `--exclude` globs matching path prefix instead of whole path (this may break exclude paths that relied on the bug)
|
|
- Added new `andOperator` rule for replacing `&&` with `,` in `if`, `while` and `guard` statements
|
|
- Added `init-only` option for the `--self` argument, to enable explicit `self` only inside initializers
|
|
- Significantly improved performance when using complex `--exclude` rules
|
|
- Fixed infinite loop bug in `redundantSelf` rule relating to properties named "type"
|
|
- Fixed caching mechanism which was broken by an earlier Swift update
|
|
- Fixed spurious error message when `--exclude` option matched no files
|
|
|
|
## [0.35.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.10) (2018-12-13)
|
|
|
|
- Removed spurious `--verbose` argument warning
|
|
- Non-swift files are no longer logged as skipped in `--verbose` mode
|
|
- Fixed bug with comment indenting inside switch statements
|
|
- Fixed crash in wrapArguments rule
|
|
|
|
## [0.35.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.9) (2018-11-28)
|
|
|
|
- Fixed incorrect formatting of generic arguments containing function types
|
|
- Fixed inconsistent capitalization of the swiftformat executable in Package.swift
|
|
|
|
## [0.35.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.8) (2018-11-23)
|
|
|
|
- Updated `void` rule to support changes introduced in Swift 4
|
|
- Fixed a bug where `#endif` could be incorrectly indented if followed by a comment
|
|
- Added `--importgrouping` option to group imports inside by `@testable`
|
|
- Fixed a potential bug when loading options in the SwiftFormat for Xcode GUI
|
|
|
|
## [0.35.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.7) (2018-10-11)
|
|
|
|
- Fixed error when tokenizing an `enum` declaration with a `where` clause
|
|
- Fixed bug with spacing around an infix operator used before the `#file` keyword
|
|
- Fixed bug where `self` was incorrectly removed inside property getters/setters
|
|
|
|
## [0.35.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.6) (2018-09-29)
|
|
|
|
- Fixed bug where `self` could be incorrectly removed inside `#if` blocks
|
|
- Fixed some bugs when inserting or removing `self` inside `didSet` handlers
|
|
- The `strongOutlets` rule now ignores properties named `delegate` or `dataSource`
|
|
- The `wrapCollections` rule now behaves more consistently with nested collection literals
|
|
- Added "Open Recent" menu item to the SwiftFormat for Xcode app
|
|
|
|
## [0.35.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.5) (2018-09-08)
|
|
|
|
- Fixed a bug in `redundantParens` rule that affected closure types that take a single tuple argument
|
|
|
|
## [0.35.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.4) (2018-09-05)
|
|
|
|
- Added glob support (unix-style wildcard file pattern matching) for `--exclude` paths
|
|
- Added `--quiet` option to disable noncritical output messages when using the swiftformat CLI
|
|
- Fixed a bug where an `import func ...` statement caused the `redundantSelf` rule to loop indefinitely
|
|
- Disabled ANSI formatting for stderr if stdout is pointing to a terminal interface but stderr isn't
|
|
- SwiftFormat is now more tolerant of white space around paths in a .swiftformat configuration file
|
|
- A .swiftformat file generated by SwiftFormat will now always end with a linebreak
|
|
|
|
## [0.35.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.3) (2018-08-21)
|
|
|
|
- Added `--closingparen` option for finer control over function argument wrapping
|
|
- Fixed bug in wraparguments/collections options inference
|
|
- Skipped files are now logged when running with the `--verbose` option
|
|
- SwiftFormat no longer mangles XCUITest tokens in comments by introducing spaces
|
|
- Dictionary values wrapped onto a different line from the key are now indented correctly
|
|
- Fixed a bug where automatic removal of spaces around range operators could introduce ambiguity
|
|
- Disabled ANSI formatting for non-terminal output
|
|
- Fixed typo in command-line help
|
|
|
|
## [0.35.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.2) (2018-08-10)
|
|
|
|
- Fixed a bug where `--rules` command incorrectly showed all rules as disabled
|
|
- Added close button to SwiftFormat for Xcode application window
|
|
|
|
## [0.35.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.1) (2018-08-08)
|
|
|
|
- Added support for hierarchical config files with a standard naming convention (see README for details)
|
|
- You can now specify excluded file paths and file options such as `--symlinks` in configuration files
|
|
- Standard .swiftformat configuration files are now visible in the SwiftFormat for Xcode open/save dialogs
|
|
- The .swiftformat configuration file can now contain comments, which are marked using a hash (#) character
|
|
- Improved cache invalidation. It should no longer be necessary to disable the cache in some cases
|
|
- Removed Indent from the SwiftFormat for Xcode options, as this is configured using Xcode project settings
|
|
- Fixed indent inference (really this time!)
|
|
|
|
## [0.35.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.35.0) (2018-08-04)
|
|
|
|
- Added `--config` argument for loading an external config file using the command-line tool
|
|
- The `--inferoptions` command can now write the result to a config file using the `--output` option
|
|
- Added `emptyBraces` rule for removing blank lines inside empty `{}` pairs
|
|
- Fixed handling of spaces and other special characters inside the `--header` option when using config files
|
|
- Fixed parsing and serialization of `--header` option in Xcode Source Editor Extension
|
|
- Fixed a bug in the `specifiers` rule affecting enum cases whose name matches a specifier
|
|
- Fixed bug where `redundantSelf` could incorrectly remove `self` from a closure instead a case with a `where` clause
|
|
- Fixed indent inference, which would previously calculate the wrong indent value
|
|
|
|
## [0.34.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.34.1) (2018-08-01)
|
|
|
|
- Added `// swiftformat:disable:next` directive for temporarily disabling a rule on just the following line
|
|
- Fixed bug where the `// swiftformat:disable all` directive could result in file contents being stripped
|
|
- Fixed a bug where `--verbose` mode incorrectly reported which rules were applied to each file
|
|
- Reset to Defaults menu item in SwiftFormat for Xcode now correctly resets the Infer Format Options setting
|
|
|
|
## [0.34.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.34.0) (2018-07-30)
|
|
|
|
- You can now configure format options for the Xcode Source Editor Extension (big thanks to @vinceburn for this feature)
|
|
- Restored ability to build the swiftformat command-line app using Xcode 9.2 on macOS Sierra
|
|
- Xcode Source Editor Extension no longer fails when using Playgrounds with multiple pages
|
|
- The `--wrapelementss` option has been renamed to `--wrapcollections`
|
|
- Added new `--wraparguments preserve` and `--wrapcollections preserve` options
|
|
- Added `--fractiongrouping` & `--exponentgrouping` options
|
|
- Improved formatting of Xcode Source Editor Extension error messages
|
|
- Fixed a bug where parens were incorrectly removed after an image literal
|
|
|
|
## [0.33.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.13) (2018-07-25)
|
|
|
|
- Fixed bug where required parens were incorrectly removed from around a closure type
|
|
- Added `--lint` mode that is similar to `--dryrun` but returns a non-zero exit code if any files require formatting
|
|
- The swiftformat command-line tool now returns a non-zero exit code in the event of a fatal error while formatting
|
|
|
|
## [0.33.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.12) (2018-07-23)
|
|
|
|
- Added `swiftformat:disable all` and `swiftformat:enable all` directives
|
|
- Fixed a bug where redundant parens were not always removed correctly
|
|
- Fixed errors when parsing custom operators such as `<>`, `|>` or `<<>>`
|
|
- Fixed divide-by-zero crash when specifying number groupings with a value of zero
|
|
- Rules are now always applied in alphabetical order to ensure consistency
|
|
- Fixed the `--conflictmarkers` command-line option
|
|
|
|
## [0.33.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.11) (2018-07-05)
|
|
|
|
- Fixed a bug where `--inferoptions` would always set `--self` to "insert" (this also affected the Xcode extension)
|
|
- Fixed bug with `redundantSelf` when parsing nested switch statements
|
|
- Fixed a bug in the `redundantParens` rule that incorrectly removed parens after an indexed tuple (e.g. `foo.1(bar)`)
|
|
- Spaces are now correctly removed around parens or square brackets after an indexed tuple
|
|
|
|
## [0.33.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.10) (2018-07-03)
|
|
|
|
- Fixed a bug where `sortedImports` rule could strip code between `import` statements
|
|
- Fixed a case where `self` was removed incorrectly inside a switch case condition
|
|
|
|
## [0.33.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.9) (2018-07-01)
|
|
|
|
- Fixed incorrect formatting of `!=` operator when used as a function reference
|
|
- Fixed some additional cases where `self` was not inserted or removed correctly
|
|
|
|
## [0.33.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.8) (2018-06-25)
|
|
|
|
- Fixed issue where `self` could be incorrectly inserted inside a `where` clause
|
|
- Fixed a bug where generics could be misidentified as greater-than / less-than operators
|
|
- Fixed formatting of `#if` blocks around case statements
|
|
- The `hoistPatternLet` rule no longer hoists the `let or `var` when there are no named variables
|
|
- Fixed nondeterministic behavior when applying spacing rules
|
|
- Fixed warning when compiling with Xcode 10 beta
|
|
|
|
## [0.33.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.7) (2018-05-18)
|
|
|
|
- Fixed an issue where headerdoc comments could be stripped by `fileHeader` rule
|
|
- Fixed a bug with handling absolute paths
|
|
|
|
## [0.33.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.6) (2018-04-18)
|
|
|
|
- Fixed a bug where a space could be incorrectly removed after a `try?` or `as?` operator
|
|
- Both the SwiftFormat command line tool and framework can now be built using Swift Package Manager
|
|
- Added .pre-commit-hook.yaml file for checking that formatter has been applied when committing
|
|
- The SwiftFormat command line tool can now be installed using Mint (see README for details)
|
|
|
|
## [0.33.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.5) (2018-03-16)
|
|
|
|
- Fixed critical bug in `sortedImports` where code between blocks of import statements could be removed
|
|
- Fixed bug where wrapped arguments could be double-indented under some circumstances
|
|
|
|
## [0.33.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.4) (2018-02-26)
|
|
|
|
- Fixed a bug in the `unusedArguments` rule that could caused type names to get mangled in closure argument lists
|
|
- Fixed bug in `sortedImports` that could cause import statement to be moved above the file header comment
|
|
|
|
## [0.33.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.3) (2018-02-21)
|
|
|
|
- Fixed a bug in the `duplicateImports` rule that caused imports of specific types from the same module to be incorrectly stripped
|
|
- Fixed bugs with how the `duplicateImports` and `sortedImports` rules handle imports separated by semicolons or spanning multiple lines
|
|
- Fixed a bug with `redundantParens` rule incorrectly removing parens around tuples whose first and last elements were closures
|
|
- Fixed a bug where the `redundantParens` rule incorrectly removed parens inside compound expressions
|
|
|
|
## [0.33.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.2) (2018-02-20)
|
|
|
|
- The `fileHeader` rule can now be disabled in an individual file by prefixing header with `// swiftformat:disable fileHeader`
|
|
- Fixed a bug in the `specifiers` rule that could mangle code if the previous line ended with certain identifiers
|
|
- Fixed typo in `--insertlines` deprecation warning message
|
|
|
|
## [0.33.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.1) (2018-02-10)
|
|
|
|
- Fixed bug preventing host app rule configuration from being read by the Xcode extension
|
|
- Added `duplicateImports` rule for removing duplicate import statements automatically
|
|
- Deprecated `--insertlines`/`--removelines` options - enable or disable the specific rules instead
|
|
- Fixed deprecation warnings in Swift 4.1 / Xcode 9.3
|
|
|
|
## [0.33.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.33.0) (2018-02-01)
|
|
|
|
- Added rules configuration UI to the Xcode Source Editor Extension (thanks @vinceburn and @tonyarnold!)
|
|
- Added `blankLinesAtStartOfScope` rule for removing leading blank lines at the start of functions, classes, etc
|
|
- Fixed indenting of blank lines within commented code blocks
|
|
- Added CONTRIBUTING.md
|
|
|
|
## [0.32.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.32.2) (2018-01-12)
|
|
|
|
- Fixed bug with parsing spaces inside interpolated values in multiline string literals
|
|
- Added instructions for using SwiftFormat on a CI server with Danger
|
|
|
|
## [0.32.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.32.1) (2017-12-07)
|
|
|
|
- Added `--dryrun` option, for testing SwiftFormat without making any file changes
|
|
- Fixed Xcode plugin, which was not deployed correctly in the previous release
|
|
- Fixed `spaceAroundOperators` rule not inserting space after a switch case or default clause colon
|
|
|
|
## [0.32.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.32.0) (2017-11-29)
|
|
|
|
- Added `swiftformat:` comment directives for enabling/disabling rules inside a source file (see README for details)
|
|
- Added `blankLinesAroundMark` rule, which inserts a blank line before and after a `// MARK:` comment
|
|
- When using the `--self insert` option, `self` is now inserted automatically in more places than it could be before
|
|
- Fixed some bugs in the `redundantSelf` rule that caused `self` not to be removed in some cases when it should
|
|
- Exposed the command-line formatting functions as part of the public API when using the SwiftFormat framework
|
|
|
|
## [0.31.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.31.0) (2017-11-24)
|
|
|
|
- Switched to a more conventional MIT license
|
|
- Added `strongOutlets` rule that removes weak from `@IBOutlet` properties in accordance with Apple guidelines
|
|
- Added `sortedImports` rule for sorting `import` statements alphabetically
|
|
- Fixed warnings in Xcode 9.1 and dropped support for compiling framework with Swift 3.1
|
|
- Fixed a bug where a double quote was incorrectly inserted into multiline strings
|
|
- Fixed a bug where the `--comments ignore` option was ignored for comments inside `switch` statements
|
|
- Code that has been temporarily commented out should no longer be re-indented
|
|
|
|
## [0.30.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.30.2) (2017-11-19)
|
|
|
|
- Fixed incorrect indenting of case statements for cases with `where` clauses containing `<` operator
|
|
- Fixed bug where parens were incorrectly removed around closures in loop or branch conditions
|
|
- Added compatibility workaround for `self` being incorrectly removed in tests that use the Nimble framework
|
|
|
|
## [0.30.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.30.1) (2017-11-10)
|
|
|
|
- Fixed error when parsing a subscript with default value inside a `switch` statement
|
|
- Nil default values are no longer removed inside `Codable` structs/classes, as this can break the implementation
|
|
|
|
## [0.30.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.30.0) (2017-10-27)
|
|
|
|
- Space is now inserted between the operator name and opening paren in an operator function declaration
|
|
- Added `--operatorfunc` option to control whether operator should be followed by a space in a function declaration
|
|
- Added `--elseposition` option to control whether `else`, `catch` & `while` should appear on same line as preceding `}`
|
|
- Added `--indentcase` option to control whether `case` statements should be indented inside a `switch`
|
|
- Comments immediately before a `default:` clause are now indented level with the `default` keyword
|
|
- Fixed bug where backticks would be incorrectly removed when using ``Any`` as an identifier
|
|
- Error messages are now displayed correctly in the Xcode editor extension
|
|
- Added test coverage statistics using Slather and Coveralls
|
|
|
|
## [0.29.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.9) (2017-10-22)
|
|
|
|
- Fixed critical bug where `hoistPatternLet` rule could corrupt tuples in a switch case clause
|
|
- Comments immediately before a case statement are now indented level with the case
|
|
|
|
## [0.29.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.8) (2017-10-11)
|
|
|
|
- Fixed bug where space was incorrectly removed around postfix/suffix range operators
|
|
|
|
## [0.29.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.7) (2017-10-08)
|
|
|
|
- Added support for Swift 4 keyPath syntax
|
|
|
|
## [0.29.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.6) (2017-09-21)
|
|
|
|
- Fixed bug in `hoistPatternLet` rule when formatting `case let` patterns with outer parens
|
|
- The `redundantParens` rule now correctly removes the outer parens in the aforementioned case
|
|
- Fixed performance regression introduced in 0.29.5
|
|
|
|
## [0.29.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.5) (2017-09-04)
|
|
|
|
- Fixed bounds crash when parsing an empty string literal at the end of a file
|
|
- SwiftFormat now compiles without modification in Xcode 9 using Swift 3.2 or 4.0
|
|
|
|
## [0.29.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.4) (2017-08-21)
|
|
|
|
- Fixed a bug where `self` could be incorrectly inserted if local variable is declared inside an `#if` block
|
|
|
|
## [0.29.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.3) (2017-07-31)
|
|
|
|
- Added support for Swift 4's multi-line string literal syntax
|
|
- Fixed a bug with handling inline comments inside an array literal
|
|
|
|
## [0.29.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.2) (2017-07-03)
|
|
|
|
- Fixed critical bug where space was incorrectly inserted around unary range operators
|
|
- Fixed bug where `self` could be incorrectly inserted before `type(of:)` if using `--self insert` option
|
|
- Fixed space being incorrectly inserted after postfix operator inside a subscript or collection literal
|
|
- Wrapped `case is Type` statements are now indented correctly
|
|
|
|
## [0.29.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.1) (2017-06-29)
|
|
|
|
- Fixed bug where `redundantInit` rule removed a required init in some cases
|
|
|
|
## [0.29.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.29.0) (2017-06-20)
|
|
|
|
- Changed specifier order from `private(set) public` to `public private(set)`
|
|
- Added `redundantInit` rule to remove explicit `init` references where they aren't needed
|
|
- Fixed indentation of class declarations with protocols wrapped onto multiple lines
|
|
|
|
## [0.28.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.6) (2017-05-31)
|
|
|
|
- Fixed bug where consecutive `if` statements containing `<` and `>` were misidentified as a generic argument list
|
|
- Fixed space being removed between a closure capture list and subsequent arguments under some circumstances
|
|
- Fixed extra space added before prefix operators inside brackets or parens
|
|
|
|
## [0.28.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.5) (2017-05-14)
|
|
|
|
- The `redundantParens` rule no longer removes parens after a function call inside a `where` clause
|
|
- Fixed bug where nil default value was incorrectly removed from lazy var declarations
|
|
|
|
## [0.28.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.4) (2017-04-26)
|
|
|
|
- Fixed bug where `self` was incorrectly inserted inside an `if case let` condition
|
|
- Fixed incorrect insertion of `self` inside a pattern let clause
|
|
|
|
## [0.28.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.3) (2017-04-20)
|
|
|
|
- Fixed bug where `self` was incorrectly removed in a closure immediately after a var declaration
|
|
- Fixed incorrect insertion of `self` before a subscript `get` or `set` block
|
|
- Fixed incorrect insertion of `self` after an `import class` statement
|
|
- Fixed bug where `self` was not inserted after a return statement
|
|
|
|
## [0.28.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.2) (2017-03-30)
|
|
|
|
- Fixed error when parsing an `enum` declaration inside a `switch` statement
|
|
- Fixed incorrect removal of backticks when accessing an overloaded `Type` member
|
|
|
|
## [0.28.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.1) (2017-03-28)
|
|
|
|
- Fixed a bug where `redundantSelf` rule incorrectly removed `self` after a `repeat...while` loop
|
|
- Fixed some bugs where `--self insert` option wrongly added `self` in places it shouldn't have
|
|
- Improved the documentation of rules and options in the README file and command-line help
|
|
|
|
## [0.28.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.28.0) (2017-03-24)
|
|
|
|
- Added `--self insert` option to optionally insert `self` when accessing member variables/functions
|
|
- The `--self` and `--stripunusedargs` arguments can now be inferred automatically using `--inferoptions`
|
|
- SwiftFormat now detects and rejects source files that contain merge conflict markers
|
|
- Added `--conflictmarkers` option to optionally ignore conflict markers (e.g. if they clash with a custom operator)
|
|
- The `redundantSelf` rule now correctly strips `self` from computed var setters and getters
|
|
- The `redundantSelf` rule now handles static and class variables/functions correctly
|
|
- Fixed a potential bug where command-line tool might get stuck in an infinite loop
|
|
- Fixed a bug where a invalid source code could causes variables to be incorrectly removed
|
|
- Fixed some bugs in error reporting
|
|
|
|
## [0.27.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.27.1) (2017-03-21)
|
|
|
|
- Fixed trailing space that was incorrectly added to blank lines when `redundantSelf` rule is disabled
|
|
- Fixed a bug where `self` could be incorrectly removed when using nested function declarations
|
|
- Fixed a bug where `self` could be incorrectly removed inside class functions
|
|
- Improved formatting and inferoptions performance
|
|
|
|
## [0.27.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.27.0) (2017-03-17)
|
|
|
|
- Added `--exclude` command-line option for excluding specific files or folders from formatting
|
|
- Improved grouping and logging of formatting errors when running in `--verbose` mode
|
|
- Fixed a bug when using prefix operators with with shorthand class or enum members like `-.someValue`
|
|
- Fixed some more cases where `self` was incorrectly removed, or wasn't removed when it should have been
|
|
- Fixed some cases where backtick escaping was incorrectly removed around reserved words
|
|
- Fixed a bug where `--patternlet inline` could incorrectly move `let` inside a tuple assignment
|
|
- Fixed parsing of custom operators containing chevrons, e.g. `<?>`
|
|
- Fixed redundant `return` not being removed from closures in a var declaration
|
|
- Fixed a performance regression introduced in version 0.26.2
|
|
- Fixed bug where `Void()` literal was replaced by `()()` when using `--empty tuple`
|
|
|
|
## [0.26.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.26.2) (2017-03-15)
|
|
|
|
- Fixed critical bug where `return` was incorrectly removed after a `#selector` or `#keyPath` directive
|
|
- Fixed several more critical cases where `self` could be incorrectly removed
|
|
- Fixed case where identifier could be mistaken for a keyword after `self` was removed
|
|
- Fixed some cases where `self` should have been removed but wasn't
|
|
- Added tvOS support to the podspec
|
|
|
|
## [0.26.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.26.1) (2017-03-14)
|
|
|
|
- Fixed critical bug where `self` could be incorrectly removed inside lazy var declarations
|
|
|
|
## [0.26.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.26.0) (2017-03-13)
|
|
|
|
- Added `redundantSelf` rule for removing the `self` prefix from member references in cases where it isn't needed
|
|
- Added `--verbose` command-line option for tracking which rules were applied to each file
|
|
- Added `--patternlet` command-line option for toggling behavior of the `hoistPatternLet` rule
|
|
- Fixed bug where escaped arguments were treated as unused
|
|
- Fixed some `unusedArguments` cases
|
|
- The `redundantBackticks` rule now handles more cases
|
|
|
|
## [0.25.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.25.2) (2017-03-09)
|
|
|
|
- Fixed bug where `return` keyword could be incorrectly removed inside a conditional statement
|
|
- Fixed bug where backtick escaping would be incorrectly removed from `Self`
|
|
|
|
## [0.25.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.25.1) (2017-03-08)
|
|
|
|
- Fixed bug where unused arguments in a failable initializer could be incorrectly formatted
|
|
- Fixed bug where backtick escaping would be incorrectly removed from certain reserved identifiers
|
|
|
|
## [0.25.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.25.0) (2017-03-07)
|
|
|
|
- The `stripHeaders` rule is now `fileHeaders`, which can strip or replace header comments with a template (see README)
|
|
- Added `hoistPatternLet` rule that moves `let` and `var` to the beginning of `switch/case` patterns
|
|
- Added `redundantReturn` rule that strips the `return` keyword from single-line closures
|
|
- Added `redundantBackticks` rule that removes unnecessary backtick escaping of keywords
|
|
|
|
## [0.24.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.7) (2017-02-28)
|
|
|
|
- Fixed a bug where switch cases containing a `..<` operator were parsed incorrectly, resulting in wrong indentation
|
|
- Fixed a potential bug where source code could be truncated after an error when running with `--fragment` enabled
|
|
- Command-line tool installation via CocoaPods no longer requires a minimum deployment target of iOS 9 / macOS 10.11
|
|
|
|
## [0.24.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.6) (2017-02-16)
|
|
|
|
- Fixed critical bug where automatic removal of Void return type in closures could alter the type signature
|
|
- Command-line tool can now be installed via CocoaPods
|
|
|
|
## [0.24.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.5) (2017-02-12)
|
|
|
|
- Fixed critical bug where trailing commas were incorrectly added to array or dictionary type declarations
|
|
|
|
## [0.24.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.4) (2017-02-09)
|
|
|
|
- Fixed format rules not being applied when processing input from stdin
|
|
- Fixed allman brace formatting of optional computed vars
|
|
- Allman brace rule now removes the blank line immediately after an opening brace
|
|
|
|
## [0.24.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.3) (2017-01-26)
|
|
|
|
- Fixed critical bug where unused `inout` closure arguments were mangled
|
|
- Fixed critical bug where comma was incorrectly inserted into subscript expressions
|
|
- Fixed critical bug where functions named "get" could be incorrectly stripped
|
|
- Unused arguments are now handled correctly in `init` and `subscript` functions
|
|
- Fixed bug where `_` was doubled up for unused closure arguments
|
|
|
|
## [0.24.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.2) (2017-01-20)
|
|
|
|
- Unused arguments are now handled correctly in non-Void functions
|
|
- Fixed another bug where keywords used as function argument names were not parsed correctly
|
|
- Fixed bug when parsing generics containing a `&` protocol-combining operator
|
|
- Fixed bug where parsing error location was reported incorrectly
|
|
|
|
## [0.24.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24.1) (2017-01-19)
|
|
|
|
- Fixed crash in Xcode extension when formatted file has no changes
|
|
- Fixed caching bug that meant enabled/disabled rules were not taken into account
|
|
- Unix shebang/hashbang directive at start of a source file is no longer treated as an error
|
|
|
|
## [0.24](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.24) (2017-01-18)
|
|
|
|
- Fixed a critical bug where closure arguments could be mangled by the `unusedArguments` rule
|
|
- Added `trailingClosures` rule, to automatically convert closure arguments to trailing closure syntax
|
|
- Added `--enable` option to enable optional rules such as `trailingClosures` (which is disabled by default)
|
|
- Added `--stripunusedargs` option to provide more fine-grained control of the `unusedArguments` rule
|
|
- Added `--decimalgrouping`, `--hexgrouping`, `--binarygrouping` and `--octalgrouping` options
|
|
- Added `--exponentcase` option for controlling the case of "e" in exponential literals, e.g. `3.4e-5`
|
|
- Merged `hexLiterals` rule into new `numberFormatting` rule that handles case and grouping of numbers
|
|
- Renamed `--hexliterals` option to `--hexliteralcase`
|
|
- The `void` rule now converts `(_: Void)` to `()` automatically
|
|
- The `redundantParens` rule now removes empty `()` before a trailing closure
|
|
- Fixed some bugs with floating-point hex literal support
|
|
- Fixed bug where keywords used as function argument names were not parsed correctly
|
|
- Added Swift Package Manager support
|
|
|
|
## [0.23.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.23.1) (2017-01-14)
|
|
|
|
- Fixed critical bug where closure return types could be mangled by the `unusedArguments` rule
|
|
- Fixed issue where console text appeared as black instead of the user's chosen default color
|
|
|
|
## [0.23](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.23) (2017-01-09)
|
|
|
|
- You can now specify a whitelist of specific rules to apply using the `--rules` option
|
|
- Input files are now processed concurrently, yielding a ~2x speed improvement
|
|
- SwiftFormat now continues if it encounters an error when processing multiple files
|
|
- Improved error messaging, and added color-coding to the command-line output
|
|
- `--inferoptions` now accepts multiple space-delimited file paths, or piped input, just like formatting
|
|
- `redundantVoidReturnType` now removes Void return from closures as well as ordinary functions
|
|
- `unusedArguments` now works on closures as well as ordinary functions
|
|
- `unusedArguments` is now more effective at detecting when an argument is unused
|
|
- Fixed crash in `wrapArguments` rule due to linebreak being incorrectly removed after a single-line comment
|
|
- Format rules displayed using the `--rules` option are now sorted alphabetically
|
|
|
|
## [0.22](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.22) (2017-01-03)
|
|
|
|
- Fixed critical bug where `>=` operator was misidentified as end of generic argument list
|
|
- Added `redundantRawValues` rule to remove string enum literals that match the associated case name
|
|
- Added `redundantVoidReturnType` rule to remove unnecessary `Void` return type from function declarations
|
|
- Added `unusedArguments` rule, to replace unused arguments in function declarations with an underscore
|
|
- Fixed bug with `--inferoptions` and argument wrapping
|
|
- Fixed bug where extra space was added inside empty `TODO:` comments
|
|
|
|
## [0.21](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.21) (2016-12-19)
|
|
|
|
- Added `redundantLet` rule to remove unnecessary `let` keyword in statements like `let _ = foo()`
|
|
- Added `redundantPattern` rule to simplify wildcard patterns like `.foo(_, _)` to just `.foo`
|
|
- Rules are now run repeatedly until no changes are detected, fixing an issue where changes could be missed
|
|
- Fixed a bug where extra space was inserted between `?` and `.` in optional chaining expressions
|
|
- A space is no longer added between a comment and the following comma
|
|
- Fixed some performance regressions
|
|
|
|
## [0.20](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.20) (2016-12-09)
|
|
|
|
- Added `redundantNilInit` rule, to remove unnecessary nil initialization of Optional vars
|
|
- The `trailingCommas` rule now removes trailing commas for inline array literals
|
|
- Fixed bug in `void` rule when handling chains of throwing functions
|
|
- Fixed some performance regressions
|
|
|
|
## [0.19](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.19) (2016-12-02)
|
|
|
|
- Fixed a critical bug where `redundantParens` rule failed to insert space before a prefix operator
|
|
- Fixed a crash when encountering generic arguments followed by ...
|
|
- Added `--disable` option for individually disabling rules without needing to recompile
|
|
- Added `--rules` command to display all the supported rules (useful in conjunction with `--disable`)
|
|
- Added `--wraparguments` option for controlling how function arguments are wrapped
|
|
- Added `--wrapelements` option for controlling how array and dictionary elements are wrapped
|
|
- Added `--symlinks` option for specifying if symlinks/aliases should be followed and formatted
|
|
- Fixed bug where symlinks to Swift files would be replaced by a copy of the file
|
|
|
|
## [0.18](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.18) (2016-11-17)
|
|
|
|
- Added `--inferoptions` command line argument for auto-configuring format options from existing source
|
|
- Added `--ifdef` command line argument for controlling how `#if`...`#endif` clauses are indented
|
|
- Added `--hexliterals` command line argument for specifying the case to use for hex literals
|
|
- Added `redundantGet` rule to remove unneeded `get {}` clause in read-only computed properties
|
|
- Fixed bug where `redundantParens` rule merged identifiers on either side of a removed paren
|
|
- `redundantParens` now removes unneeded parens from expressions and closure arguments
|
|
|
|
## [0.17.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.17.2) (2016-11-11)
|
|
|
|
- Fixed critical bug with `redundantParens` rule removing required parens around a closure
|
|
- Fixed bug with indenting of wrapped closures after a var declaration
|
|
|
|
## [0.17.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.17.1) (2016-11-09)
|
|
|
|
- Xcode Source Editor Extension now works with Playground files
|
|
- Fixed operator being incorrectly formatted when file ends with a single-line comment
|
|
- Fixed bug where the space at the start of a single line comment could increase after each format
|
|
- Fixed bug where `--cache clear` just ignored cache without actually clearing it
|
|
- Added `--cache ignore` option, which replicates previous `--cache clear` behavior
|
|
|
|
## [0.17](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.17) (2016-11-08)
|
|
|
|
- Added cache, allowing SwiftFormat to skip formatting for files that haven't changed
|
|
- Added `stripHeaders` rule to remove Xcode's copyright header comments (off by default)
|
|
- Disabled `linebreakAtEndOfFile` rule when formatted text is a fragment
|
|
- Fixed bug where generics were wrongly formatted if followed by a greater-than sign in the same file
|
|
- Fixed space incorrectly added after `#available`, `#colorLiteral`, etc
|
|
- Fixed several bugs with indenting of blocks containing wrapped lines
|
|
|
|
## [0.16.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.16.4) (2016-11-07)
|
|
|
|
- SwiftFormat is now ~3X faster!
|
|
- Fixed bug with spacing after an `@convention()` attribute
|
|
- Fixed bug where the space at the start of a multi-line comment could increase after each format
|
|
- Fixed bug where wrong indent was applied to wrapped array literal values
|
|
- Fixed bug where K&R indenting would remove the linebreak before an inline block
|
|
|
|
## [0.16.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.16.3) (2016-11-03)
|
|
|
|
- Fixed bug with operators containing chevrons
|
|
- Fixed wrong indent after where statement in switch case
|
|
|
|
## [0.16.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.16.2) (2016-11-03)
|
|
|
|
- Fixed bug with spacing of deeply nested generic arguments, or generic operator functions
|
|
- Fixed spacing of `@autoclosure(escaping)` syntax (only used in Swift 2.2)
|
|
- Fixed bug where `(Void) throws -> Void` was handled incorrectly
|
|
|
|
## [0.16.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.16.1) (2016-11-03)
|
|
|
|
- Fixed critical bug where `redundantParens` would remove parens from tuple in `switch` condition
|
|
- Fixed incorrect spacing around attributes that have arguments, e.g. `@convention(block)`
|
|
- `--comments ignore` command line option now disables leading space insertion in single-line comments
|
|
|
|
## [0.16](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.16) (2016-11-02)
|
|
|
|
- Added `redundantParens` rule to remove parens around `if`, `while` and `switch` conditions
|
|
- Added ability to specify multiple file paths for processing in a single command
|
|
- Fixed a bug with the formatting of `repeat ... while` loops
|
|
- Added performance tests
|
|
- API refactoring
|
|
|
|
## [0.15](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.15) (2016-10-27)
|
|
|
|
- Added `allman` command line option to enable Allman-style indenting instead of default K&R style
|
|
- Added `removelines` command line option to disable automatic removal of blank lines
|
|
- Added `insertlines` command line option to disable automatic blank line insertion
|
|
- Added `trimwhitespace` command line option for disabling truncation of blank lines
|
|
- Added `comments` command line option for disabling indenting of comments
|
|
- Added `experimental` command line option for opting-in to bleeding-edge features
|
|
- Fixed broken `commas` command line option from version 0.14
|
|
- Made `blankLinesBetweenScopes` rule less aggressive
|
|
|
|
## [0.14](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.14) (2016-10-21)
|
|
|
|
- Xcode Source Editor Extension now automatically infers formatting options from the file
|
|
- Wrapped function arguments and array/dictionary literal value indenting now works more like Xcode
|
|
- Added `void` rule for normalizing how `Void` return values are represented
|
|
- Added `empty` command line option for configuring the void rule
|
|
- Added `commas` command line option for disabling trailing commas
|
|
- Improved formatting of fragments containing unbalanced braces
|
|
|
|
## [0.13](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.13) (2016-10-17)
|
|
|
|
- Added Xcode Source Editor Extension (thanks @tonyarnold!)
|
|
- Fixed indenting of the line after a return statement (which is treated as the return value)
|
|
|
|
## [0.12.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.12.1) (2016-10-14)
|
|
|
|
- Fixed stripping of space after `@escaping`, `@autoclosure` and `inout`
|
|
- Fixed stripping of trailing linebreaks when using --fragment option
|
|
|
|
## [0.12](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.12) (2016-10-08)
|
|
|
|
- Linewrapped `case` elements are now vertically aligned
|
|
- The `else` keyword in a `guard` statement is no longer indented
|
|
- The `elseOnSameLine` rule is no longer applied if previous `} is not on its own line
|
|
- Fixed handling of `case` after comma in an `if` statement
|
|
- Added support for formatting partial file fragments
|
|
- Reduced compilation time by ~500ms
|
|
|
|
## [0.11.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.11.4) (2016-10-05)
|
|
|
|
- Fixed critical bug where optionals with a default value were not handled correctly
|
|
- Fixed rare bug where code would be incorrectly indented after a custom operator declaration
|
|
|
|
## [0.11.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.11.3) (2016-10-04)
|
|
|
|
- Fixed spacing between closure capture list and arguments
|
|
- Fixed incorrect indenting of closures after an `if` statement, and other braced clauses
|
|
|
|
## [0.11.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.11.2) (2016-10-04)
|
|
|
|
- Fixed incorrect indenting of closures inside `for` loops, and other braced clauses
|
|
|
|
## [0.11.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.11.1) (2016-10-04)
|
|
|
|
- Fixed incorrect wrapping of chained closures
|
|
- Improved the logic for wrapped lines; now behaves more like Apple's implementation
|
|
- Fixed some bugs in command line tool when file paths contain escaped characters
|
|
|
|
## [0.11](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.11) (2016-09-24)
|
|
|
|
- Fixed handling of `prefix` and `postfix` specifiers
|
|
- Fixed bug where trailing comma was added to empty array or dictionary literal
|
|
- Fixed bug where trailing whitespace was added at the start of doc comments
|
|
- Improved correctness of numeric literal parsing
|
|
- Converted to Swift 3 syntax
|
|
|
|
## [0.10](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.10) (2016-09-18)
|
|
|
|
- The `blankLinesAtEndOfScope` rule no longer removes trailing blank lines if immediately followed by other code
|
|
- The `blankLinesBetweenScopes` rule now adds a blank line after a scope as well as before it
|
|
- The `blankLinesBetweenScopes` rule no longer affects single-line functions, classes, etc.
|
|
- Fixed formatting of `while case` and `for case ... in` statements
|
|
- Fixed bug when using `switch` as an identifier inside a `switch` statement
|
|
- Fixed parsing of numeric literals containing underscores
|
|
- Fixed parsing of binary, octal and hexadecimal literals
|
|
|
|
## [0.9.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.6) (2016-09-16)
|
|
|
|
- Fixed parsing error when `switch` statement is followed by `enum`
|
|
- Fixed formatting of `guard case` statements
|
|
|
|
## [0.9.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.5) (2016-09-14)
|
|
|
|
- Fixed a number of cases where the use of keywords as identifiers was not being handled correctly
|
|
|
|
## [0.9.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.4) (2016-09-14)
|
|
|
|
- Fixed bug where parsing would fail if a `switch/case` statement contained `default` or `case` identifiers (valid in Swift 3)
|
|
|
|
## [0.9.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.3) (2016-09-12)
|
|
|
|
- Fixed bug where functions would be prefixed with an additional blank line if the preceding line had a trailing comment
|
|
|
|
## [0.9.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.2) (2016-09-09)
|
|
|
|
- Fixed bug where `case` expressions containing a colon would not be parsed correctly
|
|
|
|
## [0.9.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9.1) (2016-09-08)
|
|
|
|
- Fixed bug where `trailingCommas` rule would place comma after a comment instead of before it
|
|
|
|
## [0.9](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.9) (2016-09-07)
|
|
|
|
- Added `blankLinesBetweenScopes` rule that adds a blank line before each class, struct, enum, extension, protocol or function
|
|
- Added `specifiers` rule, for normalizing the order of access modifiers, etc
|
|
- Fixed indent bugs when wrapping code before or after a `where` or `else` keyword
|
|
- Fixed indent bugs when using an operator as a value (e.g. let greaterThan = >)
|
|
|
|
## [0.8.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.8.2) (2016-09-01)
|
|
|
|
- Fixed bug where consecutive spaces would not be removed in lines that appeared after a `//` comment
|
|
- SwiftFormat will no longer try to format code containing unbalanced braces
|
|
- Added pre-commit hook instructions
|
|
|
|
## [0.8.1]() (2016-08-31)
|
|
|
|
- Fixed formatting of `/*! ... */` and `//!` headerdoc comments, and `/*: ... */` and `//:` Swift Playground comments
|
|
|
|
## [0.8](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.8) (2016-08-31)
|
|
|
|
- Added new `ranges` rules that adds or removes the spaces around range operators (e.g. `0 ..< count`, `"a"..."z"`)
|
|
- Added a new `--ranges` command-line option, which can be used to configure the spacing around range operators
|
|
- Added new `spaceAroundComments` rule, which adds a space around /* ... */ comments and before // comments
|
|
- Added new `spaceInsideComments` rule, which adds a space inside /* ... */ comments and at the start of // comments
|
|
- Added new `blankLinesAtEndOfScope` rule, which removes blank lines at the end of braces, brackets and parens
|
|
- Removed double blank line at end of file
|
|
|
|
## [0.7.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.7.1) (2016-08-29)
|
|
|
|
- Fixed critical bug where failable generic init (e.g. `init?<T>()`) was not handled correctly
|
|
|
|
## [0.7](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.7) (2016-08-28)
|
|
|
|
- swiftformat command-line tool now correctly handles paths with `\` escaped spaces, or paths in quotes
|
|
- Removed extra space added inside `@objc` selectors
|
|
- Fixed incorrect spacing for tuple bindings
|
|
- Fixed space before enum case inside closure
|
|
|
|
## [0.6](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.6) (2016-08-26)
|
|
|
|
- Refactored how switch/case is handled, and fixed a bunch of bugs
|
|
- Better indenting logic, now handles multiple closure arguments in a single function call
|
|
|
|
## [0.5.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.5.1) (2016-08-25)
|
|
|
|
- Fixed critical bug where double unwrap (e.g. `foo??.bar()`) was not handled correctly
|
|
- Fixed bug where `case let .SomeEnum` was not handled correctly
|
|
|
|
## [0.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.5) (2016-08-25)
|
|
|
|
- swiftformat command-line tool now supports reading from stdin/writing to stdout
|
|
- Added new `linebreaks` rule for normalizing linebreak characters (defaults to LF)
|
|
- More robust handling of linebreaks and whitespace within comments
|
|
- Trailing whitespace within comments is now stripped, as it was for other lines
|
|
|
|
## [0.4](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.4) (2016-08-24)
|
|
|
|
- Added new `semicolons` rule, which removes semicolons wherever it's safe to do so
|
|
- Added `--semicolons` command-line argument for enabling inline semicolon stripping
|
|
- The `todos` rule now corrects `MARK :` to `MARK:` instead of `MARK: :`
|
|
- Paths containing ~ are now handled correctly by the command line tool
|
|
- Fixed some bugs in generics and custom operator parsing, and added more tests
|
|
- Removed trailing whitespace on blank lines caused by the `indent` rule
|
|
|
|
## [0.3](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.3) (2016-08-23)
|
|
|
|
- Fixed several cases where generics were misidentified as operators
|
|
- Fixed a bug where a comment on a line before a brace broke K&R indenting
|
|
- Fixed a bug where a comment on a previous line caused incorrect indenting for wrapped lines
|
|
- Added new `todos` rule, for ensuring `TODO:`, `MARK:`, and `FIXME:` comments are formatted correctly
|
|
- Whitespace at the start of comments is now handled differently, but it shouldn't affect output
|
|
|
|
## [0.2](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.2) (2016-08-22)
|
|
|
|
- Fixed formatting of generic function types
|
|
- Fixed indenting of `if case` statements
|
|
- Fixed indenting of `else` when separated from `if` statement by a comment
|
|
- Changed `private(set)` spacing to match Apple standard
|
|
- Added swiftformat as a build phase to SwiftFormat, so I'm eating my own dogfood
|
|
|
|
## [0.1](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.1) (2016-08-22)
|
|
|
|
- First release
|