Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChangeType ¶
type ChangeType string
ChangeType represents the type of change for a diff line.
const ( ChangeAdd ChangeType = "+" ChangeRemove ChangeType = "-" ChangeContext ChangeType = " " ChangeDivider ChangeType = "~" // separates non-adjacent hunks )
type DiffLine ¶
type DiffLine struct {
OldNum int // line number in old version (0 for additions)
NewNum int // line number in new version (0 for removals)
Content string // line content without the +/- prefix
ChangeType ChangeType // changeAdd, ChangeRemove, ChangeContext, or ChangeDivider
}
DiffLine holds parsed line info from a diff.
func ParseUnifiedDiff ¶
ParseUnifiedDiff parses unified diff output into a slice of DiffLine entries. It handles the diff header, hunk headers, and content lines.
type DirectoryReader ¶ added in v0.10.0
type DirectoryReader struct {
// contains filtered or unexported fields
}
DirectoryReader is a Renderer that lists all git-tracked files and reads them as context lines. used for --all-files mode where every tracked file is browsable, not just changed files.
func NewDirectoryReader ¶ added in v0.10.0
func NewDirectoryReader(workDir string) *DirectoryReader
NewDirectoryReader creates a DirectoryReader rooted at the given working directory. the directory must be inside a git repository.
func (*DirectoryReader) ChangedFiles ¶ added in v0.10.0
func (dr *DirectoryReader) ChangedFiles(_ string, _ bool) ([]string, error)
ChangedFiles returns all git-tracked files as sorted relative paths. ref and staged parameters are ignored since all tracked files are returned.
type ExcludeFilter ¶ added in v0.10.0
type ExcludeFilter struct {
// contains filtered or unexported fields
}
ExcludeFilter wraps a renderer and filters out files matching any of the given prefixes. filtering is applied only at the file list level (ChangedFiles); FileDiff delegates directly.
func NewExcludeFilter ¶ added in v0.10.0
func NewExcludeFilter(inner renderer, prefixes []string) *ExcludeFilter
NewExcludeFilter creates an ExcludeFilter that removes files matching any prefix from results.
func (*ExcludeFilter) ChangedFiles ¶ added in v0.10.0
func (ef *ExcludeFilter) ChangedFiles(ref string, staged bool) ([]string, error)
ChangedFiles returns files from the inner renderer, excluding any that match a prefix.
type FallbackRenderer ¶ added in v0.7.0
type FallbackRenderer struct {
// contains filtered or unexported fields
}
FallbackRenderer wraps a *Git renderer and knows about --only file paths. it delegates to the inner renderer, falling back to disk read for --only files that are not present in the git diff.
func NewFallbackRenderer ¶ added in v0.7.0
func NewFallbackRenderer(inner *Git, only []string, workDir string) *FallbackRenderer
NewFallbackRenderer creates a FallbackRenderer that delegates to inner and falls back to reading files from disk for --only patterns not found in the git diff.
func (*FallbackRenderer) ChangedFiles ¶ added in v0.7.0
func (fr *FallbackRenderer) ChangedFiles(ref string, staged bool) ([]string, error)
ChangedFiles returns changed files from the inner renderer, then appends any --only files not already present in the result if they exist on disk.
func (*FallbackRenderer) FileDiff ¶ added in v0.7.0
func (fr *FallbackRenderer) FileDiff(ref, file string, staged bool) ([]DiffLine, error)
FileDiff returns the diff for a file. for files outside the repo (absolute paths that escape workDir), it skips the inner git renderer entirely and reads from disk. for in-repo files, it calls the inner renderer first; if the result is empty (no error, no lines) and the file matches an --only pattern, it falls back to reading the file from disk as all-context lines.
type FileReader ¶ added in v0.7.0
type FileReader struct {
// contains filtered or unexported fields
}
FileReader is a standalone Renderer for use when no git repo is available. it reads --only files directly from disk and presents them as all-context lines.
func NewFileReader ¶ added in v0.7.0
func NewFileReader(files []string, workDir string) *FileReader
NewFileReader creates a FileReader that reads the given files from disk. relative paths are resolved against workDir.
func (*FileReader) ChangedFiles ¶ added in v0.7.0
func (r *FileReader) ChangedFiles(_ string, _ bool) ([]string, error)
ChangedFiles returns the file list, resolved against workDir, filtered to only those that exist on disk.
type Git ¶
type Git struct {
// contains filtered or unexported fields
}
Git provides methods to extract changed files and build full-file diff views.
func (*Git) ChangedFiles ¶
ChangedFiles returns a list of files changed relative to the given ref. If ref is empty, it shows uncommitted changes. If staged is true, shows only staged changes.