SwiftLint Swift style linter
Light · Postcard
102 × 152 mm · PDF
Dark · Postcard
102 × 152 mm · PDF
Ink saver · Postcard
102 × 152 mm · PDF
Light · A4 landscape
297 × 210 mm · PDF
Dark · A4 landscape
297 × 210 mm · PDF
Ink saver · A4 landscape
297 × 210 mm · PDF
Light · A3 landscape
420 × 297 mm · PDF
Dark · A3 landscape
420 × 297 mm · PDF
Ink saver · A3 landscape
420 × 297 mm · PDF
Start here
swiftlintswiftlint --fixswiftlint lint --strict
swiftlint rulesswiftlint rules <rule>
swiftlint --config <file>
// swiftlint:disable:next <rule>
swiftlint --reporter json
Concepts
- .swiftlint.yml rules + paths
- Swift files included minus excluded
- Violations warning or error
- Reporter xcode, json, ...
Run
swiftlintswiftlint lint <path>
swiftlint --fixswiftlint lint --strict
swiftlint lint --quiet
swiftlint lint --lenient
swiftlint --fix --format
swiftlint lint --force-exclude <file>
swiftlint lint --use-stdin
swiftlint lint --progress
swiftlint lint --no-cache
swiftlint lint --only-rule <rule>
swiftlint lint --enable-all-rules
swiftlint lint --working-directory <dir>
swiftlint --version
Rules
swiftlint rulesswiftlint rules <rule>
swiftlint rules --enabled
swiftlint rules --disabled
swiftlint rules --correctable
swiftlint rules --default-config
swiftlint rules --config-only
swiftlint docsswiftlint generate-docs
Config
disabled_rules: [<rule>]
opt_in_rules: [<rule>]
included: [Sources]
excluded: [Pods, .build]
only_rules: [<rule>]
analyzer_rules: [<rule>]
opt_in_rules: [all]
strict: truereporter: "<name>"
<rule>: warning
line_length: 120
file_length: {warning: 500, error: 1200}
type_name: {min_length: 4}
parent_config: <path or url>
child_config: <path or url>
swiftlint --config <a> --config <b>
baseline: <file>
lenient: trueInline control
// swiftlint:disable <rule>
// swiftlint:enable <rule>
// swiftlint:disable:next <rule>
// swiftlint:disable:this <rule>
// swiftlint:disable:previous <r>
// swiftlint:disable all
// swiftlint:disable <r1> <r2>
Output
swiftlint reporters
swiftlint lint --reporter json
swiftlint lint --reporter github-actions-logging
swiftlint lint --reporter sarif
swiftlint lint --reporter summary
swiftlint lint --output <file>
| Name | Use for |
|---|---|
xcode |
Xcode build issues |
json |
scripts and jq |
github-actions-logging |
PR annotations |
junit |
CI test reports |
html |
browsable report |
summary |
rule counts |
Baseline & analyze
swiftlint lint --write-baseline <file>
swiftlint lint --baseline <file>
swiftlint baseline report <file>
swiftlint baseline compare <a> <b>
swiftlint analyze --compiler-log-path <log>
swiftlint analyze --fix --compiler-log-path
<log>
Install & CI
brew install swiftlint
mint install realm/SwiftLint
swift package plugin swiftlint
docker run -v $PWD:/w -w /w ghcr.io/realm/swiftlint
swiftlint lint --use-script-input-files
Recipes
disabled_rules: - trailing_whitespaceopt_in_rules: - empty_count - closure_spacingincluded: - Sourcesexcluded: - Podsline_length: 120type_name: min_length: 4
if command -v swiftlint >/dev/null 2>&1; then swiftlintelse echo "warning: swiftlint not installed"fi
swiftlint lint --write-baseline .swiftlint.baseline.json# then add to .swiftlint.yml:baseline: .swiftlint.baseline.jsonswiftlint lint --strict
repos: - repo: https://github.com/realm/SwiftLint rev: <version> hooks: - id: swiftlint entry: swiftlint --fix --strict



