 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- Variables
- func GetDefaultExcludePatternsStrings() []string
- func IsGoGreaterThanOrEqual(current, limit string) bool
- type AsasalintSettings
- type BaseRule
- type BiDiChkSettings
- type Config
- type CopyLoopVarSettings
- type CustomLinterSettings
- type Cyclop
- type DecorderSettings
- type DepGuardDeny
- type DepGuardList
- type DepGuardSettings
- type DogsledSettings
- type DupWordSettings
- type DuplSettings
- type ErrChkJSONSettings
- type ErrcheckSettings
- type ErrorLintAllowPair
- type ErrorLintSettings
- type ExcludePattern
- type ExcludeRule
- type ExhaustiveSettings
- type ExhaustructSettings
- 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 GoMndSettingsdeprecated
- type GoModDirectivesSettings
- type GoModGuardSettings
- type GoSecSettings
- type GocognitSettings
- type GodotSettings
- type GodoxSettings
- type GofumptSettings
- type GosmopolitanSettings
- type GovetSettings
- type GrouperSettings
- type INamedParamSettings
- type ImportAsAlias
- type ImportAsSettings
- type InterfaceBloatSettings
- type IreturnSettings
- type Issues
- type Linters
- type LintersSettings
- type LllSettings
- type LoadOptions
- type Loader
- type LoaderOptions
- type LoggerCheckSettings
- type MaintIdxSettings
- type MakezeroSettings
- type MisspellExtraWords
- type MisspellSettings
- type MndSettings
- type MustTagSettings
- type NakedretSettings
- type NestifSettings
- type NilNilSettings
- type NlreturnSettings
- type NoLintLintSettings
- type NoNamedReturnsSettings
- type Output
- type OutputFormat
- type OutputFormats
- type ParallelTestSettings
- type PerfSprintSettings
- type PreallocSettings
- type PredeclaredSettings
- type PromlinterSettings
- type ProtoGetterSettings
- type ReassignSettings
- type ReviveSettings
- type RowsErrCheckSettings
- type Run
- type Severity
- type SeverityRule
- type SlogLintSettings
- type SnowyGoSettings
- type SpancheckSettings
- type StaticCheckSettings
- type TagAlignSettings
- type TagliatelleSettings
- type TenvSettings
- type TestifylintSettings
- type TestpackageSettings
- type ThelperOptions
- type ThelperSettings
- type UnconvertSettings
- type UnparamSettings
- type UnusedSettings
- type UseStdlibVarsSettings
- 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" // Deprecated OutFormatTeamCity = "teamcity" OutFormatSarif = "sarif" )
Variables ¶
var AllOutputFormats = []string{ OutFormatJSON, OutFormatLineNumber, OutFormatColoredLineNumber, OutFormatTab, OutFormatColoredTab, OutFormatCheckstyle, OutFormatCodeClimate, OutFormatHTML, OutFormatJunitXML, OutFormatGithubActions, OutFormatTeamCity, OutFormatSarif, }
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: "SA4011",
		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: "G103: Use of unsafe calls should be audited",
		Linter:  "gosec",
		Why:     "Too many false-positives on 'unsafe' usage.",
	},
	{
		ID:      "EXC0007",
		Pattern: "G204: Subprocess launched with variable",
		Linter:  "gosec",
		Why:     "Too many false-positives for parametrized shell calls.",
	},
	{
		ID:      "EXC0008",
		Pattern: "G104",
		Linter:  "gosec",
		Why:     "Duplicated errcheck checks.",
	},
	{
		ID:      "EXC0009",
		Pattern: "(G301|G302|G307): Expect (directory permissions to be 0750|file permissions to be 0600) or less",
		Linter:  "gosec",
		Why:     "Too many issues in popular repos.",
	},
	{
		ID:      "EXC0010",
		Pattern: "G304: Potential file inclusion via variable",
		Linter:  "gosec",
		Why:     "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'.",
	},
	{
		ID:      "EXC0011",
		Pattern: "(ST1000|ST1020|ST1021|ST1022)",
		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 GetDefaultExcludePatternsStrings ¶
func GetDefaultExcludePatternsStrings() []string
func IsGoGreaterThanOrEqual ¶
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 `mapstructure:"run"`
	Output Output `mapstructure:"output"`
	LintersSettings LintersSettings `mapstructure:"linters-settings"`
	Linters         Linters         `mapstructure:"linters"`
	Issues          Issues          `mapstructure:"issues"`
	Severity        Severity        `mapstructure:"severity"`
	InternalCmdTest bool // 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-lint YAML config file.
func NewDefault ¶
func NewDefault() *Config
func (*Config) GetConfigDir ¶
GetConfigDir returns the directory that contains golangci config file.
type CopyLoopVarSettings ¶
type CustomLinterSettings ¶
type CustomLinterSettings struct {
	// Type plugin type.
	// It can be `goplugin` or `module`.
	Type string `mapstructure:"type"`
	// Path to a plugin *.so file that implements the private linter.
	// Only for Go plugin system.
	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.
func (*CustomLinterSettings) Validate ¶
func (s *CustomLinterSettings) Validate() error
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 {
	ListMode string         `mapstructure:"list-mode"`
	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"`
	ExcludeFunctions         []string `mapstructure:"exclude-functions"`
	// Deprecated: use ExcludeFunctions instead
	Exclude string `mapstructure:"exclude"`
	// Deprecated: use ExcludeFunctions instead
	Ignore string `mapstructure:"ignore"`
}
    type ErrorLintAllowPair ¶
type ErrorLintSettings ¶
type ErrorLintSettings struct {
	Errorf                bool                 `mapstructure:"errorf"`
	ErrorfMulti           bool                 `mapstructure:"errorf-multi"`
	Asserts               bool                 `mapstructure:"asserts"`
	Comparison            bool                 `mapstructure:"comparison"`
	AllowedErrors         []ErrorLintAllowPair `mapstructure:"allowed-errors"`
	AllowedErrorsWildcard []ErrorLintAllowPair `mapstructure:"allowed-errors-wildcard"`
}
    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"`
	DefaultCaseRequired        bool     `mapstructure:"default-case-required"`
}
    type ExhaustructSettings ¶
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"`
	ForceExpectTo              bool `mapstructure:"force-expect-to"`
	ValidateAsyncIntervals     bool `mapstructure:"validate-async-intervals"`
	ForbidSpecPollution        bool `mapstructure:"forbid-spec-pollution"`
}
    type GoConstSettings ¶
