@@ -17,9 +17,9 @@ import (
17
17
// rules that can compare different properties of the Issues struct.
18
18
19
19
const (
20
- fileOrderName = "file"
21
- linterOrderName = "linter"
22
- linterSeverityName = "severity"
20
+ orderNameFile = "file"
21
+ orderNameLinter = "linter"
22
+ orderNameSeverity = "severity"
23
23
)
24
24
25
25
var _ Processor = (* SortResults )(nil )
@@ -35,11 +35,11 @@ func NewSortResults(cfg *config.Config) *SortResults {
35
35
cmps : map [string ][]comparator {
36
36
// For sorting we are comparing (in next order):
37
37
// file names, line numbers, position, and finally - giving up.
38
- fileOrderName : {& byName {}, & byLine {}, & byColumn {}},
38
+ orderNameFile : {& byFileName {}, & byLine {}, & byColumn {}},
39
39
// For sorting we are comparing: linter name
40
- linterOrderName : {& byLinter {}},
40
+ orderNameLinter : {& byLinter {}},
41
41
// For sorting we are comparing: severity
42
- linterSeverityName : {& bySeverity {}},
42
+ orderNameSeverity : {& bySeverity {}},
43
43
},
44
44
cfg : & cfg .Output ,
45
45
}
@@ -52,7 +52,7 @@ func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) {
52
52
}
53
53
54
54
if len (sr .cfg .SortOrder ) == 0 {
55
- sr .cfg .SortOrder = []string {fileOrderName }
55
+ sr .cfg .SortOrder = []string {orderNameFile }
56
56
}
57
57
58
58
var cmps []comparator
@@ -64,13 +64,13 @@ func (sr SortResults) Process(issues []result.Issue) ([]result.Issue, error) {
64
64
}
65
65
}
66
66
67
- cmp , err := mergeComparator (cmps )
67
+ cmp , err := mergeComparators (cmps )
68
68
if err != nil {
69
69
return nil , err
70
70
}
71
71
72
72
sort .Slice (issues , func (i , j int ) bool {
73
- return cmp .Compare (& issues [i ], & issues [j ]) == Less
73
+ return cmp .Compare (& issues [i ], & issues [j ]) == less
74
74
})
75
75
76
76
return issues , nil
@@ -83,31 +83,31 @@ func (sr SortResults) Finish() {}
83
83
type compareResult int
84
84
85
85
const (
86
- Less compareResult = iota - 1
87
- Equal
88
- Greater
89
- None
86
+ less compareResult = iota - 1
87
+ equal
88
+ greater
89
+ none
90
90
)
91
91
92
92
func (c compareResult ) isNeutral () bool {
93
93
// return true if compare result is incomparable or equal.
94
- return c == None || c == Equal
94
+ return c == none || c == equal
95
95
}
96
96
97
97
func (c compareResult ) String () string {
98
98
switch c {
99
- case Less :
100
- return "Less "
101
- case Equal :
102
- return "Equal "
103
- case Greater :
104
- return "Greater "
99
+ case less :
100
+ return "less "
101
+ case equal :
102
+ return "equal "
103
+ case greater :
104
+ return "greater "
105
105
default :
106
- return "None "
106
+ return "none "
107
107
}
108
108
}
109
109
110
- // comparator describe how to implement compare for two "issues" lexicographically
110
+ // comparator describes how to implement compare for two "issues".
111
111
type comparator interface {
112
112
Compare (a , b * result.Issue ) compareResult
113
113
Next () comparator
@@ -116,26 +116,25 @@ type comparator interface {
116
116
}
117
117
118
118
var (
119
- _ comparator = (* byName )(nil )
119
+ _ comparator = (* byFileName )(nil )
120
120
_ comparator = (* byLine )(nil )
121
121
_ comparator = (* byColumn )(nil )
122
122
_ comparator = (* byLinter )(nil )
123
123
_ comparator = (* bySeverity )(nil )
124
124
)
125
125
126
- type byName struct { next comparator }
126
+ type byFileName struct { next comparator }
127
127
128
- func (cmp * byName ) Next () comparator { return cmp .next }
128
+ func (cmp * byFileName ) Next () comparator { return cmp .next }
129
129
130
- func (cmp * byName ) AddNext (c comparator ) comparator {
130
+ func (cmp * byFileName ) AddNext (c comparator ) comparator {
131
131
cmp .next = c
132
132
return cmp
133
133
}
134
134
135
- func (cmp * byName ) Compare (a , b * result.Issue ) compareResult {
136
- var res compareResult
137
-
138
- if res = compareResult (strings .Compare (a .FilePath (), b .FilePath ())); ! res .isNeutral () {
135
+ func (cmp * byFileName ) Compare (a , b * result.Issue ) compareResult {
136
+ res := compareResult (strings .Compare (a .FilePath (), b .FilePath ()))
137
+ if ! res .isNeutral () {
139
138
return res
140
139
}
141
140
@@ -146,8 +145,8 @@ func (cmp *byName) Compare(a, b *result.Issue) compareResult {
146
145
return res
147
146
}
148
147
149
- func (cmp * byName ) String () string {
150
- return comparatorToString ("byName " , cmp )
148
+ func (cmp * byFileName ) String () string {
149
+ return comparatorToString ("byFileName " , cmp )
151
150
}
152
151
153
152
type byLine struct { next comparator }
@@ -160,9 +159,8 @@ func (cmp *byLine) AddNext(c comparator) comparator {
160
159
}
161
160
162
161
func (cmp * byLine ) Compare (a , b * result.Issue ) compareResult {
163
- var res compareResult
164
-
165
- if res = numericCompare (a .Line (), b .Line ()); ! res .isNeutral () {
162
+ res := numericCompare (a .Line (), b .Line ())
163
+ if ! res .isNeutral () {
166
164
return res
167
165
}
168
166
@@ -187,9 +185,8 @@ func (cmp *byColumn) AddNext(c comparator) comparator {
187
185
}
188
186
189
187
func (cmp * byColumn ) Compare (a , b * result.Issue ) compareResult {
190
- var res compareResult
191
-
192
- if res = numericCompare (a .Column (), b .Column ()); ! res .isNeutral () {
188
+ res := numericCompare (a .Column (), b .Column ())
189
+ if ! res .isNeutral () {
193
190
return res
194
191
}
195
192
@@ -214,9 +211,8 @@ func (cmp *byLinter) AddNext(c comparator) comparator {
214
211
}
215
212
216
213
func (cmp * byLinter ) Compare (a , b * result.Issue ) compareResult {
217
- var res compareResult
218
-
219
- if res = compareResult (strings .Compare (a .FromLinter , b .FromLinter )); ! res .isNeutral () {
214
+ res := compareResult (strings .Compare (a .FromLinter , b .FromLinter ))
215
+ if ! res .isNeutral () {
220
216
return res
221
217
}
222
218
@@ -241,9 +237,8 @@ func (cmp *bySeverity) AddNext(c comparator) comparator {
241
237
}
242
238
243
239
func (cmp * bySeverity ) Compare (a , b * result.Issue ) compareResult {
244
- var res compareResult
245
-
246
- if res = severityCompare (a .Severity , b .Severity ); ! res .isNeutral () {
240
+ res := severityCompare (a .Severity , b .Severity )
241
+ if ! res .isNeutral () {
247
242
return res
248
243
}
249
244
@@ -258,7 +253,7 @@ func (cmp *bySeverity) String() string {
258
253
return comparatorToString ("bySeverity" , cmp )
259
254
}
260
255
261
- func mergeComparator (cmps []comparator ) (comparator , error ) {
256
+ func mergeComparators (cmps []comparator ) (comparator , error ) {
262
257
if len (cmps ) == 0 {
263
258
return nil , errors .New ("no comparator" )
264
259
}
@@ -277,14 +272,22 @@ func severityCompare(a, b string) compareResult {
277
272
if slices .Contains (classic , a ) && slices .Contains (classic , b ) {
278
273
switch {
279
274
case slices .Index (classic , a ) > slices .Index (classic , b ):
280
- return Greater
275
+ return greater
281
276
case slices .Index (classic , a ) < slices .Index (classic , b ):
282
- return Less
277
+ return less
283
278
default :
284
- return Equal
279
+ return equal
285
280
}
286
281
}
287
282
283
+ if slices .Contains (classic , a ) {
284
+ return greater
285
+ }
286
+
287
+ if slices .Contains (classic , b ) {
288
+ return less
289
+ }
290
+
288
291
return compareResult (strings .Compare (a , b ))
289
292
}
290
293
@@ -299,16 +302,16 @@ func numericCompare(a, b int) compareResult {
299
302
300
303
switch {
301
304
case isZeroValuesBoth || isEqual :
302
- return Equal
305
+ return equal
303
306
case isValuesInvalid || isZeroValueInA || isZeroValueInB :
304
- return None
307
+ return none
305
308
case a > b :
306
- return Greater
309
+ return greater
307
310
case a < b :
308
- return Less
311
+ return less
309
312
}
310
313
311
- return Equal
314
+ return equal
312
315
}
313
316
314
317
func comparatorToString (name string , c comparator ) string {
0 commit comments