github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/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/chenfeining/golangci-lint/pkg/config" 10 "github.com/chenfeining/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]any{ 18 "ignore-underscore-vars": false, 19 "disable-dec-num-check": true, 20 "disable-type-dec-num-check": false, 21 "disable-const-dec-num-check": false, 22 "disable-var-dec-num-check": false, 23 "disable-dec-order-check": true, 24 "disable-init-func-first-check": true, 25 } 26 27 if settings != nil { 28 cfg["dec-order"] = strings.Join(settings.DecOrder, ",") 29 cfg["ignore-underscore-vars"] = settings.IgnoreUnderscoreVars 30 cfg["disable-dec-num-check"] = settings.DisableDecNumCheck 31 cfg["disable-type-dec-num-check"] = settings.DisableTypeDecNumCheck 32 cfg["disable-const-dec-num-check"] = settings.DisableConstDecNumCheck 33 cfg["disable-var-dec-num-check"] = settings.DisableVarDecNumCheck 34 cfg["disable-dec-order-check"] = settings.DisableDecOrderCheck 35 cfg["disable-init-func-first-check"] = settings.DisableInitFuncFirstCheck 36 } 37 38 return goanalysis.NewLinter( 39 a.Name, 40 a.Doc, 41 []*analysis.Analyzer{a}, 42 map[string]map[string]any{a.Name: cfg}, 43 ).WithLoadMode(goanalysis.LoadModeSyntax) 44 }