vibetunnel/apple/.swiftlint.yml

136 lines
No EOL
3 KiB
YAML

# 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