0.55.0
版本发布时间: 2024-05-12 05:13:59
realm/SwiftLint最新发布版本:0.57.0(2024-09-09 00:02:39)
Breaking
-
Rewrite
SwiftLintBuildToolPlugin
usingBUILD_WORKSPACE_DIRECTORY
without relying on the--config
option.
Garric Nahapetian -
Introduce SwiftLintCommandPlugin. Rename SwiftLintBuildToolPlugin. Add Swift Package Manager installation instructions.
garricn -
Fix Code Climate reporter output by having lower case severity values to comply with the Code Climate specification.
waitButY -
The
superfluous_disable_command
rule will now be enabled for theanalyze
command, unless it has been disabled, and will warn about superfluous disablement of analyzer rules.
Martin Redington #4792 -
With the introduction of the
consider_default_literal_types_redundant
option to theredundant_type_annotation
rule,Bool
literals will no longer be considered redundant by default. Set this option to true to preserve the previous behavior.
Garric Nahapetian
Experimental
- Add two new options to the
lint
andanalyze
commands:--write-baseline
to save a baseline to disk, and--baseline
to read a saved baseline and use it to filter out detected pre-existing violations. A newbaseline
command uses the reporters to print the violations in a baseline.
Martin Redington #5475 #3421
Enhancements
-
Add a reporter that outputs violations in the Static Analysis Results Interchange Format (SARIF).
waitButY -
Ignore absence of a non-initial local config instead of falling back to default.
kohtenko -
Add new option
ignore_typealiases_and_associatedtypes
tonesting
rule. It excludestypealias
andassociatedtype
declarations from the analysis. marunomi #3183 -
Prevent from compiling
SwiftLint
target when only usingSwiftLintPlugin
on macOS.
Julien Baillon #5372 -
Allow to set the severity of rules (if they have one) in the short form
rule_name: warning|error
provided that no other attributes need to be configured.
SimplyDanny -
Add new
ignore_one_liners
option toswitch_case_alignment
rule to ignore switch statements written in a single line.
tonell-m #5373 -
Add new
shorthand_argument
rule that triggers on shorthand arguments like$0
,$1
, etc. in closures if they are too far away from the beginning of the closure. Options allow further cases to always trigger.
SimplyDanny #70 -
Warn when
--fix
comes together with--strict
or--lenient
as only--fix
takes effect then.
SimplyDanny #5387 -
Add new
one_declaration_per_file
rule that allows only a single class/struct/enum/protocol declaration per file. Extensions are an exception; more than one is allowed.
Muhammad Zeeshan #2802 -
Add new
ignore_attributes
option toredundant_type_annotation
rule that allows disabling the rule for properties that are marked with at least one of the configured attributes.
tonell-m #5366 -
Rewrite the following rules with SwiftSyntax:
-
explicit_acl
-
extension_access_modifier
-
identifier_name
-
let_var_whitespace
-
mark
-
multiline_literal_brackets
-
nesting
-
nimble_operator
-
opening_brace
-
orphaned_doc_comment
-
redundant_type_annotation
-
trailing_closure
-
void_return
SimplyDanny
kishikawakatsumi
Marcelo Fabri
swiftty
KS1019
tonell-m -
-
Print invalid keys when configuration parsing fails.
SimplyDanny #5347 -
Add new
final_test_case
rule that triggers on non-final test classes.
SimplyDanny -
Make
superfluous_else
rule auto-correctable.
SimplyDanny -
Support other scope-exiting statements
continue
,break
andthrow
insuperfluous_else
rule.
SimplyDanny -
Trigger on
-> ()
return signatures inreturn_value_from_void_function
rule. Moreover, support automatic fixes for obvious cases.
SimplyDanny -
Refine violation position of
trailing_closure
rule.
SimplyDanny -
Trigger on the declaration keyword (i.e.
let
,var
,func
,subscript
) instead of thestatic
orclass
keywords in theexplicit_acl
rule.
SimplyDanny -
Allow to configure more operators in
identifier_name
rule. The new option is namedadditional_operators
. Use it to add more operators to the list of default operators known to the rule.
SimplyDanny #1762 -
Stop triggering
no_magic_numbers
rule on literals used in range expressions assigned to variables.
SimplyDanny #5430 -
Add
affect_initializers
option to allowunneeded_override
rule to affect initializers.
leonardosrodrigues0 #5265 -
Respect scattered disable commands in auto-correction of
duplicate_imports
rule.
SimplyDanny #5418 -
Add new
non_optional_string_data_conversion
rule to enforce non-failable conversions of UTF-8String
<->Data
.
Ben P #5263 -
Refine violation position of
superfluous_else
rule.
SimplyDanny -
Make
sorted_enum_cases
rule's comparison case-insensitive to avoid unexpected ordering.
Oleg Kokhtenko -
Add
excluded_lines_patterns
toline_length
to avoid linting lines that contain one of the patterns.
kasrababaei -
Make
empty_count
auto-correctable.
KS1019 -
Make
private_swiftui_state
auto-correctable.
mt00chikin -
Make
trailing_closure
correctable.
KS1019 -
Add new
static_over_final_class
rule to preferstatic
overfinal class
declaration.
phlippieb #5471 -
Extends
unused_enumerated
rule to cover closure parameters, to detect cases likelist.enumerated().map { idx, _ in idx }
andlist.enumerated().map { $1 }
.
Martin Redington #5470 -
Include
Double
,Int
andString
to the exiting redundant type validation check ofBool
in theredundant_type_annotation
rule. Addconsider_default_literal_types_redundant
option supportingBool
,Double
,Int
andString
. Setting this option totrue
lets the rule consider said types in declarations likelet i: Int = 1
orlet s: String = ""
as redundant.
Garric Nahapetian
Bug Fixes
-
Invalid keys in a configuration don't lead to the default configuration being used anymore. The invalid key will just be reported but otherwise ignored.
SimplyDanny #5565 -
Fix version comparison algorithm which caused some version-dependent rules to misbehave with Swift 5.10.
chandlerwall #5517 -
Silence
discarded_notification_center_observer
rule in closures. Furthermore, handleget
andset
accessors correctly and consider implicit returns.
SimplyDanny #4801 -
Fix some false positives in
let_var_whitespace
rule that would happen when attributes attached to declarations were spread over multiple lines.
SimplyDanny #4801 -
Support
private_over_fileprivate
rule for actors.
SimplyDanny #5489 -
Ensure that declarations referenced only as extended types do not count as used by means of the
unused_declaration
rule.
SimplyDanny #5550 -
Fix some false positives in
multiline_literal_brackets
rule that would happen when comments are present.
Marcelo Fabri -
Fix some false positives in the
opening_brace
rule.
kishikawakatsumi SimplyDanny
#4610 #5114 #3470 #3574 #2632 #3476 #3756 #3690 -
Ignore overridden functions with default parameters in the
unneeded_override
rule as they might change behavior.
SimplyDanny #5355 -
Trigger
nsobject_prefer_isequal
andredundant_self_in_closure
even in case the surrounding declaration is nested in an extension.
SimplyDanny -
Fixed false positives for the
no_magic_numbers
rule, when they are defined in a tuple likelet (a, b) = (5, 10)
orlet a = (2, 3)
.
Martin Redington #5305 -
Take array and nested types into account in
redundant_type_annotation
rule.
SimplyDanny #3141 #3146 -
Silence
pattern_matching_keywords
rule when an identifier is referenced in the argument list of a matching enum case.
SimplyDanny #3852 -
Don't trigger the
return_value_from_void_function
warning from initializers.
mrbkap -
Fixes superfluous warnings about configurations for rules that were not enabled, when the rules were enabled in a parent configuration.
Martin Redington #4858 -
Add
all
pseudo-rule foranalyzer_rules
- enables all analyzer rules that are not listed indisabled_rules
.
woxtu Martin Redington #4999 -
Updates the reasons provided by violations of the
blanket_disable_command
to omit language about the end of the file, and to direct users to re-enable the rule as soon as possible.
Martin Redington #5450
Using Bazel
With bzlmod:
// Pending BCR update
bazel_dep(name = "swiftlint", version = "0.55.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 = "e69564e8a0e0b9f0695d398f076f125af86666223c1dd6a88ae213e5334ebffc",
url = "https://github.com/realm/SwiftLint/releases/download/0.55.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 468.31KB
2、 bazel.tar.gz.sha256 116B
3、 portable_swiftlint.zip 10.52MB
4、 SwiftLint.pkg 10.52MB
5、 SwiftLintBinary-macos.artifactbundle.zip 10.52MB
6、 swiftlint_linux.zip 37.57MB