feat: Add the DiffUnified() method for formatting a unified diff.#146
Open
octo wants to merge 2 commits intosergi:masterfrom
Open
feat: Add the DiffUnified() method for formatting a unified diff.#146octo wants to merge 2 commits intosergi:masterfrom
DiffUnified() method for formatting a unified diff.#146octo wants to merge 2 commits intosergi:masterfrom
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds a new
DiffUnified()method which takes a[]Diffslice and formats it in the "unified diff" format. The[]Diffslice 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 andUnifiedContextLines()for setting the number of context lines printed.Example usage:
A convenience method,
Unified(), takes two string inputs and returns the unified diff.Fixes: #124