---
linters-settings:
  gocritic:
    enabled-tags:
      - diagnostic
      - opinionated
      #- performance
      - style
  gocyclo:
    min-complexity: 15
  lll:
    line-length: 140
  maligned:
    suggest-new: true
linters:
  disable-all: true
  enable:
    - bodyclose
    - deadcode
    - depguard
    - dupl
    - errcheck
    - exportloopref
    # - funlen
    # - gochecknoglobals
    # - gochecknoinits
    - gocritic
    - gocyclo
    - gofmt
    - goimports
    # - golint
    - gosec
    - gosimple
    - govet
    - ineffassign
    - interfacer
    - lll
    - maligned
    - misspell
    - nakedret
    - staticcheck
    - structcheck
    # - stylecheck
    # - testpackage
    - typecheck
    - unconvert
    # - unparam
    - unused
    - varcheck
    - whitespace
    - wsl
issues:
  exclude-rules:
    # Separating explicit var declarations by blank lines seems excessive.
    - linters:
        - wsl
      text: "declarations should never be cuddled"

    # This rule incorrectly flags code where two logically-related lines are
    # followed by an if conditional to check their err return.
    - linters:
        - wsl
      text: "only one cuddle assignment allowed before if statement"
