diff

package
v1.10.1 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2023 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

Overview

Package diff implements line oriented diffs, similar to the ancient Unix diff command.

The current implementation is just a wrapper around Sergi's go-diff/diffmatchpatch library, which is a go port of Neil Fraser's google-diff-match-patch code

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Do

func Do(src, dst string) (diffs []diffmatchpatch.Diff)

Do computes the (line oriented) modifications needed to turn the src string into the dst string. The underlying algorithm is Meyers, its complexity is O(N*d) where N is min(lines(src), lines(dst)) and d is the size of the diff.

func DoWithTimeout

func DoWithTimeout(src, dst string, timeout time.Duration) (diffs []diffmatchpatch.Diff)

DoWithTimeout computes the (line oriented) modifications needed to turn the src string into the dst string. The `timeout` argument specifies the maximum amount of time it is allowed to spend in this function. If the timeout is exceeded, the parts of the strings which were not considered are turned into a bulk delete+insert and the half-baked suboptimal result is returned at once. The underlying algorithm is Meyers, its complexity is O(N*d) where N is min(lines(src), lines(dst)) and d is the size of the diff.

func Dst

func Dst(diffs []diffmatchpatch.Diff) string

Dst computes and returns the destination text.

func Src

func Src(diffs []diffmatchpatch.Diff) string

Src computes and returns the source text

Types

This section is empty.

Jump to

Keyboard shortcuts

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