package lint
import "honnef.co/go/tools/analysis/lint"
Package lint provides abstractions on top of go/analysis. These abstractions add extra information to analyzes, such as structured documentation and severities.
Index ¶
- func ExhaustiveTypeSwitch(v interface{})
- func Markdownify(m map[string]*RawDocumentation) map[string]*Documentation
- type Analyzer
- type Directive
- type Documentation
- func (doc *Documentation) Format(metadata bool) string
- func (doc *Documentation) FormatMarkdown(metadata bool) string
- func (doc *Documentation) String() string
- type MergeStrategy
- type RawDocumentation
- type Severity
- type VersionFlag
Functions ¶
func ExhaustiveTypeSwitch ¶
func ExhaustiveTypeSwitch(v interface{})
ExhaustiveTypeSwitch panics when called. It can be used to ensure that type switches are exhaustive.
func Markdownify ¶
func Markdownify(m map[string]*RawDocumentation) map[string]*Documentation
Types ¶
type Analyzer ¶
type Analyzer struct { // The analyzer's documentation. Unlike go/analysis.Analyzer.Doc, // this field is structured, providing access to severity, options // etc. Doc *Documentation Analyzer *analysis.Analyzer }
Analyzer wraps a go/analysis.Analyzer and provides structured documentation.
func InitializeAnalyzers ¶
func InitializeAnalyzers(docs map[string]*Documentation, analyzers map[string]*analysis.Analyzer) []*Analyzer
InitializeAnalyzers takes a map of documentation and a map of go/analysis.Analyzers and returns a slice of Analyzers. The map keys are the analyzer names.
type Directive ¶
A directive is a comment of the form '//lint:<command> [arguments...]'. It represents instructions to the static analysis tool.
func ParseDirectives ¶
ParseDirectives extracts all directives from a list of Go files.
type Documentation ¶
type Documentation struct { Title string Text string TitleMarkdown string TextMarkdown string Before string After string Since string NonDefault bool Options []string Severity Severity MergeIf MergeStrategy }
func (*Documentation) Format ¶
func (doc *Documentation) Format(metadata bool) string
func (*Documentation) FormatMarkdown ¶
func (doc *Documentation) FormatMarkdown(metadata bool) string
func (*Documentation) String ¶
func (doc *Documentation) String() string
type MergeStrategy ¶
type MergeStrategy int
MergeStrategy sets how merge mode should behave for diagnostics of an analyzer.
const ( MergeIfAny MergeStrategy = iota MergeIfAll )
type RawDocumentation ¶
type RawDocumentation struct { Title string Text string Before string After string Since string NonDefault bool Options []string Severity Severity MergeIf MergeStrategy }
type Severity ¶
type Severity int
Severity describes the severity of diagnostics reported by an analyzer.
const ( SeverityNone Severity = iota SeverityError SeverityDeprecated SeverityWarning SeverityInfo SeverityHint )
type VersionFlag ¶
type VersionFlag int
func (*VersionFlag) Get ¶
func (v *VersionFlag) Get() interface{}
func (*VersionFlag) Set ¶
func (v *VersionFlag) Set(s string) error
func (*VersionFlag) String ¶
func (v *VersionFlag) String() string
Source Files ¶
lint.go
Directories ¶
Path | Synopsis |
---|---|
analysis/lint/testutil |
- Version
- v0.4.0
- Published
- Feb 3, 2023
- Platform
- windows/amd64
- Imports
- 8 packages
- Last checked
- 7 minutes ago –
Tools for package owners.