Documentation
¶
Index ¶
- Constants
- Variables
- func FilterUserFiles(files []string) []string
- func FindCommonDir(files []string) string
- func RunCodegen(dir string, verbose bool) error
- type CodeProcessor
- type Config
- type FileProcessor
- func (fp *FileProcessor) FindFunctionFiles(dir string) error
- func (fp *FileProcessor) IsFunctionFile(path string) bool
- func (fp *FileProcessor) LoadUserFunctions() error
- func (fp *FileProcessor) ProcessDirectory(dir string, verbose bool, codeProcessor *CodeProcessor) error
- func (fp *FileProcessor) ProcessDirectoryInjections(dir string, verbose bool, injector *Injector) error
- type FunctionExecutor
- type InjectionResult
- type Injector
- type ProcessorContext
- type ToolexecManager
- type UserFunction
Constants ¶
View Source
const ( FunctionMarker = "//go:ahead functions" CommentPattern = `^\s*//\s*:([^:]+)(?::(.*))?` ExecutionTemplate = `` /* 278-byte string literal not displayed */ )
View Source
const InjectPattern = `^\s*//\s*:inject:(\w+)\s*$`
InjectPattern matches //:inject:FuncName
Variables ¶
View Source
var ( GoInstallPaths = []string{ "/usr/lib/go", "/usr/local/go", "/opt/go", "\\Go\\", } SystemPaths = []string{ "/runtime/", "/internal/", "/vendor/", "/pkg/mod/", "\\runtime\\", "\\internal\\", "\\vendor\\", "\\pkg\\mod\\", } )
View Source
var Version = getVersion()
Functions ¶
func FilterUserFiles ¶
func FindCommonDir ¶
func RunCodegen ¶
Types ¶
type CodeProcessor ¶
type CodeProcessor struct {
// contains filtered or unexported fields
}
func NewCodeProcessor ¶
func NewCodeProcessor(ctx *ProcessorContext, executor *FunctionExecutor) *CodeProcessor
func (*CodeProcessor) ProcessFile ¶
func (cp *CodeProcessor) ProcessFile(filePath string, verbose bool) error
type FileProcessor ¶
type FileProcessor struct {
// contains filtered or unexported fields
}
func NewFileProcessor ¶
func NewFileProcessor(ctx *ProcessorContext) *FileProcessor
func (*FileProcessor) FindFunctionFiles ¶
func (fp *FileProcessor) FindFunctionFiles(dir string) error
func (*FileProcessor) IsFunctionFile ¶
func (fp *FileProcessor) IsFunctionFile(path string) bool
func (*FileProcessor) LoadUserFunctions ¶
func (fp *FileProcessor) LoadUserFunctions() error
func (*FileProcessor) ProcessDirectory ¶
func (fp *FileProcessor) ProcessDirectory(dir string, verbose bool, codeProcessor *CodeProcessor) error
func (*FileProcessor) ProcessDirectoryInjections ¶ added in v0.2.0
func (fp *FileProcessor) ProcessDirectoryInjections(dir string, verbose bool, injector *Injector) error
type FunctionExecutor ¶
type FunctionExecutor struct {
// contains filtered or unexported fields
}
func NewFunctionExecutor ¶
func NewFunctionExecutor(ctx *ProcessorContext) *FunctionExecutor
func (*FunctionExecutor) ExecuteFunction ¶
func (fe *FunctionExecutor) ExecuteFunction(funcName string, argsStr string, sourceDir string) (string, *UserFunction, error)
func (*FunctionExecutor) Prepare ¶
func (fe *FunctionExecutor) Prepare() error
type InjectionResult ¶ added in v0.2.0
type InjectionResult struct {
FunctionCode string
Imports []string
Constants string
Variables string
Types string
}
InjectionResult contains the extracted function and its dependencies
type Injector ¶ added in v0.2.0
type Injector struct {
// contains filtered or unexported fields
}
Injector handles function injection from helper files
func NewInjector ¶ added in v0.2.0
func NewInjector(ctx *ProcessorContext) *Injector
NewInjector creates a new Injector
func (*Injector) ExtractFunction ¶ added in v0.2.0
func (inj *Injector) ExtractFunction(funcName, sourceDir string) (*InjectionResult, error)
ExtractFunction extracts a function and its dependencies from helper files
type ProcessorContext ¶
type ProcessorContext struct {
// FunctionsByDir maps directory path to functions defined in that directory
// Key is the absolute directory path, value is map of function name to function
FunctionsByDir map[string]map[string]*UserFunction
// RootDir is the root directory being processed (for hierarchy resolution)
RootDir string
// Verbose enables detailed logging
Verbose bool
// Legacy: flat map for backward compatibility during transition
Functions map[string]*UserFunction
FileSet *token.FileSet
CurrentFile string
FuncFiles []string
TempDir string
}
func (*ProcessorContext) ResolveFunction ¶ added in v0.2.0
func (ctx *ProcessorContext) ResolveFunction(name, sourceDir string) (*UserFunction, string)
ResolveFunction finds a function by walking up the directory tree from sourceDir. Returns the function and the helper file path it came from.
type ToolexecManager ¶
type ToolexecManager struct{}
func NewToolexecManager ¶
func NewToolexecManager() *ToolexecManager
func (*ToolexecManager) RunAsToolexec ¶
func (tm *ToolexecManager) RunAsToolexec()
RunAsToolexec esegue goahead come wrapper toolexec
Click to show internal directories.
Click to hide internal directories.