build:
  maxIssues: 0

complexity:
  CyclomaticComplexMethod:
    ignoreSimpleWhenEntries: true
  LongParameterList:
    constructorThreshold: 10
    functionThreshold: 10
  TooManyFunctions:
    thresholdInFiles: 16
    thresholdInClasses: 20
    thresholdInInterfaces: 8
    thresholdInObjects: 16
    thresholdInEnums: 8
    ignoreOverridden: true
    ignoreDeprecated: true

exceptions:
  SwallowedException:
    active: false

formatting:
  MaximumLineLength:
    # Already handled by detekt itself
    active: false
  NoWildcardImports:
    # Already handled by detekt itself
    active: false
  PackageName:
    # Already handled by detekt itself
    active: false
  TrailingCommaOnCallSite:
    active: true
    useTrailingCommaOnCallSite: true
  TrailingCommaOnDeclarationSite:
    active: true
    useTrailingCommaOnDeclarationSite: true

naming:
  FunctionNaming:
    ignoreAnnotated:
      - Composable
  PackageNaming:
    # Package names must be lowercase letters
    packagePattern: '[a-z]+(\.[a-z]+)*'

performance:
  SpreadOperator:
    active: false

style:
  ForbiddenComment:
    # Allow TODOs
    values: [ 'FIXME:', 'STOPSHIP:' ]
  LoopWithTooManyJumpStatements:
    maxJumpCount: 2
  MaxLineLength:
    maxLineLength: 200
  ReturnCount:
    excludeGuardClauses: true
    max: 3
