-
Notifications
You must be signed in to change notification settings - Fork 0
/
.golangci.yml
131 lines (114 loc) · 2.98 KB
/
.golangci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# yaml-language-server: $schema=https://golangci-lint.run/jsonschema/golangci.jsonschema.json
# https://golangci-lint.run/usage/configuration/
# https://golangci-lint.run/usage/linters/
run:
concurrency: 0
go: '1.22'
timeout: 10m
issues-exit-code: 1
tests: true
modules-download-mode: readonly
output:
formats:
- format: colored-line-number
path: stderr
print-issued-lines: true
print-linter-name: true
uniq-by-line: true
linters:
enable-all: true
disable:
- exportloopref # deprecated
- nlreturn
- wsl
- lll
- wrapcheck
- varnamelen
- nonamedreturns
- testpackage
- funlen
- cyclop
- exhaustive
- exhaustruct # TODO: reconsider
- depguard # TODO: reconsider
- godox # TODO: reconsider
- gochecknoglobals
issues:
# https://golangci-lint.run/usage/false-positives/#default-exclusions
exclude-use-default: true
exclude-dirs-use-default: true
include:
- EXC0004
- EXC0005
- EXC0006
exclude-rules:
- path: 'error_test.go'
linters: [thelper, errorlint]
- path: '(.+)_test\.go'
linters: [gochecknoglobals, goconst, goerr113, mnd, dupl, maintidx, gocyclo, err113]
# Exclude govet fieldalignment in tests.
- path: '(.+)_test\.go'
linters: [govet]
text: 'fieldalignment:'
- path: internal/tesatingx/testdata
linters: [gochecknoglobals, goconst, goerr113, mnd, dupl, maintidx]
linters-settings:
# https://golangci-lint.run/usage/linters/#unused
unused:
field-writes-are-uses: false
post-statements-are-reads: false
exported-fields-are-used: true
parameters-are-used: true
local-variables-are-used: false
generated-is-used: true
# https://golangci-lint.run/usage/linters/#tagliatelle
tagliatelle:
case:
use-field-name: true
rules:
json: snake
yaml: camel
xml: camel
bson: camel
avro: snake
mapstructure: kebab
# https://golangci-lint.run/usage/linters/#paralleltest
paralleltest:
ignore-missing: true
ignore-missing-subtests: true
# https://golangci-lint.run/usage/linters/#nolintlint
nolintlint:
allow-unused: true
# https://golangci-lint.run/usage/linters/#cyclop
cyclop:
max-complexity: 10
package-average: 0.5
skip-tests: true
# https://golangci-lint.run/usage/linters/#gocyclo
gocyclo:
min-complexity: 40
# https://golangci-lint.run/usage/linters/#maintidx
maintidx:
under: 10
# https://golangci-lint.run/usage/linters/#govet
govet:
enable-all: true
settings:
shadow:
strict: false
#disable:
# - fieldalignment
# https://golangci-lint.run/usage/linters/#misspell
misspell:
ignore-words:
- ""
locale: US
# https://golangci-lint.run/usage/linters/#prealloc
prealloc:
simple: true
range-loops: true
for-loops: true
# https://golangci-lint.run/usage/linters/#gofumpt
gofumpt:
module-path: github.com/moukoublen/pick
extra-rules: true