Help us shape the future of Go! Take the 2026 Go Developer Survey

lint

package
v1.21.78 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Rule is the stable name of one clickylint check, so a report can be suppressed, filtered or re-levelled by name instead of by its message text.

Suppression of individual clickylint findings through a source directive, so a deliberate exception is recorded where it is made rather than argued for in a review thread.

Index

Constants

This section is empty.

Variables

View Source
var (
	RuleTextStructLiteral   = Rule{ID: "text-struct-literal", Severity: SeverityWarning}
	RuleHelperBackedLiteral = Rule{ID: "helper-backed-literal", Severity: SeverityWarning}
	RuleContentConcat       = Rule{ID: "content-concatenation", Severity: SeverityWarning}
	RuleContentSprintf      = Rule{ID: "content-sprintf", Severity: SeverityWarning}
	RuleChildrenLiteral     = Rule{ID: "children-literal", Severity: SeverityWarning}
	RuleTextReturnType      = Rule{ID: "text-return-type", Severity: SeverityWarning}
	RuleRenderInPretty      = Rule{ID: "render-in-pretty", Severity: SeverityWarning}
	RuleDirectStdout        = Rule{ID: "direct-stdout", Severity: SeverityError}
	RuleManualCobraCommand  = Rule{ID: "manual-cobra-command", Severity: SeverityError}
	RuleDirectHTTPHandler   = Rule{ID: "direct-http-handler", Severity: SeverityWarning}
	RuleServeMuxParameter   = Rule{ID: "servemux-parameter", Severity: SeverityWarning}
	RuleEntityTableProvider = Rule{ID: "entity-table-provider", Severity: SeverityWarning}
)

The rule catalogue. Adding a check means adding its rule here first, so every diagnostic is addressable from the moment it can be emitted.

View Source
var Analyzer = &analysis.Analyzer{
	Name:     "clickylint",
	Doc:      "detects bad usage patterns of the clicky text API and render builders",
	Run:      run,
	Requires: []*analysis.Analyzer{inspect.Analyzer},
}

Functions

func RuleIDs added in v1.21.68

func RuleIDs() []string

RuleIDs lists every rule clickylint can report, so a caller can validate a severity override or a suppression directive against the real set.

Types

type Result

type Result struct {
	Linter       string        `json:"linter"`
	WorkDir      string        `json:"work_dir,omitempty"`
	PackageCount int           `json:"package_count"`
	Success      bool          `json:"success"`
	Duration     time.Duration `json:"duration"`
	Violations   []Violation   `json:"violations,omitempty"`
	Errors       []string      `json:"errors,omitempty"`
}

Result is the normalized lint result rendered by the CLI and JSON output.

func Run

func Run(opts RunOptions) (*Result, error)

Run loads the requested Go packages, runs clickylint, and returns normalized diagnostics without printing through the go/analysis default text driver.

func (*Result) ErrorCount added in v1.21.29

func (r *Result) ErrorCount() int

ErrorCount counts error-severity violations.

func (*Result) HasErrors added in v1.21.29

func (r *Result) HasErrors() bool

HasErrors reports whether the run found error-severity violations or execution errors. This — not HasIssues — drives the non-zero exit status; warnings are advisory.

func (*Result) HasIssues

func (r *Result) HasIssues() bool

HasIssues reports whether the lint run found any diagnostics (error or warning) or execution errors. Used to decide whether output is worth showing.

func (*Result) WarningCount added in v1.21.29

func (r *Result) WarningCount() int

WarningCount counts warning-severity violations.

type Rule added in v1.21.68

type Rule struct {
	ID       string
	Severity Severity
}

Rule names a check and carries the severity it reports at by default. The ID is part of clickylint's contract: it appears in JSON output and is what a //clicky:allow directive and a severity override both address. Message wording is free to change; an ID is not.

type RunOptions

type RunOptions struct {
	Packages     []string `json:"packages,omitempty"`
	WorkDir      string   `json:"work_dir,omitempty"`
	IncludeTests bool     `json:"include_tests"`
	// Severity re-levels individual rules by ID, so a codebase can adopt a rule
	// as advice before it adopts it as a gate. Unknown IDs are reported as run
	// errors rather than ignored: a typo that silently kept a rule failing the
	// build would be worse than a loud one.
	Severity map[string]Severity `json:"severity,omitempty"`
}

RunOptions controls the standalone clickylint runner used by the clicky CLI.

type Severity added in v1.21.29

type Severity string

Severity classifies a clickylint diagnostic. Errors fail the lint run (non-zero exit); warnings are advisory and do not affect the exit status.

const (
	// SeverityError marks violations that fail the run: writes that corrupt the
	// task renderer, and manual cobra commands that bypass the generated CLI,
	// REST and MCP surfaces entirely.
	SeverityError Severity = "error"
	// SeverityWarning marks advice — how Pretty()/render builders are written,
	// entities missing a TableProvider, and routes registered outside the
	// router. A codebase adopting a rule re-levels it with RunOptions.Severity
	// rather than each rule carrying a second, configurable default.
	SeverityWarning Severity = "warning"
)

type SummaryView

type SummaryView struct {
	Result *Result `json:"result"`
	Limit  int     `json:"-"`
	// contains filtered or unexported fields
}

SummaryView renders clickylint results as a compact tree, matching the Gavel lint display shape: root -> linter -> rule -> affected files.

func NewSummaryView

func NewSummaryView(result *Result, limit int) *SummaryView

NewSummaryView returns a tree view for a lint result.

func (*SummaryView) GetChildren

func (s *SummaryView) GetChildren() []api.TreeNode

func (*SummaryView) LoadSource added in v1.21.70

func (s *SummaryView) LoadSource(lineCount int) error

LoadSource preloads source windows for the summary's diagnostic locations. lineCount is the total number of source lines in each window.

func (*SummaryView) Pretty

func (s *SummaryView) Pretty() api.Text

type Violation

type Violation struct {
	Package  string   `json:"package,omitempty"`
	File     string   `json:"file,omitempty"`
	Line     int      `json:"line,omitempty"`
	Column   int      `json:"column,omitempty"`
	Severity Severity `json:"severity,omitempty"`
	Rule     string   `json:"rule,omitempty"`
	Message  string   `json:"message,omitempty"`
}

Violation is a display-oriented analysis diagnostic.

Jump to

Keyboard shortcuts

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