tools: Index | Files

package analysisflags

import ""

Package analysisflags defines helpers for processing flags of analysis driver tools.


Package Files

flags.go help.go


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.

func Help Uses

func Help(progname string, analyzers []*analysis.Analyzer, args []string)

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 Uses

func Parse(analyzers []*analysis.Analyzer, multi bool) []*analysis.Analyzer

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 Uses

func PrintPlain(fset *token.FileSet, diag analysis.Diagnostic)

PrintPlain prints a diagnostic in plain text form, with context specified by the -c flag.

type JSONTree Uses

type JSONTree map[string]map[string]interface{}

A JSONTree is a mapping from package ID to analysis name to result. Each result is either a jsonError or a list of jsonDiagnostic.

func (JSONTree) Add Uses

func (tree JSONTree) Add(fset *token.FileSet, id, name string, diags []analysis.Diagnostic, err error)

Add adds the result of analysis 'name' on package 'id'. The result is either a list of diagnostics or an error.

func (JSONTree) Print Uses

func (tree JSONTree) Print()

Package analysisflags imports 14 packages (graph) and is imported by 17 packages. Updated 2020-10-29. Refresh now. Tools for package owners.