1
1
package gci
2
2
3
3
import (
4
+ "fmt"
5
+
4
6
gcicfg "github.com/daixiang0/gci/pkg/config"
5
7
"github.com/daixiang0/gci/pkg/gci"
8
+ "github.com/daixiang0/gci/pkg/log"
6
9
"github.com/ldez/grignotin/gomod"
7
10
8
11
"github.com/golangci/golangci-lint/pkg/config"
12
+ "github.com/golangci/golangci-lint/pkg/goformatters/internal"
9
13
)
10
14
11
15
const Name = "gci"
@@ -14,23 +18,36 @@ type Formatter struct {
14
18
config * gcicfg.Config
15
19
}
16
20
17
- func New (cfg config.GciSettings ) (* Formatter , error ) {
21
+ func New (settings * config.GciSettings ) (* Formatter , error ) {
22
+ log .InitLogger ()
23
+ _ = log .L ().Sync ()
24
+
18
25
modPath , err := gomod .GetModulePath ()
19
26
if err != nil {
20
- return nil , err
27
+ internal . FormatterLogger . Errorf ( "gci: %v" , err )
21
28
}
22
29
23
- parsedCfg , err := gcicfg.YamlConfig {
30
+ cfg := gcicfg.YamlConfig {
24
31
Cfg : gcicfg.BoolConfig {
25
- NoInlineComments : cfg .NoInlineComments ,
26
- NoPrefixComments : cfg .NoPrefixComments ,
27
- SkipGenerated : cfg .SkipGenerated ,
28
- CustomOrder : cfg .CustomOrder ,
29
- NoLexOrder : cfg .NoLexOrder ,
32
+ NoInlineComments : settings .NoInlineComments ,
33
+ NoPrefixComments : settings .NoPrefixComments ,
34
+ SkipGenerated : settings .SkipGenerated ,
35
+ CustomOrder : settings .CustomOrder ,
36
+ NoLexOrder : settings .NoLexOrder ,
30
37
},
31
- SectionStrings : cfg .Sections ,
38
+ SectionStrings : settings .Sections ,
32
39
ModPath : modPath ,
33
- }.Parse ()
40
+ }
41
+
42
+ if settings .LocalPrefixes != "" {
43
+ cfg .SectionStrings = []string {
44
+ "standard" ,
45
+ "default" ,
46
+ fmt .Sprintf ("prefix(%s)" , settings .LocalPrefixes ),
47
+ }
48
+ }
49
+
50
+ parsedCfg , err := cfg .Parse ()
34
51
if err != nil {
35
52
return nil , err
36
53
}
0 commit comments