From 2aaa272ea1e6261a298024cc5c490878984ba07e Mon Sep 17 00:00:00 2001 From: Ryo Nihei Date: Sun, 18 Jul 2021 23:16:52 +0900 Subject: Sort error messages before printing them --- error/error.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/error/error.go b/error/error.go index f953e3b..1781f2a 100644 --- a/error/error.go +++ b/error/error.go @@ -4,6 +4,7 @@ import ( "bufio" "fmt" "os" + "sort" "strings" ) @@ -14,9 +15,18 @@ func (e SpecErrors) Error() string { return "" } + sorted := make([]*SpecError, len(e)) + copy(sorted, e) + sort.SliceStable(sorted, func(i, j int) bool { + return sorted[i].Row < sorted[j].Row + }) + sort.SliceStable(sorted, func(i, j int) bool { + return sorted[i].FilePath < sorted[j].FilePath + }) + var b strings.Builder - fmt.Fprintf(&b, "%v", e[0]) - for _, err := range e[1:] { + fmt.Fprintf(&b, "%v", sorted[0]) + for _, err := range sorted[1:] { fmt.Fprintf(&b, "\n%v", err) } -- cgit v1.2.3