Documentation ¶
Index ¶
- Constants
- Variables
- func GetDefaultExcludePatternsStrings() []string
- type BaseRule
- 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 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 ¶
func GetDefaultExcludePatternsStrings() []string
Types ¶
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 go-readability command, don't use it InternalTest bool // Option is used only for testing go-readability code, don't use it }
func NewDefault ¶
func NewDefault() *Config
type CustomLinterSettings ¶
type DepGuardSettings ¶
type DogsledSettings ¶
type DogsledSettings struct {
MaxBlankIdentifiers int `mapstructure:"max-blank-identifiers"`
}
type DuplSettings ¶
type DuplSettings struct {
Threshold int
}
type ErrcheckSettings ¶
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 ¶
type ExcludePattern ¶
func GetExcludePatterns ¶
func GetExcludePatterns(include []string) []ExcludePattern
type ExcludeRule ¶
type ExcludeRule struct {
BaseRule `mapstructure:",squash"`
}
func (ExcludeRule) Validate ¶
func (e ExcludeRule) Validate() error
type ExhaustiveSettings ¶
type ExhaustiveStructSettings ¶
type ExhaustiveStructSettings struct {
StructPatterns []string `mapstructure:"struct-patterns"`
}
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 ForbidigoSettings ¶
type FunlenSettings ¶
type GciSettings ¶
type GciSettings struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
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 GoCycloSettings ¶
type GoCycloSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GoFmtSettings ¶
type GoFmtSettings struct {
Simplify bool
}
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 GocognitSettings ¶
type GocognitSettings struct {
MinComplexity int `mapstructure:"min-complexity"`
}
type GocriticCheckSettings ¶
type GocriticCheckSettings map[string]interface{}
type GocriticSettings ¶
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 ¶
func (s *GocriticSettings) GetLowercasedParams() map[string]GocriticCheckSettings
func (*GocriticSettings) InferEnabledChecks ¶
func (s *GocriticSettings) InferEnabledChecks(log logutils.Log)
func (*GocriticSettings) IsCheckEnabled ¶
func (s *GocriticSettings) IsCheckEnabled(name string) bool
type GodotSettings ¶
type GodoxSettings ¶
type GodoxSettings struct {
Keywords []string
}
type GofumptSettings ¶
type GovetSettings ¶
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 ¶
func (cfg GovetSettings) Validate() error
type IfshortSettings ¶
type ImportAsAlias ¶
type ImportAsSettings ¶
type ImportAsSettings struct { Alias []ImportAsAlias NoUnaliased bool `mapstructure:"no-unaliased"` }
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"` Diff bool `mapstructure:"new"` NeedFix bool `mapstructure:"fix"` }
type LintersSettings ¶
type LintersSettings struct { 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 Whitespace WhitespaceSettings Wrapcheck WrapcheckSettings WSL WSLSettings Custom map[string]CustomLinterSettings }
type LllSettings ¶
type MakezeroSettings ¶
type MakezeroSettings struct {
Always bool
}
type MalignedSettings ¶
type MalignedSettings struct {
SuggestNewOrder bool `mapstructure:"suggest-new"`
}
type MisspellSettings ¶
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 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 ¶
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 ¶
type PredeclaredSettings ¶
type PromlinterSettings ¶
type ReviveSettings ¶
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 ¶
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 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 ¶
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 StaticCheckSettings ¶
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 ¶
func (s *StaticCheckSettings) HasConfiguration() bool
type StructCheckSettings ¶
type StructCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
type TagliatelleSettings ¶
type TenvSettings ¶
type TenvSettings struct {
All bool `mapstructure:"all"`
}
type TestpackageSettings ¶
type TestpackageSettings struct {
SkipRegexp string `mapstructure:"skip-regexp"`
}
type ThelperSettings ¶
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 ¶
type VarCheckSettings ¶
type VarCheckSettings struct {
CheckExportedFields bool `mapstructure:"exported-fields"`
}
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"` 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 ¶
type WrapcheckSettings ¶
Click to show internal directories.
Click to hide internal directories.