linters-settings: govet: check-shadowing: true golint: min-confidence: 0 gocyclo: min-complexity: 15 maligned: suggest-new: true dupl: threshold: 100 goconst: min-len: 2 min-occurrences: 3 misspell: locale: US lll: line-length: 140 goimports: local-prefixes: github.com/gotd/ gocritic: enabled-tags: - diagnostic - experimental - opinionated - performance - style disabled-checks: - hugeParam - rangeValCopy - exitAfterDefer - whyNoLint - singleCaseSwitch - octalLiteral linters: disable-all: true enable: - deadcode - depguard - dogsled - dupl - errcheck - gochecknoinits - goconst - gocritic - gocyclo - gofmt - goimports - golint - gosec - gosimple - govet - ineffassign - lll - misspell - nakedret - scopelint - staticcheck - structcheck - stylecheck - typecheck - unconvert - unparam - unused - varcheck - whitespace - gocognit # Do not enable: # - wsl (too opinionated about newlines) # - godox (todos are OK) # - bodyclose (false positives on helper functions) # - prealloc (not worth it in scope of this project) # - maligned (same as prealloc) # - funlen (gocyclo is enough) issues: exclude-rules: # Exclude go:generate from lll - source: "//go:generate" linters: [lll] # Disable linters that are annoying in tests. - path: _test\.go linters: - gocyclo - errcheck - dupl - gosec - funlen - goconst - gocognit - scopelint - lll - gochecknoglobals # Ignore shadowing of err. - linters: [govet] text: 'declaration of "err"' # Ignore linters in main packages. - path: main\.go linters: [gochecknoglobals, goconst, funlen, gocognit, gocyclo]