Documentation ¶
Index ¶
- Constants
- Variables
- func GetDefaultExcludePatternsStrings() []string
- 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 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 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 ReviveSettings
- type RowsErrCheckSettings
- type Run
- type Severity
- type SeverityRule
- type SlogLintSettings
- type SpancheckSettings
- type StaticCheckSettings
- type TagAlignSettings
- type TagliatelleSettings
- type TenvSettings
- type TestifylintSettings
- type TestpackageSettings
- type ThelperOptions
- type ThelperSettings
- type UnconvertSettings
- type UnparamSettings
- type UnusedSettings
- type UseStdlibVarsSettings
- type VarnamelenSettings
- type Version
- type WSLSettings
- type WhitespaceSettings
- type WrapcheckSettings
Constants ¶
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 GetDefaultExcludePatternsStrings ¶ added in v1.4.1
func GetDefaultExcludePatternsStrings() []string
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 { 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) GetConfigDir ¶ added in v1.43.0
GetConfigDir returns the directory that contains golangci 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 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"` 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 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"` DiffFromRevision string `mapstructure:"new-from-rev"` 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 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 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 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 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"` 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"` UniqByLine bool `mapstructure:"uniq-by-line"` 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"` }
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 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 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"` 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 TagliatelleSettings ¶ added in v1.40.0
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"` ExportedIsUsed bool `mapstructure:"exported-is-used"` // Deprecated 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"` }
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"` OSDevNull bool `mapstructure:"os-dev-null"` // Deprecated SQLIsolationLevel bool `mapstructure:"sql-isolation-level"` TLSSignatureScheme bool `mapstructure:"tls-signature-scheme"` ConstantKind bool `mapstructure:"constant-kind"` SyslogPriority bool `mapstructure:"syslog-priority"` // Deprecated }
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 { // 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"` }