-
Notifications
You must be signed in to change notification settings - Fork 4
/
.golangci.yml
89 lines (83 loc) · 3.07 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
# golangci-lint 配置文件
run:
concurrency: 4 # 并行执行的 linter 数量,默认为可用 CPU 数量
deadline: 1m # 分析的最大超时时间,默认为 1 分钟
issues-exit-code: 1 # 如果发现至少一个问题,退出码为 1
tests: true # 包含测试文件进行分析
skip-dirs: # 跳过这些目录的分析
# - src/external_libs
# - autogenerated_by_my_lib
skip-files: # 跳过这些文件的分析
# - ".*\\.my\\.go$"
# - lib/bad.go
modules-download-mode: readonly # 防止分析过程中修改 go.mod 文件
output:
formats: # 设置多个输出格式
- format: colored-line-number # 颜色化的行号格式
print-issued-lines: true # 输出包含问题的代码行
print-linter-name: true # 输出 linter 名称
linters-settings:
errcheck:
check-type-assertions: true # 检查类型断言的错误处理
check-blank: true # 检查将错误分配给空标识符的情况
exclude-functions: # 不检查这些函数
- fmt:.*
- io/ioutil:^Read.*
shadow: true # 检查变量遮蔽
golint:
min-confidence: 0.8 # 问题的最小置信度
gofmt:
simplify: true # 使用 gofmt 的 `-s` 选项简化代码
goimports:
# local-prefixes: github.com/org/project # 可选:设置本地导入前缀
gocyclo:
min-complexity: 5 # 触发报告的最小代码复杂度
maligned:
suggest-new: true # 提示结构体的更有效内存布局
dupl:
threshold: 100 # 触发报告的最小令牌数
goconst:
min-len: 3 # 字符串常量的最小长度
min-occurrences: 3 # 触发报告的最小出现次数
depguard:
list-type: blacklist # 设置为 blacklist 来阻止特定包的使用
include-go-root: false # 是否包括 Go 根目录中的包
packages:
- github.com/davecgh/go-spew/spew # 禁用该包的使用
# misspell:
# locale: US # 使用美式拼写检查
lll:
line-length: 100 # 最大行长度
tab-width: 2 # 制表符宽度
unused:
check-exported: true # 报告未使用的导出标识符
unparam:
check-exported: false # 检查导出的函数
nakedret:
max-func-lines: 0 # 允许带裸返回的函数的最大行数
prealloc:
simple: true # 在简单循环中报告预分配建议
range-loops: true # 在 range 循环中报告预分配建议
for-loops: true # 在 for 循环中报告预分配建议
gocritic:
enabled-tags:
- diagnostic
- style
- performance
- experimental
- opinionated
settings:
captLocal:
paramsOnly: true # 仅检查参数命名
rangeValCopy:
sizeThreshold: 32 # 报告值复制的阈值
linters:
enable-all: true # 启用所有 linters
fast: true # 启用快速模式
disable:
- gomnd # 禁用被弃用的 gomnd linter
issues:
exclude-use-default: false # 禁用默认排除模式
max-per-linter: 0 # 每个 linter 的最大问题数量,设置为 0 禁用限制
max-same-issues: 0 # 同一问题的最大数量,设置为 0 禁用限制
new: false # 仅显示新问题,默认为 false