build:
  maxIssues: 0

config:
  validation: true
  warningsAsErrors: false

complexity:
  LongMethod:
    # Composables are legitimately long — UI layout is declarative
    ignoreAnnotated:
      - 'Composable'
      - 'Preview'
  CyclomaticComplexMethod:
    ignoreAnnotated:
      - 'Composable'
      - 'Preview'
  LongParameterList:
    ignoreAnnotated:
      - 'Composable'
  TooManyFunctions:
    thresholdInFiles: 20
    thresholdInClasses: 20
    thresholdInInterfaces: 20
    thresholdInObjects: 20
    thresholdInEnums: 20
    ignoreOverridden: true

style:
  MagicNumber:
    ignoreAnnotated:
      - 'Composable'
      - 'Preview'
    ignoreEnums: true
    ignoreRanges: true
    ignoreExtensionFunctions: true
  ReturnCount:
    excludedFunctions:
      - 'equals'
  UnusedPrivateMember:
    active: true
  # Handled by ktlint — disable to avoid duplicate reporting
  MaxLineLength:
    active: false
  NewLineAtEndOfFile:
    active: false
  # Too opinionated — single-parameter lambdas with `it` are idiomatic Kotlin
  ExplicitItLambdaParameter:
    active: false

naming:
  FunctionNaming:
    # Composables use PascalCase by convention
    ignoreAnnotated:
      - 'Composable'

comments:
  UndocumentedPublicClass:
    active: false
  UndocumentedPublicFunction:
    active: false
  UndocumentedPublicProperty:
    active: false
