0.56.0
版本发布时间: 2024-08-07 04:37:46
realm/SwiftLint最新发布版本:0.57.0(2024-09-09 00:02:39)
Breaking
-
The deprecated
--path
and--in-process-sourcekit
arguments have now been removed completely.
Martin Redington SimplyDanny #5614 -
When SwiftLint corrects violations automatically (
swiftlint lint --fix
) it doesn't report the exact location of the fix any longer. The new format is<file-path>: Correcting <rule-name>
without line and column numbers. Reason: Correction positions are likely just incorrect, especially when multiple rules apply their rewrites. Fixing that is not trivial and likely not worth the effort also considering that there haven't been any bug reports about wrong correction positions so far.
SimplyDanny
Experimental
- None.
Enhancements
-
Linting got up to 30% faster due to the praisworthy performance improvements done in the SwiftSyntax library.
-
Rewrite the following rules with SwiftSyntax:
-
missing_docs
-
-
Add new
prefer_key_path
rule that triggers when a trailing closure on a standard function call is only hosting a (chained) member access expression since the closure can be replaced with a key path argument. Likewise, it triggers on closure arguments.
SimplyDanny -
Adds
baseline
andwrite_baseline
configuration file settings, equivalent to the--baseline
and--write-baseline
command line options.
Martin Redington #5552 -
Add
no_empty_block
opt-in rule to validate that code blocks are not empty. They should at least contain a comment.
Ueeek #5615 -
Add new
contrasted_opening_brace
rule that enforces opening braces to be on a separate line after the preceding declaration.
SimplyDanny -
Add new
unused_parameter
rule that triggers on function/initializer/subscript parameters that are not used inside of the function/initializer/subscript.
SimplyDanny #2120 -
Support
--target
paths being passed to command plugin by Xcode.
SimplyDanny #5603 -
Add modified configurations to examples in rule documentation.
SimplyDanny -
Add new option
evaluate_effective_access_control_level
tomissing_docs
rule. Setting it totrue
stops the rule from triggering on declarations inside of types with lower visibility. These declarations effectively have at most the same access level.
SimplyDanny -
Add new
--check-for-updates
command line option for thelint
,analyze
, andversion
subcommands to check for new versions of SwiftLint, and an equivalentcheck_for_updates
configuration file setting.
Martin Redington SimplyDanny Ian Leitch #5613 -
Add new
--only-rule
command line option for thelint
andanalyze
, subcommands that overrides configuration file rule enablement and disablement, in particular to facilitate running--fix
for single rules without having to temporarily edit the configuration file. Martin Redington #5666
Bug Fixes
-
Fix a few false positives and negatives by updating the parser to support Swift 6 with all its new language constructs.
SimplyDanny -
Stop triggering
mark
rule on "mark" comments in the middle of another comment.
SimplyDanny #5592 -
Don't consider specialized imports with attributes as duplicates in
duplicate_imports
rule.
SimplyDanny #5716 -
Use correct types and relative paths in SARIF reporter output. Generally avoid escaping slashes in JSON output as well.
SimplyDanny #5598 #5599 -
Keep initializers with attributed parameters in
unneeded_synthesized_initializer
rule.
SimplyDanny #5153 -
Make
vertical_whitespace_between_cases
rule work for cases ending with a string literal.
ilendemli #5612 -
Ignore access level modifiers restricted to value setting in
extension_access_modifier
rule.
SimplyDanny #5623 -
Fix
baseline compare
incorrectly reporting some violations as new, and also now sorts the violations frombaseline compare
deterministically.
Martin Redington #5606 -
Fix rewriting for
implicit_return
rule when violations are nested within each other.
Martin Redington #5660 -
Fix
opening_brace
correction and make sure that disable commands are taken into account before applying a fix.
swiftty SimplyDanny #5598 -
Violations of the
typesafe_array_init
rule will now be correctly reported as such, instead of as violations of thearray_init
rule.
Martin Redington #5709
Using Bazel
With bzlmod:
// Pending BCR update
bazel_dep(name = "swiftlint", version = "0.56.0", repo_name = "SwiftLint")
Without bzlmod, put this in your WORKSPACE
:
WORKSPACE
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 = "40a7873d54899ace4e485317d172c19507135ae1b3683159d521cc1daa42e196",
url = "https://github.com/realm/SwiftLint/releases/download/0.56.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:
bazel run @SwiftLint//:swiftlint -- --help
1、 bazel.tar.gz 494.46KB
2、 bazel.tar.gz.sha256 116B
3、 portable_swiftlint.zip 10.89MB
4、 SwiftLint.pkg 10.89MB
5、 SwiftLintBinary-macos.artifactbundle.zip 10.89MB
6、 swiftlint_linux.zip 39.22MB