Last active
September 11, 2020 14:02
-
-
Save milanpanchal/fb43eb32119c05f0f9770b450c2c3051 to your computer and use it in GitHub Desktop.
Swift Lint Configuration file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, junit, html, emoji) | |
excluded: # paths to ignore during linting. Takes precedence over `included`. | |
- Carthage | |
- Pods | |
disabled_rules: # rule identifiers to exclude from running | |
- trailing_whitespace | |
- force_cast | |
- force_unwrapping | |
- force_try | |
- empty_enum_arguments | |
- overridden_super_call | |
- sorted_imports | |
# - colon # Default configuration: warning, flexible_right_spacing: false, apply_to_dictionaries: true | |
# - comma # Default configuration: warning | |
# - opening_brace | |
# - todo | |
# - empty_parentheses_with_trailing_closure | |
# - empty_string | |
# - unused_closure_parameter | |
# - unused_setter_value | |
# - unused_optional_binding | |
# - redundant_void_return | |
# - void_return | |
# - redundant_string_enum_value | |
# - redundant_objc_attribute | |
# - closure_parameter_position | |
# - control_statement | |
# - notification_center_detachment | |
# - legacy_constructor | |
# - for_where | |
# - unneeded_break_in_switch | |
# - implicit_getter | |
# - duplicate_imports | |
# - trailing_newline | |
opt_in_rules: # some rules are only opt-in | |
# - missing_docs | |
- yoda_condition # Default configuration: warning | |
- empty_count # Default configuration: error, only_after_dot: false | |
- empty_string # Default configuration: warning | |
- closure_end_indentation # Default configuration: warning | |
- closure_spacing # Default configuration: warning | |
- explicit_init # Default configuration: warning | |
- first_where # Default configuration: warning | |
- number_separator # Default configuration: warning, minimum_length: 0 | |
- explicit_failure_calls | |
- fatal_error_message | |
# - extension_access_modifier | |
# - implicitly_unwrapped_optional | |
# - operator_usage_whitespace | |
- vertical_parameter_alignment_on_call | |
- multiline_parameters | |
# - multiple_empty_lines # Defined into custom roles | |
- nesting | |
- private_outlet | |
- prohibited_super_call | |
- protocol_property_accessors_order | |
- redundant_nil_coalescing | |
- syntactic_sugar | |
- comments_space | |
- comments_capitalized_ignore_possible_code | |
- comments_capitalized_find_possible_code | |
line_length: | |
warning: 200 | |
error: 250 | |
ignores_function_declarations: true | |
ignores_comments: true | |
ignores_urls: true | |
function_body_length: | |
warning: 80 | |
error: 150 | |
function_parameter_count: | |
warning: 4 | |
error: 6 | |
type_name: # class name | |
min_length: 3 | |
max_length: | |
warning: 60 | |
error: 80 | |
type_body_length: | |
warning: 300 | |
error: 500 | |
file_length: | |
warning: 500 | |
error: 800 | |
ignore_comment_only_lines: true | |
identifier_name: # Variable name | |
allowed_symbols: "_" | |
min_length: 1 | |
max_length: | |
warning: 60 | |
error: 80 | |
excluded: | |
- id | |
- URL | |
- GlobalAPIKey | |
vertical_whitespace: # warning, max_empty_lines: 1 | |
max_empty_lines: 3 | |
large_tuple: | |
warning: 4 | |
error: 5 | |
private_outlet: | |
allow_private_set: true | |
#nesting: | |
# type_level: | |
# warning: 3 | |
# error: 6 | |
# statement_level: | |
# warning: 5 | |
# error: 10 | |
number_separator: | |
minimum_length: 8 | |
#cyclomatic complexity below 4 is considered good; | |
#cyclomatic complexity between 5 and 7 is considered medium complexity, | |
#between 8 and 10 is high complexity, | |
#and above that is extreme complexity. | |
cyclomatic_complexity: | |
ignores_case_statements: true | |
warning: 7 | |
error: 11 | |
custom_rules: | |
comments_space: # From https://github.com/brandenr/swiftlintconfig | |
name: "Space After Comment" | |
regex: '(^ *//\w+)' | |
message: "There should be a space after //" | |
severity: warning | |
comments_capitalized_ignore_possible_code: | |
name: "Capitalize First Word In Comment" | |
regex: "(^ +// +(?!swiftlint)[a-z]+)" | |
message: "The first word of a comment should be capitalized" | |
severity: warning | |
explicit_failure_calls: | |
name: “Avoid asserting ‘false’” | |
regex: ‘((assert|precondition)\(false)’ | |
message: “Use assertionFailure() or preconditionFailure() instead.” | |
severity: warning | |
multiple_empty_lines: | |
name: "Multiple Empty Lines" | |
regex: '((?:\s*\n){3,})' | |
message: "There are too many line breaks" | |
severity: error | |
force_https: # From https://github.com/Twigz/Game | |
name: "Force HTTPS over HTTP" | |
regex: "((?i)http(?!s))" | |
match_kinds: string | |
message: "HTTPS should be favored over HTTP" | |
severity: warning | |
already_true: | |
regex: "== true" | |
message: "Don't compare to true, just use the bool value." | |
already_bool: | |
regex: "== false" | |
message: "Don't compare to false, just use !value." | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment