Documentation ¶
Index ¶
- Constants
- Variables
- func GetWhitespaceFlag(whiteSpaceBehavior string) string
- type Diff
- func CommentAsDiff(c *models.Comment) (*Diff, error)
- func CommentMustAsDiff(c *models.Comment) *Diff
- func GetDiff(gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff, error)
- func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader, skipToFile string) (*Diff, error)
- type DiffFile
- type DiffFileType
- type DiffInline
- type DiffLine
- type DiffLineExpandDirection
- type DiffLineSectionInfo
- type DiffLineType
- type DiffOptions
- type DiffSection
- type TableDiffCell
- type TableDiffCellType
- type TableDiffRow
- type TableDiffSection
Constants ¶
const BlobExcerptChunkSize = 20
BlobExcerptChunkSize represent max lines of excerpt
Variables ¶
var ErrorUndefinedCell = errors.New("undefined cell")
ErrorUndefinedCell is for when a row, column coordinates do not exist in the CSV
Functions ¶
func GetWhitespaceFlag ¶ added in v1.14.0
GetWhitespaceFlag returns git diff flag for treating whitespaces
Types ¶
type Diff ¶
type Diff struct {
Start, End string
NumFiles, TotalAddition, TotalDeletion int
Files []*DiffFile
IsIncomplete bool
}
Diff represents a difference between two git trees.
func CommentAsDiff ¶
CommentAsDiff returns c.Patch as *Diff
func CommentMustAsDiff ¶
CommentMustAsDiff executes AsDiff and logs the error instead of returning
func GetDiff ¶ added in v1.16.0
func GetDiff(gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff, error)
GetDiff builds a Diff between two commits of a repository. Passing the empty string as beforeCommitID returns a diff from the parent commit. The whitespaceBehavior is either an empty string or a git flag
func ParsePatch ¶
func ParsePatch(maxLines, maxLineCharacters, maxFiles int, reader io.Reader, skipToFile string) (*Diff, error)
ParsePatch builds a Diff object from a io.Reader and some parameters.
func (*Diff) LoadComments ¶
LoadComments loads comments into each line
type DiffFile ¶
type DiffFile struct { Name string OldName string Index int Addition, Deletion int Type DiffFileType IsCreated bool IsDeleted bool IsBin bool IsLFSFile bool IsRenamed bool IsAmbiguous bool IsSubmodule bool Sections []*DiffSection IsIncomplete bool IsIncompleteLineTooLong bool IsProtected bool IsGenerated bool IsVendored bool Language string }
DiffFile represents a file diff.
func (*DiffFile) GetTailSection ¶ added in v1.11.0
func (diffFile *DiffFile) GetTailSection(gitRepo *git.Repository, leftCommitID, rightCommitID string) *DiffSection
GetTailSection creates a fake DiffLineSection if the last section is not the end of the file
type DiffFileType ¶
type DiffFileType uint8
DiffFileType represents the type of a DiffFile.
const ( DiffFileAdd DiffFileType = iota + 1 DiffFileChange DiffFileDel DiffFileRename DiffFileCopy )
DiffFileType possible values.
type DiffInline ¶ added in v1.16.0
type DiffInline struct { EscapeStatus charset.EscapeStatus Content template.HTML }
DiffInline is a struct that has a content and escape status
func DiffInlineWithHighlightCode ¶ added in v1.16.0
func DiffInlineWithHighlightCode(fileName, language, code string) DiffInline
DiffInlineWithHighlightCode makes a DiffInline with code highlight and hidden unicode characters escaped
func DiffInlineWithUnicodeEscape ¶ added in v1.16.0
func DiffInlineWithUnicodeEscape(s template.HTML) DiffInline
DiffInlineWithUnicodeEscape makes a DiffInline with hidden unicode characters escaped
type DiffLine ¶
type DiffLine struct { LeftIdx int RightIdx int Match int Type DiffLineType Content string Comments []*models.Comment SectionInfo *DiffLineSectionInfo }
DiffLine represents a line difference in a DiffSection.
func (*DiffLine) CanComment ¶
CanComment returns whether or not a line can get commented
func (*DiffLine) GetBlobExcerptQuery ¶ added in v1.11.0
GetBlobExcerptQuery builds query string to get blob excerpt
func (*DiffLine) GetCommentSide ¶
GetCommentSide returns the comment side of the first comment, if not set returns empty string
func (*DiffLine) GetExpandDirection ¶ added in v1.11.0
func (d *DiffLine) GetExpandDirection() DiffLineExpandDirection
GetExpandDirection gets DiffLineExpandDirection
func (*DiffLine) GetLineTypeMarker ¶
GetLineTypeMarker returns the line type marker
type DiffLineExpandDirection ¶ added in v1.11.0
type DiffLineExpandDirection uint8
DiffLineExpandDirection represents the DiffLineSection expand direction
const ( DiffLineExpandNone DiffLineExpandDirection = iota + 1 DiffLineExpandSingle DiffLineExpandUpDown DiffLineExpandUp DiffLineExpandDown )
DiffLineExpandDirection possible values.
type DiffLineSectionInfo ¶ added in v1.11.0
type DiffLineSectionInfo struct { Path string LastLeftIdx int LastRightIdx int LeftIdx int RightIdx int LeftHunkSize int RightHunkSize int }
DiffLineSectionInfo represents diff line section meta data
type DiffLineType ¶
type DiffLineType uint8
DiffLineType represents the type of a DiffLine.
const ( DiffLinePlain DiffLineType = iota + 1 DiffLineAdd DiffLineDel DiffLineSection )
DiffLineType possible values.
type DiffOptions ¶ added in v1.16.0
type DiffOptions struct { BeforeCommitID string AfterCommitID string SkipTo string MaxLines int MaxLineCharacters int MaxFiles int WhitespaceBehavior string DirectComparison bool }
DiffOptions represents the options for a DiffRange
type DiffSection ¶
type DiffSection struct { FileName string Name string Lines []*DiffLine // contains filtered or unexported fields }
DiffSection represents a section of a DiffFile.
func (*DiffSection) GetComputedInlineDiffFor ¶
func (diffSection *DiffSection) GetComputedInlineDiffFor(diffLine *DiffLine) DiffInline
GetComputedInlineDiffFor computes inline diff for the given line.
func (*DiffSection) GetLine ¶
func (diffSection *DiffSection) GetLine(lineType DiffLineType, idx int) *DiffLine
GetLine gets a specific line by type (add or del) and file line number
type TableDiffCell ¶ added in v1.15.0
type TableDiffCell struct { LeftCell string RightCell string Type TableDiffCellType }
TableDiffCell represents a cell of a TableDiffRow
type TableDiffCellType ¶ added in v1.15.0
type TableDiffCellType uint8
TableDiffCellType represents the type of a TableDiffCell.
const ( TableDiffCellUnchanged TableDiffCellType = iota + 1 TableDiffCellChanged TableDiffCellAdd TableDiffCellDel TableDiffCellMovedUnchanged TableDiffCellMovedChanged )
TableDiffCellType possible values.
type TableDiffRow ¶ added in v1.15.0
type TableDiffRow struct { RowIdx int Cells []*TableDiffCell }
TableDiffRow represents a row of a TableDiffSection.
type TableDiffSection ¶ added in v1.15.0
type TableDiffSection struct {
Rows []*TableDiffRow
}
TableDiffSection represents a section of a DiffFile.
func CreateCsvDiff ¶ added in v1.15.0
func CreateCsvDiff(diffFile *DiffFile, baseReader, headReader *csv.Reader) ([]*TableDiffSection, error)
CreateCsvDiff creates a tabular diff based on two CSV readers.