ref: 0b2dcaabe23d45f6feb2273031854b14b512e3ff
dir: /.golangci.yaml/
version: "2"
linters:
default: all
exclusions:
paths:
- internal/compress/flate
- internal/compress/internal
disable:
- dupword # extremely normal in tests and a pretty unnecessary linter
- ireturn # can't seem to ignore this linter properly and we don't need anyway, cf. tagged unions
- goconst # unnecessary especially for our parsing code; many false positives
- mnd # unnecessary especially for our parsing code; many false positives
- lll # common sense is much better than these sort of rules
- gosmopolitan # completely normal to have CJK and such in tests
- nonamedreturns # named returns are often good for clarity
- wsl # outdated, use wsl_v5 instead
- varnamelen # it's rather reasonable to have counters like i, even when it spans quite a bit
- gocyclo # cyclomatic metrics aren't that good
- cyclop # cyclomatic metrics aren't that good
- godox # TODO/etc comments are allowed in our codebase
- funlen # long functions are fine
- wrapcheck # rules around interface-return methods are a bit silly
- dogsled # definitely not an issue, ignoring returns is normal
- exhaustruct # tmp: should fix... but too annoying at the moment
- err113 # tmp: will enable when we properly use defined errors
- gocognit # tmp: should consider sometime
settings:
perfsprint:
errorf: false
depguard:
rules:
Main:
list-mode: strict
files:
- $all
allow:
- $gostd
- codeberg.org/lindenii/furgit
- golang.org/x
gosec:
excludes:
- G301 # UNIX permissions
- G306 # UNIX permissions
revive:
rules:
- name: error-strings
disabled: true
issues:
max-issues-per-linter: 0
max-same-issues: 0