github.com/yoheimuta/protolint@v0.49.8-0.20240515023657-4ecaebb7575d/internal/linter/config/rules.go (about) 1 package config 2 3 import "github.com/yoheimuta/protolint/internal/stringsutil" 4 5 // Rules represents the enabled rule set. 6 type Rules struct { 7 NoDefault bool `yaml:"no_default" json:"no_default" toml:"no_default"` 8 AllDefault bool `yaml:"all_default" json:"all_default" toml:"all_default"` 9 Add []string `yaml:"add" json:"add" toml:"add"` 10 Remove []string `yaml:"remove" json:"remove" toml:"remove"` 11 } 12 13 func (r Rules) shouldSkipRule( 14 ruleID string, 15 defaultRuleIDs []string, 16 ) bool { 17 var ruleIDs []string 18 if !r.NoDefault { 19 ruleIDs = append(ruleIDs, defaultRuleIDs...) 20 } 21 22 for _, add := range r.Add { 23 ruleIDs = append(ruleIDs, add) 24 } 25 26 var newRuleIDs []string 27 for _, id := range ruleIDs { 28 if !stringsutil.ContainsStringInSlice(id, r.Remove) { 29 newRuleIDs = append(newRuleIDs, id) 30 } 31 } 32 33 return !stringsutil.ContainsStringInSlice(ruleID, newRuleIDs) 34 }