Fix #415: sort linters list in help commands
This commit is contained in:
parent
fd825488bf
commit
f516771a92
42
README.md
42
README.md
@ -185,16 +185,16 @@ GolangCI-Lint can be used with zero configuration. By default the following lint
|
|||||||
```bash
|
```bash
|
||||||
$ golangci-lint help linters
|
$ golangci-lint help linters
|
||||||
Enabled by default linters:
|
Enabled by default linters:
|
||||||
govet (vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
|
|
||||||
errcheck: Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: true, auto-fix: false]
|
|
||||||
staticcheck: Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false]
|
|
||||||
unused: Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
|
|
||||||
gosimple: Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false]
|
|
||||||
structcheck: Finds an unused struct fields [fast: true, auto-fix: false]
|
|
||||||
varcheck: Finds unused global variables and constants [fast: true, auto-fix: false]
|
|
||||||
ineffassign: Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
|
|
||||||
deadcode: Finds unused code [fast: true, auto-fix: false]
|
deadcode: Finds unused code [fast: true, auto-fix: false]
|
||||||
|
errcheck: Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: true, auto-fix: false]
|
||||||
|
gosimple: Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false]
|
||||||
|
govet (vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
|
||||||
|
ineffassign: Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
|
||||||
|
staticcheck: Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false]
|
||||||
|
structcheck: Finds an unused struct fields [fast: true, auto-fix: false]
|
||||||
typecheck: Like the front-end of a Go compiler, parses and type-checks Go code [fast: true, auto-fix: false]
|
typecheck: Like the front-end of a Go compiler, parses and type-checks Go code [fast: true, auto-fix: false]
|
||||||
|
unused: Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
|
||||||
|
varcheck: Finds unused global variables and constants [fast: true, auto-fix: false]
|
||||||
```
|
```
|
||||||
|
|
||||||
and the following linters are disabled by default:
|
and the following linters are disabled by default:
|
||||||
@ -203,27 +203,27 @@ and the following linters are disabled by default:
|
|||||||
$ golangci-lint help linters
|
$ golangci-lint help linters
|
||||||
...
|
...
|
||||||
Disabled by default linters:
|
Disabled by default linters:
|
||||||
golint: Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast: true, auto-fix: false]
|
depguard: Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
|
||||||
stylecheck: Stylecheck is a replacement for golint [fast: false, auto-fix: false]
|
|
||||||
gosec (gas): Inspects source code for security problems [fast: true, auto-fix: false]
|
|
||||||
interfacer: Linter that suggests narrower interface types [fast: false, auto-fix: false]
|
|
||||||
unconvert: Remove unnecessary type conversions [fast: true, auto-fix: false]
|
|
||||||
dupl: Tool for code clone detection [fast: true, auto-fix: false]
|
dupl: Tool for code clone detection [fast: true, auto-fix: false]
|
||||||
|
gochecknoglobals: Checks that no globals are present in Go code [fast: true, auto-fix: false]
|
||||||
|
gochecknoinits: Checks that no init functions are present in Go code [fast: true, auto-fix: false]
|
||||||
goconst: Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
|
goconst: Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
|
||||||
|
gocritic: The most opinionated Go source code linter [fast: true, auto-fix: false]
|
||||||
gocyclo: Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
|
gocyclo: Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
|
||||||
gofmt: Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
|
gofmt: Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
|
||||||
goimports: Goimports does everything that gofmt does. Additionally it checks unused imports [fast: true, auto-fix: true]
|
goimports: Goimports does everything that gofmt does. Additionally it checks unused imports [fast: true, auto-fix: true]
|
||||||
maligned: Tool to detect Go structs that would take less memory if their fields were sorted [fast: true, auto-fix: false]
|
golint: Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast: true, auto-fix: false]
|
||||||
depguard: Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
|
gosec (gas): Inspects source code for security problems [fast: true, auto-fix: false]
|
||||||
misspell: Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
|
interfacer: Linter that suggests narrower interface types [fast: false, auto-fix: false]
|
||||||
lll: Reports long lines [fast: true, auto-fix: false]
|
lll: Reports long lines [fast: true, auto-fix: false]
|
||||||
unparam: Reports unused function parameters [fast: false, auto-fix: false]
|
maligned: Tool to detect Go structs that would take less memory if their fields were sorted [fast: true, auto-fix: false]
|
||||||
|
misspell: Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
|
||||||
nakedret: Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
|
nakedret: Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
|
||||||
prealloc: Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false]
|
prealloc: Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false]
|
||||||
scopelint: Scopelint checks for unpinned variables in go programs [fast: true, auto-fix: false]
|
scopelint: Scopelint checks for unpinned variables in go programs [fast: true, auto-fix: false]
|
||||||
gocritic: The most opinionated Go source code linter [fast: true, auto-fix: false]
|
stylecheck: Stylecheck is a replacement for golint [fast: false, auto-fix: false]
|
||||||
gochecknoinits: Checks that no init functions are present in Go code [fast: true, auto-fix: false]
|
unconvert: Remove unnecessary type conversions [fast: true, auto-fix: false]
|
||||||
gochecknoglobals: Checks that no globals are present in Go code [fast: true, auto-fix: false]
|
unparam: Reports unused function parameters [fast: false, auto-fix: false]
|
||||||
```
|
```
|
||||||
|
|
||||||
Pass `-E/--enable` to enable linter and `-D/--disable` to disable:
|
Pass `-E/--enable` to enable linter and `-D/--disable` to disable:
|
||||||
@ -457,7 +457,7 @@ Flags:
|
|||||||
-D, --disable strings Disable specific linter
|
-D, --disable strings Disable specific linter
|
||||||
--enable-all Enable all linters
|
--enable-all Enable all linters
|
||||||
--disable-all Disable all linters
|
--disable-all Disable all linters
|
||||||
-p, --presets strings Enable presets (bugs|unused|format|style|complexity|performance) of linters. Run 'golangci-lint linters' to see them. This option implies option --disable-all
|
-p, --presets strings Enable presets (bugs|complexity|format|performance|style|unused) of linters. Run 'golangci-lint linters' to see them. This option implies option --disable-all
|
||||||
--fast Run only fast linters from enabled linters set (first run won't be fast)
|
--fast Run only fast linters from enabled linters set (first run won't be fast)
|
||||||
-e, --exclude strings Exclude issue by regexp
|
-e, --exclude strings Exclude issue by regexp
|
||||||
--exclude-use-default Use or not use default excludes:
|
--exclude-use-default Use or not use default excludes:
|
||||||
|
@ -3,6 +3,7 @@ package commands
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/fatih/color"
|
"github.com/fatih/color"
|
||||||
@ -36,6 +37,9 @@ func (e *Executor) initHelp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func printLinterConfigs(lcs []*linter.Config) {
|
func printLinterConfigs(lcs []*linter.Config) {
|
||||||
|
sort.Slice(lcs, func(i, j int) bool {
|
||||||
|
return strings.Compare(lcs[i].Name(), lcs[j].Name()) < 0
|
||||||
|
})
|
||||||
for _, lc := range lcs {
|
for _, lc := range lcs {
|
||||||
altNamesStr := ""
|
altNamesStr := ""
|
||||||
if len(lc.AlternativeNames) != 0 {
|
if len(lc.AlternativeNames) != 0 {
|
||||||
@ -72,6 +76,7 @@ func (e *Executor) executeLintersHelp(_ *cobra.Command, args []string) {
|
|||||||
for _, lc := range linters {
|
for _, lc := range linters {
|
||||||
linterNames = append(linterNames, lc.Name())
|
linterNames = append(linterNames, lc.Name())
|
||||||
}
|
}
|
||||||
|
sort.Strings(linterNames)
|
||||||
fmt.Fprintf(logutils.StdOut, "%s: %s\n", color.YellowString(p), strings.Join(linterNames, ", "))
|
fmt.Fprintf(logutils.StdOut, "%s: %s\n", color.YellowString(p), strings.Join(linterNames, ", "))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,8 +28,8 @@ func NewManager(cfg *config.Config) *Manager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (Manager) AllPresets() []string {
|
func (Manager) AllPresets() []string {
|
||||||
return []string{linter.PresetBugs, linter.PresetUnused, linter.PresetFormatting,
|
return []string{linter.PresetBugs, linter.PresetComplexity, linter.PresetFormatting,
|
||||||
linter.PresetStyle, linter.PresetComplexity, linter.PresetPerformance}
|
linter.PresetPerformance, linter.PresetStyle, linter.PresetUnused}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Manager) allPresetsSet() map[string]bool {
|
func (m Manager) allPresetsSet() map[string]bool {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user