A ContentMergeViewer accesses its model by means of a content
provider which must implement the
IMergeViewerContentProvider interface.
The TextMergeViewer is the standard concrete subclass of ContentMergeViewer. A text merge viewer uses the RangeDifferencer to perform a textual, line-by-line comparison of two (or three) input documents. For text lines that differ the TextMergeViewer uses an ITokenComparator to find longest sequences of matching and non-matching tokens. The TextMergeViewer's default token compare works on characters separated by whitespace. If a different strategy is needed (for example, Java tokens in a Java-aware merge viewer), clients can create their own token comparators by implementing the ITokenComparator interface.
The TextMergeViewer not only works on whole documents but on subranges of documents too. In this case the viewer's input must be an IDocumentRange instead of an IDocument.