All Versions
85
Latest Version
Avg Release Cycle
29 days
Latest Release
-

Changelog History
Page 5

  • v0.24.1 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • Invalidate cache when Swift patch version changes.
      Norio Nomura

    • βž• Add private_action opt-in rule which warns against public @IBAction methods.
      Ornithologist Coder #1931

    • βž• Add yoda_condition opt-in rule which warns when Yoda conditions are used. That is, when the constant portion of the expression is on the left side of a conditional statement.
      Daniel Metzing #1924

    • πŸ”§ Indentation can now be specified via a configuration file.
      Noah McCann RubenSandwich #319

    • Add required_enum_case opt-in rule which allows enums that conform to protocols to require one or more cases. Useful for result enums.
      Donald Ritter

    • Add discouraged_object_literal opt-in rule which encourages initializers over object literals.
      Ornithologist Coder #1987

    • Adds prefixed_toplevel_constant opt-in rule which encourages top-level constants to be prefixed by k.
      Ornithologist Coder #1907

    • βž• Added explicit_acl opt-in rule to enforce explicit access control levels.
      Josep Rodriguez #1822

    πŸ› Bug Fixes
    • πŸ›  Fix false positives in control_statement rule when methods with keyword names are used.
      Marcelo Fabri #1946

    • πŸ›  Fix false positives in for_where rule when pattern matching (if case) is used.
      Marcelo Fabri #1968

    • Fix false positives in unused_closure_parameter rule when closure is wrapped in parentheses.
      JP Simard #1979

  • v0.24.0 Changes

    πŸ’₯ Breaking
    • πŸ‘• SwiftLint now requires Xcode 9 and Swift 3.2+ to build.
      Marcelo Fabri

    • βœ‚ Remove SwiftExpressionKind.other.
      Marcelo Fabri

    ✨ Enhancements
    • Add sorted_first_last opt-in rule to encourage using min() or max() over sorted().first or sorted().last.
      Tom Quist #1932

    • Add quick_discouraged_focused_test opt-in rule which warns against focused tests in Quick tests.
      Ornithologist Coder #1905

    • Add override_in_extension opt-in rule that warns against overriding declarations in an extension.
      Marcelo Fabri #1884

    • Add [f,x]{describe, context, itBehavesLike} to quick_discouraged_call rule.
      Ornithologist Coder #1903

    • Add quick_discouraged_pending_test opt-in rule which warns against pending tests in Quick tests.
      Ornithologist Coder #1909

    • πŸ”§ Speed up equality tests for [Rule] and Configuration values.
      JP Simard

    • πŸ”§ Make Configuration conform to Hashable.
      JP Simard

    • Speed up reading cached results by about 200%.
      JP Simard

    • βž• Add catch to the statements checked by the control_statement rule.
      JP Simard

    • πŸ‘‰ Make sorted_imports correctable.
      Samuel Susla JP Simard #1822

    • πŸ‘‰ Make sorted_imports only validate within "groups" of imports on directly adjacent lines.
      Samuel Susla JP Simard #1822

    πŸ› Bug Fixes
    • Extend first_where and contains_over_first_not_nil rules to also detect cases where calls to filter and first are parenthesized.
      Tom Quist

    • πŸ”§ Correct equality tests for Configuration values. They previously didn't account for warningThreshold or cachePath.
      JP Simard

    • πŸ›  Fix false positive in multiline_parameters rule when parameter is a closure with default value.
      Ornithologist Coder #1912

    • πŸ›  Fix caching on Linux.
      JP Simard

    • πŸ›  Fix crashes due to races.
      JP Simard

    • πŸ›  Fix String.characters deprecation warnings when compiling with Swift 4.0.2.
      JP Simard

  • v0.23.1 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • None.
    πŸ› Bug Fixes
    • πŸ›  Fix false positive in array_init rule when using a map that doesn't take a closure.
      Marcelo Fabri #1878

    • superfluous_disable_command rule can now be disabled as expected when using // swiftlint:disable superfluous_disable_command.
      Marcelo Fabri #1890

  • v0.23.0 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • πŸ›  Fix csv reporter to output records with new lines.
      atetlaw

    • Add contains_over_first_not_nil rule to encourage using contains over first(where:) != nil.
      Samuel Susla #1514

    • βž• Add fallthrough rule that flags usage of fallthrough.
      Marcelo Fabri #1834

    • πŸ‘Œ Improve colon rule to catch violations in dictionary types (e.g. [String: Int]), when using Any and on function calls.
      Marcelo Fabri #1074 #1389

    • Add switch_case_alignment rule to validate that case and default statements are vertically aligned with their enclosing switch statement.
      Austin Lu

    • βž• Add array_init opt-in rule to validate that Array(foo) should be preferred over foo.map({ $0 }).
      Marcelo Fabri #1271

    • πŸ”§ Truncate long configuration console descriptions to fit in the console window when running swiftlint rules.
      JP Simard #1002

    • βž• Add multiline_arguments opt-in rule that warns to either keep all the arguments of a function call on the same line, or one per line.
      Marcel Jackwerth

    • Add unneeded_break_in_switch rule to validate that no extra breaks are added in switch statements.
      Marcelo Fabri #1870

    • Add literal_expression_end_indentation opt-in rule to validate that array and dictionary literals ends have the same indentation as the line that started them.
      Marcelo Fabri #1435

    πŸ› Bug Fixes
    • πŸ‘Œ Improve how opening_brace rule reports violations locations.
      Marcelo Fabri #1811

    • Fix false negatives in unneeded_parentheses_in_closure_argument rule when using capture lists.
      Marcelo Fabri #1817

    • Fix handling of attributes (lazy, objc, etc.) for the let_var_whitespace rule.
      David Catmull #1770 #1812

    • πŸ›  Fix false positives in for_where rule when using if var inside for.
      Marcelo Fabri #1838

    • Fix false positive in class_delegate_protocol rule when using Swift 4.0.1.
      Marcelo Fabri #1856

    • πŸ”§ Print multi-line configuration values in a single line when running swiftlint rules to avoid breaking the table format.
      JP Simard #1002

    • πŸ‘• Ignore SwiftLint commands (swiftlint:(disable|enable)) in file_header rule, making it work better with superfluous_disable_command rule.
      Marcelo Fabri #1810

    • Fix false negatives in generic_type_name, identifier_name and type_name rules when using allowed_symbols.
      Marcelo Fabri

  • v0.22.0 Changes

    πŸ’₯ Breaking
    ✨ Enhancements
    • βž• Add is_disjoint rule to encourage using Set.isDisjoint(with:) over Set.intersection(_:).isEmpty.
      JP Simard

    • βž• Add xctfail_message rule to enforce XCTFail calls to include a description of the assertion.
      Ornithologist Coder #1370

    • 0️⃣ Add joined_default_parameter correctable opt-in rule to discourage explicit usage of the default separator.
      Ornithologist Coder #1093 #1757

    • Files with extensions other than .swift can now be used as arguments to --file when linting or autocorrecting.
      Marcelo Fabri #1721

    • πŸ‘ Allow ()?, Void?, ()!, and Void! as return types in redundant_void_return rule.
      Ryan Booker #1761

    • βœ… Add single_test_class opt-in rule to validate that test files only contain a single QuickSpec or XCTestCase subclass.
      Ornithologist Coder #1779

    • πŸ‘• Produce an error when a // swiftlint:disable command does not silence any violations.
      JP Simard #1102

    • Add quick_discouraged_call opt-in rule to discourage calls and object initialization inside 'describe' and 'context' block in Quick tests.
      Ornithologist Coder #1781

    • Invalidate cache when Swift version changes.
      Marcelo Fabri

    • Add pattern_matching_keywords opt-in rule to enforce moving let and var keywords outside tuples in a switch.
      Marcelo Fabri #202

    • Add explicit_enum_raw_value opt-in rule to allow refactoring the Swift API without breaking the API contract.
      Mazyod #1778

    • Add no_grouping_extension opt-in rule to disallow the use of extensions for code grouping purposes within the same file.
      Mazyod #1767

    • πŸ‘Œ Improve syntactic_sugar violation message to be type-specific.
      Marcelo Fabri #1803

    • Add multiple_closures_with_trailing_closure rule that disallows trailing closure syntax when passing more than one closure argument to a function.
      Erik Strottmann #1801

    πŸ› Bug Fixes
    • πŸ›  Fix false positive on force_unwrapping rule when declaring local variable with implicity unwrapped type.
      OtΓ‘vio Lima #1710

    • πŸ›  Fix the warning message and autocorrection of vertical_whitespace rule to display the maximum empty lines allowed if max_empty_lines is greater than 1.
      Hossam Ghareeb #1763

    • πŸ›  Fix for the wrong configuration being used when using --path and a configuration exists in a parent directory.
      Marcelo Fabri #1744

    • πŸ›  Fix false positive on unused_enumerated rule with complex variable bindings.
      Marcelo Fabri #1787

    • πŸ›  Fix incorrect violations and autocorrections on unneeded_parentheses_in_closure_argument rule that were generated in some cases (mainly when using chained method calls with closures).
      Marcelo Fabri

  • v0.21.0 Changes

    πŸ’₯ Breaking
    • πŸ— Xcode 8.3 or later and Swift 3.1 or later are required to build.
      Norio Nomura
    ✨ Enhancements
    • πŸ’… Rules are now categorized as lint, idiomatic, style, metrics or performance. Currently this is just used for documentation purposes when you run swiftlint rules or swiftlint generate-docs.
      Marcelo Fabri

    • βž• Add [rules documentation](Rules.md) generation.
      Marcelo Fabri #1078

    • Add private_over_fileprivate correctable rule to check for top-level usages of fileprivate and recommend private instead. This is in line with SE-0169's goal "for fileprivate to be used rarely". There is a also a new strict_fileprivate opt-in rule that will mark every fileprivate as a violation (especially useful with Swift 4).
      Jose Cheyo Jimenez Marcelo Fabri #1469 #1058

    • Add let_var_whitespace opt-in rule to enforce that let/var declarations should be separated from other statements by a single blank line.
      Uncommon #1461

    • πŸ‘Œ Improve performance when linting and correcting on Linux, matching macOS behavior.
      JP Simard #1577

    • Don't trigger implicit_getter violations when attributes (such as mutating or @inline) are present.
      Marcelo Fabri #1309 #1589

    • βž• Add --use-tabs option to AutoCorrectOptions, enabling formatting using tabs over spaces.
      Cody Winton #1327

    • πŸ‘Œ Improve autocorrect performance by running it in parallel.
      Marcelo Fabri #1578

    • πŸ‘Œ Support building with Xcode 9 beta 3 in Swift 3.2 mode.
      JP Simard

    • βž• Add support for optional error severity level configuration.
      Jamie Edge Marcelo Fabri #1647

    • Add unneeded_parentheses_in_closure_argument opt-in correctable rule that warns against using parentheses around argument declarations in closures.
      Marcelo Fabri #1483

    • βž• Add --disabled flag to swiftlint rules to print only rules that are not enabled in the configuration.
      Marcelo Fabri

    • Add ignore_comment_only_lines boolean configuration option to file_length rule. With the option enabled, file_length will ignore lines which have only comments.
      Samuel Susla #1165

    • πŸ‘Œ Improve file_header rule description.
      Marcelo Fabri #1492

    • βž• Add trailing_closure opt-in rule that validates that trailing closure syntax should be used whenever possible.
      Marcelo Fabri #54

    • Shebang (#!) in the beginning of a file is now ignored by all rules.
      Marcelo Fabri #1294

    • Add block_based_kvo rule that enforces the usage of the new block based KVO API added when linting with Swift 3.2 or later.
      Marcelo Fabri #1714

    • πŸ‘‰ Make file_header rule ignore doc comments.
      Marcelo Fabri #1719

    • πŸ‘ Allow using environment variables in a configuration file in the form of ${SOME_VARIABLE}. The variables will be expanded when the configuration is first loaded.
      Marcelo Fabri #1512

    • Treat yes, no, on and off as strings (and not booleans) when loading configuration files.
      Marcelo Fabri #1424

    • Add discouraged_direct_init rule that discourages direct initialization of certain types.
      Ornithologist Coder #1306

    πŸ› Bug Fixes
    • Fix false positive on redundant_discardable_let rule when using while statements.
      Marcelo Fabri #1669

    • πŸ›  Fix all custom rules not being applied when any rule is configured incorrectly.
      Jamie Edge #1586

    • πŸ›  Fix crash when using --config with a relative path and --path with a file.
      Marcelo Fabri #1694

    • πŸ›  Fix mark rule corrections generating invalid code in some cases.
      Marcelo Fabri #1029

    • Fix false positive in empty_enum_arguments rule when using wildcards and where clauses.
      Marcelo Fabri #1722

    • πŸ›  Fix false positive in large_tuple rule when using throwing closure.
      Liquidsoul

    • Make vertical_parameter_alignment more robust, fixing false positives and detecting previously missed violations.
      JP Simard #1488

  • v0.20.1 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • None.
    πŸ› Bug Fixes
    • πŸ›  Fix typo in FatalErrorMessageRule.
      Alexander Lash

    • Don't trigger an extension_access_modifier violation when all extension members are open, as open extension is not supported by Swift.
      Marcelo Fabri #1629

    • Don't trigger a vertical_parameter_alignment_on_call violation when trailing closures are used.
      Marcelo Fabri #1635

    • Make vertical_parameter_alignment_on_call more flexible when multiline parameters are used.
      Marcelo Fabri #1630 #1643

    • πŸ‘• Use the directory's .swiftlint.yml when --path is used.
      Marcelo Fabri #1631

  • v0.20.0 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • Detect more violations of force_unwrapping when using subscripts.
      OtΓ‘vio Lima

    • Match (Void) as return type in the void_return rule.
      Anders Hasselqvist

    • βž• Add multiline_parameters opt-in rule that warns to either keep all the parameters of a method or function on the same line, or one per line.
      Ornithologist Coder

    • Update function_parameter_count rule to ignore overridden methods.
      Markus Gasser #1562

    • Skip files with valid cache & no violations when auto correcting.
      Marcelo Fabri #1554

    • Don't trigger violations from the private_unit_test rule when a method has parameters.
      Marcelo Fabri #1532

    • Don't trigger violations from the discarded_notification_center_observer rule when the observer is being returned from a function that is not marked as @discardableResult.
      Marcelo Fabri #1525

    • Add extension_access_modifier opt-in rule validating that if all the declarations in a given extension have the same Access Control Level, the ACL keyword should be applied to the top-level extension.
      Marcelo Fabri #1546

    • Add vertical_parameter_alignment_on_call opt-in rule that validates that parameters are vertically aligned on a method call.
      Marcelo Fabri #1037

    • Add code_literal and image_literal boolean configuration options to object_literal rule. They allow to only check for one or the other literal type instead of both together.
      Cihat GΓΌndΓΌz #1587

    πŸ› Bug Fixes
    • Fix false positive in empty_enum_arguments rule when calling methods.
      Marcelo Fabri #1597

    • Fix crash in unused_closure_parameter rule when using unicode identifiers.
      Woo-Sik Byun Marcelo Fabri

    • πŸ›  Fix two false positives in force_unwrapping rule.
      OtΓ‘vio Lima #614 #977 #1614

    • πŸ›  Fix custom rules not working correctly with comment commands.
      JP Simard #1558

    • πŸ›  Fix incorrectly using configuration files named .swiftlint.yml when they are located in the same directory as a differently-named, user-provided custom configuration file.
      JP Simard #1531

    • πŸ›  Fix empty_count rule false positive in words that include "count".
      Marcelo Fabri #1622

    • Use validates_start_with_lowercase key when decoding configurations for generic_type_name, identifier_name and type_name rules. This key was used on the docs, but internally validates_start_lowercase was used.
      Marcelo Fabri #1626

  • v0.19.0 Changes

    πŸ’₯ Breaking
    • βœ‚ Remove support for Swift 2.
      Marcelo Fabri #1453

    • πŸ“„ Remove missing_docs and valid_docs rules since they were already disabled.
      Marcelo Fabri #1453

    • βž• Add modificationDate(forFileAtPath:) function requirement to LintableFileManager protocol.
      Victor Pimentel

    • πŸ‘• Several breaking changes to LinterCache.
      Victor Pimentel JP Simard

    • βœ‚ Remove Configuration.hash property.
      Victor Pimentel

    • πŸ“‡ Rename ConditionalReturnsOnNewline struct to ConditionalReturnsOnNewlineRule to match rule naming conventions.
      JP Simard

    ✨ Enhancements
    • πŸ‘• Cache linter results for files unmodified since the previous linter run.
      Victor Pimentel JP Simard Marcelo Fabri #1184 #1550

    • Add opt-in configurations to generic_type_name, identifier_name and type_name rules to allow excluding non-alphanumeric characters and names that start with uppercase.
      Javier HernΓ‘ndez #541

    • βž• Adds support for excluded in custom rules to exclude files.
      Nigel Flack #1437

    • πŸ‘‰ Make trailing_comma rule autocorrectable.
      Samuel Susla Jeremy David Giesbrecht #1326

    • Added no_extension_access_modifier opt-in rule to disallow access modifiers completely, Γ  la SE-0119.
      Jose Cheyo Jimenez #1457

    • βž• Add lowercase and missing colon checks to the mark rule.
      Jason Moore

    • Improve violation reason wording in function_body_length, large_type, and type_body_length rules. Β  ultimatedbz

    • Add explicit_top_level_acl opt-in rule that validates that all top level declarations should explicitly be marked with an Access Control Level (private, fileprivate, internal, public or open).
      J. Cheyo Jimenez Marcelo Fabri #58

    • βž• Add implicit_return opt-in rule that warns against using the return keyword when it can be omitted inside closures.
      Marcelo Fabri #1194

    • Add option to unused_optional_binding rule to ignore try? in guard statements.
      Sega-Zero #1432

    • Add empty_enum_arguments correctable rule that warns against using silent associated values inside a case.
      Marcelo Fabri #1425 #1549

    • βœ‚ Remove file.zip from the Pods directory when installing SwiftLint via CocoaPods.
      Hesham Salman #1507

    • Add protocol_property_accessors_order correctable rule that validates that the order of accessors is get set when declaring variables in protocols.
      Marcelo Fabri #1504

    • πŸ‘‰ Make Region & Command structs conform to Equatable.
      JP Simard

    • πŸ‘‰ Make closure_spacing a CorrectableRule.
      J. Cheyo Jimenez

    πŸ› Bug Fixes
    • πŸ’… emoji and checkstyle reporter output report sorted by file name.
      norio-nomura #1429

    • Prevent false positive in shorthand_operator rule.
      sammy-SC #1254

    • πŸ›  Fix typo in DiscardedNotificationCenterObserverRule.
      Spencer Kaiser

    • πŸ›  Fix empty_parameters rule with Swift 3.
      Marcelo Fabri #1460

    • Prevent triggering redundant_optional_initialization rule on a lazy var since it needs initialization.
      Marcelo Fabri #1334

    • Fix ignores_case_statements key in cyclomatic_complexity description.
      Jeff Blagdon #1434

    • Fall back to reporting violations on line 1 if no line was provided for the violation's location, ensuring Xcode always displays the warning or error.
      rjhodge JP Simard #1520

    • πŸ›  Fix crash or incorrect violation location with strings including multi-byte unicode characters.
      Marcelo Fabri #1006

    • πŸ›  Fix false positive in syntactic_sugar rule when using nested types named Optional, ImplicitlyUnwrappedOptional, Array or Dictionary.
      Marcelo Fabri #1508

    • Fix false positives in prohibited_super_call & overridden_super_call rules where calls to super were done in nested scopes such as defer blocks.
      JP Simard #1301

    • πŸ›  Fix non-root configurations logging configuration warnings more than once.
      JP Simard #949

    • πŸ›  Fix some overlapping // swiftlint commands not being applied.
      JP Simard #1388

  • v0.18.1 Changes

    πŸ’₯ Breaking
    • None.
    ✨ Enhancements
    • None.
    πŸ› Bug Fixes
    • πŸš€ Compile releases in the 'Release' configuration rather than 'Debug'.