# Bundled Rule Index

This file is an exhaustive local index of SwiftLint rule identifiers grouped by the official rule-directory categories. Use it to avoid leaving a rule out when working offline or scanning the repo quickly.

Treat the official rule directory and `swiftlint rules <identifier>` as the source of truth for current descriptions, configuration keys, autocorrect support, and future rule additions or reclassifications.

## Contents

- [Default Rules](#default-rules)
- [Opt-in Rules](#opt-in-rules)
- [Analyzer Rules](#analyzer-rules)

---

## Default Rules

These rules are enabled automatically. Disable specific ones via `disabled_rules` in `.swiftlint.yml`.

`attribute_name_spacing`, `blanket_disable_command`, `block_based_kvo`, `class_delegate_protocol`, `closing_brace`, `closure_parameter_position`, `colon`, `comma`, `comment_spacing`, `compiler_protocol_init`, `computed_accessors_order`, `control_statement`, `custom_rules`, `cyclomatic_complexity`, `deployment_target`, `discouraged_direct_init`, `duplicate_conditions`, `duplicate_enum_cases`, `duplicate_imports`, `duplicated_key_in_dictionary_literal`, `dynamic_inline`, `empty_enum_arguments`, `empty_parameters`, `empty_parentheses_with_trailing_closure`, `file_length`, `for_where`, `force_cast`, `force_try`, `function_body_length`, `function_name_whitespace`, `function_parameter_count`, `generic_type_name`, `identifier_name`, `implicit_getter`, `implicit_optional_initialization`, `inclusive_language`, `invalid_swiftlint_command`, `invisible_character`, `is_disjoint`, `large_tuple`, `leading_whitespace`, `legacy_cggeometry_functions`, `legacy_constant`, `legacy_constructor`, `legacy_hashing`, `legacy_nsgeometry_functions`, `legacy_random`, `line_length`, `mark`, `multiple_closures_with_trailing_closure`, `nesting`, `no_fallthrough_only`, `no_space_in_method_call`, `non_optional_string_data_conversion`, `notification_center_detachment`, `ns_number_init_as_function_reference`, `nsobject_prefer_isequal`, `opening_brace`, `optional_data_string_conversion`, `orphaned_doc_comment`, `prefer_type_checking`, `private_over_fileprivate`, `private_unit_test`, `protocol_property_accessors_order`, `reduce_boolean`, `redundant_discardable_let`, `redundant_objc_attribute`, `redundant_sendable`, `redundant_set_access_control`, `redundant_string_enum_value`, `redundant_void_return`, `return_arrow_whitespace`, `self_in_property_initialization`, `shorthand_operator`, `statement_position`, `static_over_final_class`, `superfluous_disable_command`, `switch_case_alignment`, `syntactic_sugar`, `todo`, `trailing_comma`, `trailing_newline`, `trailing_semicolon`, `trailing_whitespace`, `type_body_length`, `type_name`, `unavailable_condition`, `unneeded_break_in_switch`, `unneeded_override`, `unneeded_synthesized_initializer`, `unused_closure_parameter`, `unused_control_flow_label`, `unused_enumerated`, `unused_optional_binding`, `unused_setter_value`, `valid_ibinspectable`, `vertical_parameter_alignment`, `vertical_whitespace`, `void_function_in_ternary`, `void_return`, `xctfail_message`

---

## Opt-in Rules

These rules are disabled by default. Enable selectively via `opt_in_rules` in `.swiftlint.yml`.

`accessibility_label_for_image`, `accessibility_trait_for_button`, `anonymous_argument_in_multiline_closure`, `array_init`, `async_without_await`, `attributes`, `balanced_xctest_lifecycle`, `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`, `contrasted_opening_brace`, `convenience_type`, `direct_return`, `discarded_notification_center_observer`, `discouraged_assert`, `discouraged_default_parameter`, `discouraged_none_name`, `discouraged_object_literal`, `discouraged_optional_boolean`, `discouraged_optional_collection`, `empty_collection_literal`, `empty_count`, `empty_string`, `empty_xctest_method`, `enum_case_associated_values_count`, `expiring_todo`, `explicit_acl`, `explicit_enum_raw_value`, `explicit_init`, `explicit_top_level_acl`, `explicit_type_interface`, `extension_access_modifier`, `fallthrough`, `fatal_error_message`, `file_header`, `file_name`, `file_name_no_space`, `file_types_order`, `final_test_case`, `first_where`, `flatmap_over_map_reduce`, `force_unwrapping`, `function_default_parameter_at_end`, `ibinspectable_in_extension`, `identical_operands`, `implicit_return`, `implicitly_unwrapped_optional`, `incompatible_concurrency_annotation`, `indentation_width`, `joined_default_parameter`, `last_where`, `legacy_multiple`, `legacy_objc_type`, `legacy_uigraphics_function`, `let_var_whitespace`, `literal_expression_end_indentation`, `local_doc_comment`, `lower_acl_than_parent`, `missing_docs`, `modifier_order`, `multiline_arguments`, `multiline_arguments_brackets`, `multiline_call_arguments`, `multiline_function_chains`, `multiline_literal_brackets`, `multiline_parameters`, `multiline_parameters_brackets`, `nimble_operator`, `no_empty_block`, `no_extension_access_modifier`, `no_grouping_extension`, `no_magic_numbers`, `non_overridable_class_declaration`, `nslocalizedstring_key`, `nslocalizedstring_require_bundle`, `number_separator`, `object_literal`, `one_declaration_per_file`, `operator_usage_whitespace`, `optional_enum_case_matching`, `overridden_super_call`, `override_in_extension`, `pattern_matching_keywords`, `period_spacing`, `prefer_asset_symbols`, `prefer_condition_list`, `prefer_key_path`, `prefer_nimble`, `prefer_self_in_static_references`, `prefer_self_type_over_type_of_self`, `prefer_zero_over_explicit_init`, `prefixed_toplevel_constant`, `private_action`, `private_outlet`, `private_subject`, `private_swiftui_state`, `prohibited_interface_builder`, `prohibited_super_call`, `quick_discouraged_call`, `quick_discouraged_focused_test`, `quick_discouraged_pending_test`, `raw_value_for_camel_cased_codable_enum`, `reduce_into`, `redundant_final`, `redundant_nil_coalescing`, `redundant_self`, `redundant_type_annotation`, `required_deinit`, `required_enum_case`, `return_value_from_void_function`, `self_binding`, `shorthand_argument`, `shorthand_optional_binding`, `single_test_class`, `sorted_enum_cases`, `sorted_first_last`, `sorted_imports`, `static_operator`, `strict_fileprivate`, `strong_iboutlet`, `superfluous_else`, `switch_case_on_newline`, `test_case_accessibility`, `toggle_bool`, `trailing_closure`, `type_contents_order`, `unavailable_function`, `unhandled_throwing_task`, `unneeded_escaping`, `unneeded_parentheses_in_closure_argument`, `unneeded_throws_rethrows`, `unowned_variable_capture`, `untyped_error_in_catch`, `unused_parameter`, `variable_shadowing`, `vertical_parameter_alignment_on_call`, `vertical_whitespace_between_cases`, `vertical_whitespace_closing_braces`, `vertical_whitespace_opening_braces`, `weak_delegate`, `xct_specific_matcher`, `yoda_condition`

---

## Analyzer Rules

These rules require the Swift compiler's type-checked AST. Run via `swiftlint analyze --compiler-log-path <log>`. See the custom rules and analyze reference for the full workflow.

`capture_variable`, `explicit_self`, `typesafe_array_init`, `unused_declaration`, `unused_import`
