1
1
package golinters
2
2
3
3
import (
4
+ "fmt"
4
5
"strings"
5
6
6
7
gciAnalyzer "github.com/daixiang0/gci/pkg/analyzer"
@@ -13,23 +14,30 @@ import (
13
14
const gciName = "gci"
14
15
15
16
func NewGci (settings * config.GciSettings ) * goanalysis.Linter {
16
- analyzer := gciAnalyzer . Analyzer
17
- var cfg map [ string ] map [ string ] interface {}
17
+ var linterCfg map [ string ] map [ string ] interface {}
18
+
18
19
if settings != nil {
19
- cfg = map [string ]map [string ]interface {}{
20
- analyzer .Name : {
21
- gciAnalyzer .NoInlineCommentsFlag : settings .NoInlineComments ,
22
- gciAnalyzer .NoPrefixCommentsFlag : settings .NoPrefixComments ,
23
- gciAnalyzer .SectionsFlag : strings .Join (settings .Sections , gciAnalyzer .SectionDelimiter ),
24
- gciAnalyzer .SectionSeparatorsFlag : strings .Join (settings .SectionSeparator , gciAnalyzer .SectionDelimiter ),
25
- },
20
+ cfg := map [string ]interface {}{
21
+ gciAnalyzer .NoInlineCommentsFlag : settings .NoInlineComments ,
22
+ gciAnalyzer .NoPrefixCommentsFlag : settings .NoPrefixComments ,
23
+ gciAnalyzer .SectionsFlag : strings .Join (settings .Sections , gciAnalyzer .SectionDelimiter ),
24
+ gciAnalyzer .SectionSeparatorsFlag : strings .Join (settings .SectionSeparator , gciAnalyzer .SectionDelimiter ),
25
+ }
26
+
27
+ if settings .LocalPrefixes != "" {
28
+ prefix := []string {"Standard" , "Default" , fmt .Sprintf ("Prefix(%s)" , settings .LocalPrefixes )}
29
+ cfg [gciAnalyzer .SectionsFlag ] = strings .Join (prefix , gciAnalyzer .SectionDelimiter )
30
+ }
31
+
32
+ linterCfg = map [string ]map [string ]interface {}{
33
+ gciAnalyzer .Analyzer .Name : cfg ,
26
34
}
27
35
}
28
36
29
37
return goanalysis .NewLinter (
30
38
gciName ,
31
39
"Gci controls golang package import order and makes it always deterministic." ,
32
- []* analysis.Analyzer {analyzer },
33
- cfg ,
40
+ []* analysis.Analyzer {gciAnalyzer . Analyzer },
41
+ linterCfg ,
34
42
).WithLoadMode (goanalysis .LoadModeSyntax )
35
43
}
0 commit comments