github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/exhaustruct.go (about) 1 package golinters 2 3 import ( 4 "github.com/GaijinEntertainment/go-exhaustruct/v3/analyzer" 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 NewExhaustruct(settings *config.ExhaustructSettings) *goanalysis.Linter { 12 var include, exclude []string 13 if settings != nil { 14 include = settings.Include 15 exclude = settings.Exclude 16 } 17 18 a, err := analyzer.NewAnalyzer(include, exclude) 19 if err != nil { 20 linterLogger.Fatalf("exhaustruct configuration: %v", err) 21 } 22 23 return goanalysis.NewLinter( 24 a.Name, 25 a.Doc, 26 []*analysis.Analyzer{a}, 27 nil, 28 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 29 }