internal

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

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:MethodName

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 FilterUserFiles(files []string) []string

func FindCommonDir

func FindCommonDir(files []string) string

func RunCodegen

func RunCodegen(dir string, verbose bool) error

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 Config

type Config struct {
	Dir     string
	Verbose bool
	Help    bool
	Version bool
}

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

func (*Injector) ProcessFileInjections added in v0.2.0

func (inj *Injector) ProcessFileInjections(filePath string, verbose bool) error

ProcessFileInjections handles all //:inject: directives in a file. Inject markers must appear above an interface declaration. The method name must exist in that interface.

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

type UserFunction

type UserFunction struct {
	Name       string
	InputTypes []string
	OutputType string
	FilePath   string
}

Jump to

Keyboard shortcuts

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