Documentation ¶
Index ¶
- Constants
- Variables
- func DetectGoVersion() string
- func GetDefaultExcludePatternsStrings() []string
- func IsGreaterThanOrEqualGo121(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 SlogLintSettings
- type StaticCheckSettings
- type StructCheckSettings
- type TagAlignSettings
- type TagliatelleSettings
- type TenvSettings
- type TestifylintSettings
- type TestpackageSettings
- type ThelperOptions
- type ThelperSettings
- type UnparamSettings
- type UnusedSettings
- 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)",
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 ¶
func DetectGoVersion() string
func GetDefaultExcludePatternsStrings ¶
func GetDefaultExcludePatternsStrings() []string
Types ¶
type AsasalintSettings ¶
type BaseRule ¶
type BiDiChkSettings ¶
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 ¶
func NewDefault() *Config
func (*Config) GetConfigDir ¶
GetConfigDir returns the directory that contains golangci config file.
type CustomLinterSettings ¶
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 // 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. 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 ¶
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 ¶
type DepGuardList ¶
type DepGuardList struct { Files []string `mapstructure:"files"` Allow []string `mapstructure:"allow"` Deny []DepGuardDeny `mapstructure:"deny"` }
type DepGuardSettings ¶
type DepGuardSettings struct {
Rules map[string]*DepGuardList `mapstructure:"rules"`
}
type DogsledSettings ¶
type DogsledSettings struct {
MaxBlankIdentifiers int `mapstructure:"max-blank-identifiers"`
}
type DupWordSettings ¶
type DuplSettings ¶
type DuplSettings struct {
Threshold int
}
type ErrChkJSONSettings ¶
type ErrcheckSettings ¶
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 ¶
type ExcludePattern ¶
func GetExcludePatterns ¶
func GetExcludePatterns(include []string) []ExcludePattern
TODO(ldez): this behavior must be changed in v2, because this is confusing.
type ExcludeRule ¶
type ExcludeRule struct {
BaseRule `mapstructure:",squash"`
}
func (*ExcludeRule) Validate ¶
func (e *ExcludeRule) Validate() error
type ExhaustiveSettings ¶
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 ¶
type ExhaustiveStructSettings struct {
StructPatterns []string `mapstructure:"struct-patterns"`
}
type ExhaustructSettings ¶
type FileReader ¶
type FileReader struct {
// contains filtered or unexported fields
}
func NewFileReader ¶
func NewFileReader(toCfg, commandLineCfg *Config, log logutils.Log) *FileReader
func (*FileReader) Read ¶
func (r *FileReader) Read() error
type ForbidigoPattern ¶
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 ¶
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 ¶
func (p *ForbidigoPattern) UnmarshalText(text []byte) error
type ForbidigoSettings ¶
type ForbidigoSettings struct { Forbid []ForbidigoPattern `mapstructure:"forbid"` ExcludeGodocExamples bool `mapstructure:"exclude-godoc-examples"` AnalyzeTypes bool `mapstructure:"analyze-types"` }
type FunlenSettings ¶
type GciSettings ¶
type GinkgoLinterSettings ¶
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"` }
type GoConstSettings ¶
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 ¶
type GoCriticSettings ¶
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 ¶
type GoCycloSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GoFmtRewriteRule ¶
type GoFmtSettings ¶
type GoFmtSettings struct { Simplify bool RewriteRules []GoFmtRewriteRule `mapstructure:"rewrite-rules"` }
type GoHeaderSettings ¶
type GoImportsSettings ¶
type GoImportsSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
type GoLintSettings ¶
type GoLintSettings struct {
MinConfidence float64 `mapstructure:"min-confidence"`
}
type GoMndSettings ¶
type GoModDirectivesSettings ¶
type GoModGuardSettings ¶
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 ¶
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 ¶
type GocognitSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GodotSettings ¶
type GodoxSettings ¶
type GodoxSettings struct {
Keywords []string
}
type GofumptSettings ¶
type GosmopolitanSettings ¶
type GovetSettings ¶
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 ¶
func (cfg *GovetSettings) Validate() error
type GrouperSettings ¶
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 ¶
type ImportAsAlias ¶
type ImportAsSettings ¶
type ImportAsSettings struct { Alias []ImportAsAlias NoUnaliased bool `mapstructure:"no-unaliased"` NoExtraAliases bool `mapstructure:"no-extra-aliases"` }
type InterfaceBloatSettings ¶
type InterfaceBloatSettings struct {
Max int `mapstructure:"max"`
}
type IreturnSettings ¶
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 SlogLint SlogLintSettings Staticcheck StaticCheckSettings Structcheck StructCheckSettings Stylecheck StaticCheckSettings TagAlign TagAlignSettings Tagliatelle TagliatelleSettings Testifylint TestifylintSettings Tenv TenvSettings Testpackage TestpackageSettings Thelper ThelperSettings Unparam UnparamSettings Unused UnusedSettings UseStdlibVars UseStdlibVarsSettings Varcheck VarCheckSettings Varnamelen VarnamelenSettings Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings Custom map[string]CustomLinterSettings }
type LllSettings ¶
type LoggerCheckSettings ¶
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 ¶
type MaintIdxSettings struct {
Under int `mapstructure:"under"`
}
type MakezeroSettings ¶
type MakezeroSettings struct {
Always bool
}
type MalignedSettings ¶
type MalignedSettings struct {
SuggestNewOrder bool `mapstructure:"suggest-new"`
}
type MisspellSettings ¶
type MustTagSettings ¶
type NakedretSettings ¶
type NakedretSettings struct {
MaxFuncLines int `mapstructure:"max-func-lines"`
}
type NestifSettings ¶
type NestifSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type NilNilSettings ¶
type NilNilSettings struct {
CheckedTypes []string `mapstructure:"checked-types"`
}
type NlreturnSettings ¶
type NlreturnSettings struct {
BlockSize int `mapstructure:"block-size"`
}
type NoLintLintSettings ¶
type NoNamedReturnsSettings ¶
type NoNamedReturnsSettings struct {
ReportErrorInDefer bool `mapstructure:"report-error-in-defer"`
}
type Output ¶
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 ¶
type PreallocSettings ¶
type PredeclaredSettings ¶
type PromlinterSettings ¶
type ReassignSettings ¶
type ReassignSettings struct {
Patterns []string `mapstructure:"patterns"`
}
type ReviveSettings ¶
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 ¶
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 ¶
type Severity struct { Default string `mapstructure:"default-severity"` CaseSensitive bool `mapstructure:"case-sensitive"` Rules []SeverityRule `mapstructure:"rules"` }
type SeverityRule ¶
func (*SeverityRule) Validate ¶
func (s *SeverityRule) Validate() error
type SlogLintSettings ¶
type StaticCheckSettings ¶
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 ¶
func (s *StaticCheckSettings) HasConfiguration() bool
type StructCheckSettings ¶
type StructCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
type TagAlignSettings ¶
type TagliatelleSettings ¶
type TenvSettings ¶
type TenvSettings struct {
All bool `mapstructure:"all"`
}
type TestifylintSettings ¶
type TestifylintSettings struct { EnableAll bool `mapstructure:"enable-all"` EnabledCheckers []string `mapstructure:"enable"` ExpectedActual struct { ExpVarPattern string `mapstructure:"pattern"` } `mapstructure:"expected-actual"` SuiteExtraAssertCall struct { Mode string `mapstructure:"mode"` } `mapstructure:"suite-extra-assert-call"` }
type TestpackageSettings ¶
type ThelperOptions ¶
type ThelperSettings ¶
type ThelperSettings struct { Test ThelperOptions `mapstructure:"test"` Fuzz ThelperOptions `mapstructure:"fuzz"` Benchmark ThelperOptions `mapstructure:"benchmark"` TB ThelperOptions `mapstructure:"tb"` }
type UnparamSettings ¶
type UnusedSettings ¶
type UnusedSettings struct { FieldWritesAreUses bool `mapstructure:"field-writes-are-uses"` PostStatementsAreReads bool `mapstructure:"post-statements-are-reads"` ExportedIsUsed bool `mapstructure:"exported-is-used"` 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 ¶
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 ¶
type VarCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
type VarnamelenSettings ¶
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 ¶
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 ¶
type WrapcheckSettings ¶
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"` }