type GoConstSettings struct {
	IgnoreStrings       string `mapstructure:"ignore-strings"`
	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:"-"`
	DisableAll       bool                             `mapstructure:"disable-all"`
	EnabledChecks    []string                         `mapstructure:"enabled-checks"`
	EnableAll        bool                             `mapstructure:"enable-all"`
	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 GoMndSettings
            deprecated
            
          
  
    
  
      
      type GoMndSettings struct {
	MndSettings `mapstructure:",squash"`
	// Deprecated: use root level settings instead.
	Settings map[string]map[string]any
}
    Deprecated: use MndSettings.
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:"-"`
	Enable     []string
	Disable    []string
	EnableAll  bool `mapstructure:"enable-all"`
	DisableAll bool `mapstructure:"disable-all"`
	Settings map[string]map[string]any
	// Deprecated: the linter should be enabled inside Enable.
	CheckShadowing bool `mapstructure:"check-shadowing"`
}
    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 INamedParamSettings ¶
type INamedParamSettings struct {
	SkipSingleParam bool `mapstructure:"skip-single-param"`
}
    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"`
	ExcludeGenerated string `mapstructure:"exclude-generated"`
	ExcludeFiles []string `mapstructure:"exclude-files"`
	ExcludeDirs  []string `mapstructure:"exclude-dirs"`
	UseDefaultExcludeDirs bool `mapstructure:"exclude-dirs-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"`
	ExcludeGeneratedStrict bool `mapstructure:"exclude-generated-strict"` // Deprecated: use ExcludeGenerated instead.
}
    type Linters ¶
