Documentation
¶
Overview ¶
Package golang provides Go language support for code analysis.
This package implements the language.Language interface for Go, wrapping the existing Go-specific parsing, detection, coverage, and dependency analysis components.
Index ¶
- type GoDetectorRunner
- type GoLanguage
- func (g *GoLanguage) CoverageRunner(cfg *config.AnalysisConfig, statusReporter status.Reporter) language.CoverageRunner
- func (g *GoLanguage) DefaultExcludePatterns() []string
- func (g *GoLanguage) DependencyAnalyzer(projectPath string) (language.DependencyAnalyzer, error)
- func (g *GoLanguage) DetectorRunner(cfg *config.AnalysisConfig) language.DetectorRunner
- func (g *GoLanguage) DisplayName() string
- func (g *GoLanguage) Extensions() []string
- func (g *GoLanguage) Name() string
- func (g *GoLanguage) Parser() parser.Parser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GoDetectorRunner ¶
type GoDetectorRunner struct {
// contains filtered or unexported fields
}
GoDetectorRunner implements language.DetectorRunner for Go source code.
This runner re-parses Go files to obtain AST access and runs all enabled detectors on each function declaration. It encapsulates the Go-specific AST walking logic that was previously in analyzer.runDetectors().
func NewGoDetectorRunner ¶
func NewGoDetectorRunner(cfg *config.AnalysisConfig) *GoDetectorRunner
NewGoDetectorRunner creates a new detector runner for Go source code.
func (*GoDetectorRunner) RunDetectors ¶
func (r *GoDetectorRunner) RunDetectors(cfg *config.AnalysisConfig, file *parser.FileMetrics) []*detectors.Issue
RunDetectors re-parses a Go file and runs all enabled detectors.
This method:
- Re-parses the file to obtain a Go AST
- Walks all function declarations
- Matches each AST declaration to its corresponding FunctionMetrics
- Runs all enabled detectors on each matched function
Returns nil if the file cannot be parsed (e.g., syntax errors).
type GoLanguage ¶
type GoLanguage struct{}
GoLanguage implements language.Language for Go source code.
func (*GoLanguage) CoverageRunner ¶
func (g *GoLanguage) CoverageRunner(cfg *config.AnalysisConfig, statusReporter status.Reporter) language.CoverageRunner
CoverageRunner returns a Go test coverage runner.
func (*GoLanguage) DefaultExcludePatterns ¶
func (g *GoLanguage) DefaultExcludePatterns() []string
DefaultExcludePatterns returns Go-specific exclude patterns.
func (*GoLanguage) DependencyAnalyzer ¶
func (g *GoLanguage) DependencyAnalyzer(projectPath string) (language.DependencyAnalyzer, error)
DependencyAnalyzer returns a Go dependency analyzer.
func (*GoLanguage) DetectorRunner ¶
func (g *GoLanguage) DetectorRunner(cfg *config.AnalysisConfig) language.DetectorRunner
DetectorRunner returns a Go-specific detector runner.
func (*GoLanguage) DisplayName ¶
func (g *GoLanguage) DisplayName() string
DisplayName returns "Go".
func (*GoLanguage) Extensions ¶
func (g *GoLanguage) Extensions() []string
Extensions returns [".go"].
func (*GoLanguage) Parser ¶
func (g *GoLanguage) Parser() parser.Parser
Parser returns a Go AST-based parser.