v0.4.4 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2023 License: MIT Imports: 9 Imported by: 58



Package lint provides abstractions on top of go/analysis. These abstractions add extra information to analyzes, such as structured documentation and severities.



This section is empty.


This section is empty.


func ExhaustiveTypeSwitch

func ExhaustiveTypeSwitch(v interface{})

ExhaustiveTypeSwitch panics when called. It can be used to ensure that type switches are exhaustive.

func Markdownify added in v0.2.0

func Markdownify(m map[string]*RawDocumentation) map[string]*Documentation

func ParseGoVersion added in v0.4.4

func ParseGoVersion(s string) (int, bool)

ParseGoVersion parses Go versions of the form 1.M, 1.M.N, or 1.M.NrcR, with an optional "go" prefix. It assumes that versions have already been verified and are valid.


type Analyzer added in v0.2.0

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

type Directive struct {
	Command   string
	Arguments []string
	Directive *ast.Comment
	Node      ast.Node

A directive is a comment of the form '//lint:<command> [arguments...]'. It represents instructions to the static analysis tool.

func ParseDirectives

func ParseDirectives(files []*ast.File, fset *token.FileSet) []Directive

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 added in v0.3.0

func (doc *Documentation) Format(metadata bool) string

func (*Documentation) FormatMarkdown added in v0.3.0

func (doc *Documentation) FormatMarkdown(metadata bool) string

func (*Documentation) String

func (doc *Documentation) String() string

type MergeStrategy added in v0.3.0

type MergeStrategy int

MergeStrategy sets how merge mode should behave for diagnostics of an analyzer.

const (
	MergeIfAny MergeStrategy = iota

type RawDocumentation added in v0.3.0

type RawDocumentation struct {
	Title      string
	Text       string
	Before     string
	After      string
	Since      string
	NonDefault bool
	Options    []string
	Severity   Severity
	MergeIf    MergeStrategy

type Severity added in v0.2.0

type Severity int

Severity describes the severity of diagnostics reported by an analyzer.

const (
	SeverityNone Severity = iota

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


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL