github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/pkg/golinters/testpackage.go (about)

     1  package golinters
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/maratori/testpackage/pkg/testpackage"
     7  	"golang.org/x/tools/go/analysis"
     8  
     9  	"github.com/vanstinator/golangci-lint/pkg/config"
    10  	"github.com/vanstinator/golangci-lint/pkg/golinters/goanalysis"
    11  )
    12  
    13  func NewTestpackage(cfg *config.TestpackageSettings) *goanalysis.Linter {
    14  	var a = testpackage.NewAnalyzer()
    15  
    16  	var settings map[string]map[string]any
    17  	if cfg != nil {
    18  		settings = map[string]map[string]any{
    19  			a.Name: {
    20  				testpackage.SkipRegexpFlagName:    cfg.SkipRegexp,
    21  				testpackage.AllowPackagesFlagName: strings.Join(cfg.AllowPackages, ","),
    22  			},
    23  		}
    24  	}
    25  
    26  	return goanalysis.NewLinter(a.Name, a.Doc, []*analysis.Analyzer{a}, settings).
    27  		WithLoadMode(goanalysis.LoadModeSyntax)
    28  }