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

     1  package golinters
     2  
     3  import (
     4  	grouper "github.com/leonklingele/grouper/pkg/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 NewGrouper(settings *config.GrouperSettings) *goanalysis.Linter {
    12  	linterCfg := map[string]map[string]any{}
    13  	if settings != nil {
    14  		linterCfg["grouper"] = map[string]any{
    15  			"const-require-single-const":   settings.ConstRequireSingleConst,
    16  			"const-require-grouping":       settings.ConstRequireGrouping,
    17  			"import-require-single-import": settings.ImportRequireSingleImport,
    18  			"import-require-grouping":      settings.ImportRequireGrouping,
    19  			"type-require-single-type":     settings.TypeRequireSingleType,
    20  			"type-require-grouping":        settings.TypeRequireGrouping,
    21  			"var-require-single-var":       settings.VarRequireSingleVar,
    22  			"var-require-grouping":         settings.VarRequireGrouping,
    23  		}
    24  	}
    25  
    26  	return goanalysis.NewLinter(
    27  		"grouper",
    28  		"Analyze expression groups.",
    29  		[]*analysis.Analyzer{grouper.New()},
    30  		linterCfg,
    31  	).WithLoadMode(goanalysis.LoadModeSyntax)
    32  }