[[golangci-lint]]でよく使う設定の紹介。
## v2
```yaml
version: "2"
linters:
default: none
enable:
- errcheck
- errorlint
- exhaustive
- exhaustruct
- govet
- ineffassign
- nakedret
- revive
- staticcheck
- unused
settings:
nakedret:
max-func-lines: 0
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
severity:
default: error
formatters:
enable:
- goimports
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
```
## v1
```yaml
linters:
disable-all: true
enable:
# 暗黙的な変更を回避するため明示的に指定する
- govet
- errcheck
- gosimple
- ineffassign
- staticcheck
- unused
# 以降は明示的に追加
- errorlint
- exhaustive
- exhaustruct
- goimports # コード変更はgoplsで行う
- nakedret
- revive
linters-settings:
nakedret:
max-func-lines: 0 # Naked returnは認めない
severity:
default-severity: error
```