Skip to content

Conversation

octo
Copy link

@octo octo commented Sep 9, 2024

This adds a new DiffUnified() method which takes a []Diff slice and formats it in the "unified diff" format. The []Diff slice does not necessarily need to be a linewise diff.

The implementation deals gracefully with missing newlines at the end of either side, as well as empty inputs on either side.

The method accepts two optional arguments: UnifiedLabels() for setting the labels for the two inputs and UnifiedContextLines() for setting the number of context lines printed.

Example usage:

unified := dmp.DiffUnified(diffs,
	diffmatchpatch.UnifiedLabels("text1", "text2"),
	diffmatchpatch.UnifiedContextLines(3))

A convenience method, Unified(), takes two string inputs and returns the unified diff.

Fixes: #124

octo added 2 commits September 9, 2024 16:38
This adds a new `DiffUnified()` method which takes a `[]Diff` slice and formats
it in the "unified diff" format. The `[]Diff` slice does not necessarily need
to be a linewise diff.

The implementation deals gracefully with missing newlines at the end of either
side, as well as empty inputs on either side.

The method accepts two optional arguments: `UnifiedLabels()` for setting the
labels for the two inputs and `UnifiedContextLines()` for setting the number of
context lines printed.

Example usage:

```go
unified := dmp.DiffUnified(diffs,
	diffmatchpatch.UnifiedLabels("text1", "text2"),
	diffmatchpatch.UnifiedContextLines(3))
```

A convenience method, `Unified()`, takes two string inputs and returns the
unified diff.

Fixes: sergi#124
Re-use the existing `Patch` struct to store "hunks" instead of adding a new
struct for this purpose.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Could an unified diff be output with go-diff?
1 participant