# Refactoring Change Preview Viewers

###### Identifier:

org.eclipse.ltk.ui.refactoring.changePreviewViewers

###### Since:

3.0

###### Description:

This extension point is used to define a special viewer capable to present change objects.

This extension point supports the `<enablement>` element. The default variable is the change object to present a preview for.
Defined variables for `<with>` expressions are:

- "change": type `org.eclipse.ltk.core.refactoring.Change`; the change object to present a preview for (same as the default variable)

###### Configuration Markup:

<!ELEMENT extension (changePreviewViewer*)>

<!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 changePreviewViewer (enablement)>

<!ATTLIST changePreviewViewer

id CDATA #REQUIRED

class CDATA #REQUIRED>

- id - unique identifier for the change preview viewer.
- class - the name of the class that provides the implementation.

###### Examples:

The example below contributes a preview viewer for text change objects.

       <extension point="org.eclipse.ltk.ui.refactoring.changePreviewViewers">
          <changePreviewViewer
                class="org.eclipse.ltk.internal.ui.refactoring.TextEditChangePreviewViewer"
                id="org.eclipse.ltk.internal.ui.refactoring.textEditChangePreviewViewer">
             <enablement>
                <instanceof value="org.eclipse.ltk.core.refactoring.TextChange"/>
             </enablement>
          </changePreviewViewer>
       </extension>

###### API Information:

The contributed class must extend `org.eclipse.ltk.ui.refactoring.IChangePreviewViewer`

Copyright (c) 2001, 2013 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