excluded:
  - build
  - Pods
  - DerivedData
  - .build
  - AscentlyTests

disabled_rules:
  - trailing_whitespace
  - todo
  - nesting
  - opening_brace
  - multiple_closures_with_trailing_closure
  - trailing_comma
  - attributes
  - function_parameter_count
  - large_tuple

opt_in_rules:
  - empty_count
  - explicit_init
  - closure_spacing
  - overridden_super_call
  - redundant_nil_coalescing
  - first_where
  - sorted_first_last
  - contains_over_filter_count
  - contains_over_filter_is_empty
  - empty_string
  - prefer_zero_over_explicit_init
  - flatmap_over_map_reduce
  - last_where
  - sorted_imports
  - toggle_bool
  - unavailable_function
  - unneeded_parentheses_in_closure_argument
  - vertical_whitespace_closing_braces
  - yoda_condition
  - collection_alignment
  - literal_expression_end_indentation

line_length:
  warning: 140
  error: 250
  ignores_comments: true
  ignores_urls: true
  ignores_function_declarations: true
  ignores_interpolated_strings: true

type_body_length:
  warning: 600
  error: 1000

file_length:
  warning: 1000
  error: 1500
  ignore_comment_only_lines: true

function_body_length:
  warning: 100
  error: 200

cyclomatic_complexity:
  warning: 20
  error: 30
  ignores_case_statements: true

identifier_name:
  min_length:
    warning: 2
    error: 1
  max_length:
    warning: 50
    error: 60
  validates_start_with_lowercase: error
  allowed_symbols:
    - _
  excluded:
    - id
    - i
    - j
    - x
    - y
    - z
    - to
    - at
    - or
    - is
    - no
    - go
    - db
    - DATA_JSON_FILENAME
    - IMAGES_DIR_NAME
    - METADATA_FILENAME
    # ViewBuilder section functions (SwiftUI convention)
    - StatusSection
    - IconDisplaySection
    - DebugSection
    - TestingSection
    - ResultsSection
    - GymSelectionSection
    - SessionDetailsSection
    - ProblemSelectionSection
    - CreateProblemSection
    - AttemptDetailsSection
    - BasicInfoSection
    - ClimbTypesSection
    - DifficultySystemsSection
    - NotesSection
    - ClimbTypeSection
    - DifficultySection
    - LocationSection
    - TagsSection
    - PhotosSection
    - AdditionalInfoSection

type_name:
  min_length:
    warning: 3
    error: 2
  max_length:
    warning: 50
    error: 60

force_cast: warning

force_try: warning

large_tuple:
  warning: 4
  error: 6

nesting:
  type_level:
    warning: 3
  function_level:
    warning: 5

reporter: "xcode"
