@@ -8,12 +8,14 @@ import (
88 "log"
99 "os"
1010 "runtime"
11+ "sort"
1112 "strings"
1213 "time"
1314
1415 "github.com/fatih/color"
1516 "github.com/spf13/cobra"
1617 "github.com/spf13/pflag"
18+ "golang.org/x/exp/maps"
1719
1820 "github.com/golangci/golangci-lint/pkg/config"
1921 "github.com/golangci/golangci-lint/pkg/exitcodes"
@@ -125,7 +127,7 @@ func initFlagSet(fs *pflag.FlagSet, cfg *config.Config, m *lintersdb.Manager, is
125127 const allowSerialDesc = "Allow multiple golangci-lint instances running, but serialize them around a lock. " +
126128 "If false (default) - golangci-lint exits with an error if it fails to acquire file lock on start."
127129 fs .BoolVar (& rc .AllowSerialRunners , "allow-serial-runners" , false , wh (allowSerialDesc ))
128- fs .BoolVar (& rc .ShowStatsPerLinter , "show-stats-per-linter " , false , wh ("Show stats per linter" ))
130+ fs .BoolVar (& rc .ShowStats , "show-stats" , false , wh ("Show statistics per linter" ))
129131
130132 // Linters settings config
131133 lsc := & cfg .LintersSettings
@@ -493,18 +495,27 @@ func (e *Executor) createPrinter(format string, w io.Writer) (printers.Printer,
493495}
494496
495497func (e * Executor ) printStats (issues []result.Issue ) {
496- if e .cfg .Run .ShowStatsPerLinter {
497- stats := map [string ]int {}
498- for idx := range issues {
499- stats [issues [idx ].FromLinter ]++
500- }
501- e .runCmd .Println ("Stats per linter:" )
502- for linter , count := range stats {
503- e .runCmd .Printf (" %s: %d\n " , linter , count )
504- }
505- if len (stats ) == 0 {
506- e .runCmd .Println (" no issues" )
507- }
498+ if ! e .cfg .Run .ShowStats {
499+ return
500+ }
501+
502+ if len (issues ) == 0 {
503+ e .runCmd .Println ("0 report" )
504+ return
505+ }
506+
507+ stats := map [string ]int {}
508+ for idx := range issues {
509+ stats [issues [idx ].FromLinter ]++
510+ }
511+
512+ e .runCmd .Printf ("%d reports:\n " , len (issues ))
513+
514+ keys := maps .Keys (stats )
515+ sort .Strings (keys )
516+
517+ for _ , key := range keys {
518+ e .runCmd .Printf ("* %s: %d\n " , key , stats [key ])
508519 }
509520}
510521
0 commit comments