Download Latest Version swiftlint_linux_amd64.zip (64.8 MB)
Email in envelope

Get an email when there's a new version of SwiftLint

Home / 0.63.0
Name Modified Size InfoDownloads / Week
Parent folder
SwiftLint.pkg 2026-01-03 10.7 MB
swiftlint_linux_arm64.zip 2026-01-03 62.2 MB
bazel.tar.gz 2026-01-03 442.8 kB
bazel.tar.gz.sha256 2026-01-03 116 Bytes
portable_swiftlint.zip 2026-01-03 10.7 MB
swiftlint_linux_amd64.zip 2026-01-03 64.7 MB
SwiftLintBinary.artifactbundle.zip 2026-01-03 72.5 MB
0.63.0_ High-Speed Extraction source code.tar.gz 2026-01-03 936.3 kB
0.63.0_ High-Speed Extraction source code.zip 2026-01-03 1.4 MB
README.md 2026-01-03 5.0 kB
Totals: 10 Items   223.6 MB 1

Breaking

  • The redundant_self_in_closure rule has been renamed to redundant_self (with redundant_self_in_closure as a deprecated alias) to reflect its now broader scope, while it still maintains the previous behavior of only checking closures by default. To enable checking for all redundant self usages, set the new only_in_closures option to false.
    SimplyDanny

Experimental

  • None.

Enhancements

  • Extend redundant_self_in_closure rule to detect all redundant uses of self, not just in closures. Initializers (which commonly prefer an explicit self prefix) can be ignored by setting keep_in_initializers to true.
    SimplyDanny

  • Add a separation configuration option to the vertical_whitespace_between_cases rule to allow customizing blank line separation between switch cases. The default value is always (require at least one blank line). Setting it to never enforces no blank lines between cases.
    SimplyDanny #6326

  • Rewrite the following rules with SwiftSyntax:

  • vertical_whitespace_between_cases

SimplyDanny

  • Add new opt-in unneeded_throws_rethrows rule that triggers when declarations marked throws/rethrows never actually throw or call any throwing code.
    Tony Ngo

  • Add new unneeded_escaping rule that detects closure parameters marked with @escaping that are never stored or captured escapingly.
    SimplyDanny

  • Add multiline_call_arguments opt-in rule to enforce consistent multiline formatting for function and method call arguments.
    GandaLF2006

  • Improve performance when exclude patterns resolve to a large set of files.
    SimplyDanny #5018 #5207 #5953 #6084 #6259

Bug Fixes

  • Fix line_length rule incorrectly ignoring function bodies when ignores_function_declarations is enabled. The option should only ignore function declarations, not their implementation.
    SimplyDanny #6347

  • Fix false positives in vertical_whitespace_between_cases rule when cases are interleaved with compiler directives like #if/#else/#endif.
    SimplyDanny #6332

  • override_in_extension no longer triggers inside @objc @implementation extensions.
    JaredGrubb

  • Reinstate handling of access level imports in sorted_imports rule.
    Brett-Best #6374


Using Bazel

With bzlmod:

// Pending BCR update
bazel_dep(name = "swiftlint", version = "0.63.0", repo_name = "SwiftLint")

Without bzlmod, put this in your WORKSPACE:

WORKSPACE :::python load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_archive( name = "build_bazel_rules_apple", sha256 = "9e26307516c4d5f2ad4aee90ac01eb8cd31f9b8d6ea93619fc64b3cbc81b0944", url = "https://github.com/bazelbuild/rules_apple/releases/download/2.2.0/rules_apple.2.2.0.tar.gz", ) load( "@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies", ) apple_rules_dependencies() load( "@build_bazel_rules_swift//swift:repositories.bzl", "swift_rules_dependencies", ) swift_rules_dependencies() load( "@build_bazel_rules_swift//swift:extras.bzl", "swift_rules_extra_dependencies", ) swift_rules_extra_dependencies() http_archive( name = "SwiftLint", sha256 = "efd4d25d65857d56b2531ef88ac2d705457e3b861893bbd6bc46d55bbf6b5528", url = "https://github.com/realm/SwiftLint/releases/download/0.63.0/bazel.tar.gz", ) load("@SwiftLint//bazel:repos.bzl", "swiftlint_repos") swiftlint_repos() load("@SwiftLint//bazel:deps.bzl", "swiftlint_deps") swiftlint_deps()

Then you can run SwiftLint in the current directory with this command:

:::console
bazel run @SwiftLint//:swiftlint -- --help
Source: README.md, updated 2026-01-03