github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/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/vanstinator/golangci-lint/pkg/config"
     8  	"github.com/vanstinator/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-type-compare-assertion": cfg.SuppressTypeCompareWarning,
    23  			"forbid-focus-container":          cfg.ForbidFocusContainer,
    24  			"allow-havelen-0":                 cfg.AllowHaveLenZero,
    25  		}
    26  	}
    27  
    28  	return goanalysis.NewLinter(
    29  		a.Name,
    30  		"enforces standards of using ginkgo and gomega",
    31  		[]*analysis.Analyzer{a},
    32  		cfgMap,
    33  	).WithLoadMode(goanalysis.LoadModeTypesInfo)
    34  }