github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/pkg/golinters/wrapcheck.go (about) 1 package golinters 2 3 import ( 4 "github.com/tomarrell/wrapcheck/v2/wrapcheck" 5 "golang.org/x/tools/go/analysis" 6 7 "github.com/vanstinator/golangci-lint/pkg/config" 8 "github.com/vanstinator/golangci-lint/pkg/golinters/goanalysis" 9 ) 10 11 func NewWrapcheck(settings *config.WrapcheckSettings) *goanalysis.Linter { 12 cfg := wrapcheck.NewDefaultConfig() 13 if settings != nil { 14 if len(settings.IgnoreSigs) != 0 { 15 cfg.IgnoreSigs = settings.IgnoreSigs 16 } 17 if len(settings.IgnoreSigRegexps) != 0 { 18 cfg.IgnoreSigRegexps = settings.IgnoreSigRegexps 19 } 20 if len(settings.IgnorePackageGlobs) != 0 { 21 cfg.IgnorePackageGlobs = settings.IgnorePackageGlobs 22 } 23 if len(settings.IgnoreInterfaceRegexps) != 0 { 24 cfg.IgnoreInterfaceRegexps = settings.IgnoreInterfaceRegexps 25 } 26 } 27 28 a := wrapcheck.NewAnalyzer(cfg) 29 30 return goanalysis.NewLinter( 31 a.Name, 32 a.Doc, 33 []*analysis.Analyzer{a}, 34 nil, 35 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 36 }