# ContentMerge Viewers

###### Identifier:

org.eclipse.compare.contentMergeViewers

###### Description:

This extension point allows a plug-in to register compare/merge viewers for specific content types. The viewer is expected to extend `org.eclipse.jface.viewers.Viewer`. However, since viewers don't have a default constructor, the extension point must implement the factory interface for viewers `org.eclipse.compare.IViewerCreator`.

###### Configuration Markup:

<!ELEMENT extension (viewer* , contentTypeBinding*)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT viewer EMPTY>

<!ATTLIST viewer

id CDATA #REQUIRED

class CDATA #REQUIRED

extensions CDATA #IMPLIED

label CDATA #IMPLIED>

- id - a unique identifier that can be used to reference the viewer
- class - a fully qualified name of a class that implements a factory for the content merge viewer and implements `org.eclipse.compare.IViewerCreator`
- extensions - a comma separated list of file extensions e.g. "java, gif"
- label - Since 3.5. A translatable label that will be used in the UI for this viewer.

<!ELEMENT contentTypeBinding EMPTY>

<!ATTLIST contentTypeBinding

contentTypeId IDREF #REQUIRED

contentMergeViewerId IDREF #REQUIRED>

A `contentTypeBinding` binds a merge viewer to a content type.

- contentTypeId - The id of a content type defined using the `org.eclipse.core.contenttype.contentTypes` extension point.
- contentMergeViewerId - The id of a merge viewer defined using the `viewer` element of this extension point (i.e. `org.eclipse.compare.contentMergeViewers`)

###### Examples:

The following is an example of a compare/merge viewer for text files (extension "txt"):

    <extension point = "org.eclipse.compare.contentMergeViewers">
         <viewer
             id="org.eclipse.compare.contentmergeviewer.TextMergeViewer"
             class="org.eclipse.compare.internal.TextMergeViewerCreator"
             extensions="txt"
             label="Text Compare"
        />
    </extension>

###### API Information:

The contributed class must implement `org.eclipse.compare.IViewerCreator`

###### Supplied Implementation:

The Compare UI plugin defines content viewers for text, binary contents, and images.

Copyright (c) 2000, 2009 IBM Corporation and others.
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-v20.html/ SPDX-License-Identifier: EPL-2.0