1601 lines
39 KiB
JSON
1601 lines
39 KiB
JSON
[
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/alingse/asasalint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "1.47.0",
|
|
"name": "asasalint",
|
|
"desc": "check for pass []any as any in variadic func(...any)"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"bugs",
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/tdakkota/asciicheck",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.26.0",
|
|
"name": "asciicheck",
|
|
"desc": "checks that all code identifiers does not have non-ASCII symbols in the name"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/breml/bidichk",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "1.43.0",
|
|
"name": "bidichk",
|
|
"desc": "Checks for dangerous unicode character sequences"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"performance",
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/timakin/bodyclose",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.18.0",
|
|
"name": "bodyclose",
|
|
"desc": "checks whether HTTP response body is closed successfully"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sivchari/containedctx",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "1.44.0",
|
|
"name": "containedctx",
|
|
"desc": "containedctx is a linter that detects struct contained context.Context field"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/kkHAIKE/contextcheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.43.0",
|
|
"name": "contextcheck",
|
|
"desc": "check whether the function uses a non-inherited context"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/bkielbasa/cyclop",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.37.0",
|
|
"name": "cyclop",
|
|
"desc": "checks function and package cyclomatic complexity"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"format",
|
|
"style"
|
|
],
|
|
"originalURL": "https://gitlab.com/bosi/decorder",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.44.0",
|
|
"name": "decorder",
|
|
"desc": "check declaration order and count of types, constants, variables and functions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"originalURL": "https://github.com/remyoudompheng/go-misc/tree/master/deadcode",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.49.0",
|
|
"message": "The owner seems to have abandoned the linter.",
|
|
"replacement": "unused"
|
|
},
|
|
"name": "deadcode",
|
|
"desc": "Finds unused code"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"import",
|
|
"module"
|
|
],
|
|
"originalURL": "https://github.com/OpenPeeDeeP/depguard",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.4.0",
|
|
"name": "depguard",
|
|
"desc": "Go linter that checks if package imports are in a list of acceptable packages"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/alexkohler/dogsled",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.19.0",
|
|
"name": "dogsled",
|
|
"desc": "Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f())"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/mibk/dupl",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.0.0",
|
|
"name": "dupl",
|
|
"desc": "Tool for code clone detection"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"comment"
|
|
],
|
|
"originalURL": "https://github.com/Abirdcfly/dupword",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "1.50.0",
|
|
"name": "dupword",
|
|
"desc": "checks for duplicate words in the source code"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/charithe/durationcheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.37.0",
|
|
"name": "durationcheck",
|
|
"desc": "check for two durations multiplied together"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"error"
|
|
],
|
|
"originalURL": "https://github.com/kisielk/errcheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"name": "errcheck",
|
|
"desc": "errcheck is a program for checking for unchecked errors in Go code. These unchecked errors can be critical bugs in some cases"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/breml/errchkjson",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "1.44.0",
|
|
"name": "errchkjson",
|
|
"desc": "Checks types passed to the json encoding functions. Reports unsupported types and reports occations, where the check for the returned error can be omitted."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/Antonboom/errname",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.42.0",
|
|
"name": "errname",
|
|
"desc": "Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"error"
|
|
],
|
|
"originalURL": "https://github.com/polyfloyd/go-errorlint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.32.0",
|
|
"name": "errorlint",
|
|
"desc": "errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"sql"
|
|
],
|
|
"originalURL": "https://github.com/lufeee/execinquery",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.46.0",
|
|
"name": "execinquery",
|
|
"desc": "execinquery is a linter about query string checker in Query function which reads your Go src files and warning it finds"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/nishanths/exhaustive",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": " v1.28.0",
|
|
"name": "exhaustive",
|
|
"desc": "check exhaustiveness of enum switch statements"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/mbilski/exhaustivestruct",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.32.0",
|
|
"deprecation": {
|
|
"since": "v1.46.0",
|
|
"message": "The owner seems to have abandoned the linter.",
|
|
"replacement": "exhaustruct"
|
|
},
|
|
"name": "exhaustivestruct",
|
|
"desc": "Checks if all struct's fields are initialized"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/GaijinEntertainment/go-exhaustruct",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.46.0",
|
|
"name": "exhaustruct",
|
|
"desc": "Checks if all structure fields are initialized"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/kyoh86/exportloopref",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.28.0",
|
|
"name": "exportloopref",
|
|
"desc": "checks for pointers to enclosing loop variables"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/ashanbrown/forbidigo",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.34.0",
|
|
"name": "forbidigo",
|
|
"desc": "Forbids identifiers"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/gostaticanalysis/forcetypeassert",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.38.0",
|
|
"name": "forcetypeassert",
|
|
"desc": "finds forced type assertions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/ultraware/funlen",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.18.0",
|
|
"name": "funlen",
|
|
"desc": "Tool for detection of long functions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"format",
|
|
"import"
|
|
],
|
|
"originalURL": "https://github.com/daixiang0/gci",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.30.0",
|
|
"name": "gci",
|
|
"desc": "Gci controls Go package import order and makes it always deterministic."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/nunnatsa/ginkgolinter",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.51.0",
|
|
"name": "ginkgolinter",
|
|
"desc": "enforces standards of using ginkgo and gomega"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/leighmcculloch/gocheckcompilerdirectives",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.51.0",
|
|
"name": "gocheckcompilerdirectives",
|
|
"desc": "Checks that go compiler directive comments (//go:) are valid."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/leighmcculloch/gochecknoglobals",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.12.0",
|
|
"name": "gochecknoglobals",
|
|
"desc": "check that no global variables exist\n\nThis analyzer checks for global variables and errors on any found.\n\nA global variable is a variable declared in package scope and that can be read\nand written to by any function within the package. Global variables can cause\nside effects which are difficult to keep track of. A code in one function may\nchange the variables state while another unrelated chunk of code may be\neffected by it."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.12.0",
|
|
"name": "gochecknoinits",
|
|
"desc": "Checks that no init functions are present in Go code"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/alecthomas/go-check-sumtype",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.55.0",
|
|
"name": "gochecksumtype",
|
|
"desc": "Run exhaustiveness checks on Go \"sum types\""
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/uudashr/gocognit",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.20.0",
|
|
"name": "gocognit",
|
|
"desc": "Computes and checks the cognitive complexity of functions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/jgautheron/goconst",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.0.0",
|
|
"name": "goconst",
|
|
"desc": "Finds repeated strings that could be replaced by a constant"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"metalinter"
|
|
],
|
|
"originalURL": "https://github.com/go-critic/go-critic",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.12.0",
|
|
"name": "gocritic",
|
|
"desc": "Provides diagnostics that check for bugs, performance and style issues.\nExtensible without recompilation through dynamic rules.\nDynamic rules are written declaratively with AST patterns, filters, report message and optional suggestion."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/fzipp/gocyclo",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.0.0",
|
|
"name": "gocyclo",
|
|
"desc": "Computes and checks the cyclomatic complexity of functions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"comment"
|
|
],
|
|
"originalURL": "https://github.com/tetafro/godot",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.25.0",
|
|
"name": "godot",
|
|
"desc": "Check if comments end in a period"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"comment"
|
|
],
|
|
"originalURL": "https://github.com/matoous/godox",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.19.0",
|
|
"name": "godox",
|
|
"desc": "Tool for detection of FIXME, TODO and other comment keywords"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"error"
|
|
],
|
|
"originalURL": "https://github.com/Djarvur/go-err113",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.26.0",
|
|
"name": "goerr113",
|
|
"desc": "Go linter to check the errors handling expressions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"format"
|
|
],
|
|
"originalURL": "https://pkg.go.dev/cmd/gofmt",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.0.0",
|
|
"name": "gofmt",
|
|
"desc": "Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"format"
|
|
],
|
|
"originalURL": "https://github.com/mvdan/gofumpt",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.28.0",
|
|
"name": "gofumpt",
|
|
"desc": "Gofumpt checks whether code was gofumpt-ed."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/denis-tingaikin/go-header",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.28.0",
|
|
"name": "goheader",
|
|
"desc": "Checks is file header matches to pattern"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"format",
|
|
"import"
|
|
],
|
|
"originalURL": "https://pkg.go.dev/golang.org/x/tools/cmd/goimports",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.20.0",
|
|
"name": "goimports",
|
|
"desc": "Check import statements are formatted according to the 'goimport' command. Reformat imports in autofix mode."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/golang/lint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.41.0",
|
|
"message": "The repository of the linter has been archived by the owner.",
|
|
"replacement": "revive"
|
|
},
|
|
"name": "golint",
|
|
"desc": "Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/tommy-muehle/go-mnd",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.22.0",
|
|
"name": "gomnd",
|
|
"desc": "An analyzer to detect magic numbers."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"module"
|
|
],
|
|
"originalURL": "https://github.com/ldez/gomoddirectives",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.39.0",
|
|
"name": "gomoddirectives",
|
|
"desc": "Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"import",
|
|
"module"
|
|
],
|
|
"originalURL": "https://github.com/ryancurrah/gomodguard",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.25.0",
|
|
"name": "gomodguard",
|
|
"desc": "Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/jirfag/go-printf-func-name",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.23.0",
|
|
"name": "goprintffuncname",
|
|
"desc": "Checks that printf-like functions are named with `f` at the end."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"alternativeNames": [
|
|
"gas"
|
|
],
|
|
"originalURL": "https://github.com/securego/gosec",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"name": "gosec",
|
|
"desc": "Inspects source code for security problems"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"alternativeNames": [
|
|
"megacheck"
|
|
],
|
|
"originalURL": "https://github.com/dominikh/go-tools/tree/master/simple",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.20.0",
|
|
"name": "gosimple",
|
|
"desc": "Linter for Go source code that specializes in simplifying code"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/xen0n/gosmopolitan",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.53.0",
|
|
"name": "gosmopolitan",
|
|
"desc": "Report certain i18n/l10n anti-patterns in your Go codebase"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"metalinter"
|
|
],
|
|
"alternativeNames": [
|
|
"vet",
|
|
"vetshadow"
|
|
],
|
|
"originalURL": "https://pkg.go.dev/cmd/vet",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"name": "govet",
|
|
"desc": "Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/leonklingele/grouper",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.44.0",
|
|
"name": "grouper",
|
|
"desc": "Analyze expression groups."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/esimonov/ifshort",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.36.0",
|
|
"deprecation": {
|
|
"since": "v1.48.0",
|
|
"message": "The repository of the linter has been deprecated by the owner."
|
|
},
|
|
"name": "ifshort",
|
|
"desc": "Checks that your code uses short syntax for if-statements whenever possible."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/julz/importas",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.38.0",
|
|
"name": "importas",
|
|
"desc": "Enforces consistent import aliases"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/macabu/inamedparam",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.55.0",
|
|
"name": "inamedparam",
|
|
"desc": "reports interfaces with unnamed method parameters"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"originalURL": "https://github.com/gordonklaus/ineffassign",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.0.0",
|
|
"name": "ineffassign",
|
|
"desc": "Detects when assignments to existing variables are not used"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sashamelentyev/interfacebloat",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.49.0",
|
|
"name": "interfacebloat",
|
|
"desc": "A linter that checks the number of methods inside an interface."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/mvdan/interfacer",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.38.0",
|
|
"message": "The repository of the linter has been archived by the owner."
|
|
},
|
|
"name": "interfacer",
|
|
"desc": "Linter that suggests narrower interface types"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/butuzov/ireturn",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.43.0",
|
|
"name": "ireturn",
|
|
"desc": "Accept Interfaces, Return Concrete Types"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.8.0",
|
|
"name": "lll",
|
|
"desc": "Reports long lines"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"bugs"
|
|
],
|
|
"alternativeNames": [
|
|
"logrlint"
|
|
],
|
|
"originalURL": "https://github.com/timonwong/loggercheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.49.0",
|
|
"name": "loggercheck",
|
|
"desc": "Checks key value pairs for common logger libraries (kitlog,klog,logr,zap)."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/yagipy/maintidx",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.44.0",
|
|
"name": "maintidx",
|
|
"desc": "maintidx measures the maintainability index of each function."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/ashanbrown/makezero",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.34.0",
|
|
"name": "makezero",
|
|
"desc": "Finds slice declarations with non-zero initial length"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"performance"
|
|
],
|
|
"originalURL": "https://github.com/mdempsky/maligned",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.38.0",
|
|
"message": "The repository of the linter has been archived by the owner.",
|
|
"replacement": "govet 'fieldalignment'"
|
|
},
|
|
"name": "maligned",
|
|
"desc": "Tool to detect Go structs that would take less memory if their fields were sorted"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/butuzov/mirror",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.53.0",
|
|
"name": "mirror",
|
|
"desc": "reports wrong mirror patterns of bytes/strings usage"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"comment"
|
|
],
|
|
"originalURL": "https://github.com/client9/misspell",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.8.0",
|
|
"name": "misspell",
|
|
"desc": "Finds commonly misspelled English words"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/go-simpler/musttag",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.51.0",
|
|
"name": "musttag",
|
|
"desc": "enforce field tags in (un)marshaled structs"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/alexkohler/nakedret",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.19.0",
|
|
"name": "nakedret",
|
|
"desc": "Checks that functions with naked returns are not longer than a maximum size (can be zero)."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"complexity"
|
|
],
|
|
"originalURL": "https://github.com/nakabonne/nestif",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.25.0",
|
|
"name": "nestif",
|
|
"desc": "Reports deeply nested if statements"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/gostaticanalysis/nilerr",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.38.0",
|
|
"name": "nilerr",
|
|
"desc": "Finds the code that returns nil even if it checks that the error is not nil."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/Antonboom/nilnil",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.43.0",
|
|
"name": "nilnil",
|
|
"desc": "Checks that there is no simultaneous return of `nil` error and an invalid value."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/ssgreg/nlreturn",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.30.0",
|
|
"name": "nlreturn",
|
|
"desc": "nlreturn checks for a new line before return and branch statements to increase code clarity"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"performance",
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/sonatard/noctx",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.28.0",
|
|
"name": "noctx",
|
|
"desc": "Finds sending http request without context.Context"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/firefart/nonamedreturns",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.46.0",
|
|
"name": "nonamedreturns",
|
|
"desc": "Reports all named returns"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sivchari/nosnakecase",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.47.0",
|
|
"deprecation": {
|
|
"since": "v1.48.1",
|
|
"message": "The repository of the linter has been deprecated by the owner.",
|
|
"replacement": "revive(var-naming)"
|
|
},
|
|
"name": "nosnakecase",
|
|
"desc": "nosnakecase is a linter that detects snake case of variable naming and function name."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/stbenjam/no-sprintf-host-port",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.46.0",
|
|
"name": "nosprintfhostport",
|
|
"desc": "Checks for misuse of Sprintf to construct a host with port in a URL."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/kunwardeep/paralleltest",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.33.0",
|
|
"name": "paralleltest",
|
|
"desc": "Detects missing usage of t.Parallel() method in your Go test"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"performance"
|
|
],
|
|
"originalURL": "https://github.com/catenacyber/perfsprint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.55.0",
|
|
"name": "perfsprint",
|
|
"desc": "Checks that fmt.Sprintf can be replaced with a faster alternative."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"performance"
|
|
],
|
|
"originalURL": "https://github.com/alexkohler/prealloc",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.19.0",
|
|
"name": "prealloc",
|
|
"desc": "Finds slice declarations that could potentially be pre-allocated"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/nishanths/predeclared",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.35.0",
|
|
"name": "predeclared",
|
|
"desc": "find code that shadows one of Go's predeclared identifiers"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/yeya24/promlinter",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.40.0",
|
|
"name": "promlinter",
|
|
"desc": "Check Prometheus metrics naming via promlint"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/ghostiam/protogetter",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": true,
|
|
"since": "v1.55.0",
|
|
"name": "protogetter",
|
|
"desc": "Reports direct reads from proto message fields when getters should be used"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/curioswitch/go-reassign",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "1.49.0",
|
|
"name": "reassign",
|
|
"desc": "Checks that package variables are not reassigned"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"metalinter"
|
|
],
|
|
"originalURL": "https://github.com/mgechev/revive",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.37.0",
|
|
"name": "revive",
|
|
"desc": "Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"sql"
|
|
],
|
|
"originalURL": "https://github.com/jingyugao/rowserrcheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.23.0",
|
|
"name": "rowserrcheck",
|
|
"desc": "checks whether Rows.Err of rows is checked successfully"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"format"
|
|
],
|
|
"originalURL": "https://github.com/go-simpler/sloglint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.55.0",
|
|
"name": "sloglint",
|
|
"desc": "ensure consistent code style when using log/slog"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/kyoh86/scopelint",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.12.0",
|
|
"deprecation": {
|
|
"since": "v1.39.0",
|
|
"message": "The repository of the linter has been deprecated by the owner.",
|
|
"replacement": "exportloopref"
|
|
},
|
|
"name": "scopelint",
|
|
"desc": "Scopelint checks for unpinned variables in go programs"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"sql"
|
|
],
|
|
"originalURL": "https://github.com/ryanrolds/sqlclosecheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.28.0",
|
|
"name": "sqlclosecheck",
|
|
"desc": "Checks that sql.Rows, sql.Stmt, sqlx.NamedStmt, pgx.Query are closed."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/jjti/go-spancheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.56.0",
|
|
"name": "spancheck",
|
|
"desc": "Checks for mistakes with OpenTelemetry/Census spans."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs",
|
|
"metalinter"
|
|
],
|
|
"alternativeNames": [
|
|
"megacheck"
|
|
],
|
|
"originalURL": "https://staticcheck.io/",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"name": "staticcheck",
|
|
"desc": "It's a set of rules from staticcheck. It's not the same thing as the staticcheck binary. The author of staticcheck doesn't support or approve the use of staticcheck as a library inside golangci-lint."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"originalURL": "https://github.com/opennota/check",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.49.0",
|
|
"message": "The owner seems to have abandoned the linter.",
|
|
"replacement": "unused"
|
|
},
|
|
"name": "structcheck",
|
|
"desc": "Finds unused struct fields"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/dominikh/go-tools/tree/master/stylecheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.20.0",
|
|
"name": "stylecheck",
|
|
"desc": "Stylecheck is a replacement for golint"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"format"
|
|
],
|
|
"originalURL": "https://github.com/4meepo/tagalign",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.53.0",
|
|
"name": "tagalign",
|
|
"desc": "check that struct tags are well aligned"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/ldez/tagliatelle",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.40.0",
|
|
"name": "tagliatelle",
|
|
"desc": "Checks the struct tags."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sivchari/tenv",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.43.0",
|
|
"name": "tenv",
|
|
"desc": "tenv is analyzer that detects using os.Setenv instead of t.Setenv since Go1.17"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/maratori/testableexamples",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.50.0",
|
|
"name": "testableexamples",
|
|
"desc": "linter checks if examples are testable (have an expected output)"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"test",
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/Antonboom/testifylint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.55.0",
|
|
"name": "testifylint",
|
|
"desc": "Checks usage of github.com/stretchr/testify."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style",
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/maratori/testpackage",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.25.0",
|
|
"name": "testpackage",
|
|
"desc": "linter that makes you use a separate _test package"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/kulti/thelper",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.34.0",
|
|
"name": "thelper",
|
|
"desc": "thelper detects tests helpers which is not start with t.Helper() method."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"test"
|
|
],
|
|
"originalURL": "https://github.com/moricho/tparallel",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.32.0",
|
|
"name": "tparallel",
|
|
"desc": "tparallel detects inappropriate usage of t.Parallel() method in your Go test codes."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"internal": true,
|
|
"isSlow": true,
|
|
"since": "v1.3.0",
|
|
"name": "typecheck",
|
|
"desc": "Like the front-end of a Go compiler, parses and type-checks Go code"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/mdempsky/unconvert",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"name": "unconvert",
|
|
"desc": "Remove unnecessary type conversions"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"originalURL": "https://github.com/mvdan/unparam",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.9.0",
|
|
"name": "unparam",
|
|
"desc": "Reports unused function parameters"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"enabledByDefault": true,
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"alternativeNames": [
|
|
"megacheck"
|
|
],
|
|
"originalURL": "https://github.com/dominikh/go-tools/tree/master/unused",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"doesChangeTypes": true,
|
|
"since": "v1.20.0",
|
|
"name": "unused",
|
|
"desc": "Checks Go code for unused constants, variables, functions and types"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sashamelentyev/usestdlibvars",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.48.0",
|
|
"name": "usestdlibvars",
|
|
"desc": "A linter that detect the possibility to use variables/constants from the Go standard library."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"unused"
|
|
],
|
|
"originalURL": "https://github.com/opennota/check",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.0.0",
|
|
"deprecation": {
|
|
"since": "v1.49.0",
|
|
"message": "The owner seems to have abandoned the linter.",
|
|
"replacement": "unused"
|
|
},
|
|
"name": "varcheck",
|
|
"desc": "Finds unused global variables and constants"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/blizzy78/varnamelen",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.43.0",
|
|
"name": "varnamelen",
|
|
"desc": "checks that the length of a variable's name matches its scope"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/sanposhiho/wastedassign",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.38.0",
|
|
"name": "wastedassign",
|
|
"desc": "Finds wasted assignment statements"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/ultraware/whitespace",
|
|
"internal": false,
|
|
"canAutoFix": true,
|
|
"isSlow": false,
|
|
"since": "v1.19.0",
|
|
"name": "whitespace",
|
|
"desc": "Whitespace is a linter that checks for unnecessary newlines at the start and end of functions, if, for, etc."
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"style",
|
|
"error"
|
|
],
|
|
"originalURL": "https://github.com/tomarrell/wrapcheck",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.32.0",
|
|
"name": "wrapcheck",
|
|
"desc": "Checks that errors returned from external packages are wrapped"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/bombsimon/wsl",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.20.0",
|
|
"name": "wsl",
|
|
"desc": "add or remove empty lines"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 575,
|
|
"inPresets": [
|
|
"bugs"
|
|
],
|
|
"originalURL": "https://github.com/ykadowak/zerologlint",
|
|
"internal": false,
|
|
"isSlow": true,
|
|
"since": "v1.53.0",
|
|
"name": "zerologlint",
|
|
"desc": "Detects the wrong usage of `zerolog` that a user forgets to dispatch with `Send` or `Msg`"
|
|
},
|
|
{
|
|
"linter": {},
|
|
"loadMode": 7,
|
|
"inPresets": [
|
|
"style"
|
|
],
|
|
"originalURL": "https://github.com/golangci/golangci-lint/blob/master/pkg/golinters/nolintlint/README.md",
|
|
"internal": false,
|
|
"isSlow": false,
|
|
"since": "v1.26.0",
|
|
"name": "nolintlint",
|
|
"desc": "Reports ill-formed or insufficient nolint directives"
|
|
}
|
|
]
|