Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.8 KiB
46 lines
1.8 KiB
// 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, |
|
} |
|
}
|
|
|