linters:
  disable:
    - structcheck # gives false positives
  enable:
    - gofumpt
    - thelper
    - goimports
    - tparallel
    - wastedassign
    - exportloopref
    - unparam
    - prealloc
    - unconvert
    - exhaustive
    - makezero
    - nakedret
    # - goconst # TODO: enable and fix issues
  fast: false

linters-settings:
  exhaustive:
    default-signifies-exhaustive: true
  staticcheck:
    # SA1019 is for checking that we're not using fields marked as deprecated
    # in a comment. It decides this in a loose way so I'm silencing it. Also because
    # it's tripping on our own structs.
    checks: ["all", "-SA1019"]
  nakedret:
    # the gods will judge me but I just don't like naked returns at all
    max-func-lines: 0

run:
  go: '1.20'
  timeout: 10m
