github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/golinters/ginkgolinter.go (about) 1 package golinters 2 3 import ( 4 "github.com/nunnatsa/ginkgolinter" 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 NewGinkgoLinter(cfg *config.GinkgoLinterSettings) *goanalysis.Linter { 12 a := ginkgolinter.NewAnalyzer() 13 14 cfgMap := make(map[string]map[string]any) 15 if cfg != nil { 16 cfgMap[a.Name] = map[string]any{ 17 "suppress-len-assertion": cfg.SuppressLenAssertion, 18 "suppress-nil-assertion": cfg.SuppressNilAssertion, 19 "suppress-err-assertion": cfg.SuppressErrAssertion, 20 "suppress-compare-assertion": cfg.SuppressCompareAssertion, 21 "suppress-async-assertion": cfg.SuppressAsyncAssertion, 22 "suppress-focus-container": cfg.SuppressFocusContainer, 23 "allow-havelen-0": cfg.AllowHaveLenZero, 24 } 25 } 26 27 return goanalysis.NewLinter( 28 a.Name, 29 "enforces standards of using ginkgo and gomega", 30 []*analysis.Analyzer{a}, 31 cfgMap, 32 ).WithLoadMode(goanalysis.LoadModeTypesInfo) 33 }