-
Notifications
You must be signed in to change notification settings - Fork 1
/
.golangci.yml
121 lines (103 loc) · 4.27 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
# 运行分析时的可选项(golangci-lint的配置)
run:
# 默认并发的数量
concurrency: 8
# golangci-lint的timeout时间
timeout: 1m
# 问题发现时推出的状态码, 默认为-1
issues-exit-code: 1
# 是否包括测试代码
tests: true
# 跳过的文件夹(不执行lint)
skip-dirs:
# 默认跳过的文件夹 vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs-use-default: true
# 默认跳过的文件
skip-files:
# 输出配置
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number"
format: colored-line-number
# 打印出有问题的代码, 默认开启
print-issued-lines: true
# 打印出输出的lint名称默认开启
print-linter-name: true
# 使问题输出按行唯一,默认开启
uniq-by-line: true
# lint配置
linters-settings:
maligned:
# 打印出意见
suggest-new: true
errcheck:
# 报告空白的err_check like _ = json.Unmarshal(msg.Body, &data)
check-blank: false
# 报告断言的错误
check-type-assertions: false
govet:
# report about shadowed variables
check-shadowing: true
# settings per analyzer
settings:
printf: # analyzer name, run `go tool vet help` to see all analyzers
funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf
- (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf
linters:
enable:
- govet # Vet检查Go源代码并报告有问题的代码
- errcheck # 检测代码中的错误检测
- staticcheck # 静态代码分析
- gosimple # 简化代码
- varcheck # 发现没有用到的全局变量和常量
- deadcode # 发现没有用到的代码
- typecheck # 解析和类型检查Go代码
# - bodyclose # 检测http响应体是否成功关闭
- rowserrcheck # 检查是否成功检查行错误
- stylecheck # go lint 的替代品
# - gosec # 检查代码是否存在安全问题
- interfacer # 建议使用较窄接口类型的Linter
- unconvert # 删除不必要的类型转换
- dupl # 代码克隆检测工具
- goconst # 查找可由常量替换的重复字符串
- gocyclo # 计算和检查函数的圈复杂度
- gocognit # 计算和检查函数的认知复杂度
- maligned # 用于检测Go结构的工具,如果对其字段进行排序,这些结构将占用较少的内存
- depguard # 检查包导入是否在可接受包的列表中
- misspell # 查找常见的拼写错误的英语单词
- unparam # 报告没有用到的参数
- dogsled # 检查具有太多空白标识符的赋值
- nakedret # 在大于指定函数长度的函数中查找裸返回
- prealloc # 查找可能预先分配的切片声明
# - scopelint # 检查go程序中的未固定变量
- gocritic # 最固执的代码lint
- godox # 用于检测FIXME、TODO和其他注释关键字的工具
# - funlen # 检测长函数工具
- whitespace # 前导和尾随空白检测工具
- goprintffuncname # 检查printf-like函数是否以f结尾命名
# - gomnd # 用来检测`magic numbers`的分析器。
disable:
- unused # 检测代码中没有用到的常量, 变量 函数和类型
- ineffassign
issues:
exclude-rules:
- linters:
- stylecheck
text: "ST1003:"
- linters:
- stylecheck
text: "ST1006:"
- linters:
- staticcheck
text: "SA4006:"
- linters:
- staticcheck
text: "SA5001:"
- linters:
- gocritic
text: "ifElseChain:"
- path: _test\.go
linters:
- gomnd