type LintersSettings ¶
type LintersSettings struct {
	Asasalint       AsasalintSettings
	BiDiChk         BiDiChkSettings
	CopyLoopVar     CopyLoopVarSettings
	Cyclop          Cyclop
	Decorder        DecorderSettings
	Depguard        DepGuardSettings
	Dogsled         DogsledSettings
	Dupl            DuplSettings
	DupWord         DupWordSettings
	Errcheck        ErrcheckSettings
	ErrChkJSON      ErrChkJSONSettings
	ErrorLint       ErrorLintSettings
	Exhaustive      ExhaustiveSettings
	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
	Gomnd           GoMndSettings
	GoModDirectives GoModDirectivesSettings
	Gomodguard      GoModGuardSettings
	Gosec           GoSecSettings
	Gosimple        StaticCheckSettings
	Gosmopolitan    GosmopolitanSettings
	Govet           GovetSettings
	Grouper         GrouperSettings
	ImportAs        ImportAsSettings
	Inamedparam     INamedParamSettings
	InterfaceBloat  InterfaceBloatSettings
	Ireturn         IreturnSettings
	Lll             LllSettings
	LoggerCheck     LoggerCheckSettings
	MaintIdx        MaintIdxSettings
	Makezero        MakezeroSettings
	Misspell        MisspellSettings
	Mnd             MndSettings
	MustTag         MustTagSettings
	Nakedret        NakedretSettings
	Nestif          NestifSettings
	NilNil          NilNilSettings
	Nlreturn        NlreturnSettings
	NoLintLint      NoLintLintSettings
	NoNamedReturns  NoNamedReturnsSettings
	ParallelTest    ParallelTestSettings
	PerfSprint      PerfSprintSettings
	Prealloc        PreallocSettings
	Predeclared     PredeclaredSettings
	Promlinter      PromlinterSettings
	ProtoGetter     ProtoGetterSettings
	Reassign        ReassignSettings
	Revive          ReviveSettings
	RowsErrCheck    RowsErrCheckSettings
	SlogLint        SlogLintSettings
	SnowyGo         SnowyGoSettings
	Spancheck       SpancheckSettings
	Staticcheck     StaticCheckSettings
	Stylecheck      StaticCheckSettings
	TagAlign        TagAlignSettings
	Tagliatelle     TagliatelleSettings
	Tenv            TenvSettings
	Testifylint     TestifylintSettings
	Testpackage     TestpackageSettings
	Thelper         ThelperSettings
	Unconvert       UnconvertSettings
	Unparam         UnparamSettings
	Unused          UnusedSettings
	UseStdlibVars   UseStdlibVarsSettings
	Varnamelen      VarnamelenSettings
	Whitespace      WhitespaceSettings
	Wrapcheck       WrapcheckSettings
	WSL             WSLSettings
	Custom map[string]CustomLinterSettings
}
    func (*LintersSettings) Validate ¶
func (s *LintersSettings) Validate() error
type LllSettings ¶
type LoadOptions ¶
type Loader ¶
type Loader struct {
	// contains filtered or unexported fields
}
    func (*Loader) Load ¶
func (l *Loader) Load(opts LoadOptions) error
type LoaderOptions ¶
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 MisspellExtraWords ¶
type MisspellSettings ¶
type MisspellSettings struct {
	Mode       string               `mapstructure:"mode"`
	Locale     string               `mapstructure:"locale"`
	ExtraWords []MisspellExtraWords `mapstructure:"extra-words"`
	// TODO(ldez): v2 the option must be renamed to `IgnoredRules`.
	IgnoreWords []string `mapstructure:"ignore-words"`
}
    type MndSettings ¶
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 {
	Formats         OutputFormats `mapstructure:"formats"`
	PrintIssuedLine bool          `mapstructure:"print-issued-lines"`
	PrintLinterName bool          `mapstructure:"print-linter-name"`
	UniqByLine      bool          `mapstructure:"uniq-by-line"`
	SortResults     bool          `mapstructure:"sort-results"`
	SortOrder       []string      `mapstructure:"sort-order"`
	PathPrefix      string        `mapstructure:"path-prefix"`
	ShowStats       bool          `mapstructure:"show-stats"`
	// Deprecated: use Formats instead.
	Format string `mapstructure:"format"`
}
    type OutputFormat ¶
type OutputFormat struct {
	Format string `mapstructure:"format"`
	Path   string `mapstructure:"path"`
}
    func (*OutputFormat) Validate ¶
