github.com/chenfeining/golangci-lint@v1.0.2-0.20230730162517-14c6c67868df/pkg/commands/linters.go (about) 1 package commands 2 3 import ( 4 "fmt" 5 6 "github.com/fatih/color" 7 "github.com/spf13/cobra" 8 9 "github.com/chenfeining/golangci-lint/pkg/lint/linter" 10 ) 11 12 func (e *Executor) initLinters() { 13 e.lintersCmd = &cobra.Command{ 14 Use: "linters", 15 Short: "List current linters configuration", 16 Args: cobra.NoArgs, 17 ValidArgsFunction: cobra.NoFileCompletions, 18 RunE: e.executeLinters, 19 } 20 e.rootCmd.AddCommand(e.lintersCmd) 21 e.initRunConfiguration(e.lintersCmd) 22 } 23 24 // executeLinters runs the 'linters' CLI command, which displays the supported linters. 25 func (e *Executor) executeLinters(_ *cobra.Command, _ []string) error { 26 enabledLintersMap, err := e.EnabledLintersSet.GetEnabledLintersMap() 27 if err != nil { 28 return fmt.Errorf("can't get enabled linters: %w", err) 29 } 30 31 color.Green("Enabled by your configuration linters:\n") 32 var enabledLinters []*linter.Config 33 for _, lc := range enabledLintersMap { 34 if lc.Internal { 35 continue 36 } 37 38 enabledLinters = append(enabledLinters, lc) 39 } 40 printLinterConfigs(enabledLinters) 41 42 var disabledLCs []*linter.Config 43 for _, lc := range e.DBManager.GetAllSupportedLinterConfigs() { 44 if lc.Internal { 45 continue 46 } 47 48 if enabledLintersMap[lc.Name()] == nil { 49 disabledLCs = append(disabledLCs, lc) 50 } 51 } 52 53 color.Red("\nDisabled by your configuration linters:\n") 54 printLinterConfigs(disabledLCs) 55 56 return nil 57 }