linters:
  enable:
  - asciicheck
  - bidichk
  - bodyclose
  - containedctx
  - contextcheck
  - decorder
  - dogsled
  - dupl
  - dupword
  - durationcheck
  - errcheck
  - errchkjson
  - errname
  - errorlint
  - execinquery
  - exhaustive
  - exportloopref
  - forbidigo
  - forcetypeassert
  - gci
  - gocheckcompilerdirectives
  - goconst
  - gocritic
  - gocyclo
  - godot
  - godox
  - goerr113
  - gofmt
  - gofumpt
  - goheader
  - goimports
  - gomoddirectives
  - gomodguard
  - goprintffuncname
  - gosec
  - gosimple
  - govet
  - grouper
  - importas
  - ineffassign
  - ireturn
  - lll
  - loggercheck
  - maintidx
  - makezero
  - misspell
  - musttag
  - nakedret
  - nilerr
  - nilnil
  - noctx
  - nolintlint
  - nonamedreturns
  - nosprintfhostport
  - prealloc
  - predeclared
  - promlinter
  - reassign
  - rowserrcheck
  - sqlclosecheck
  - staticcheck
  - stylecheck
  - tagliatelle
  - tenv
  - testpackage
  - thelper
  - typecheck
  - unconvert
  - unparam
  - unused
  - usestdlibvars
  - wastedassign
  - whitespace
  disable:
  - asasalint
  - cyclop
  - depguard
  - exhaustivestruct
  - exhaustruct
  - funlen
  - gochecknoglobals
  - gochecknoinits
  - gocognit
  - gomnd
  - interfacebloat
  - nestif
  - nlreturn
  - paralleltest
  - revive
  - testableexamples
  - tparallel
  - varnamelen
  - wrapcheck
  - wsl

linters-settings:
  gci:
    sections:
    - standard
    - default
    - prefix(github.com/twpayne/go-vfs)
  gofumpt:
    extra-rules: true
    go-version: '1.20'
    module-path: github.com/twpayne/go-vfs
  goimports:
    local-prefixes: github.com/twpayne/go-vfs
  misspell:
    locale: US

issues:
  exclude-rules:
  - linters:
    - goerr113
    text: "do not define dynamic errors, use wrapped static errors instead"
