@@ -83,14 +83,16 @@ func Parse(confPath string) (*lint.Config, error) {
8383}
8484
8585// Validate validates given config
86- func Validate (conf * lint.Config ) error {
87- if conf .Formatter == "" {
88- return errors .New ("formatter is empty" )
89- }
86+ func Validate (conf * lint.Config ) []error {
87+ var errs []error
9088
91- _ , ok := globalRegistry .GetFormatter (conf .Formatter )
92- if ! ok {
93- return fmt .Errorf ("unknown formatter '%s'" , conf .Formatter )
89+ if conf .Formatter == "" {
90+ errs = append (errs , errors .New ("formatter is empty" ))
91+ } else {
92+ _ , ok := globalRegistry .GetFormatter (conf .Formatter )
93+ if ! ok {
94+ errs = append (errs , fmt .Errorf ("unknown formatter '%s'" , conf .Formatter ))
95+ }
9496 }
9597
9698 for ruleName , r := range conf .Rules {
@@ -99,22 +101,22 @@ func Validate(conf *lint.Config) error {
99101 case lint .SeverityError :
100102 case lint .SeverityWarn :
101103 default :
102- return fmt .Errorf ("unknown severity level '%s' for rule '%s'" , r .Severity , ruleName )
104+ errs = append ( errs , fmt .Errorf ("unknown severity level '%s' for rule '%s'" , r .Severity , ruleName ) )
103105 }
104106
105107 // Check if rule is registered
106108 ruleData , ok := globalRegistry .GetRule (ruleName )
107109 if ! ok {
108- return fmt .Errorf ("unknown rule '%s'" , ruleName )
110+ errs = append (errs , fmt .Errorf ("unknown rule '%s'" , ruleName ))
111+ continue
109112 }
110113
111114 err := ruleData .Apply (r .Argument , r .Flags )
112115 if err != nil {
113- return err
116+ errs = append ( errs , err )
114117 }
115118 }
116-
117- return nil
119+ return errs
118120}
119121
120122// WriteConfToFile util func to write config object to given file
0 commit comments