@@ -15,6 +15,12 @@ import (
15
15
16
16
"github.com/golangci/golangci-lint/v2/pkg/config"
17
17
"github.com/golangci/golangci-lint/v2/pkg/goanalysis"
18
+ "github.com/golangci/golangci-lint/v2/pkg/logutils"
19
+ )
20
+
21
+ var (
22
+ debugf = logutils .Debug (logutils .DebugKeyStaticcheck )
23
+ isDebug = logutils .HaveDebugTag (logutils .DebugKeyStaticcheck )
18
24
)
19
25
20
26
func New (settings * config.StaticCheckSettings ) * goanalysis.Linter {
@@ -29,6 +35,21 @@ func New(settings *config.StaticCheckSettings) *goanalysis.Linter {
29
35
30
36
analyzers := setupAnalyzers (allAnalyzers , cfg .Checks )
31
37
38
+ if isDebug {
39
+ allAnalyzerNames := extractAnalyzerNames (allAnalyzers )
40
+ slices .Sort (allAnalyzerNames )
41
+ debugf ("All available checks (%d): %s" , len (allAnalyzers ), strings .Join (allAnalyzerNames , "," ))
42
+
43
+ var cfgAnalyzerNames []string
44
+ for _ , a := range analyzers {
45
+ cfgAnalyzerNames = append (cfgAnalyzerNames , a .Name )
46
+ }
47
+ slices .Sort (cfgAnalyzerNames )
48
+ debugf ("Enabled by config checks (%d): %s" , len (analyzers ), strings .Join (cfgAnalyzerNames , "," ))
49
+
50
+ debugf ("staticcheck configuration: %#v" , cfg )
51
+ }
52
+
32
53
return goanalysis .NewLinter (
33
54
"staticcheck" ,
34
55
"It's the set of rules from staticcheck." ,
@@ -107,12 +128,7 @@ func normalizeList(list []string) []string {
107
128
}
108
129
109
130
func setupAnalyzers (src []* lint.Analyzer , checks []string ) []* analysis.Analyzer {
110
- var names []string
111
- for _ , a := range src {
112
- names = append (names , a .Analyzer .Name )
113
- }
114
-
115
- filter := filterAnalyzerNames (names , checks )
131
+ filter := filterAnalyzerNames (extractAnalyzerNames (src ), checks )
116
132
117
133
var ret []* analysis.Analyzer
118
134
for _ , a := range src {
@@ -124,6 +140,14 @@ func setupAnalyzers(src []*lint.Analyzer, checks []string) []*analysis.Analyzer
124
140
return ret
125
141
}
126
142
143
+ func extractAnalyzerNames (analyzers []* lint.Analyzer ) []string {
144
+ var names []string
145
+ for _ , a := range analyzers {
146
+ names = append (names , a .Analyzer .Name )
147
+ }
148
+ return names
149
+ }
150
+
127
151
// https://github.com/dominikh/go-tools/blob/9bf17c0388a65710524ba04c2d821469e639fdc2/lintcmd/lint.go#L437-L477
128
152
//
129
153
//nolint:gocritic // Keep the original source code.
0 commit comments