<commit_before># Folders to exclude from linting
excluded:
  - Carthage
  - go
  - Pods

# Active rules
whitelist_rules:
  - anyobject_protocol
  - array_init
#  - attributes # Contradicts with SwiftFormat option 'funcattributes = prev-line'.
  - block_based_kvo
  - class_delegate_protocol
  - closing_brace
  - closure_body_length
  - closure_end_indentation
  - closure_parameter_position
  - closure_spacing
  - collection_alignment
  - colon
  - comma
  - compiler_protocol_init
  - conditional_returns_on_newline
  - contains_over_filter_count
  - contains_over_filter_is_empty
  - contains_over_first_not_nil
  - control_statement
  - convenience_type
  - custom_rules
#  - cyclomatic_complexity
  - deployment_target
  - discarded_notification_center_observer
  - discouraged_direct_init
#  - discouraged_object_literal
  - discouraged_optional_boolean
#  - discouraged_optional_collection # Too many false positives in implementations of system protocols.
  - duplicate_enum_cases
  - duplicate_imports
  - dynamic_inline
  - empty_collection_literal
#  - empty_count # Too many false positives for variables named 'count'.
  - empty_enum_arguments
  - empty_parameters
  - empty_parentheses_with_trailing_closure
  - empty_string
  - empty_xctest_method
  - enum_case_associated_values_count
  - expiring_todo
#  - explicit_acl
#  - explicit_enum_raw_value # Disabled in favor of 'redundant_string_enum_value'.
  - explicit_init
  - explicit_self
#  - explicit_top_level_acl
#  - explicit_type_interface
#  - extension_access_modifier
  - fallthrough
  - fatal_error_message
#  - file_header
#  - file_length
#  - file_name
  - file_name_no_space
#  - file_types_order
  - first_where
  - flatmap_over_map_reduce
  - for_where
#  - force_cast
#  - force_try
#  - force_unwrapping
#  - function_body_length
#  - function_default_parameter_at_end
#  - function_parameter_count
  - generic_type_name
  - identical_operands
#  - identifier_name
  - implicit_getter
#  - implicit_return
#  - implicitly_unwrapped_optional
#  - indentation_width
  - inert_defer
  - is_disjoint
  - joined_default_parameter
  - large_tuple
  - last_where
  - leading_whitespace
  - legacy_cggeometry_functions
  - legacy_constant
  - legacy_constructor
  - legacy_hashing
  - legacy_multiple
  - legacy_nsgeometry_functions
  - legacy_random
  - let_var_whitespace
#  - line_length
  - literal_expression_end_indentation
  - lower_acl_than_parent
  - mark
#  - missing_docs
  - modifier_order
  - multiline_arguments
  - multiline_arguments_brackets
  - multiline_function_chains
  - multiline_literal_brackets
  - multiline_parameters
  - multiline_parameters_brackets
  - multiple_closures_with_trailing_closure
  - nesting
  - nimble_operator
#  - no_extension_access_modifier
  - no_fallthrough_only
#  - no_grouping_extension
  - no_space_in_method_call
  - notification_center_detachment
  - nslocalizedstring_key
  - nslocalizedstring_require_bundle
  - nsobject_prefer_isequal
#  - number_separator # Contradicts with SwiftFormat rule 'decimalgrouping'. There are not many numbers anyway in the source code.
  - object_literal
  - opening_brace
  - operator_usage_whitespace
  - operator_whitespace
  - optional_enum_case_matching
  - orphaned_doc_comment
#  - overridden_super_call
  - override_in_extension
  - pattern_matching_keywords
  - prefer_self_type_over_type_of_self
#  - prefixed_toplevel_constant # Violations are mostly in test code.
  - private_action
#  - private_outlet
  - private_over_fileprivate
  - private_unit_test
#  - prohibited_interface_builder
#  - prohibited_super_call
  - protocol_property_accessors_order
  - quick_discouraged_call
  - quick_discouraged_focused_test
  - quick_discouraged_pending_test
  - raw_value_for_camel_cased_codable_enum
  - reduce_boolean
  - reduce_into
  - redundant_discardable_let
  - redundant_nil_coalescing
  - redundant_objc_attribute
  - redundant_optional_initialization
  - redundant_set_access_control
  - redundant_string_enum_value
  - redundant_type_annotation
  - redundant_void_return
