Documentation ¶
Index ¶
- Constants
- Variables
- func GetDefaultExcludePatternsStrings() []string
- type BaseRule
- type Config
- type CustomLinterSettings
- type DogsledSettings
- type ErrcheckSettings
- type ErrorLintSettings
- type ExcludePattern
- type ExcludeRule
- type ExhaustiveSettings
- type FileReader
- type ForbidigoSettings
- type GoHeaderSettings
- type GocognitSettings
- type GocriticCheckSettings
- type GocriticSettings
- type GodotSettings
- type GodoxSettings
- type GofumptSettings
- type GovetSettings
- type IfshortSettings
- type Issues
- type Linters
- type LintersSettings
- type LllSettings
- type MakezeroSettings
- type NakedretSettings
- type NestifSettings
- type NoLintLintSettings
- type PreallocSettings
- type PredeclaredSettings
- type ReviveSettings
- type Run
- type Severity
- type SeverityRule
- type TestpackageSettings
- type ThelperSettings
- type UnparamSettings
- type Version
- type WSLSettings
Constants ¶
View Source
const ( OutFormatJSON = "json" OutFormatLineNumber = "line-number" OutFormatColoredLineNumber = "colored-line-number" OutFormatTab = "tab" OutFormatCheckstyle = "checkstyle" OutFormatCodeClimate = "code-climate" OutFormatJunitXML = "junit-xml" OutFormatGithubActions = "github-actions" )
Variables ¶
View Source
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",
},
}
Functions ¶
func GetDefaultExcludePatternsStrings ¶ added in v1.4.1
func GetDefaultExcludePatternsStrings() []string
Types ¶
type Config ¶
type Config struct { Run Run Output struct { Format string Color 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"` } LintersSettings LintersSettings `mapstructure:"linters-settings"` Linters Linters Issues Issues Severity Severity Version Version InternalTest bool // Option is used only for testing golangci-lint code, don't use it }
func NewDefault ¶ added in v1.8.1
func NewDefault() *Config
type CustomLinterSettings ¶ added in v1.23.0
type DogsledSettings ¶ added in v1.19.0
type DogsledSettings struct {
MaxBlankIdentifiers int `mapstructure:"max-blank-identifiers"`
}
type ErrcheckSettings ¶ added in v1.11.1
type ErrorLintSettings ¶ added in v1.32.0
type ErrorLintSettings struct {
Errorf bool `mapstructure:"errorf"`
}
type ExcludePattern ¶ added in v1.4.1
func GetExcludePatterns ¶ added in v1.33.0
func GetExcludePatterns(include []string) []ExcludePattern
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 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 ForbidigoSettings ¶ added in v1.33.1
type GoHeaderSettings ¶ added in v1.28.0
type GocognitSettings ¶ added in v1.20.0
type GocognitSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GocriticCheckSettings ¶ added in v1.12.1
type GocriticCheckSettings map[string]interface{}
type GocriticSettings ¶ added in v1.12.1
type GocriticSettings struct { 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"` // contains filtered or unexported fields }
func (*GocriticSettings) GetLowercasedParams ¶ added in v1.13.2
func (s *GocriticSettings) GetLowercasedParams() map[string]GocriticCheckSettings
func (*GocriticSettings) InferEnabledChecks ¶ added in v1.12.1
func (s *GocriticSettings) InferEnabledChecks(log logutils.Log)
func (*GocriticSettings) IsCheckEnabled ¶ added in v1.12.1
func (s *GocriticSettings) IsCheckEnabled(name string) bool
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 GofumptSettings struct {
ExtraRules bool `mapstructure:"extra-rules"`
}
type GovetSettings ¶ added in v1.16.0
type GovetSettings struct { CheckShadowing bool `mapstructure:"check-shadowing"` Settings map[string]map[string]interface{} 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 IfshortSettings ¶ added in v1.36.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"` Diff bool `mapstructure:"new"` NeedFix bool `mapstructure:"fix"` }
type LintersSettings ¶
type LintersSettings struct { Gci struct { LocalPrefixes string `mapstructure:"local-prefixes"` } Govet GovetSettings Golint struct { MinConfidence float64 `mapstructure:"min-confidence"` } Gofmt struct { Simplify bool } Goimports struct { LocalPrefixes string `mapstructure:"local-prefixes"` } Gocyclo struct { MinComplexity int `mapstructure:"min-complexity"` } Cyclop struct { MaxComplexity int `mapstructure:"max-complexity"` PackageAverage float64 `mapstructure:"package-average"` SkipTests bool `mapstructure:"skip-tests"` } Varcheck struct { CheckExportedFields bool `mapstructure:"exported-fields"` } Structcheck struct { CheckExportedFields bool `mapstructure:"exported-fields"` } Maligned struct { SuggestNewOrder bool `mapstructure:"suggest-new"` } Dupl struct { Threshold int } Goconst struct { 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"` } Gomnd struct { Settings map[string]map[string]interface{} } Depguard struct { ListType string `mapstructure:"list-type"` Packages []string IncludeGoRoot bool `mapstructure:"include-go-root"` PackagesWithErrorMessage map[string]string `mapstructure:"packages-with-error-message"` } Misspell struct { Locale string IgnoreWords []string `mapstructure:"ignore-words"` } Unused struct { CheckExported bool `mapstructure:"check-exported"` } Funlen struct { Lines int Statements int } Whitespace struct { MultiIf bool `mapstructure:"multi-if"` MultiFunc bool `mapstructure:"multi-func"` } RowsErrCheck struct { Packages []string } Gomodguard 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"` } WSL WSLSettings Lll LllSettings Unparam UnparamSettings Nakedret NakedretSettings Prealloc PreallocSettings Errcheck ErrcheckSettings Gocritic GocriticSettings Godox GodoxSettings Dogsled DogsledSettings Gocognit GocognitSettings Godot GodotSettings Goheader GoHeaderSettings Testpackage TestpackageSettings Nestif NestifSettings NoLintLint NoLintLintSettings Exhaustive ExhaustiveSettings Gofumpt GofumptSettings ErrorLint ErrorLintSettings Makezero MakezeroSettings Revive ReviveSettings Thelper ThelperSettings Forbidigo ForbidigoSettings Ifshort IfshortSettings Predeclared PredeclaredSettings Custom map[string]CustomLinterSettings }
type LllSettings ¶ added in v1.8.1
type MakezeroSettings ¶ added in v1.33.1
type MakezeroSettings struct {
Always bool
}
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 NoLintLintSettings ¶ added in v1.26.0
type NoLintLintSettings struct { RequireExplanation bool `mapstructure:"require-explanation"` AllowLeadingSpace bool `mapstructure:"allow-leading-space"` RequireSpecific bool `mapstructure:"require-specific"` AllowNoExplanation []string `mapstructure:"allow-no-explanation"` AllowUnused bool `mapstructure:"allow-unused"` }
type PreallocSettings ¶ added in v1.9.1
type PredeclaredSettings ¶ added in v1.35.0
type ReviveSettings ¶ added in v1.37.0
type ReviveSettings struct { IgnoreGeneratedHeader bool `mapstructure:"ignore-generated-header"` Confidence float64 Severity string Rules []struct { Name string Arguments []interface{} Severity string } ErrorCode int `mapstructure:"error-code"` WarningCode int `mapstructure:"warning-code"` Directives []struct { Name string Severity 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 NoConfig bool Args []string 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"` }
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 TestpackageSettings ¶ added in v1.25.0
type TestpackageSettings struct {
SkipRegexp string `mapstructure:"skip-regexp"`
}
type ThelperSettings ¶ added in v1.33.1
type ThelperSettings struct { Test struct { First bool `mapstructure:"first"` Name bool `mapstructure:"name"` Begin bool `mapstructure:"begin"` } `mapstructure:"test"` Benchmark struct { First bool `mapstructure:"first"` Name bool `mapstructure:"name"` Begin bool `mapstructure:"begin"` } `mapstructure:"benchmark"` TB struct { First bool `mapstructure:"first"` Name bool `mapstructure:"name"` Begin bool `mapstructure:"begin"` } `mapstructure:"tb"` }
type UnparamSettings ¶ added in v1.9.1
type WSLSettings ¶ added in v1.20.0
type WSLSettings struct { StrictAppend bool `mapstructure:"strict-append"` AllowAssignAndCallCuddle bool `mapstructure:"allow-assign-and-call"` AllowMultiLineAssignCuddle bool `mapstructure:"allow-multiline-assign"` AllowCuddleDeclaration bool `mapstructure:"allow-cuddle-declarations"` AllowTrailingComment bool `mapstructure:"allow-trailing-comment"` AllowSeparatedLeadingComment bool `mapstructure:"allow-separated-leading-comment"` ForceCuddleErrCheckAndAssign bool `mapstructure:"force-err-cuddling"` ForceCaseTrailingWhitespaceLimit int `mapstructure:"force-case-trailing-whitespace"` }
Click to show internal directories.
Click to hide internal directories.