Help us shape the future of Go! Take the 2026 Go Developer Survey

filediscovery

package
v0.22.2 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// BuildWorkspaceTimeout is the absolute maximum time for workspace structure building
	BuildWorkspaceTimeout = 30 * time.Second

	// CacheDuration is how long workspace structure results are cached
	CacheDuration = 5 * time.Minute

	// ProgressEmitInterval controls how often progress events are emitted during file walk
	ProgressEmitInterval = 1000 // emit every N files

	// MaxDepth limits directory traversal depth in BuildWorkspaceStructure
	MaxDepth = 20

	// LargeWorkspaceThreshold is the file count above which limits apply
	LargeWorkspaceThreshold = 1000
)

Configurable constants for performance limits

Variables

This section is empty.

Functions

func GetIgnoreRules

func GetIgnoreRules(rootDir string) *ignore.GitIgnore

GetIgnoreRules reads ignore files (.gitignore, .sprout/.ignore) and returns a gitignore object.

Types

type DiscoveryOptions

type DiscoveryOptions struct {
	MaxFiles      int
	UseSymbols    bool
	UseShell      bool
	IncludeHidden bool
	ExcludeDirs   []string
	IncludeExts   []string
	ExcludeExts   []string
	RootPath      string
}

DiscoveryOptions configures file discovery behavior

type FileDiscovery

type FileDiscovery struct {
	// contains filtered or unexported fields
}

FileDiscovery provides common file discovery and analysis functionality

func NewFileDiscovery

func NewFileDiscovery(cfg *configuration.Config, logger *utils.Logger) *FileDiscovery

NewFileDiscovery creates a new file discovery instance

func (*FileDiscovery) BuildWorkspaceStructure

func (fd *FileDiscovery) BuildWorkspaceStructure() *WorkspaceInfo

BuildWorkspaceStructure builds workspace structure information. It applies a hard timeout (BuildWorkspaceTimeout), respects directory depth limits, emits progress events for large workspaces, and uses an in-memory cache.

func (*FileDiscovery) DiscoverFilesRobust

func (fd *FileDiscovery) DiscoverFilesRobust(userIntent string, options *DiscoveryOptions) *FileResult

DiscoverFilesRobust uses multiple strategies to find relevant files

func (*FileDiscovery) FilterFiles

func (fd *FileDiscovery) FilterFiles(files []string, criteria *FileFilterCriteria) []string

FilterFiles filters files based on criteria

func (*FileDiscovery) GetFileStats

func (fd *FileDiscovery) GetFileStats(files []string) map[string]interface{}

GetFileStats returns statistics about files

type FileFilterCriteria

type FileFilterCriteria struct {
	IncludeExtensions []string
	ExcludeExtensions []string
	IncludePaths      []string
	ExcludePaths      []string
	MinSize           int64
	MaxSize           int64
	ModifiedAfter     time.Time
	ModifiedBefore    time.Time
}

FileFilterCriteria defines filtering criteria for files

type FileResult

type FileResult struct {
	Files        []string
	Error        error
	Duration     time.Duration
	Method       string
	TotalFiles   int
	MatchedFiles int
}

FileResult represents the result of a file discovery operation

type QueryTerms

type QueryTerms struct {
	FilePatterns []string
	SearchTerms  []string
}

QueryTerms represents parsed query terms

type WorkspaceInfo

type WorkspaceInfo struct {
	ProjectType string
	AllFiles    []string
	FilesByDir  map[string][]string
	Error       error
	RootDir     string
}

WorkspaceInfo represents workspace information

Jump to

Keyboard shortcuts

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