158 lines
4.4 KiB
YAML
158 lines
4.4 KiB
YAML
|
# Opt-In Rules
|
||
|
opt_in_rules:
|
||
|
- anonymous_argument_in_multiline_closure
|
||
|
- array_init
|
||
|
- attributes
|
||
|
- closure_body_length
|
||
|
- closure_end_indentation
|
||
|
- closure_spacing
|
||
|
- collection_alignment
|
||
|
- comma_inheritance
|
||
|
- conditional_returns_on_newline
|
||
|
- contains_over_filter_count
|
||
|
- contains_over_filter_is_empty
|
||
|
- contains_over_first_not_nil
|
||
|
- contains_over_range_nil_comparison
|
||
|
- convenience_type
|
||
|
- discouraged_none_name
|
||
|
- discouraged_object_literal
|
||
|
- discouraged_optional_boolean
|
||
|
- discouraged_optional_collection
|
||
|
- empty_collection_literal
|
||
|
- empty_count
|
||
|
- empty_string
|
||
|
- enum_case_associated_values_count
|
||
|
- explicit_init
|
||
|
- fallthrough
|
||
|
- file_header
|
||
|
- file_name
|
||
|
- file_name_no_space
|
||
|
- first_where
|
||
|
- flatmap_over_map_reduce
|
||
|
- force_unwrapping
|
||
|
- function_default_parameter_at_end
|
||
|
- identical_operands
|
||
|
- implicit_return
|
||
|
- implicitly_unwrapped_optional
|
||
|
- joined_default_parameter
|
||
|
- last_where
|
||
|
- legacy_multiple
|
||
|
- let_var_whitespace
|
||
|
- literal_expression_end_indentation
|
||
|
- local_doc_comment
|
||
|
- lower_acl_than_parent
|
||
|
- missing_docs
|
||
|
- modifier_order
|
||
|
- multiline_arguments
|
||
|
- multiline_arguments_brackets
|
||
|
- multiline_function_chains
|
||
|
- multiline_literal_brackets
|
||
|
- multiline_parameters
|
||
|
- multiline_parameters_brackets
|
||
|
- no_extension_access_modifier
|
||
|
- no_grouping_extension
|
||
|
- no_magic_numbers
|
||
|
- number_separator
|
||
|
- operator_usage_whitespace
|
||
|
- optional_enum_case_matching
|
||
|
- prefer_self_in_static_references
|
||
|
- prefer_self_type_over_type_of_self
|
||
|
- prefer_zero_over_explicit_init
|
||
|
- prohibited_interface_builder
|
||
|
- redundant_nil_coalescing
|
||
|
- redundant_type_annotation
|
||
|
- return_value_from_void_function
|
||
|
- shorthand_optional_binding
|
||
|
- sorted_first_last
|
||
|
- sorted_imports
|
||
|
- static_operator
|
||
|
- strict_fileprivate
|
||
|
- switch_case_on_newline
|
||
|
- toggle_bool
|
||
|
- trailing_closure
|
||
|
- type_contents_order
|
||
|
- unneeded_parentheses_in_closure_argument
|
||
|
- yoda_condition
|
||
|
|
||
|
# Disabled Rules
|
||
|
disabled_rules:
|
||
|
- block_based_kvo
|
||
|
- class_delegate_protocol
|
||
|
- dynamic_inline
|
||
|
- is_disjoint
|
||
|
- no_fallthrough_only
|
||
|
- notification_center_detachment
|
||
|
- ns_number_init_as_function_reference
|
||
|
- nsobject_prefer_isequal
|
||
|
- private_over_fileprivate
|
||
|
- redundant_objc_attribute
|
||
|
- self_in_property_initialization
|
||
|
- todo
|
||
|
- unavailable_condition
|
||
|
- valid_ibinspectable
|
||
|
- xctfail_message
|
||
|
|
||
|
# Custom Rules
|
||
|
custom_rules:
|
||
|
|
||
|
fatal_error:
|
||
|
name: 'Fatal Error'
|
||
|
regex: 'fatalError.*\(.*\)'
|
||
|
message: 'Fatal error should not be used.'
|
||
|
severity: error
|
||
|
|
||
|
enum_case_parameter:
|
||
|
name: 'Enum Case Parameter'
|
||
|
regex: 'case [a-zA-Z0-9]*\([a-zA-Z0-9\.<>?,\n\t =]+\)'
|
||
|
message: 'The associated values of an enum case should have parameters.'
|
||
|
severity: warning
|
||
|
|
||
|
tab:
|
||
|
name: 'Whitespaces Instead of Tab'
|
||
|
regex: '\t'
|
||
|
message: 'Spaces should be used instead of tabs.'
|
||
|
severity: warning
|
||
|
|
||
|
# Thanks to the creator of the SwiftLint rule
|
||
|
# "empty_first_line"
|
||
|
# https://github.com/coteditor/CotEditor/blob/main/.swiftlint.yml
|
||
|
# in the GitHub repository
|
||
|
# "CotEditor"
|
||
|
# https://github.com/coteditor/CotEditor
|
||
|
empty_first_line:
|
||
|
name: 'Empty First Line'
|
||
|
regex: '(^[ a-zA-Z ]*(?:protocol|extension|class|struct) (?!(?:var|let))[ a-zA-Z:]*\{\n *\S+)'
|
||
|
message: 'There should be an empty line after a declaration'
|
||
|
severity: error
|
||
|
|
||
|
# Analyzer Rules
|
||
|
analyzer_rules:
|
||
|
- unused_declaration
|
||
|
- unused_import
|
||
|
|
||
|
# Options
|
||
|
file_header:
|
||
|
required_pattern: '(// swift-tools-version: .+)?//\n// .*.swift\n// meta-sqlite\n//\n// Created by .* on .*\.(\n// Edited by (.*,)+\.)*\n(\n// Thanks to .* for the .*:\n// ".*"\n// https://.* \(\d\d.\d\d.\d\d\))*//\n'
|
||
|
missing_docs:
|
||
|
warning: [internal, private]
|
||
|
error: [open, public]
|
||
|
excludes_inherited_types: false
|
||
|
type_contents_order:
|
||
|
order:
|
||
|
- case
|
||
|
- type_alias
|
||
|
- associated_type
|
||
|
- type_property
|
||
|
- instance_property
|
||
|
- ib_inspectable
|
||
|
- ib_outlet
|
||
|
- subscript
|
||
|
- initializer
|
||
|
- deinitializer
|
||
|
- subtype
|
||
|
- type_method
|
||
|
- view_life_cycle_method
|
||
|
- ib_action
|
||
|
- other_method
|
||
|
excluded:
|
||
|
- .build/
|