108 lines
1.7 KiB
YAML
108 lines
1.7 KiB
YAML
# yaml-language-server: $schema=https://golangci-lint.run/jsonschema/golangci.v2.jsonschema.json
|
|
version: "2"
|
|
|
|
linters:
|
|
enable:
|
|
# Default linters
|
|
- errcheck
|
|
- govet
|
|
- ineffassign
|
|
- staticcheck
|
|
- unused
|
|
# Code quality
|
|
- gocritic
|
|
- gocognit
|
|
- gocyclo
|
|
- revive
|
|
- misspell
|
|
- unconvert
|
|
- dupl
|
|
- prealloc
|
|
# Error handling
|
|
- nilerr
|
|
- errorlint
|
|
# Security
|
|
- gosec
|
|
# Style & formatting
|
|
- whitespace
|
|
- wastedassign
|
|
# Best practices
|
|
- exhaustive
|
|
- nolintlint
|
|
- goconst
|
|
- nakedret
|
|
- nestif
|
|
- bodyclose
|
|
- usestdlibvars
|
|
- copyloopvar
|
|
- intrange
|
|
|
|
settings:
|
|
revive:
|
|
severity: warning
|
|
rules:
|
|
- name: blank-imports
|
|
- name: context-as-argument
|
|
- name: error-return
|
|
- name: error-strings
|
|
- name: error-naming
|
|
- name: exported
|
|
- name: package-comments
|
|
- name: range
|
|
- name: receiver-naming
|
|
- name: indent-error-flow
|
|
- name: superfluous-else
|
|
|
|
gocyclo:
|
|
min-complexity: 15
|
|
|
|
gocognit:
|
|
min-complexity: 30
|
|
|
|
gocritic:
|
|
enabled-tags:
|
|
- diagnostic
|
|
- experimental
|
|
- opinionated
|
|
- performance
|
|
- style
|
|
|
|
dupl:
|
|
threshold: 100
|
|
|
|
goconst:
|
|
min-len: 3
|
|
min-occurrences: 3
|
|
|
|
nakedret:
|
|
max-func-lines: 30
|
|
|
|
nestif:
|
|
min-complexity: 4
|
|
|
|
errorlint:
|
|
errorf: true
|
|
asserts: true
|
|
comparison: true
|
|
|
|
nolintlint:
|
|
require-explanation: true
|
|
require-specific: true
|
|
|
|
exclusions:
|
|
paths:
|
|
- vendor
|
|
|
|
issues:
|
|
max-issues-per-linter: 50
|
|
max-same-issues: 10
|
|
|
|
run:
|
|
timeout: 5m
|
|
tests: true
|
|
|
|
formatters:
|
|
enable:
|
|
- gofmt
|
|
- goimports
|