diff

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: MIT Imports: 8 Imported by: 0

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

func ParseUnifiedDiff(raw string) ([]DiffLine, error)

ParseUnifiedDiff parses unified diff output into a slice of DiffLine entries. It handles the diff header, hunk headers, and content lines.

type Git

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

Git provides methods to extract changed files and build full-file diff views.

func NewGit

func NewGit(workDir string) *Git

NewGit creates a new Git diff renderer rooted at the given working directory.

func (*Git) ChangedFiles

func (g *Git) ChangedFiles(ref string, staged bool) ([]string, error)

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.

func (*Git) FileDiff

func (g *Git) FileDiff(ref, file string, staged bool) ([]DiffLine, error)

FileDiff returns the full-file diff view for a single file. The result is a sequence of DiffLine entries representing unchanged, added, and removed lines interleaved at their correct positions.

Jump to

Keyboard shortcuts

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