#  - required_deinit
  - required_enum_case
  - return_arrow_whitespace
  - shorthand_operator
  - single_test_class
  - sorted_first_last
#  - sorted_imports # Managed by SwiftFormat.
  - statement_position
#  - static_operator
  - strict_fileprivate
  - strong_iboutlet
  - superfluous_disable_command
  - switch_case_alignment
  - switch_case_on_newline
  - syntactic_sugar
  - todo
  - toggle_bool
  - trailing_closure
#  - trailing_comma # Trailing commas are useful.
  - trailing_newline
  - trailing_semicolon
  - trailing_whitespace
#  - type_body_length
#  - type_contents_order
  - type_name
  - unavailable_function
  - unneeded_break_in_switch
  - unneeded_parentheses_in_closure_argument
#  - unowned_variable_capture
  - untyped_error_in_catch
  - unused_capture_list
  - unused_closure_parameter
  - unused_control_flow_label
  - unused_declaration
  - unused_enumerated
  - unused_import
  - unused_optional_binding
  - unused_setter_value
  - valid_ibinspectable
  - vertical_parameter_alignment
  - vertical_parameter_alignment_on_call
  - vertical_whitespace
#  - vertical_whitespace_between_cases
#  - vertical_whitespace_closing_braces
  - vertical_whitespace_opening_braces
  - void_return
#  - weak_delegate
  - xct_specific_matcher
  - xctfail_message
  - yoda_condition

# Configuration for specific rules
closure_body_length: 
  warning: 40
  error: 60
type_name:
  max_length: 50<commit_msg>Keep SwiftLint rule 'vertical_whitespace_between_cases' disabled<commit_after># Folders to exclude from linting
excluded:
  - Carthage
  - go
  - Pods

# Active rules
whitelist_rules:
  - anyobject_protocol
  - array_init
#  - attributes # Contradicts with SwiftFormat option 'funcattributes = prev-line'.
  - block_based_kvo
  - class_delegate_protocol
  - closing_brace
  - closure_body_length
  - closure_end_indentation
  - closure_parameter_position
  - closure_spacing
  - collection_alignment
  - colon
  - comma
  - compiler_protocol_init
  - conditional_returns_on_newline
  - contains_over_filter_count
  - contains_over_filter_is_empty
  - contains_over_first_not_nil
  - control_statement
  - convenience_type
  - custom_rules
#  - cyclomatic_complexity
  - deployment_target
  - discarded_notification_center_observer
  - discouraged_direct_init
#  - discouraged_object_literal
  - discouraged_optional_boolean
#  - discouraged_optional_collection # Too many false positives in implementations of system protocols.
  - duplicate_enum_cases
  - duplicate_imports
  - dynamic_inline
  - empty_collection_literal
#  - empty_count # Too many false positives for variables named 'count'.
  - empty_enum_arguments
  - empty_parameters
  - empty_parentheses_with_trailing_closure
  - empty_string
  - empty_xctest_method
  - enum_case_associated_values_count
  - expiring_todo
#  - explicit_acl
#  - explicit_enum_raw_value # Disabled in favor of 'redundant_string_enum_value'.
  - explicit_init
  - explicit_self
#  - explicit_top_level_acl
#  - explicit_type_interface
#  - extension_access_modifier
  - fallthrough
  - fatal_error_message
#  - file_header
#  - file_length
#  - file_name
  - file_name_no_space
#  - file_types_order
  - first_where
  - flatmap_over_map_reduce
  - for_where
#  - force_cast
#  - force_try
#  - force_unwrapping
#  - function_body_length
#  - function_default_parameter_at_end
#  - function_parameter_count
  - generic_type_name
  - identical_operands
#  - identifier_name
  - implicit_getter
