159 lines
3.5 KiB
YAML
159 lines
3.5 KiB
YAML
# This SwiftLint file is based on this great guideline.
|
|
# https://github.com/raywenderlich/swift-style-guide
|
|
|
|
included:
|
|
- secantTests/
|
|
- secantUITests/
|
|
|
|
excluded:
|
|
- secant/
|
|
- xctemplates/
|
|
|
|
disabled_rules:
|
|
- notification_center_detachment
|
|
- orphaned_doc_comment
|
|
- todo
|
|
- unused_capture_list
|
|
- nesting # allow for types to be nested, common pattern in Swift
|
|
- multiple_closures_with_trailing_closure
|
|
- generic_type_name # allow for arbitrarily long generic type names
|
|
- redundant_void_return
|
|
- implicitly_unwrapped_optional
|
|
- force_unwrapping
|
|
- type_body_length
|
|
- function_body_length
|
|
- file_length
|
|
- cyclomatic_complexity
|
|
- force_cast
|
|
- force_try
|
|
- function_parameter_count
|
|
- identifier_name
|
|
- empty_parentheses_with_trailing_closure
|
|
|
|
opt_in_rules:
|
|
- mark
|
|
- array_init
|
|
- attributes
|
|
- closure_end_indentation
|
|
- closure_spacing
|
|
- collection_alignment
|
|
- colon # promote to error
|
|
- convenience_type
|
|
- discouraged_object_literal
|
|
- empty_collection_literal
|
|
- empty_count
|
|
- empty_string
|
|
- enum_case_associated_values_count
|
|
- fatal_error_message
|
|
- first_where
|
|
- indentation_width
|
|
- last_where
|
|
- legacy_random
|
|
- literal_expression_end_indentation
|
|
- multiline_arguments
|
|
- multiline_arguments_brackets
|
|
- multiline_function_chains
|
|
- multiline_literal_brackets
|
|
- multiline_parameters
|
|
- multiline_parameters_brackets
|
|
- no_space_in_method_call
|
|
- operator_usage_whitespace
|
|
- overridden_super_call
|
|
- pattern_matching_keywords
|
|
- prefer_self_type_over_type_of_self
|
|
- redundant_nil_coalescing
|
|
- redundant_type_annotation
|
|
- return_arrow_whitespace
|
|
- strict_fileprivate
|
|
- toggle_bool
|
|
# - trailing_closure # weird in SwiftUI
|
|
- unneeded_parentheses_in_closure_argument
|
|
- vertical_whitespace_closing_braces
|
|
- vertical_whitespace_opening_braces
|
|
- weak_delegate
|
|
- yoda_condition
|
|
- todos
|
|
|
|
analyzer_rules:
|
|
- unused_import
|
|
|
|
custom_rules:
|
|
array_constructor:
|
|
name: "Array/Dictionary initializer"
|
|
regex: '[let,var] .+ = (\[.+\]\(\))'
|
|
capture_group: 1
|
|
message: "Use explicit type annotation when initializing empty arrays and dictionaries"
|
|
severity: warning
|
|
|
|
string_concatenation:
|
|
included: ".*\\.swift"
|
|
excluded: ".*Test\\.swift"
|
|
name: "String Concatenation"
|
|
regex: " \\+ \"|\" \\+ |\\+= \""
|
|
message: "Please use string interpolation instead of concatenation"
|
|
severity: error
|
|
|
|
nslog_function_usage:
|
|
included: ".*\\.swift"
|
|
excluded: ".*Test\\.swift"
|
|
name: "Swift NSLog() should not be used in App Code"
|
|
regex: "NSLog\\("
|
|
message: "The swift NSLog function should not be used."
|
|
severity: error
|
|
|
|
todos:
|
|
included: ".*\\.swift"
|
|
name: "TODO"
|
|
regex: '(TODO|FIXME):\ ([^\[]|\[[^#]|\[#[^1-9])'
|
|
message: "TODO or FIXME without issue number. Format TODO: [#...]"
|
|
severity: warning
|
|
match_kinds:
|
|
- comment
|
|
|
|
attributes:
|
|
always_on_same_line:
|
|
- "@IBSegueAction"
|
|
- "@IBAction"
|
|
- "@NSManaged"
|
|
- "@objc"
|
|
|
|
legacy_hashing: error
|
|
|
|
identifier_name:
|
|
excluded:
|
|
- i
|
|
- id
|
|
- x
|
|
- y
|
|
- z
|
|
- to
|
|
- at
|
|
- db
|
|
- ua
|
|
- nf
|
|
- tx
|
|
- as
|
|
|
|
indentation_width:
|
|
indentation_width: 4
|
|
|
|
line_length:
|
|
warning: 150
|
|
ignores_urls: true
|
|
ignores_function_declarations: true
|
|
ignores_comments: true
|
|
|
|
multiline_arguments:
|
|
first_argument_location: next_line
|
|
only_enforce_after_first_closure_on_first_line: true
|
|
|
|
private_over_fileprivate:
|
|
validate_extensions: true
|
|
|
|
trailing_whitespace:
|
|
ignores_empty_lines: true
|
|
ignores_comments: true
|
|
|
|
vertical_whitespace:
|
|
max_empty_lines: 1
|