# Options for analysis running.
# Full config detail on https://golangci-lint.run/usage/configuration/
run:
  concurrency: 4
  allow-parallel-runners: true

go: "1.18"

output:
  format: colored-line-number
  print-issued-lines: false
  print-linter-name: false
  uniq-by-line: false
  path-prefix: ""
  sort-results: false

linters:
  disable-all: true

  # Enable specific linter
  # https://golangci-lint.run/usage/linters/#enabled-by-default-linters
  # Full list with `golangci-lint linters`
  enable:
    - asciicheck # Simple linter to check that your code does not contain non-ASCII identifiers
    - bodyclose # checks whether HTTP response body is closed successfully
    - errcheck # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases
    - gosimple # Linter for Go source code that specializes in simplifying code
    - govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string
    - ineffassign # Detects when assignments to existing variables are not used
    - staticcheck # It's a set of rules from staticcheck. It's not the same thing as the staticcheck binary. The author of staticcheck doesn't support or approve the use of staticcheck as a library inside golangci-lint.
    - typecheck # Like the front-end of a Go compiler, parses and type-checks Go code
    - unused # Checks Go code for unused constants, variables, functions and types
