Documentation ¶
Overview ¶
Package analysisflags defines helpers for processing flags of analysis driver tools.
Index ¶
- Variables
- func Help(progname string, analyzers []*analysis.Analyzer, args []string)
- func Parse(analyzers []*analysis.Analyzer, multi bool) []*analysis.Analyzer
- func PrintPlain(fset *token.FileSet, diag analysis.Diagnostic)
- func ResolveURL(a *analysis.Analyzer, d analysis.Diagnostic) (string, error)
- type JSONDiagnostic
- type JSONSuggestedFix
- type JSONTextEdit
- type JSONTree
Constants ¶
This section is empty.
Variables ¶
var ( JSON = false // -json Context = -1 // -c=N: if N>0, display offending line plus N lines of context )
flags common to all {single,multi,unit}checkers.
Functions ¶
func Help ¶
Help implements the help subcommand for a multichecker or unitchecker style command. The optional args specify the analyzers to describe. Help calls log.Fatal if no such analyzer exists.
func Parse ¶
Parse creates a flag for each of the analyzer's flags, including (in multi mode) a flag named after the analyzer, parses the flags, then filters and returns the list of analyzers enabled by flags.
The result is intended to be passed to unitchecker.Run or checker.Run. Use in unitchecker.Run will gob.Register all fact types for the returned graph of analyzers but of course not the ones only reachable from dropped analyzers. To avoid inconsistency about which gob types are registered from run to run, Parse itself gob.Registers all the facts only reachable from dropped analyzers. This is not a particularly elegant API, but this is an internal package.
func PrintPlain ¶
func PrintPlain(fset *token.FileSet, diag analysis.Diagnostic)
PrintPlain prints a diagnostic in plain text form, with context specified by the -c flag.
func ResolveURL ¶
ResolveURL resolves the URL field for a Diagnostic from an Analyzer and returns the URL. See Diagnostic.URL for details.
Types ¶
type JSONDiagnostic ¶
type JSONDiagnostic struct { Category string `json:"category,omitempty"` Posn string `json:"posn"` Message string `json:"message"` SuggestedFixes []JSONSuggestedFix `json:"suggested_fixes,omitempty"` }
A JSONDiagnostic can be used to encode and decode analysis.Diagnostics to and from JSON. TODO(matloob): Should the JSON diagnostics contain ranges? If so, how should they be formatted?
type JSONSuggestedFix ¶
type JSONSuggestedFix struct { Message string `json:"message"` Edits []JSONTextEdit `json:"edits"` }
A JSONSuggestedFix describes an edit that should be applied as a whole or not at all. It might contain multiple TextEdits/text_edits if the SuggestedFix consists of multiple non-contiguous edits.
type JSONTextEdit ¶
type JSONTextEdit struct { Filename string `json:"filename"` Start int `json:"start"` End int `json:"end"` New string `json:"new"` }
A TextEdit describes the replacement of a portion of a file. Start and End are zero-based half-open indices into the original byte sequence of the file, and New is the new text.
type JSONTree ¶
A JSONTree is a mapping from package ID to analysis name to result. Each result is either a jsonError or a list of JSONDiagnostic.