github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/pkg/golinters/testifylint.go (about) 1 package golinters 2 3 import ( 4 "github.com/Antonboom/testifylint/analyzer" 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 NewTestifylint(settings *config.TestifylintSettings) *goanalysis.Linter { 12 a := analyzer.New() 13 14 cfg := make(map[string]map[string]any) 15 if settings != nil { 16 cfg[a.Name] = map[string]any{ 17 "enable-all": settings.EnableAll, 18 "disable-all": settings.DisableAll, 19 } 20 if len(settings.EnabledCheckers) > 0 { 21 cfg[a.Name]["enable"] = settings.EnabledCheckers 22 } 23 if len(settings.DisabledCheckers) > 0 { 24 cfg[a.Name]["disable"] = settings.DisabledCheckers 25 } 26 27 if p := settings.ExpectedActual.ExpVarPattern; p != "" { 28 cfg[a.Name]["expected-actual.pattern"] = p 29 } 30 if p := settings.RequireError.FnPattern; p != "" { 31 cfg[a.Name]["require-error.fn-pattern"] = p 32 } 33 if m := settings.SuiteExtraAssertCall.Mode; m != "" { 34 cfg[a.Name]["suite-extra-assert-call.mode"] = m 35 } 36 } 37 38 return goanalysis.NewLinter( 39 a.Name, 40 a.Doc, 41 []*analysis.Analyzer{a}, 42 cfg, 43 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 44 }