linters-settings:
  gofmt:
    simplify: true
  misspell:
    locale: US
  gofumpt:
    lang-version: "1.21"
    extra-rules: true
  forbidigo:
    forbid:
      - context\.WithCancel$
      - ^print.*$
      - panic
  errorlint:
    errorf-multi: true

linters:
  disable-all: true
  enable:
    - bidichk
    - errcheck
    - gofmt
    - goimports
    - gosimple
    - govet
    - ineffassign
    - misspell
    - revive
    - staticcheck
    - typecheck
    - unused
    - whitespace
    - gofumpt
    - errorlint
    - forbidigo
    - zerologlint

run:
  timeout: 5m
  go: '1.21'

issues:
  exclude-rules:
    # gin force us to use string as context key
    - path: server/store/context.go
      linters:
        - staticcheck
        - revive

    # let cli use print and panic
    - path: "cmd/*|cli/*"
      linters:
        - forbidigo