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  }