linters:
  enable-all: true
  disable:
    # deprecated
    #- deadcode
    - execinquery
    #- exhaustivestruct
    #- golint
    #- ifshort
    #- interfacer
    #- maligned
    #- nosnakecase
    #- scopelint
    #- structcheck
    #- varcheck
    # just whining
    - copyloopvar                       # go>=1.22
    - cyclop
    - dupword
    - forbidigo
    - funlen
    - gci
    - gochecknoglobals
    - gochecknoinits
    - gocognit
    - gocritic
    - gocyclo
    - gofmt
    - gofumpt
    - goimports
    - gomnd
    - intrange                          # go>=1.22
    - lll
    - mnd
    - nlreturn
    - stylecheck
    - varnamelen
    - whitespace
    - wsl
    # auto-generation artefact
    - dupl
    # maybe some day...
    - godox
    - maintidx
    # maybe some day in tests...
    - forcetypeassert
    - nonamedreturns
    - perfsprint
    - testpackage
    # 77 active linters remaining including gosec, gosimple, govet, etc.

linters-settings:
  revive:
    enable-all-rules: true
    rules:
    - name: add-constant
      disabled: true
    - name: argument-limit
      disabled: true
    - name: cognitive-complexity	# similar to 'gocognit' above
      disabled: true
    - name: cyclomatic			# similar to 'cyclop' & 'gocyclo' above
      disabled: true
    - name: empty-block
      disabled: true
    - name: empty-lines
      disabled: true
    - name: flag-parameter
      disabled: true
    - name: function-length		# similar to 'funlen' above
      disabled: true
    - name: function-result-limit
      disabled: true
    - name: increment-decrement
      disabled: true
    - name: line-length-limit		# similar to 'lll' above
      disabled: true
    - name: max-public-structs
      disabled: true
    - name: receiver-naming
      disabled: true
    - name: var-naming
      disabled: true
    - name: unchecked-type-assertion	# similar to 'forcetypeassert' above
      disabled: true
    - name: unexported-naming
      disabled: true
    - name: unhandled-error
      arguments:
      - "fmt.Println"
      - "fmt.Printf"
    - name: use-any			# applicable to go>=1.18 only
      disabled: true
