1
1
package main
2
2
3
3
import (
4
- "sort"
4
+ "cmp"
5
+ "slices"
5
6
"strconv"
6
7
"strings"
7
8
@@ -14,26 +15,14 @@ func extractLineNumber(s string) int {
14
15
return lineNumber
15
16
}
16
17
17
- type sortBySeverity []* issue.Issue
18
-
19
- func (s sortBySeverity ) Len () int { return len (s ) }
20
-
21
- func (s sortBySeverity ) Less (i , j int ) bool {
22
- if s [i ].Severity == s [j ].Severity {
23
- if s [i ].What == s [j ].What {
24
- if s [i ].File == s [j ].File {
25
- return extractLineNumber (s [i ].Line ) > extractLineNumber (s [j ].Line )
26
- }
27
- return s [i ].File > s [j ].File
28
- }
29
- return s [i ].What > s [j ].What
30
- }
31
- return s [i ].Severity > s [j ].Severity
32
- }
33
-
34
- func (s sortBySeverity ) Swap (i , j int ) { s [i ], s [j ] = s [j ], s [i ] }
35
-
36
18
// sortIssues sorts the issues by severity in descending order
37
19
func sortIssues (issues []* issue.Issue ) {
38
- sort .Sort (sortBySeverity (issues ))
20
+ slices .SortFunc (issues , func (i , j * issue.Issue ) int {
21
+ return - cmp .Or (
22
+ cmp .Compare (i .Severity , j .Severity ),
23
+ cmp .Compare (i .What , j .What ),
24
+ cmp .Compare (i .File , j .File ),
25
+ cmp .Compare (extractLineNumber (i .Line ), extractLineNumber (j .Line )),
26
+ )
27
+ })
39
28
}
0 commit comments