#  - implicit_return
#  - implicitly_unwrapped_optional
#  - indentation_width
  - inert_defer
  - is_disjoint
  - joined_default_parameter
  - large_tuple
  - last_where
  - leading_whitespace
  - legacy_cggeometry_functions
  - legacy_constant
  - legacy_constructor
  - legacy_hashing
  - legacy_multiple
  - legacy_nsgeometry_functions
  - legacy_random
  - let_var_whitespace
#  - line_length
  - literal_expression_end_indentation
  - lower_acl_than_parent
  - mark
#  - missing_docs
  - modifier_order
  - multiline_arguments
  - multiline_arguments_brackets
  - multiline_function_chains
  - multiline_literal_brackets
  - multiline_parameters
  - multiline_parameters_brackets
  - multiple_closures_with_trailing_closure
  - nesting
  - nimble_operator
#  - no_extension_access_modifier
  - no_fallthrough_only
#  - no_grouping_extension
  - no_space_in_method_call
  - notification_center_detachment
  - nslocalizedstring_key
  - nslocalizedstring_require_bundle
  - nsobject_prefer_isequal
#  - number_separator # Contradicts with SwiftFormat rule 'decimalgrouping'. There are not many numbers anyway in the source code.
  - object_literal
  - opening_brace
  - operator_usage_whitespace
  - operator_whitespace
  - optional_enum_case_matching
  - orphaned_doc_comment
#  - overridden_super_call
  - override_in_extension
  - pattern_matching_keywords
  - prefer_self_type_over_type_of_self
#  - prefixed_toplevel_constant # Violations are mostly in test code.
  - private_action
#  - private_outlet
  - private_over_fileprivate
  - private_unit_test
#  - prohibited_interface_builder
#  - prohibited_super_call
  - protocol_property_accessors_order
  - quick_discouraged_call
  - quick_discouraged_focused_test
  - quick_discouraged_pending_test
  - raw_value_for_camel_cased_codable_enum
  - reduce_boolean
  - reduce_into
  - redundant_discardable_let
  - redundant_nil_coalescing
  - redundant_objc_attribute
  - redundant_optional_initialization
  - redundant_set_access_control
  - redundant_string_enum_value
  - redundant_type_annotation
  - redundant_void_return
#  - required_deinit
  - required_enum_case
  - return_arrow_whitespace
  - shorthand_operator
  - single_test_class
  - sorted_first_last
#  - sorted_imports # Managed by SwiftFormat.
  - statement_position
#  - static_operator
  - strict_fileprivate
  - strong_iboutlet
  - superfluous_disable_command
  - switch_case_alignment
  - switch_case_on_newline
  - syntactic_sugar
  - todo
  - toggle_bool
  - trailing_closure
#  - trailing_comma # Trailing commas are useful.
  - trailing_newline
  - trailing_semicolon
  - trailing_whitespace
#  - type_body_length
#  - type_contents_order
  - type_name
  - unavailable_function
  - unneeded_break_in_switch
  - unneeded_parentheses_in_closure_argument
#  - unowned_variable_capture
  - untyped_error_in_catch
  - unused_capture_list
  - unused_closure_parameter
  - unused_control_flow_label
  - unused_declaration
  - unused_enumerated
  - unused_import
  - unused_optional_binding
  - unused_setter_value
  - valid_ibinspectable
  - vertical_parameter_alignment
  - vertical_parameter_alignment_on_call
  - vertical_whitespace
#  - vertical_whitespace_between_cases # Additional whitespace not needed because of visible indentation.
#  - vertical_whitespace_closing_braces
  - vertical_whitespace_opening_braces
  - void_return
#  - weak_delegate
  - xct_specific_matcher
  - xctfail_message
  - yoda_condition

# Configuration for specific rules
closure_body_length: 
  warning: 40
  error: 60
type_name:
  max_length: 50
{'fraction_non_alphanumeric': 0.05044295787380221, 'fraction_numerical': 0.0010847947929849937, 'mean_word_length': 4.124131542380732, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1300059', 'n_tokens_mistral': 3776, 'n_tokens_neox': 3618, 'n_words': 553}