AXorcist/.swiftlint.yml

151 lines
3.0 KiB
YAML

# SwiftLint configuration for AXorcist - Swift 6 compatible
# Paths to include
included:
- Sources
- Tests
- Examples
# Paths to exclude
excluded:
- .build
- DerivedData
- "**/.swiftpm"
- "**/.build"
- "**/DerivedData"
- "**/Tests/Resources"
- "*.playground"
- Pods
- Package.swift
# Analyzer rules (require compilation)
analyzer_rules:
- unused_declaration
- unused_import
# Enable specific rules
opt_in_rules:
- array_init
- closure_spacing
- contains_over_first_not_nil
- empty_count
- empty_string
- explicit_init
- fallthrough
- fatal_error_message
- first_where
- joined_default_parameter
- last_where
- literal_expression_end_indentation
- multiline_arguments
- multiline_parameters
- operator_usage_whitespace
- overridden_super_call
- pattern_matching_keywords
- private_outlet
- prohibited_super_call
- redundant_nil_coalescing
- sorted_first_last
- switch_case_alignment
- unneeded_parentheses_in_closure_argument
- vertical_parameter_alignment_on_call
# Disable rules that conflict with Swift 6 or our coding style
disabled_rules:
# Swift 6 requires explicit self - disable explicit_self rule
- explicit_self
# SwiftFormat handles these
- trailing_whitespace
- trailing_newline
- trailing_comma
- vertical_whitespace
- indentation_width
# Too restrictive or not applicable
- identifier_name # Single letter names are fine in many contexts (x, y, etc.)
- file_header
- explicit_top_level_acl
- explicit_acl
- explicit_type_interface
- missing_docs
- required_deinit
- prefer_nimble
- quick_discouraged_call
- quick_discouraged_focused_test
- quick_discouraged_pending_test
- anonymous_argument_in_multiline_closure
- no_extension_access_modifier
- no_grouping_extension
- switch_case_on_newline
- strict_fileprivate
- extension_access_modifier
- convenience_type
- no_magic_numbers
- one_declaration_per_file
- vertical_whitespace_between_cases
- vertical_whitespace_closing_braces
- superfluous_else
- number_separator
- prefixed_toplevel_constant
- opening_brace
- trailing_closure
- contrasted_opening_brace
- sorted_imports
- redundant_type_annotation
- shorthand_optional_binding
- untyped_error_in_catch
- file_name
- todo
# Rule configurations
# NOTE: force_cast and force_unwrapping are warnings (acceptable for low-level accessibility APIs)
force_cast: warning
force_try: warning
type_name:
min_length:
warning: 2
error: 1
max_length:
warning: 60
error: 80
function_body_length:
warning: 50
error: 250
file_length:
warning: 1000
error: 2000
ignore_comment_only_lines: true
type_body_length:
warning: 400
error: 800
cyclomatic_complexity:
warning: 20
error: 120
large_tuple:
warning: 4
error: 5
nesting:
type_level:
warning: 2
error: 5
function_level:
warning: 3
error: 5
line_length:
warning: 120
error: 250
ignores_comments: true
ignores_urls: true
# Reporter type
reporter: "xcode"