# SwiftLint configuration for Peekaboo CLI

# Rules
disabled_rules:
  - trailing_whitespace # Can be annoying with markdown

opt_in_rules:
  - empty_count
  - closure_spacing
  - contains_over_filter_count
  - contains_over_filter_is_empty
  - contains_over_first_not_nil
  - contains_over_range_nil_comparison
  - discouraged_object_literal
  - empty_string
  - first_where
  - last_where
  - legacy_multiple
  - prefer_self_type_over_type_of_self
  - sorted_first_last
  - trailing_closure
  - unneeded_parentheses_in_closure_argument
  - vertical_parameter_alignment_on_call

# Rule configurations
line_length:
  warning: 120
  error: 150
  ignores_comments: true
  ignores_urls: true

type_body_length:
  warning: 300
  error: 400

file_length:
  warning: 500
  error: 1000

function_body_length:
  warning: 40
  error: 60

identifier_name:
  min_length:
    warning: 3
    error: 2
  max_length:
    warning: 40
    error: 50
  allowed_symbols: ["_"]

# Paths
included:
  - Sources
  - Tests

excluded:
  - .build
  - Package.swift