func (o *OutputFormat) Validate() error
type OutputFormats ¶
type OutputFormats []OutputFormat
func (*OutputFormats) UnmarshalText ¶
func (p *OutputFormats) UnmarshalText(text []byte) error
type ParallelTestSettings ¶
type PerfSprintSettings ¶
type PreallocSettings ¶
type PredeclaredSettings ¶
type PromlinterSettings ¶
type ProtoGetterSettings ¶
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
		Exclude   []string
	}
	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 {
	Timeout time.Duration `mapstructure:"timeout"`
	Concurrency int `mapstructure:"concurrency"`
	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"`
	AllowParallelRunners bool `mapstructure:"allow-parallel-runners"`
	AllowSerialRunners   bool `mapstructure:"allow-serial-runners"`
	// Deprecated: use Issues.ExcludeFiles instead.
	SkipFiles []string `mapstructure:"skip-files"`
	// Deprecated: use Issues.ExcludeDirs instead.
	SkipDirs []string `mapstructure:"skip-dirs"`
	// Deprecated: use Issues.UseDefaultExcludeDirs instead.
	UseDefaultSkipDirs bool `mapstructure:"skip-dirs-use-default"`
	// Deprecated: use Output.ShowStats instead.
	ShowStats bool `mapstructure:"show-stats"`
}
    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 SlogLintSettings struct {
	NoMixedArgs    bool     `mapstructure:"no-mixed-args"`
	KVOnly         bool     `mapstructure:"kv-only"`
	AttrOnly       bool     `mapstructure:"attr-only"`
	NoGlobal       string   `mapstructure:"no-global"`
	Context        string   `mapstructure:"context"`
	StaticMsg      bool     `mapstructure:"static-msg"`
	NoRawKeys      bool     `mapstructure:"no-raw-keys"`
	KeyNamingCase  string   `mapstructure:"key-naming-case"`
	ForbiddenKeys  []string `mapstructure:"forbidden-keys"`
	ArgsOnSepLines bool     `mapstructure:"args-on-sep-lines"`
	// Deprecated: use Context instead.
	ContextOnly bool `mapstructure:"context-only"`
}
    type SnowyGoSettings ¶
type SnowyGoSettings struct {
}
    type SpancheckSettings ¶
type StaticCheckSettings ¶
type StaticCheckSettings struct {
	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
	// Deprecated: use the global `run.go` instead.
	GoVersion string `mapstructure:"go"`
}
    func (*StaticCheckSettings) HasConfiguration ¶
func (s *StaticCheckSettings) HasConfiguration() bool
type TagAlignSettings ¶
type TagliatelleSettings ¶
type TenvSettings ¶
type TenvSettings struct {
	All bool `mapstructure:"all"`
}
    type TestifylintSettings ¶
type TestifylintSettings struct {
	EnableAll        bool     `mapstructure:"enable-all"`
	DisableAll       bool     `mapstructure:"disable-all"`
	EnabledCheckers  []string `mapstructure:"enable"`
	DisabledCheckers []string `mapstructure:"disable"`
	BoolCompare struct {
		IgnoreCustomTypes bool `mapstructure:"ignore-custom-types"`
	} `mapstructure:"bool-compare"`
	ExpectedActual struct {
		ExpVarPattern string `mapstructure:"pattern"`
	} `mapstructure:"expected-actual"`
	Formatter struct {
		CheckFormatString *bool `mapstructure:"check-format-string"`
		RequireFFuncs     bool  `mapstructure:"require-f-funcs"`
	} `mapstructure:"formatter"`
	GoRequire struct {
		IgnoreHTTPHandlers bool `mapstructure:"ignore-http-handlers"`
	} `mapstructure:"go-require"`
	RequireError struct {
		FnPattern string `mapstructure:"fn-pattern"`
	} `mapstructure:"require-error"`
	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 UnconvertSettings ¶
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"` // Deprecated
	SQLIsolationLevel  bool `mapstructure:"sql-isolation-level"`
	TLSSignatureScheme bool `mapstructure:"tls-signature-scheme"`
	ConstantKind       bool `mapstructure:"constant-kind"`
	SyslogPriority     bool `mapstructure:"syslog-priority"` // Deprecated
}
    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"`
}