github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/tagliatelle.go (about) 1 package golinters 2 3 import ( 4 "github.com/ldez/tagliatelle" 5 "golang.org/x/tools/go/analysis" 6 7 "github.com/chenfeining/golangci-lint/pkg/config" 8 "github.com/chenfeining/golangci-lint/pkg/golinters/goanalysis" 9 ) 10 11 func NewTagliatelle(settings *config.TagliatelleSettings) *goanalysis.Linter { 12 cfg := tagliatelle.Config{ 13 Rules: map[string]string{ 14 "json": "camel", 15 "yaml": "camel", 16 "header": "header", 17 }, 18 } 19 20 if settings != nil { 21 for k, v := range settings.Case.Rules { 22 cfg.Rules[k] = v 23 } 24 cfg.UseFieldName = settings.Case.UseFieldName 25 } 26 27 a := tagliatelle.New(cfg) 28 29 return goanalysis.NewLinter( 30 a.Name, 31 a.Doc, 32 []*analysis.Analyzer{a}, 33 nil, 34 ).WithLoadMode(goanalysis.LoadModeSyntax) 35 }