github.com/nozzle/golangci-lint@v1.49.0-nz3/pkg/golinters/decorder.go (about)

     1  package golinters
     2  
     3  import (
     4  	"strings"
     5  
     6  	"gitlab.com/bosi/decorder"
     7  	"golang.org/x/tools/go/analysis"
     8  
     9  	"github.com/golangci/golangci-lint/pkg/config"
    10  	"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
    11  )
    12  
    13  func NewDecorder(settings *config.DecorderSettings) *goanalysis.Linter {
    14  	a := decorder.Analyzer
    15  
    16  	// disable all rules/checks by default
    17  	cfg := map[string]interface{}{
    18  		"disable-dec-num-check":         true,
    19  		"disable-dec-order-check":       true,
    20  		"disable-init-func-first-check": true,
    21  	}
    22  
    23  	if settings != nil {
    24  		cfg["dec-order"] = strings.Join(settings.DecOrder, ",")
    25  		cfg["disable-dec-num-check"] = settings.DisableDecNumCheck
    26  		cfg["disable-dec-order-check"] = settings.DisableDecOrderCheck
    27  		cfg["disable-init-func-first-check"] = settings.DisableInitFuncFirstCheck
    28  	}
    29  
    30  	return goanalysis.NewLinter(
    31  		a.Name,
    32  		a.Doc,
    33  		[]*analysis.Analyzer{a},
    34  		map[string]map[string]interface{}{a.Name: cfg},
    35  	).WithLoadMode(goanalysis.LoadModeSyntax)
    36  }