@@ -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,23 +116,23 @@ 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 {
135
+ func (cmp * byFileName ) Compare (a , b * result.Issue ) compareResult {
136
136
var res compareResult
137
137
138
138
if res = compareResult (strings .Compare (a .FilePath (), b .FilePath ())); ! res .isNeutral () {
@@ -146,8 +146,8 @@ func (cmp *byName) Compare(a, b *result.Issue) compareResult {
146
146
return res
147
147
}
148
148
149
- func (cmp * byName ) String () string {
150
- return comparatorToString ("byName " , cmp )
149
+ func (cmp * byFileName ) String () string {
150
+ return comparatorToString ("byFileName " , cmp )
151
151
}
152
152
153
153
type byLine struct { next comparator }
@@ -258,7 +258,7 @@ func (cmp *bySeverity) String() string {
258
258
return comparatorToString ("bySeverity" , cmp )
259
259
}
260
260
261
- func mergeComparator (cmps []comparator ) (comparator , error ) {
261
+ func mergeComparators (cmps []comparator ) (comparator , error ) {
262
262
if len (cmps ) == 0 {
263
263
return nil , errors .New ("no comparator" )
264
264
}
@@ -277,14 +277,22 @@ func severityCompare(a, b string) compareResult {
277
277
if slices .Contains (classic , a ) && slices .Contains (classic , b ) {
278
278
switch {
279
279
case slices .Index (classic , a ) > slices .Index (classic , b ):
280
- return Greater
280
+ return greater
281
281
case slices .Index (classic , a ) < slices .Index (classic , b ):
282
- return Less
282
+ return less
283
283
default :
284
- return Equal
284
+ return equal
285
285
}
286
286
}
287
287
288
+ if slices .Contains (classic , a ) {
289
+ return greater
290
+ }
291
+
292
+ if slices .Contains (classic , b ) {
293
+ return less
294
+ }
295
+
288
296
return compareResult (strings .Compare (a , b ))
289
297
}
290
298
@@ -299,16 +307,16 @@ func numericCompare(a, b int) compareResult {
299
307
300
308
switch {
301
309
case isZeroValuesBoth || isEqual :
302
- return Equal
310
+ return equal
303
311
case isValuesInvalid || isZeroValueInA || isZeroValueInB :
304
- return None
312
+ return none
305
313
case a > b :
306
- return Greater
314
+ return greater
307
315
case a < b :
308
- return Less
316
+ return less
309
317
}
310
318
311
- return Equal
319
+ return equal
312
320
}
313
321
314
322
func comparatorToString (name string , c comparator ) string {
0 commit comments