Documentation
¶
Index ¶
- Constants
- Variables
- func IsGoGreaterThanOrEqual(current, limit string) bool
- type AsasalintSettings
- type BaseRule
- type BiDiChkSettings
- type Config
- type CopyLoopVarSettings
- type CustomLinterSettings
- type Cyclop
- type DecorderSettings
- type DepGuardDeny
- type DepGuardList
- type DepGuardSettings
- type DogsledSettings
- type DupWordSettings
- type DuplSettings
- type ErrChkJSONSettings
- type ErrcheckSettings
- type ErrorLintAllowPair
- type ErrorLintSettings
- type ExcludePattern
- type ExcludeRule
- type ExhaustiveSettings
- type ExhaustructSettings
- type FatcontextSettings
- type ForbidigoPattern
- type ForbidigoSettings
- type FunlenSettings
- type GciSettings
- type GinkgoLinterSettings
- type GoChecksumTypeSettings
- type GoConstSettings
- type GoCriticCheckSettings
- type GoCriticSettings
- type GoCycloSettings
- type GoFmtRewriteRule
- type GoFmtSettings
- type GoHeaderSettings
- type GoImportsSettings
- type GoModDirectivesSettings
- type GoModGuardSettings
- type GoSecSettings
- type GocognitSettings
- type GodotSettings
- type GodoxSettings
- type GofumptSettings
- type GosmopolitanSettings
- type GovetSettings
- type GrouperSettings
- type INamedParamSettings
- type IfaceSettings
- type ImportAsAlias
- type ImportAsSettings
- type InterfaceBloatSettings
- type IreturnSettings
- type Issues
- type LinterExclusions
- type Linters
- type LintersSettings
- type LllSettings
- type LoadOptions
- type Loader
- type LoaderOptions
- type LoggerCheckSettings
- type MaintIdxSettings
- type MakezeroSettings
- type MisspellExtraWords
- type MisspellSettings
- type MndSettings
- type MustTagSettings
- type NakedretSettings
- type NestifSettings
- type NilNilSettings
- type NlreturnSettings
- type NoLintLintSettings
- type NoNamedReturnsSettings
- type Output
- type OutputFormat
- type OutputFormats
- type ParallelTestSettings
- type PerfSprintSettings
- type PreallocSettings
- type PredeclaredSettings
- type PromlinterSettings
- type ProtoGetterSettings
- type ReassignSettings
- type RecvcheckSettings
- type ReviveSettings
- type RowsErrCheckSettings
- type Run
- type Severity
- type SeverityRule
- type SlogLintSettings
- type SpancheckSettings
- type StaticCheckSettings
- type TagAlignSettings
- type TagliatelleBase
- type TagliatelleCase
- type TagliatelleExtendedRule
- type TagliatelleOverrides
- type TagliatelleSettings
- type TenvSettings
- type TestifylintSettings
- type TestpackageSettings
- type ThelperOptions
- type ThelperSettings
- type UnconvertSettings
- type UnparamSettings
- type UnusedSettings
- type UseStdlibVarsSettings
- type UseTestingSettings
- type VarnamelenSettings
- type Version
- type WSLSettings
- type WhitespaceSettings
- type WrapcheckSettings
Constants ¶
const ( ExclusionPresetComments = "comments" ExclusionPresetStdErrorHandling = "stdErrorHandling" ExclusionPresetCommonFalsePositives = "commonFalsePositives" ExclusionPresetLegacy = "legacy" )
const ( OutFormatJSON = "json" OutFormatLineNumber = "line-number" OutFormatColoredLineNumber = "colored-line-number" OutFormatTab = "tab" OutFormatColoredTab = "colored-tab" OutFormatCheckstyle = "checkstyle" OutFormatCodeClimate = "code-climate" OutFormatHTML = "html" OutFormatJUnitXML = "junit-xml" OutFormatJUnitXMLExtended = "junit-xml-extended" OutFormatGithubActions = "github-actions" // Deprecated OutFormatTeamCity = "teamcity" OutFormatSarif = "sarif" )
Variables ¶
var AllOutputFormats = []string{ OutFormatJSON, OutFormatLineNumber, OutFormatColoredLineNumber, OutFormatTab, OutFormatColoredTab, OutFormatCheckstyle, OutFormatCodeClimate, OutFormatHTML, OutFormatJUnitXML, OutFormatJUnitXMLExtended, OutFormatGithubActions, OutFormatTeamCity, OutFormatSarif, }
var DefaultExcludePatterns = []ExcludePattern{
{
ID: "EXC0001",
Pattern: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close" +
"|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked",
Linter: "errcheck",
Why: "Almost all programs ignore errors on these functions and in most cases it's ok.",
},
{
ID: "EXC0002",
Pattern: "(comment on exported (method|function|type|const)|" +
"should have( a package)? comment|comment should be of the form)",
Linter: "golint",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0003",
Pattern: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this",
Linter: "golint",
Why: "False positive when tests are defined in package 'test'.",
},
{
ID: "EXC0004",
Pattern: "(possible misuse of unsafe.Pointer|should have signature)",
Linter: "govet",
Why: "Common false positives.",
},
{
ID: "EXC0005",
Pattern: "SA4011",
Linter: "staticcheck",
Why: "Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore.",
},
{
ID: "EXC0006",
Pattern: "G103: Use of unsafe calls should be audited",
Linter: "gosec",
Why: "Too many false-positives on 'unsafe' usage.",
},
{
ID: "EXC0007",
Pattern: "G204: Subprocess launched with variable",
Linter: "gosec",
Why: "Too many false-positives for parametrized shell calls.",
},
{
ID: "EXC0008",
Pattern: "G104",
Linter: "gosec",
Why: "Duplicated errcheck checks.",
},
{
ID: "EXC0009",
Pattern: "(G301|G302|G307): Expect (directory permissions to be 0750|file permissions to be 0600) or less",
Linter: "gosec",
Why: "Too many issues in popular repos.",
},
{
ID: "EXC0010",
Pattern: "G304: Potential file inclusion via variable",
Linter: "gosec",
Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'.",
},
{
ID: "EXC0011",
Pattern: "(ST1000|ST1020|ST1021|ST1022)",
Linter: "stylecheck",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0012",
Pattern: `exported (.+) should have comment( \(or a comment on this block\))? or be unexported`,
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0013",
Pattern: `package comment should be of the form "(.+)..."`,
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0014",
Pattern: `comment on exported (.+) should be of the form "(.+)..."`,
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0015",
Pattern: `should have a package comment`,
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
}
Functions ¶
func IsGoGreaterThanOrEqual ¶ added in v1.57.0
Types ¶
type AsasalintSettings ¶ added in v1.47.0
type BaseRule ¶ added in v1.28.0
type BiDiChkSettings ¶ added in v1.44.0
type BiDiChkSettings struct {
LeftToRightEmbedding bool `mapstructure:"left-to-right-embedding"`
RightToLeftEmbedding bool `mapstructure:"right-to-left-embedding"`
PopDirectionalFormatting bool `mapstructure:"pop-directional-formatting"`
LeftToRightOverride bool `mapstructure:"left-to-right-override"`
RightToLeftOverride bool `mapstructure:"right-to-left-override"`
LeftToRightIsolate bool `mapstructure:"left-to-right-isolate"`
RightToLeftIsolate bool `mapstructure:"right-to-left-isolate"`
FirstStrongIsolate bool `mapstructure:"first-strong-isolate"`
PopDirectionalIsolate bool `mapstructure:"pop-directional-isolate"`
}
type Config ¶
type Config struct {
Version string `mapstructure:"version"` // From v2, to be able to detect v2 config file.
Run Run `mapstructure:"run"`
Output Output `mapstructure:"output"`
LintersSettings LintersSettings `mapstructure:"linters-settings"`
Linters Linters `mapstructure:"linters"`
Issues Issues `mapstructure:"issues"`
Severity Severity `mapstructure:"severity"`
InternalCmdTest bool // Option is used only for testing golangci-lint command, don't use it
InternalTest bool // Option is used only for testing golangci-lint code, don't use it
// contains filtered or unexported fields
}
Config encapsulates the config data specified in the golangci-lint YAML config file.
func NewDefault ¶ added in v1.8.1
func NewDefault() *Config
func (*Config) GetBasePath ¶ added in v1.64.0
func (*Config) GetConfigDir ¶ added in v1.43.0
GetConfigDir returns the directory that contains golangci-lint config file.
type CopyLoopVarSettings ¶ added in v1.57.0
type CustomLinterSettings ¶ added in v1.23.0
type CustomLinterSettings struct {
// Type plugin type.
// It can be `goplugin` or `module`.
Type string `mapstructure:"type"`
// Path to a plugin *.so file that implements the private linter.
// Only for Go plugin system.
Path string
// Description describes the purpose of the private linter.
Description string
// OriginalURL The URL containing the source code for the private linter.
OriginalURL string `mapstructure:"original-url"`
// Settings plugin settings only work with linterdb.PluginConstructor symbol.
Settings any
}
CustomLinterSettings encapsulates the meta-data of a private linter.
func (*CustomLinterSettings) Validate ¶ added in v1.57.0
func (s *CustomLinterSettings) Validate() error
type DecorderSettings ¶ added in v1.44.0
type DecorderSettings struct {
DecOrder []string `mapstructure:"dec-order"`
IgnoreUnderscoreVars bool `mapstructure:"ignore-underscore-vars"`
DisableDecNumCheck bool `mapstructure:"disable-dec-num-check"`
DisableTypeDecNumCheck bool `mapstructure:"disable-type-dec-num-check"`
DisableConstDecNumCheck bool `mapstructure:"disable-const-dec-num-check"`
DisableVarDecNumCheck bool `mapstructure:"disable-var-dec-num-check"`
DisableDecOrderCheck bool `mapstructure:"disable-dec-order-check"`
DisableInitFuncFirstCheck bool `mapstructure:"disable-init-func-first-check"`
}
type DepGuardDeny ¶ added in v1.53.0
type DepGuardList ¶ added in v1.53.0
type DepGuardList struct {
ListMode string `mapstructure:"list-mode"`
Files []string `mapstructure:"files"`
Allow []string `mapstructure:"allow"`
Deny []DepGuardDeny `mapstructure:"deny"`
}
type DepGuardSettings ¶ added in v1.40.0
type DepGuardSettings struct {
Rules map[string]*DepGuardList `mapstructure:"rules"`
}
type DogsledSettings ¶ added in v1.19.0
type DogsledSettings struct {
MaxBlankIdentifiers int `mapstructure:"max-blank-identifiers"`
}
type DupWordSettings ¶ added in v1.50.0
type DuplSettings ¶ added in v1.40.0
type DuplSettings struct {
Threshold int
}
type ErrChkJSONSettings ¶ added in v1.44.0
type ErrcheckSettings ¶ added in v1.11.1
type ErrcheckSettings struct {
DisableDefaultExclusions bool `mapstructure:"disable-default-exclusions"`
CheckTypeAssertions bool `mapstructure:"check-type-assertions"`
CheckAssignToBlank bool `mapstructure:"check-blank"`
ExcludeFunctions []string `mapstructure:"exclude-functions"`
// Deprecated: use ExcludeFunctions instead
Exclude string `mapstructure:"exclude"`
// Deprecated: use ExcludeFunctions instead
Ignore string `mapstructure:"ignore"`
}
type ErrorLintAllowPair ¶ added in v1.58.0
type ErrorLintSettings ¶ added in v1.32.0
type ErrorLintSettings struct {
Errorf bool `mapstructure:"errorf"`
ErrorfMulti bool `mapstructure:"errorf-multi"`
Asserts bool `mapstructure:"asserts"`
Comparison bool `mapstructure:"comparison"`
AllowedErrors []ErrorLintAllowPair `mapstructure:"allowed-errors"`
AllowedErrorsWildcard []ErrorLintAllowPair `mapstructure:"allowed-errors-wildcard"`
}
type ExcludePattern ¶ added in v1.4.1
func GetExcludePatterns ¶ added in v1.33.0
func GetExcludePatterns(include []string) []ExcludePattern
TODO(ldez): this behavior must be changed in v2, because this is confusing.
type ExcludeRule ¶ added in v1.15.0
type ExcludeRule struct {
BaseRule `mapstructure:",squash"`
}
func (*ExcludeRule) Validate ¶ added in v1.15.0
func (e *ExcludeRule) Validate() error
type ExhaustiveSettings ¶ added in v1.28.0
type ExhaustiveSettings struct {
Check []string `mapstructure:"check"`
CheckGenerated bool `mapstructure:"check-generated"`
DefaultSignifiesExhaustive bool `mapstructure:"default-signifies-exhaustive"`
IgnoreEnumMembers string `mapstructure:"ignore-enum-members"`
IgnoreEnumTypes string `mapstructure:"ignore-enum-types"`
PackageScopeOnly bool `mapstructure:"package-scope-only"`
ExplicitExhaustiveMap bool `mapstructure:"explicit-exhaustive-map"`
ExplicitExhaustiveSwitch bool `mapstructure:"explicit-exhaustive-switch"`
DefaultCaseRequired bool `mapstructure:"default-case-required"`
}
type ExhaustructSettings ¶ added in v1.46.0
type FatcontextSettings ¶ added in v1.64.0
type FatcontextSettings struct {
CheckStructPointers bool `mapstructure:"check-struct-pointers"`
}
type ForbidigoPattern ¶ added in v1.53.0
type ForbidigoPattern struct {
Pattern string `yaml:"p" mapstructure:"p"`
Package string `yaml:"pkg,omitempty" mapstructure:"pkg,omitempty"`
Msg string `yaml:"msg,omitempty" mapstructure:"msg,omitempty"`
// contains filtered or unexported fields
}
ForbidigoPattern corresponds to forbidigo.pattern and adds mapstructure support. The YAML field names must match what forbidigo expects.
func (*ForbidigoPattern) MarshalString ¶ added in v1.53.0
func (p *ForbidigoPattern) MarshalString() ([]byte, error)
MarshalString converts the pattern into a string as needed by forbidigo.NewLinter.
MarshalString is intentionally not called MarshalText, although it has the same signature because implementing encoding.TextMarshaler led to infinite recursion when yaml.Marshal called MarshalText.
func (*ForbidigoPattern) UnmarshalText ¶ added in v1.53.0
func (p *ForbidigoPattern) UnmarshalText(text []byte) error
type ForbidigoSettings ¶ added in v1.33.1
type ForbidigoSettings struct {
Forbid []ForbidigoPattern `mapstructure:"forbid"`
ExcludeGodocExamples bool `mapstructure:"exclude-godoc-examples"`
AnalyzeTypes bool `mapstructure:"analyze-types"`
}
type FunlenSettings ¶ added in v1.40.0
type GciSettings ¶ added in v1.40.0
type GciSettings struct {
Sections []string `mapstructure:"sections"`
NoInlineComments bool `mapstructure:"no-inline-comments"`
NoPrefixComments bool `mapstructure:"no-prefix-comments"`
SkipGenerated bool `mapstructure:"skip-generated"`
CustomOrder bool `mapstructure:"custom-order"`
NoLexOrder bool `mapstructure:"no-lex-order"`
// Deprecated: use Sections instead.
LocalPrefixes string `mapstructure:"local-prefixes"`
}
type GinkgoLinterSettings ¶ added in v1.51.0
type GinkgoLinterSettings struct {
SuppressLenAssertion bool `mapstructure:"suppress-len-assertion"`
SuppressNilAssertion bool `mapstructure:"suppress-nil-assertion"`
SuppressErrAssertion bool `mapstructure:"suppress-err-assertion"`
SuppressCompareAssertion bool `mapstructure:"suppress-compare-assertion"`
SuppressAsyncAssertion bool `mapstructure:"suppress-async-assertion"`
SuppressTypeCompareWarning bool `mapstructure:"suppress-type-compare-assertion"`
ForbidFocusContainer bool `mapstructure:"forbid-focus-container"`
AllowHaveLenZero bool `mapstructure:"allow-havelen-zero"`
ForceExpectTo bool `mapstructure:"force-expect-to"`
ValidateAsyncIntervals bool `mapstructure:"validate-async-intervals"`
ForbidSpecPollution bool `mapstructure:"forbid-spec-pollution"`
ForceSucceedForFuncs bool `mapstructure:"force-succeed"`
}
type GoChecksumTypeSettings ¶ added in v1.62.0
type GoChecksumTypeSettings struct {
DefaultSignifiesExhaustive bool `mapstructure:"default-signifies-exhaustive"`
}
type GoConstSettings ¶ added in v1.40.0
type GoConstSettings struct {
IgnoreStrings string `mapstructure:"ignore-strings"`
IgnoreTests bool `mapstructure:"ignore-tests"`
MatchWithConstants bool `mapstructure:"match-constant"`
MinStringLen int `mapstructure:"min-len"`
MinOccurrencesCount int `mapstructure:"min-occurrences"`
ParseNumbers bool `mapstructure:"numbers"`
NumberMin int `mapstructure:"min"`
NumberMax int `mapstructure:"max"`
IgnoreCalls bool `mapstructure:"ignore-calls"`
}
type GoCriticCheckSettings ¶ added in v1.49.0
type GoCriticSettings ¶ added in v1.49.0
type GoCriticSettings struct {
Go string `mapstructure:"-"`
DisableAll bool `mapstructure:"disable-all"`
EnabledChecks []string `mapstructure:"enabled-checks"`
EnableAll bool `mapstructure:"enable-all"`
DisabledChecks []string `mapstructure:"disabled-checks"`
EnabledTags []string `mapstructure:"enabled-tags"`
DisabledTags []string `mapstructure:"disabled-tags"`
SettingsPerCheck map[string]GoCriticCheckSettings `mapstructure:"settings"`
}
type GoCycloSettings ¶ added in v1.40.0
type GoCycloSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GoFmtRewriteRule ¶ added in v1.50.0
type GoFmtSettings ¶ added in v1.40.0
type GoFmtSettings struct {
Simplify bool
RewriteRules []GoFmtRewriteRule `mapstructure:"rewrite-rules"`
}
type GoHeaderSettings ¶ added in v1.28.0
type GoImportsSettings ¶ added in v1.40.0
type GoImportsSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
type GoModDirectivesSettings ¶ added in v1.39.0
type GoModDirectivesSettings struct {
ReplaceAllowList []string `mapstructure:"replace-allow-list"`
ReplaceLocal bool `mapstructure:"replace-local"`
ExcludeForbidden bool `mapstructure:"exclude-forbidden"`
RetractAllowNoExplanation bool `mapstructure:"retract-allow-no-explanation"`
ToolchainForbidden bool `mapstructure:"toolchain-forbidden"`
ToolchainPattern string `mapstructure:"toolchain-pattern"`
ToolForbidden bool `mapstructure:"tool-forbidden"`
GoDebugForbidden bool `mapstructure:"go-debug-forbidden"`
GoVersionPattern string `mapstructure:"go-version-pattern"`
}
type GoModGuardSettings ¶ added in v1.40.0
type GoModGuardSettings struct {
Allowed struct {
Modules []string `mapstructure:"modules"`
Domains []string `mapstructure:"domains"`
} `mapstructure:"allowed"`
Blocked struct {
Modules []map[string]struct {
Recommendations []string `mapstructure:"recommendations"`
Reason string `mapstructure:"reason"`
} `mapstructure:"modules"`
Versions []map[string]struct {
Version string `mapstructure:"version"`
Reason string `mapstructure:"reason"`
} `mapstructure:"versions"`
LocalReplaceDirectives bool `mapstructure:"local_replace_directives"`
} `mapstructure:"blocked"`
}
type GoSecSettings ¶ added in v1.40.0
type GoSecSettings struct {
Includes []string `mapstructure:"includes"`
Excludes []string `mapstructure:"excludes"`
Severity string `mapstructure:"severity"`
Confidence string `mapstructure:"confidence"`
ExcludeGenerated bool `mapstructure:"exclude-generated"`
Config map[string]any `mapstructure:"config"`
Concurrency int `mapstructure:"concurrency"`
}
type GocognitSettings ¶ added in v1.20.0
type GocognitSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GodotSettings ¶ added in v1.25.0
type GodoxSettings ¶ added in v1.19.0
type GodoxSettings struct {
Keywords []string
}
type GofumptSettings ¶ added in v1.29.0
type GosmopolitanSettings ¶ added in v1.53.0
type GovetSettings ¶ added in v1.16.0
type GovetSettings struct {
Go string `mapstructure:"-"`
Enable []string
Disable []string
EnableAll bool `mapstructure:"enable-all"`
DisableAll bool `mapstructure:"disable-all"`
Settings map[string]map[string]any
// Deprecated: the linter should be enabled inside Enable.
CheckShadowing *bool `mapstructure:"check-shadowing"`
}
func (*GovetSettings) Validate ¶ added in v1.19.0
func (cfg *GovetSettings) Validate() error
type GrouperSettings ¶ added in v1.44.0
type GrouperSettings struct {
ConstRequireSingleConst bool `mapstructure:"const-require-single-const"`
ConstRequireGrouping bool `mapstructure:"const-require-grouping"`
ImportRequireSingleImport bool `mapstructure:"import-require-single-import"`
ImportRequireGrouping bool `mapstructure:"import-require-grouping"`
TypeRequireSingleType bool `mapstructure:"type-require-single-type"`
TypeRequireGrouping bool `mapstructure:"type-require-grouping"`
VarRequireSingleVar bool `mapstructure:"var-require-single-var"`
VarRequireGrouping bool `mapstructure:"var-require-grouping"`
}
type INamedParamSettings ¶ added in v1.56.0
type INamedParamSettings struct {
SkipSingleParam bool `mapstructure:"skip-single-param"`
}
type IfaceSettings ¶ added in v1.62.0
type ImportAsAlias ¶ added in v1.40.0
type ImportAsSettings ¶ added in v1.38.0
type ImportAsSettings struct {
Alias []ImportAsAlias
NoUnaliased bool `mapstructure:"no-unaliased"`
NoExtraAliases bool `mapstructure:"no-extra-aliases"`
}
type InterfaceBloatSettings ¶ added in v1.49.0
type InterfaceBloatSettings struct {
Max int `mapstructure:"max"`
}
type IreturnSettings ¶ added in v1.43.0
type Issues ¶
type Issues struct {
IncludeDefaultExcludes []string `mapstructure:"include"`
ExcludeCaseSensitive bool `mapstructure:"exclude-case-sensitive"`
ExcludePatterns []string `mapstructure:"exclude"`
ExcludeRules []ExcludeRule `mapstructure:"exclude-rules"`
UseDefaultExcludes bool `mapstructure:"exclude-use-default"`
ExcludeGenerated string `mapstructure:"exclude-generated"`
ExcludeFiles []string `mapstructure:"exclude-files"`
ExcludeDirs []string `mapstructure:"exclude-dirs"`
UseDefaultExcludeDirs bool `mapstructure:"exclude-dirs-use-default"`
MaxIssuesPerLinter int `mapstructure:"max-issues-per-linter"`
MaxSameIssues int `mapstructure:"max-same-issues"`
UniqByLine bool `mapstructure:"uniq-by-line"`
DiffFromRevision string `mapstructure:"new-from-rev"`
DiffFromMergeBase string `mapstructure:"new-from-merge-base"`
DiffPatchFilePath string `mapstructure:"new-from-patch"`
WholeFiles bool `mapstructure:"whole-files"`
Diff bool `mapstructure:"new"`
NeedFix bool `mapstructure:"fix"`
ExcludeGeneratedStrict *bool `mapstructure:"exclude-generated-strict"` // Deprecated: use ExcludeGenerated instead.
}
type LinterExclusions ¶ added in v1.64.0
type LinterExclusions struct {
Generated string `mapstructure:"generated"`
WarnUnused bool `mapstructure:"warn-unused"`
Presets []string `mapstructure:"preset"`
Rules []ExcludeRule `mapstructure:"rules"`
Paths []string `mapstructure:"paths"`
PathsExcept []string `mapstructure:"paths-except"`
}
func (*LinterExclusions) Validate ¶ added in v1.64.0
func (e *LinterExclusions) Validate() error
type Linters ¶
type LintersSettings ¶
type LintersSettings struct {
Asasalint AsasalintSettings
BiDiChk BiDiChkSettings
CopyLoopVar CopyLoopVarSettings
Cyclop Cyclop
Decorder DecorderSettings
Depguard DepGuardSettings
Dogsled DogsledSettings
Dupl DuplSettings
DupWord DupWordSettings
Errcheck ErrcheckSettings
ErrChkJSON ErrChkJSONSettings
ErrorLint ErrorLintSettings
Exhaustive ExhaustiveSettings
Exhaustruct ExhaustructSettings
Fatcontext FatcontextSettings
Forbidigo ForbidigoSettings
Funlen FunlenSettings
Gci GciSettings
GinkgoLinter GinkgoLinterSettings
Gocognit GocognitSettings
GoChecksumType GoChecksumTypeSettings
Goconst GoConstSettings
Gocritic GoCriticSettings
Gocyclo GoCycloSettings
Godot GodotSettings
Godox GodoxSettings
Gofmt GoFmtSettings
Gofumpt GofumptSettings
Goheader GoHeaderSettings
Goimports GoImportsSettings
GoModDirectives GoModDirectivesSettings
Gomodguard GoModGuardSettings
Gosec GoSecSettings
Gosimple StaticCheckSettings
Gosmopolitan GosmopolitanSettings
Govet GovetSettings
Grouper GrouperSettings
Iface IfaceSettings
ImportAs ImportAsSettings
Inamedparam INamedParamSettings
InterfaceBloat InterfaceBloatSettings
Ireturn IreturnSettings
Lll LllSettings
LoggerCheck LoggerCheckSettings
MaintIdx MaintIdxSettings
Makezero MakezeroSettings
Misspell MisspellSettings
Mnd MndSettings
MustTag MustTagSettings
Nakedret NakedretSettings
Nestif NestifSettings
NilNil NilNilSettings
Nlreturn NlreturnSettings
NoLintLint NoLintLintSettings
NoNamedReturns NoNamedReturnsSettings
ParallelTest ParallelTestSettings
PerfSprint PerfSprintSettings
Prealloc PreallocSettings
Predeclared PredeclaredSettings
Promlinter PromlinterSettings
ProtoGetter ProtoGetterSettings
Reassign ReassignSettings
Recvcheck RecvcheckSettings
Revive ReviveSettings
RowsErrCheck RowsErrCheckSettings
SlogLint SlogLintSettings
Spancheck SpancheckSettings
Staticcheck StaticCheckSettings
Stylecheck StaticCheckSettings
TagAlign TagAlignSettings
Tagliatelle TagliatelleSettings
Tenv TenvSettings
Testifylint TestifylintSettings
Testpackage TestpackageSettings
Thelper ThelperSettings
Unconvert UnconvertSettings
Unparam UnparamSettings
Unused UnusedSettings
UseStdlibVars UseStdlibVarsSettings
UseTesting UseTestingSettings
Varnamelen VarnamelenSettings
Whitespace WhitespaceSettings
Wrapcheck WrapcheckSettings
WSL WSLSettings
Custom map[string]CustomLinterSettings
}
func (*LintersSettings) Validate ¶ added in v1.57.0
func (s *LintersSettings) Validate() error
type LllSettings ¶ added in v1.8.1
type LoadOptions ¶ added in v1.58.0
type Loader ¶ added in v1.57.0
type Loader struct {
// contains filtered or unexported fields
}
func (*Loader) Load ¶ added in v1.57.0
func (l *Loader) Load(opts LoadOptions) error
type LoaderOptions ¶ added in v1.57.0
type LoggerCheckSettings ¶ added in v1.50.0
type LoggerCheckSettings struct {
Kitlog bool `mapstructure:"kitlog"`
Klog bool `mapstructure:"klog"`
Logr bool `mapstructure:"logr"`
Slog bool `mapstructure:"slog"`
Zap bool `mapstructure:"zap"`
RequireStringKey bool `mapstructure:"require-string-key"`
NoPrintfLike bool `mapstructure:"no-printf-like"`
Rules []string `mapstructure:"rules"`
}
type MaintIdxSettings ¶ added in v1.44.0
type MaintIdxSettings struct {
Under int `mapstructure:"under"`
}
type MakezeroSettings ¶ added in v1.33.1
type MakezeroSettings struct {
Always bool
}
type MisspellExtraWords ¶ added in v1.57.0
type MisspellSettings ¶ added in v1.40.0
type MisspellSettings struct {
Mode string `mapstructure:"mode"`
Locale string `mapstructure:"locale"`
ExtraWords []MisspellExtraWords `mapstructure:"extra-words"`
// TODO(ldez): v2 the option must be renamed to `IgnoredRules`.
IgnoreWords []string `mapstructure:"ignore-words"`
}
type MndSettings ¶ added in v1.58.0
type MustTagSettings ¶ added in v1.51.0
type NakedretSettings ¶ added in v1.9.1
type NakedretSettings struct {
MaxFuncLines uint `mapstructure:"max-func-lines"`
}
type NestifSettings ¶ added in v1.25.0
type NestifSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type NilNilSettings ¶ added in v1.43.0
type NlreturnSettings ¶ added in v1.43.0
type NlreturnSettings struct {
BlockSize int `mapstructure:"block-size"`
}
type NoLintLintSettings ¶ added in v1.26.0
type NoNamedReturnsSettings ¶ added in v1.47.0
type NoNamedReturnsSettings struct {
ReportErrorInDefer bool `mapstructure:"report-error-in-defer"`
}
type Output ¶ added in v1.40.0
type Output struct {
Formats OutputFormats `mapstructure:"formats"`
PrintIssuedLine bool `mapstructure:"print-issued-lines"`
PrintLinterName bool `mapstructure:"print-linter-name"`
SortResults bool `mapstructure:"sort-results"`
SortOrder []string `mapstructure:"sort-order"`
PathPrefix string `mapstructure:"path-prefix"`
ShowStats bool `mapstructure:"show-stats"`
// Deprecated: use Formats instead.
Format string `mapstructure:"format"`
// Deprecated: use [Issues.UniqByLine] instead.
UniqByLine *bool `mapstructure:"uniq-by-line"`
}
type OutputFormat ¶ added in v1.57.0
type OutputFormat struct {
Format string `mapstructure:"format"`
Path string `mapstructure:"path"`
}
func (*OutputFormat) Validate ¶ added in v1.57.0
func (o *OutputFormat) Validate() error
type OutputFormats ¶ added in v1.57.0
type OutputFormats []OutputFormat
func (*OutputFormats) UnmarshalText ¶ added in v1.57.0
func (p *OutputFormats) UnmarshalText(text []byte) error
type ParallelTestSettings ¶ added in v1.47.0
type PerfSprintSettings ¶ added in v1.56.0
type PerfSprintSettings struct {
IntegerFormat bool `mapstructure:"integer-format"`
IntConversion bool `mapstructure:"int-conversion"`
ErrorFormat bool `mapstructure:"error-format"`
ErrError bool `mapstructure:"err-error"`
ErrorF bool `mapstructure:"errorf"`
StringFormat bool `mapstructure:"string-format"`
SprintF1 bool `mapstructure:"sprintf1"`
StrConcat bool `mapstructure:"strconcat"`
BoolFormat bool `mapstructure:"bool-format"`
HexFormat bool `mapstructure:"hex-format"`
}
type PreallocSettings ¶ added in v1.9.1
type PredeclaredSettings ¶ added in v1.35.0
type PromlinterSettings ¶ added in v1.40.0
type ProtoGetterSettings ¶ added in v1.56.0
type ReassignSettings ¶ added in v1.49.0
type ReassignSettings struct {
Patterns []string `mapstructure:"patterns"`
}
type RecvcheckSettings ¶ added in v1.63.0
type ReviveSettings ¶ added in v1.37.0
type ReviveSettings struct {
Go string `mapstructure:"-"`
MaxOpenFiles int `mapstructure:"max-open-files"`
IgnoreGeneratedHeader bool `mapstructure:"ignore-generated-header"`
Confidence float64
Severity string
EnableAllRules bool `mapstructure:"enable-all-rules"`
Rules []struct {
Name string
Arguments []any
Severity string
Disabled bool
Exclude []string
}
ErrorCode int `mapstructure:"error-code"`
WarningCode int `mapstructure:"warning-code"`
Directives []struct {
Name string
Severity string
}
}
type RowsErrCheckSettings ¶ added in v1.40.0
type RowsErrCheckSettings struct {
Packages []string
}
type Run ¶
type Run struct {
Timeout time.Duration `mapstructure:"timeout"`
Concurrency int `mapstructure:"concurrency"`
Go string `mapstructure:"go"`
RelativePathMode string `mapstructure:"relative-path-mode"`
BuildTags []string `mapstructure:"build-tags"`
ModulesDownloadMode string `mapstructure:"modules-download-mode"`
ExitCodeIfIssuesFound int `mapstructure:"issues-exit-code"`
AnalyzeTests bool `mapstructure:"tests"`
AllowParallelRunners bool `mapstructure:"allow-parallel-runners"`
AllowSerialRunners bool `mapstructure:"allow-serial-runners"`
// Deprecated: use Issues.ExcludeFiles instead.
SkipFiles []string `mapstructure:"skip-files"`
// Deprecated: use Issues.ExcludeDirs instead.
SkipDirs []string `mapstructure:"skip-dirs"`
// Deprecated: use Issues.UseDefaultExcludeDirs instead.
UseDefaultSkipDirs *bool `mapstructure:"skip-dirs-use-default"`
// Deprecated: use Output.ShowStats instead.
ShowStats *bool `mapstructure:"show-stats"`
}
Run encapsulates the config options for running the linter analysis.
type Severity ¶ added in v1.28.0
type Severity struct {
Default string `mapstructure:"default-severity"`
CaseSensitive bool `mapstructure:"case-sensitive"`
Rules []SeverityRule `mapstructure:"rules"`
}
type SeverityRule ¶ added in v1.28.0
func (*SeverityRule) Validate ¶ added in v1.28.0
func (s *SeverityRule) Validate() error
type SlogLintSettings ¶ added in v1.55.0
type SlogLintSettings struct {
NoMixedArgs bool `mapstructure:"no-mixed-args"`
KVOnly bool `mapstructure:"kv-only"`
AttrOnly bool `mapstructure:"attr-only"`
NoGlobal string `mapstructure:"no-global"`
Context string `mapstructure:"context"`
StaticMsg bool `mapstructure:"static-msg"`
NoRawKeys bool `mapstructure:"no-raw-keys"`
KeyNamingCase string `mapstructure:"key-naming-case"`
ForbiddenKeys []string `mapstructure:"forbidden-keys"`
ArgsOnSepLines bool `mapstructure:"args-on-sep-lines"`
// Deprecated: use Context instead.
ContextOnly *bool `mapstructure:"context-only"`
}
type SpancheckSettings ¶ added in v1.56.0
type StaticCheckSettings ¶ added in v1.40.0
type StaticCheckSettings struct {
Checks []string `mapstructure:"checks"`
Initialisms []string `mapstructure:"initialisms"` // only for stylecheck
DotImportWhitelist []string `mapstructure:"dot-import-whitelist"` // only for stylecheck
HTTPStatusCodeWhitelist []string `mapstructure:"http-status-code-whitelist"` // only for stylecheck
// Deprecated: use the global `run.go` instead.
GoVersion string `mapstructure:"go"`
}
func (*StaticCheckSettings) HasConfiguration ¶ added in v1.41.0
func (s *StaticCheckSettings) HasConfiguration() bool
type TagAlignSettings ¶ added in v1.53.0
type TagliatelleBase ¶ added in v1.63.0
type TagliatelleCase ¶ added in v1.63.0
type TagliatelleCase struct {
TagliatelleBase `mapstructure:",squash"`
Overrides []TagliatelleOverrides
}
type TagliatelleExtendedRule ¶ added in v1.63.0
type TagliatelleOverrides ¶ added in v1.63.0
type TagliatelleOverrides struct {
TagliatelleBase `mapstructure:",squash"`
Package string `mapstructure:"pkg"`
Ignore bool `mapstructure:"ignore"`
}
type TagliatelleSettings ¶ added in v1.40.0
type TagliatelleSettings struct {
Case TagliatelleCase
}
type TenvSettings ¶ added in v1.43.0
type TenvSettings struct {
All bool `mapstructure:"all"`
}
type TestifylintSettings ¶ added in v1.55.0
type TestifylintSettings struct {
EnableAll bool `mapstructure:"enable-all"`
DisableAll bool `mapstructure:"disable-all"`
EnabledCheckers []string `mapstructure:"enable"`
DisabledCheckers []string `mapstructure:"disable"`
BoolCompare struct {
IgnoreCustomTypes bool `mapstructure:"ignore-custom-types"`
} `mapstructure:"bool-compare"`
ExpectedActual struct {
ExpVarPattern string `mapstructure:"pattern"`
} `mapstructure:"expected-actual"`
Formatter struct {
CheckFormatString *bool `mapstructure:"check-format-string"`
RequireFFuncs bool `mapstructure:"require-f-funcs"`
} `mapstructure:"formatter"`
GoRequire struct {
IgnoreHTTPHandlers bool `mapstructure:"ignore-http-handlers"`
} `mapstructure:"go-require"`
RequireError struct {
FnPattern string `mapstructure:"fn-pattern"`
} `mapstructure:"require-error"`
SuiteExtraAssertCall struct {
Mode string `mapstructure:"mode"`
} `mapstructure:"suite-extra-assert-call"`
}
type TestpackageSettings ¶ added in v1.25.0
type ThelperOptions ¶ added in v1.46.2
type ThelperSettings ¶ added in v1.33.1
type ThelperSettings struct {
Test ThelperOptions `mapstructure:"test"`
Fuzz ThelperOptions `mapstructure:"fuzz"`
Benchmark ThelperOptions `mapstructure:"benchmark"`
TB ThelperOptions `mapstructure:"tb"`
}
type UnconvertSettings ¶ added in v1.57.0
type UnparamSettings ¶ added in v1.9.1
type UnusedSettings ¶ added in v1.55.0
type UnusedSettings struct {
FieldWritesAreUses bool `mapstructure:"field-writes-are-uses"`
PostStatementsAreReads bool `mapstructure:"post-statements-are-reads"`
ExportedFieldsAreUsed bool `mapstructure:"exported-fields-are-used"`
ParametersAreUsed bool `mapstructure:"parameters-are-used"`
LocalVariablesAreUsed bool `mapstructure:"local-variables-are-used"`
GeneratedIsUsed bool `mapstructure:"generated-is-used"`
// Deprecated
ExportedIsUsed *bool `mapstructure:"exported-is-used"`
}
type UseStdlibVarsSettings ¶ added in v1.48.0
type UseStdlibVarsSettings struct {
HTTPMethod bool `mapstructure:"http-method"`
HTTPStatusCode bool `mapstructure:"http-status-code"`
TimeWeekday bool `mapstructure:"time-weekday"`
TimeMonth bool `mapstructure:"time-month"`
TimeLayout bool `mapstructure:"time-layout"`
CryptoHash bool `mapstructure:"crypto-hash"`
DefaultRPCPath bool `mapstructure:"default-rpc-path"`
SQLIsolationLevel bool `mapstructure:"sql-isolation-level"`
TLSSignatureScheme bool `mapstructure:"tls-signature-scheme"`
ConstantKind bool `mapstructure:"constant-kind"`
// Deprecated
OSDevNull *bool `mapstructure:"os-dev-null"`
// Deprecated
SyslogPriority *bool `mapstructure:"syslog-priority"`
}
type UseTestingSettings ¶ added in v1.63.0
type UseTestingSettings struct {
ContextBackground bool `mapstructure:"context-background"`
ContextTodo bool `mapstructure:"context-todo"`
OSChdir bool `mapstructure:"os-chdir"`
OSMkdirTemp bool `mapstructure:"os-mkdir-temp"`
OSSetenv bool `mapstructure:"os-setenv"`
OSTempDir bool `mapstructure:"os-temp-dir"`
OSCreateTemp bool `mapstructure:"os-create-temp"`
}
type VarnamelenSettings ¶ added in v1.43.0
type VarnamelenSettings struct {
MaxDistance int `mapstructure:"max-distance"`
MinNameLength int `mapstructure:"min-name-length"`
CheckReceiver bool `mapstructure:"check-receiver"`
CheckReturn bool `mapstructure:"check-return"`
CheckTypeParam bool `mapstructure:"check-type-param"`
IgnoreNames []string `mapstructure:"ignore-names"`
IgnoreTypeAssertOk bool `mapstructure:"ignore-type-assert-ok"`
IgnoreMapIndexOk bool `mapstructure:"ignore-map-index-ok"`
IgnoreChanRecvOk bool `mapstructure:"ignore-chan-recv-ok"`
IgnoreDecls []string `mapstructure:"ignore-decls"`
}
type WSLSettings ¶ added in v1.20.0
type WSLSettings struct {
StrictAppend bool `mapstructure:"strict-append"`
AllowAssignAndCallCuddle bool `mapstructure:"allow-assign-and-call"`
AllowAssignAndAnythingCuddle bool `mapstructure:"allow-assign-and-anything"`
AllowMultiLineAssignCuddle bool `mapstructure:"allow-multiline-assign"`
ForceCaseTrailingWhitespaceLimit int `mapstructure:"force-case-trailing-whitespace"`
AllowTrailingComment bool `mapstructure:"allow-trailing-comment"`
AllowSeparatedLeadingComment bool `mapstructure:"allow-separated-leading-comment"`
AllowCuddleDeclaration bool `mapstructure:"allow-cuddle-declarations"`
AllowCuddleWithCalls []string `mapstructure:"allow-cuddle-with-calls"`
AllowCuddleWithRHS []string `mapstructure:"allow-cuddle-with-rhs"`
ForceCuddleErrCheckAndAssign bool `mapstructure:"force-err-cuddling"`
ErrorVariableNames []string `mapstructure:"error-variable-names"`
ForceExclusiveShortDeclarations bool `mapstructure:"force-short-decl-cuddling"`
}
type WhitespaceSettings ¶ added in v1.40.0
type WrapcheckSettings ¶ added in v1.40.0
type WrapcheckSettings struct {
ExtraIgnoreSigs []string `mapstructure:"extra-ignore-sigs"`
// TODO(ldez): v2 the options must be renamed to use hyphen.
IgnoreSigs []string `mapstructure:"ignoreSigs"`
IgnoreSigRegexps []string `mapstructure:"ignoreSigRegexps"`
IgnorePackageGlobs []string `mapstructure:"ignorePackageGlobs"`
IgnoreInterfaceRegexps []string `mapstructure:"ignoreInterfaceRegexps"`
}