// Copyright (c) 2012-2016 The go-diff authors. All rights reserved.
// https://github.com/sergi/go-diff
// See the included LICENSE file for license details.
//
// go-diff is a Go implementation of Google's Diff, Match, and Patch library
// Original library is Copyright (c) 2006 Google Inc.
// http://code.google.com/p/google-diff-match-patch/

// Package diffmatchpatch offers robust algorithms to perform the operations required for synchronizing plain text.
package diffmatchpatch import ( "time" ) // DiffMatchPatch holds the configuration for diff-match-patch operations. type DiffMatchPatch struct { // Number of seconds to map a diff before giving up (0 for infinity). DiffTimeout time.Duration // Cost of an empty edit operation in terms of edit characters. DiffEditCost int // How far to search for a match (0 = exact location, 1000+ = broad match). A match this many characters away from the expected location will add 1.0 to the score (0.0 is a perfect match). MatchDistance int // When deleting a large block of text (over ~64 characters), how close do the contents have to be to match the expected contents. (0.0 = perfection, 1.0 = very loose). Note that MatchThreshold controls how closely the end points of a delete need to match. PatchDeleteThreshold float64 // Chunk size for context length. PatchMargin int // The number of bits in an int. MatchMaxBits int // At what point is no match declared (0.0 = perfection, 1.0 = very loose). MatchThreshold float64 } // New creates a new DiffMatchPatch object with default parameters. func New() *DiffMatchPatch { // Defaults. return &DiffMatchPatch{ DiffTimeout: time.Second, DiffEditCost: 4, MatchThreshold: 0.5, MatchDistance: 1000, PatchDeleteThreshold: 0.5, PatchMargin: 4, MatchMaxBits: 32, } }