object Diff
- Alphabetic
- By Inheritance
- Diff
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed trait Bimap extends AnyRef
Allows for mapping indices bidirectionally between the
baseandtargetsequences. - sealed trait Chunk[T] extends AnyRef
Alternative representation of the diffing output that holds _all_ data elements, changed and unchanged ones.
- trait Eq[T] extends AnyRef
Very simple equality type class, which allows for customizing the comparison logic employed by the diff algorith.
Very simple equality type class, which allows for customizing the comparison logic employed by the diff algorith. By default universal value equality is used.
- sealed trait Op extends AnyRef
An ADT for all "operations" the diff algorithm can derive.
An ADT for all "operations" the diff algorithm can derive. Operations don't contain any elements themselves, they only hold indices into the
baseandtargetsequences for maximum efficiency.If you need something that holds all data required to transform
baseintotarget, including the actual elements, check out Patch. - final case class Patch[T](baseSize: Int, targetSize: Int, steps: ArraySeq[Step[T]]) extends Product with Serializable
A Patch encapsulates all information required to transform the
basesequence into thetargetsequence.A Patch encapsulates all information required to transform the
basesequence into thetargetsequence.In addition to the data of which elements need to be deleted and/or moved it also contains the actual elements that are to be inserted.
- final class Slice[T] extends scala.collection.IndexedSeqView.Slice[T]
An IndexedSeqView.Slice that surfaces the underlying sequence as well as the index range.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit arg0: Eq[T]): Diff[T]
Runs a relatively efficient, stacksafe, linear space implementation of the Myers diff algorithm and returns the result as a Diff instance, which serves as the tee-off point for further, downstream logic.
Runs a relatively efficient, stacksafe, linear space implementation of the Myers diff algorithm and returns the result as a Diff instance, which serves as the tee-off point for further, downstream logic.
The core algorithm is based on the work of Robert Elder.
- See also
https://blog.robertelder.org/diff-algorithm/
https://github.com/RobertElderSoftware/roberteldersoftwarediff/blob/master/myers_diff_and_variations.py
https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def longestCommonSubsequence[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit arg0: Eq[T], arg1: ClassTag[T]): ArraySeq[T]
Returns a longest common subsequence of the
baseandtargetsequences.Returns a longest common subsequence of the
baseandtargetsequences. or None, if the two sequences have no elements in common. Stacksafe and reasonably efficient. - def minEditDistance[T](base: IndexedSeq[T], target: IndexedSeq[T])(implicit eq: Eq[T]): Int
Returns the minimum number of edits required to transform
baseandtarget, whereby one "edit" corresponds to deleting or inserting one single element.Returns the minimum number of edits required to transform
baseandtarget, whereby one "edit" corresponds to deleting or inserting one single element.Equal to
Diff(base, target).delInsOps.sizebut more efficient. - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- object Chunk
- object Eq
- object Op
- object Patch extends Serializable
- object Slice extends Serializable
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated