Documentation ¶
Index ¶
- Constants
- Variables
- func DetectGoVersion() string
- func GetDefaultExcludePatternsStrings() []string
- func IsGreaterThanOrEqualGo118(v string) bool
- type AsasalintSettings
- type BaseRule
- type BiDiChkSettings
- type Config
- type CustomLinterSettings
- type Cyclop
- type DecorderSettings
- type DepGuardDeny
- type DepGuardList
- type DepGuardSettings
- type DogsledSettings
- type DupWordSettings
- type DuplSettings
- type ErrChkJSONSettings
- type ErrcheckSettings
- type ErrorLintSettings
- type ExcludePattern
- type ExcludeRule
- type ExhaustiveSettings
- type ExhaustiveStructSettings
- type ExhaustructSettings
- type FileReader
- type ForbidigoPattern
- type ForbidigoSettings
- type FunlenSettings
- type GciSettings
- type GinkgoLinterSettings
- type GoConstSettings
- type GoCriticCheckSettings
- type GoCriticSettings
- type GoCycloSettings
- type GoFmtRewriteRule
- type GoFmtSettings
- type GoHeaderSettings
- type GoImportsSettings
- type GoLintSettings
- type GoMndSettings
- type GoModDirectivesSettings
- type GoModGuardSettings
- type GoSecSettings
- type GocognitSettings
- type GodotSettings
- type GodoxSettings
- type GofumptSettings
- type GosmopolitanSettings
- type GovetSettings
- type GrouperSettings
- type IfshortSettings
- type ImportAsAlias
- type ImportAsSettings
- type InterfaceBloatSettings
- type IreturnSettings
- type Issues
- type Linters
- type LintersSettings
- type LllSettings
- type LoggerCheckSettings
- type MaintIdxSettings
- type MakezeroSettings
- type MalignedSettings
- type MisspellSettings
- type MustTagSettings
- type NakedretSettings
- type NestifSettings
- type NilNilSettings
- type NlreturnSettings
- type NoLintLintSettings
- type NoNamedReturnsSettings
- type Output
- type ParallelTestSettings
- type PreallocSettings
- type PredeclaredSettings
- type PromlinterSettings
- type ReassignSettings
- type ReviveSettings
- type RowsErrCheckSettings
- type Run
- type Severity
- type SeverityRule
- type StaticCheckSettings
- type StructCheckSettings
- type TagAlignSettings
- type TagliatelleSettings
- type TenvSettings
- type TestpackageSettings
- type ThelperOptions
- type ThelperSettings
- type UnparamSettings
- type UseStdlibVarsSettings
- type VarCheckSettings
- 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" OutFormatGithubActions = "github-actions" OutFormatTeamCity = "teamcity" )
Variables ¶
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: "ineffective break statement. Did you mean to break out of the outer loop",
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: "Use of unsafe calls should be audited",
Linter: "gosec",
Why: "Too many false-positives on 'unsafe' usage",
},
{
ID: "EXC0007",
Pattern: "Subprocess launch(ed with variable|ing should be audited)",
Linter: "gosec",
Why: "Too many false-positives for parametrized shell calls",
},
{
ID: "EXC0008",
Pattern: "(G104|G307)",
Linter: "gosec",
Why: "Duplicated errcheck checks",
},
{
ID: "EXC0009",
Pattern: "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)",
Linter: "gosec",
Why: "Too many issues in popular repos",
},
{
ID: "EXC0010",
Pattern: "Potential file inclusion via variable",
Linter: "gosec",
Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'",
},
{
ID: "EXC0011",
Pattern: "(comment on exported (method|function|type|const)|" +
"should have( a package)? comment|comment should be of the form)",
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 DetectGoVersion ¶ added in v1.45.1
func DetectGoVersion() string
func GetDefaultExcludePatternsStrings ¶ added in v1.4.1
func GetDefaultExcludePatternsStrings() []string
func IsGreaterThanOrEqualGo118 ¶ added in v1.45.1
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 Output Output LintersSettings LintersSettings `mapstructure:"linters-settings"` Linters Linters Issues Issues Severity Severity Version Version InternalCmdTest bool `mapstructure:"internal-cmd-test"` // 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 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 CustomLinterSettings ¶ added in v1.23.0
type CustomLinterSettings struct { // Path to a plugin *.so file that implements the private linter. Path string // Description describes the purpose of the private linter. Description string // The URL containing the source code for the private linter. OriginalURL string `mapstructure:"original-url"` }
CustomLinterSettings encapsulates the meta-data of a private linter. For example, a private linter may be added to the golangci config file as shown below.
linters-settings: custom: example: path: /example.so description: The description of the linter original-url: github.com/golangci/example-linter
type DecorderSettings ¶ added in v1.44.0
type DepGuardDeny ¶ added in v1.53.0
type DepGuardList ¶ added in v1.53.0
type DepGuardList struct { 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 DupWordSettings struct {
Keywords []string `mapstructure:"keywords"`
}
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"` Ignore string `mapstructure:"ignore"` ExcludeFunctions []string `mapstructure:"exclude-functions"` // Deprecated: use ExcludeFunctions instead Exclude string `mapstructure:"exclude"` }
type ErrorLintSettings ¶ added in v1.32.0
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"` }
type ExhaustiveStructSettings ¶ added in v1.37.1
type ExhaustiveStructSettings struct {
StructPatterns []string `mapstructure:"struct-patterns"`
}
type ExhaustructSettings ¶ added in v1.46.0
type FileReader ¶ added in v1.7.1
type FileReader struct {
// contains filtered or unexported fields
}
func NewFileReader ¶ added in v1.7.1
func NewFileReader(toCfg, commandLineCfg *Config, log logutils.Log) *FileReader
func (*FileReader) Read ¶ added in v1.7.1
func (r *FileReader) Read() error
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 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"` AllowHaveLenZero bool `mapstructure:"allow-havelen-zero"` }
type GoConstSettings ¶ added in v1.40.0
type GoConstSettings struct { 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:"-"` EnabledChecks []string `mapstructure:"enabled-checks"` 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 GoLintSettings ¶ added in v1.40.0
type GoLintSettings struct {
MinConfidence float64 `mapstructure:"min-confidence"`
}
type GoMndSettings ¶ added in v1.40.0
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:"-"` CheckShadowing bool `mapstructure:"check-shadowing"` Settings map[string]map[string]any Enable []string Disable []string EnableAll bool `mapstructure:"enable-all"` DisableAll bool `mapstructure:"disable-all"` }
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 IfshortSettings ¶ added in v1.36.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"` 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"` }
type LintersSettings ¶
type LintersSettings struct { Asasalint AsasalintSettings BiDiChk BiDiChkSettings Cyclop Cyclop Decorder DecorderSettings Depguard DepGuardSettings Dogsled DogsledSettings Dupl DuplSettings DupWord DupWordSettings Errcheck ErrcheckSettings ErrChkJSON ErrChkJSONSettings ErrorLint ErrorLintSettings Exhaustive ExhaustiveSettings ExhaustiveStruct ExhaustiveStructSettings Exhaustruct ExhaustructSettings Forbidigo ForbidigoSettings Funlen FunlenSettings Gci GciSettings GinkgoLinter GinkgoLinterSettings Gocognit GocognitSettings Goconst GoConstSettings Gocritic GoCriticSettings Gocyclo GoCycloSettings Godot GodotSettings Godox GodoxSettings Gofmt GoFmtSettings Gofumpt GofumptSettings Goheader GoHeaderSettings Goimports GoImportsSettings Golint GoLintSettings Gomnd GoMndSettings GoModDirectives GoModDirectivesSettings Gomodguard GoModGuardSettings Gosec GoSecSettings Gosimple StaticCheckSettings Gosmopolitan GosmopolitanSettings Govet GovetSettings Grouper GrouperSettings Ifshort IfshortSettings ImportAs ImportAsSettings InterfaceBloat InterfaceBloatSettings Ireturn IreturnSettings Lll LllSettings LoggerCheck LoggerCheckSettings MaintIdx MaintIdxSettings Makezero MakezeroSettings Maligned MalignedSettings Misspell MisspellSettings MustTag MustTagSettings Nakedret NakedretSettings Nestif NestifSettings NilNil NilNilSettings Nlreturn NlreturnSettings NoLintLint NoLintLintSettings NoNamedReturns NoNamedReturnsSettings ParallelTest ParallelTestSettings Prealloc PreallocSettings Predeclared PredeclaredSettings Promlinter PromlinterSettings Reassign ReassignSettings Revive ReviveSettings RowsErrCheck RowsErrCheckSettings Staticcheck StaticCheckSettings Structcheck StructCheckSettings Stylecheck StaticCheckSettings TagAlign TagAlignSettings Tagliatelle TagliatelleSettings Tenv TenvSettings Testpackage TestpackageSettings Thelper ThelperSettings Unparam UnparamSettings UseStdlibVars UseStdlibVarsSettings Varcheck VarCheckSettings Varnamelen VarnamelenSettings Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings Custom map[string]CustomLinterSettings }
type LllSettings ¶ added in v1.8.1
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 MalignedSettings ¶ added in v1.40.0
type MalignedSettings struct {
SuggestNewOrder bool `mapstructure:"suggest-new"`
}
type MisspellSettings ¶ added in v1.40.0
type MustTagSettings ¶ added in v1.51.0
type NakedretSettings ¶ added in v1.9.1
type NakedretSettings struct {
MaxFuncLines int `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 NilNilSettings struct {
CheckedTypes []string `mapstructure:"checked-types"`
}
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 { Format string PrintIssuedLine bool `mapstructure:"print-issued-lines"` PrintLinterName bool `mapstructure:"print-linter-name"` UniqByLine bool `mapstructure:"uniq-by-line"` SortResults bool `mapstructure:"sort-results"` PrintWelcomeMessage bool `mapstructure:"print-welcome"` PathPrefix string `mapstructure:"path-prefix"` // only work with CLI flags because the setup of logs is done before the config file parsing. Color string }
type ParallelTestSettings ¶ added in v1.47.0
type ParallelTestSettings struct {
IgnoreMissing bool `mapstructure:"ignore-missing"`
}
type PreallocSettings ¶ added in v1.9.1
type PredeclaredSettings ¶ added in v1.35.0
type PromlinterSettings ¶ added in v1.40.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 { 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 } 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 { IsVerbose bool `mapstructure:"verbose"` Silent bool CPUProfilePath string MemProfilePath string TracePath string Concurrency int PrintResourcesUsage bool `mapstructure:"print-resources-usage"` Config string // The path to the golangci config file, as specified with the --config argument. NoConfig bool Args []string 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"` // Deprecated: Deadline exists for historical compatibility // and should not be used. To set run timeout use Timeout instead. Deadline time.Duration Timeout time.Duration PrintVersion bool SkipFiles []string `mapstructure:"skip-files"` SkipDirs []string `mapstructure:"skip-dirs"` UseDefaultSkipDirs bool `mapstructure:"skip-dirs-use-default"` AllowParallelRunners bool `mapstructure:"allow-parallel-runners"` AllowSerialRunners bool `mapstructure:"allow-serial-runners"` }
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 StaticCheckSettings ¶ added in v1.40.0
type StaticCheckSettings struct { // Deprecated: use the global `run.go` instead. GoVersion string `mapstructure:"go"` 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 }
func (*StaticCheckSettings) HasConfiguration ¶ added in v1.41.0
func (s *StaticCheckSettings) HasConfiguration() bool
type StructCheckSettings ¶ added in v1.40.0
type StructCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
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 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 UnparamSettings ¶ added in v1.9.1
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"` SQLIsolationLevel bool `mapstructure:"sql-isolation-level"` TLSSignatureScheme bool `mapstructure:"tls-signature-scheme"` ConstantKind bool `mapstructure:"constant-kind"` SyslogPriority bool `mapstructure:"syslog-priority"` }
type VarCheckSettings ¶ added in v1.40.0
type VarCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
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"` }