# SwiftLint configuration for Swift 6 compatibility # Shared configuration for both macOS and iOS apps included: - ../mac/VibeTunnel - ../ios/VibeTunnel excluded: - Carthage - Pods - DerivedData - .build - .swiftpm - ../mac/VibeTunnelTests - ../mac/VibeTunnelUITests - ../ios/VibeTunnelTests - ../mac/build - ../ios/build - Package.swift - "*.xcodeproj" # Rule configuration opt_in_rules: - array_init - closure_end_indentation - closure_spacing - contains_over_filter_count - contains_over_filter_is_empty - contains_over_first_not_nil - contains_over_range_nil_comparison - convenience_type - discouraged_object_literal - empty_collection_literal - empty_count - empty_string - enum_case_associated_values_count - explicit_init - fallthrough - fatal_error_message - file_header - first_where - flatmap_over_map_reduce - force_unwrapping - identical_operands - implicit_return - implicitly_unwrapped_optional - joined_default_parameter - last_where - legacy_multiple - legacy_random - literal_expression_end_indentation - lower_acl_than_parent - multiline_arguments - multiline_function_chains - multiline_literal_brackets - multiline_parameters - operator_usage_whitespace - overridden_super_call - prefer_self_in_static_references - prefer_self_type_over_type_of_self - private_action - private_outlet - prohibited_super_call - reduce_boolean - reduce_into - redundant_nil_coalescing - redundant_type_annotation - sorted_first_last - static_operator - toggle_bool - trailing_closure - unavailable_function - unneeded_parentheses_in_closure_argument - unowned_variable_capture - untyped_error_in_catch - vertical_parameter_alignment_on_call - vertical_whitespace_closing_braces - vertical_whitespace_opening_braces - yoda_condition disabled_rules: # Disable rules that might be too restrictive - line_length - file_length - type_body_length - function_body_length - cyclomatic_complexity - nesting - function_parameter_count - large_tuple - todo # Disable opening_brace as it conflicts with SwiftFormat's multiline wrapping - opening_brace # Disable attributes as it conflicts with SwiftFormat's attribute formatting - attributes # Disable modifier_order as it conflicts with SwiftFormat's modifier ordering - modifier_order # Note: Swift 6 requires more explicit self references # SwiftFormat is configured to preserve these with --disable redundantSelf # Rule parameters type_name: min_length: 3 max_length: 50 identifier_name: min_length: 2 max_length: 60 excluded: - id - x - y - z - i - j - k - dx - dy - dz trailing_whitespace: ignores_empty_lines: true force_cast: error force_try: error custom_rules: no_print_statements: name: "No print statements" regex: '\bprint\(' message: "Use proper logging instead of print statements" severity: warning analyzer_rules: - unused_import - unused_declaration