Documentation ¶
Index ¶
- Constants
- Variables
- func GetDefaultExcludePatternsStrings() []string
- type BaseRule
- type BiDiChkSettings
- type Config
- type CustomLinterSettings
- type Cyclop
- type DepGuardSettings
- type DogsledSettings
- type DuplSettings
- type ErrcheckSettings
- type ErrorLintSettings
- type ExcludePattern
- type ExcludeRule
- type ExhaustiveSettings
- type ExhaustiveStructSettings
- type FileReader
- type ForbidigoSettings
- type FunlenSettings
- type GciSettings
- type GoConstSettings
- type GoCycloSettings
- type GoFmtSettings
- type GoHeaderSettings
- type GoImportsSettings
- type GoLintSettings
- type GoMndSettings
- type GoModDirectivesSettings
- type GoModGuardSettings
- type GoSecSettings
- type GocognitSettings
- type GocriticCheckSettings
- type GocriticSettings
- type GodotSettings
- type GodoxSettings
- type GofumptSettings
- type GovetSettings
- type IfshortSettings
- type ImportAsAlias
- type ImportAsSettings
- type IreturnSettings
- type Issues
- type Linters
- type LintersSettings
- type LllSettings
- type MakezeroSettings
- type MalignedSettings
- type MisspellSettings
- type NakedretSettings
- type NestifSettings
- type NilNilSettings
- type NlreturnSettings
- type NoLintLintSettings
- type Output
- type PreallocSettings
- type PredeclaredSettings
- type PromlinterSettings
- type ReviveSettings
- type RowsErrCheckSettings
- type Run
- type Severity
- type SeverityRule
- type StaticCheckSettings
- type StructCheckSettings
- type TagliatelleSettings
- type TenvSettings
- type TestpackageSettings
- type ThelperSettings
- type UnparamSettings
- type VarCheckSettings
- type VarnamelenSettings
- type Version
- type WSLSettings
- type WhitespaceSettings
- type WrapcheckSettings
Constants ¶
View Source
const ( OutFormatJSON = "json" OutFormatLineNumber = "line-number" OutFormatColoredLineNumber = "colored-line-number" OutFormatTab = "tab" OutFormatCheckstyle = "checkstyle" OutFormatCodeClimate = "code-climate" OutFormatHTML = "html" 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",
},
{
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, unless it's in another file for this package`,
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
Types ¶
type BiDiChkSettings ¶ added in v1.42.3
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.42.3
GetConfigDir returns the directory that contains golangci config file.
type CustomLinterSettings ¶ added in v1.42.2
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 DepGuardSettings ¶ added in v1.42.2
type DogsledSettings ¶ added in v1.42.2
type DogsledSettings struct {
MaxBlankIdentifiers int `mapstructure:"max-blank-identifiers"`
}
type DuplSettings ¶ added in v1.42.2
type DuplSettings struct {
Threshold int
}
type ErrcheckSettings ¶ added in v1.42.2
type ErrcheckSettings struct { 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.42.2
type ExcludePattern ¶ added in v1.4.1
func GetExcludePatterns ¶ added in v1.42.2
func GetExcludePatterns(include []string) []ExcludePattern
type ExcludeRule ¶ added in v1.42.2
type ExcludeRule struct {
BaseRule `mapstructure:",squash"`
}
func (ExcludeRule) Validate ¶ added in v1.42.2
func (e ExcludeRule) Validate() error
type ExhaustiveSettings ¶ added in v1.42.2
type ExhaustiveSettings struct { CheckGenerated bool `mapstructure:"check-generated"` DefaultSignifiesExhaustive bool `mapstructure:"default-signifies-exhaustive"` IgnoreEnumMembers string `mapstructure:"ignore-enum-members"` PackageScopeOnly bool `mapstructure:"package-scope-only"` IgnorePattern string `mapstructure:"ignore-pattern"` // Deprecated: this setting has no effect; see IgnoreEnumMembers instead. CheckingStrategy string `mapstructure:"checking-strategy"` // Deprecated. }
type ExhaustiveStructSettings ¶ added in v1.42.2
type ExhaustiveStructSettings struct {
StructPatterns []string `mapstructure:"struct-patterns"`
}
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.42.2
type FunlenSettings ¶ added in v1.42.2
type GciSettings ¶ added in v1.42.2
type GciSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
type GoConstSettings ¶ added in v1.42.2
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 GoCycloSettings ¶ added in v1.42.2
type GoCycloSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GoFmtSettings ¶ added in v1.42.2
type GoFmtSettings struct {
Simplify bool
}
type GoHeaderSettings ¶ added in v1.42.2
type GoImportsSettings ¶ added in v1.42.2
type GoImportsSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
type GoLintSettings ¶ added in v1.42.2
type GoLintSettings struct {
MinConfidence float64 `mapstructure:"min-confidence"`
}
type GoMndSettings ¶ added in v1.42.2
type GoModDirectivesSettings ¶ added in v1.42.2
type GoModGuardSettings ¶ added in v1.42.2
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.42.2
type GocognitSettings ¶ added in v1.42.2
type GocognitSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GocriticCheckSettings ¶ added in v1.42.2
type GocriticCheckSettings map[string]interface{}
type GocriticSettings ¶ added in v1.42.2
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.42.2
func (s *GocriticSettings) GetLowercasedParams() map[string]GocriticCheckSettings
func (*GocriticSettings) InferEnabledChecks ¶ added in v1.42.2
func (s *GocriticSettings) InferEnabledChecks(log logutils.Log)
func (*GocriticSettings) IsCheckEnabled ¶ added in v1.42.2
func (s *GocriticSettings) IsCheckEnabled(name string) bool
type GodotSettings ¶ added in v1.42.2
type GodoxSettings ¶ added in v1.42.2
type GodoxSettings struct {
Keywords []string
}
type GofumptSettings ¶ added in v1.42.2
type GovetSettings ¶ added in v1.42.2
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.42.2
func (cfg GovetSettings) Validate() error
type IfshortSettings ¶ added in v1.42.2
type ImportAsAlias ¶ added in v1.42.2
type ImportAsSettings ¶ added in v1.42.2
type ImportAsSettings struct { Alias []ImportAsAlias NoUnaliased bool `mapstructure:"no-unaliased"` }
type IreturnSettings ¶ added in v1.42.3
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 { BiDiChk BiDiChkSettings Cyclop Cyclop Depguard DepGuardSettings Dogsled DogsledSettings Dupl DuplSettings Errcheck ErrcheckSettings ErrorLint ErrorLintSettings Exhaustive ExhaustiveSettings ExhaustiveStruct ExhaustiveStructSettings Forbidigo ForbidigoSettings Funlen FunlenSettings Gci GciSettings 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 Govet GovetSettings Ifshort IfshortSettings Ireturn IreturnSettings ImportAs ImportAsSettings Lll LllSettings Makezero MakezeroSettings Maligned MalignedSettings Misspell MisspellSettings Nakedret NakedretSettings Nestif NestifSettings NilNil NilNilSettings Nlreturn NlreturnSettings NoLintLint NoLintLintSettings Prealloc PreallocSettings Predeclared PredeclaredSettings Promlinter PromlinterSettings Revive ReviveSettings RowsErrCheck RowsErrCheckSettings Staticcheck StaticCheckSettings Structcheck StructCheckSettings Stylecheck StaticCheckSettings Tagliatelle TagliatelleSettings Testpackage TestpackageSettings Thelper ThelperSettings Tenv TenvSettings Unparam UnparamSettings Unused StaticCheckSettings Varcheck VarCheckSettings Varnamelen VarnamelenSettings Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings Custom map[string]CustomLinterSettings }
type LllSettings ¶ added in v1.8.1
type MakezeroSettings ¶ added in v1.42.2
type MakezeroSettings struct {
Always bool
}
type MalignedSettings ¶ added in v1.42.2
type MalignedSettings struct {
SuggestNewOrder bool `mapstructure:"suggest-new"`
}
type MisspellSettings ¶ added in v1.42.2
type NakedretSettings ¶ added in v1.9.1
type NakedretSettings struct {
MaxFuncLines int `mapstructure:"max-func-lines"`
}
type NestifSettings ¶ added in v1.42.2
type NestifSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type NilNilSettings ¶ added in v1.42.3
type NilNilSettings struct {
CheckedTypes []string `mapstructure:"checked-types"`
}
type NlreturnSettings ¶ added in v1.42.3
type NlreturnSettings struct {
BlockSize int `mapstructure:"block-size"`
}
type NoLintLintSettings ¶ added in v1.42.2
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 Output ¶ added in v1.42.2
type 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"` }
type PreallocSettings ¶ added in v1.9.1
type PredeclaredSettings ¶ added in v1.42.2
type PromlinterSettings ¶ added in v1.42.2
type ReviveSettings ¶ added in v1.42.2
type ReviveSettings struct { IgnoreGeneratedHeader bool `mapstructure:"ignore-generated-header"` Confidence float64 Severity string EnableAllRules bool `mapstructure:"enable-all-rules"` Rules []struct { Name string Arguments []interface{} 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.42.2
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 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.42.2
type Severity struct { Default string `mapstructure:"default-severity"` CaseSensitive bool `mapstructure:"case-sensitive"` Rules []SeverityRule `mapstructure:"rules"` }
type SeverityRule ¶ added in v1.42.2
func (*SeverityRule) Validate ¶ added in v1.42.2
func (s *SeverityRule) Validate() error
type StaticCheckSettings ¶ added in v1.42.2
type StaticCheckSettings struct { 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.42.2
func (s *StaticCheckSettings) HasConfiguration() bool
type StructCheckSettings ¶ added in v1.42.2
type StructCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
type TagliatelleSettings ¶ added in v1.42.2
type TenvSettings ¶ added in v1.42.3
type TenvSettings struct {
All bool `mapstructure:"all"`
}
type TestpackageSettings ¶ added in v1.42.2
type TestpackageSettings struct {
SkipRegexp string `mapstructure:"skip-regexp"`
}
type ThelperSettings ¶ added in v1.42.2
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 VarCheckSettings ¶ added in v1.42.2
type VarCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
type VarnamelenSettings ¶ added in v1.42.3
type VarnamelenSettings struct { MaxDistance int `mapstructure:"max-distance"` MinNameLength int `mapstructure:"min-name-length"` CheckReceiver bool `mapstructure:"check-receiver"` CheckReturn bool `mapstructure:"check-return"` 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.42.2
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"` 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"` ForceExclusiveShortDeclarations bool `mapstructure:"force-short-decl-cuddling"` ForceCaseTrailingWhitespaceLimit int `mapstructure:"force-case-trailing-whitespace"` }
type WhitespaceSettings ¶ added in v1.42.2
type WrapcheckSettings ¶ added in v1.42.2
Click to show internal directories.
Click to hide internal directories.