11package golinters
22
33import (
4+ "fmt"
45 "strings"
56
67 gciAnalyzer "github.com/daixiang0/gci/pkg/analyzer"
@@ -13,23 +14,30 @@ import (
1314const gciName = "gci"
1415
1516func 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+
1819 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 ,
2634 }
2735 }
2836
2937 return goanalysis .NewLinter (
3038 gciName ,
3139 "Gci controls golang package import order and makes it always deterministic." ,
32- []* analysis.Analyzer {analyzer },
33- cfg ,
40+ []* analysis.Analyzer {gciAnalyzer . Analyzer },
41+ linterCfg ,
3442 ).WithLoadMode (goanalysis .LoadModeSyntax )
3543}
0 commit comments