Skip to content

Instantly share code, notes, and snippets.

@Mcrich23
Created July 11, 2023 15:44
Show Gist options
  • Save Mcrich23/d5d9f9c0859e143c292a90f1b6a293f1 to your computer and use it in GitHub Desktop.
Save Mcrich23/d5d9f9c0859e143c292a90f1b6a293f1 to your computer and use it in GitHub Desktop.
A sample swiftlint config that I use along with https://github.com/SFSafeSymbols/SFSafeSymbols
# By default, SwiftLint uses a set of sensible default rules you can adjust:
disabled_rules: # rule identifiers turned on by default to exclude from running
- colon
- comma
- control_statement
- type_name
- trailing_whitespace
- identifier_name
- statement_position
- force_try
- force_cast
- multiple_closures_with_trailing_closure
opt_in_rules: # some rules are turned off by default, so you need to opt-in
- empty_count # Find all the available rules by running: `swiftlint rules`
# Alternatively, specify all rules explicitly by uncommenting this option:
# only_rules: # delete `disabled_rules` & `opt_in_rules` if using this
# - empty_parameters
# - vertical_whitespace
included: # paths to include during linting. `--path` is ignored if present.
excluded: # paths to ignore during linting. Takes precedence over `included`.
- Carthage
- Pods
- Source/ExcludedFolder
- Source/ExcludedFile.swift
- Source/*/ExcludedFile.swift # Exclude files with a wildcard
analyzer_rules: # Rules run by `swiftlint analyze` (experimental)
- explicit_self
# configurable rules can be customized from this configuration file
# binary rules can set their severity level
# rules that have both warning and error levels, can set just the warning level
# implicitly
function_parameter_count: 6
line_length: 375
function_body_length: 100
cyclomatic_complexity: 25
# they can set both implicitly with an array
type_body_length:
- 500 # warning
- 600 # error
# or they can set both explicitly
file_length:
warning: 600
error: 1200
# naming rules can set warnings/errors for min_length and max_length
# additionally they can set excluded names
reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, codeclimate, junit, html, emoji, sonarqube, markdown, github-actions-logging)
# Custom Rules
custom_rules:
sf_safe_symbol:
name: "Safe SFSymbol"
message: "Use `SFSafeSymbols` via `systemSymbol` parameters for type safety."
regex: "(Image\\(systemName:)|(NSImage\\(symbolName:)|(Label[^,]+?,\\s*systemImage:)|(UIApplicationShortcutIcon\\(systemImageName:)"
severity: warning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment