-
Notifications
You must be signed in to change notification settings - Fork 0
/
rules.go
112 lines (104 loc) · 2.8 KB
/
rules.go
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
package codescore
import (
"github.com/mgechev/revive/lint"
"github.com/mgechev/revive/rule"
)
func lintConfig() *lint.Config {
defer func() {
if r := recover(); r != nil {
out("[codereview] [external ast parser crash/panic]")
}
}()
config := lint.Config{
Confidence: 0.8,
Severity: lint.SeverityWarning,
Rules: map[string]lint.RuleConfig{},
}
for _, r := range lintRules {
config.Rules[r.Name()] = lint.RuleConfig{}
}
for k, v := range config.Rules {
if v.Severity == "" {
v.Severity = lint.SeverityWarning
}
config.Rules[k] = v
}
return &config
}
var lintRules = []lint.Rule{
&rule.VarDeclarationsRule{},
&rule.DotImportsRule{},
&rule.BlankImportsRule{},
&rule.ExportedRule{},
&rule.IndentErrorFlowRule{},
&rule.RangeRule{},
&rule.ErrorfRule{},
&rule.ErrorStringsRule{},
&rule.IncrementDecrementRule{},
&rule.UnexportedReturnRule{},
&rule.ErrorReturnRule{},
&rule.ContextKeysType{},
&rule.ContextAsArgumentRule{},
&rule.EmptyBlockRule{},
&rule.SuperfluousElseRule{},
&rule.GetReturnRule{},
&rule.ModifiesParamRule{},
&rule.ConfusingResultsRule{},
&rule.UnusedParamRule{},
&rule.UnreachableCodeRule{},
&rule.UnnecessaryStmtRule{},
&rule.StructTagRule{},
&rule.ConstantLogicalExprRule{},
&rule.BoolLiteralRule{},
&rule.ImportsBlacklistRule{},
&rule.RangeValInClosureRule{},
&rule.RangeValAddress{},
&rule.WaitGroupByValueRule{},
&rule.AtomicRule{},
&rule.CallToGCRule{},
&rule.DuplicatedImportsRule{},
&rule.ImportShadowingRule{},
&rule.BareReturnRule{},
&rule.StringOfIntRule{},
&rule.StringFormatRule{},
&rule.EarlyReturnRule{},
&rule.UnconditionalRecursionRule{},
&rule.IdenticalBranchesRule{},
&rule.DeferRule{},
&rule.NestedStructs{},
&rule.UselessBreak{},
&rule.TimeEqualRule{},
&rule.OptimizeOperandsOrderRule{},
&rule.UseAnyRule{},
&rule.DataRaceRule{},
&rule.TimeNamingRule{},
&rule.ConfusingNamingRule{},
&rule.UnexportedNamingRule{},
&rule.ReceiverNamingRule{},
}
// rules that are disabled [not usable in single file process scenario]
// &rule.PackageCommentsRule{},
// rules that need validate|fine-tuning
// &rule.FlagParamRule{},
// &rule.ModifiesValRecRule{}, // panics unrecoverable
// &rule.UnhandledErrorRule{},
// &rule.IfReturnRule{},
// rules that are too strict or very individual opinion
// &rule.VarNamingRule{},
// &rule.DeepExitRule{},
// &rule.ErrorNamingRule{},
// &rule.AddConstantRule{},
// &rule.EmptyLinesRule{},
// rules that need individual configuration [up for discussion]
// &rule.RedefinesBuiltinIDRule{},
// &rule.FunctionResultsLimitRule{},
// &rule.BannedCharsRule{},
// &rule.FunctionLength{},
// &rule.FileHeaderRule{},
// &rule.MaxPublicStructsRule{},
// &rule.CyclomaticRule{},
// &rule.ArgumentsLimitRule{},
// &rule.CognitiveComplexityRule{},
// &rule.LineLengthLimitRule{},
// broken
// &rule.UnusedReceiverRule{},