#
# Lint
#

# Exclude assigns for ECR files
Lint/UselessAssign:
  Excluded:
  - src/invidious.cr
  - src/invidious/helpers/errors.cr
  - src/invidious/routes/**/*.cr

# Ignore false negative (if !db.query_one?...)
Lint/UnreachableCode:
  Excluded:
  - src/invidious/database/base.cr

# Ignore shadowed variable `key` (it works for now, and that's
# a sensitive part of the code)
Lint/ShadowingOuterLocalVar:
  Excluded:
  - src/invidious/helpers/tokens.cr

Lint/NotNil:
  Enabled: false

Lint/SpecFilename:
  Excluded:
    - spec/parsers_helper.cr


#
# Style
#

Style/RedundantBegin:
  Enabled: false

Style/RedundantReturn:
  Enabled: false

Style/ParenthesesAroundCondition:
  Enabled: false

# This requires a rewrite of most data structs (and their usage) in Invidious.
Naming/QueryBoolMethods:
  Enabled: false

Naming/AccessorMethodName:
  Enabled: false

Naming/BlockParameterName:
  Enabled: false

# Hides TODO comment warnings.
#
# Call `bin/ameba --only Documentation/DocumentationAdmonition` to
# list them
Documentation/DocumentationAdmonition:
  Enabled: false


#
# Metrics
#

# Ignore function complexity (number of if/else & case/when branches)
# For some functions that can hardly be simplified for now
Metrics/CyclomaticComplexity:
  Enabled: false