Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add the DiffUnified() method for formatting a unified diff. #146

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

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

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