Package org.eclipse.ui.texteditor

## Interface ITextEditor

All Superinterfaces:
  `IAdaptable`, `IEditorPart`, `ISaveablePart`, `IWorkbenchPart`

All Known Implementing Classes:
  `AbstractDecoratedTextEditor`, `AbstractTextEditor`, `StatusTextEditor`, `TextEditor`

    public interface ITextEditor
    extends IEditorPart

Interface to a text editor. This interface defines functional extensions to `IEditorPart` as well as the configuration capabilities of a text editor.

Text editors are configured with an `IDocumentProvider` which delivers a textual presentation (`IDocument`) of the editor's input. The editor works on the document and forwards all input element related calls, such as `save`, to the document provider. The provider also delivers the input's annotation model which is used by the editor's vertical ruler.

Clients may implement this interface from scratch, but the recommended way is to subclass the abstract base class `AbstractTextEditor`.

In order to provided backward compatibility for clients of `ITextEditor`, extension interfaces are used to provide a means of evolution. The following extension interfaces exist:

- `ITextEditorExtension` since version 2.0 introducing status fields, read-only state and ruler context menu listeners.
- `ITextEditorExtension2` since version 2.1 introducing modifiable state for the editor input and validate state handling.
- `ITextEditorExtension3` since version 3.0 adding input state and change information control.
- `ITextEditorExtension4` since version 3.2 adding annotation navigation and revision information display.
- `ITextEditorExtension5` since version 3.5 adding block selection mode.

See Also:
  `IDocumentProvider`, `IAnnotationModel`, `ITextEditorExtension`, `ITextEditorExtension2`, `ITextEditorExtension3`, `ITextEditorExtension4`, `ITextEditorExtension5`

### Field Summary

### Fields inherited from interface org.eclipse.ui.IEditorPart

`PROP_DIRTY, PROP_INPUT`

### Fields inherited from interface org.eclipse.ui.IWorkbenchPart

`PROP_TITLE`

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `close​(boolean save)` Closes this text editor after optionally saving changes.
`void` `doRevertToSaved()` Abandons all modifications applied to this text editor's input element's textual presentation since the last save operation.
`IAction` `getAction​(String actionId)` Returns the action installed under the given action id.
`IDocumentProvider` `getDocumentProvider()` Returns this text editor's document provider.
`IRegion` `getHighlightRange()` Returns the highlighted range of this text editor.
`ISelectionProvider` `getSelectionProvider()` Returns this text editor's selection provider.
`boolean` `isEditable()` Returns whether the text in this text editor can be changed by the user.
`void` `removeActionActivationCode​(String actionId)` Removes any installed activation code for the specified action.
`void` `resetHighlightRange()` Resets the highlighted range of this text editor.
`void` `selectAndReveal​(int offset, int length)` Selects and reveals the specified range in this text editor.
`void` `setAction​(String actionID, IAction action)` Installs the given action under the given action id.
`void` `setActionActivationCode​(String actionId, char activationCharacter, int activationKeyCode, int activationStateMask)` Sets the given activation code for the specified action.
`void` `setHighlightRange​(int offset, int length, boolean moveCursor)` Sets the highlighted range of this text editor to the specified region.
`void` `showHighlightRangeOnly​(boolean showHighlightRangeOnly)` Configures this text editor to show only the highlighted range of the text.
`boolean` `showsHighlightRangeOnly()` Returns whether this text editor is configured to show only the highlighted range of the text.

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.ui.IEditorPart

`getEditorInput, getEditorSite, init`

### Methods inherited from interface org.eclipse.ui.ISaveablePart

`doSave, doSaveAs, isDirty, isSaveAsAllowed, isSaveOnCloseNeeded`

### Methods inherited from interface org.eclipse.ui.IWorkbenchPart

`addPropertyListener, createPartControl, dispose, getSite, getTitle, getTitleImage, getTitleToolTip, removePropertyListener, setFocus`

### Method Detail

#### getDocumentProvider

    IDocumentProvider getDocumentProvider()

Returns this text editor's document provider.

Returns:
  the document provider or `null` if none, e.g. after closing the editor

#### close

    void close​(boolean save)

Closes this text editor after optionally saving changes.

Parameters:
  `save` - `true` if unsaved changed should be saved, and `false` if unsaved changed should be discarded

#### isEditable

    boolean isEditable()

Returns whether the text in this text editor can be changed by the user.

Returns:
  `true` if it can be edited, and `false` if it is read-only

#### doRevertToSaved

    void doRevertToSaved()

Abandons all modifications applied to this text editor's input element's textual presentation since the last save operation.

#### setAction

    void setAction​(String actionID,
                   IAction action)

Installs the given action under the given action id.

Parameters:
  `actionID` - the action id
  `action` - the action, or `null` to clear it
See Also:
  `getAction(String)`

#### getAction

    IAction getAction​(String actionId)

Returns the action installed under the given action id.

Parameters:
  `actionId` - the action id
Returns:
  the action, or `null` if none
See Also:
  `setAction(String, IAction)`

#### setActionActivationCode

    void setActionActivationCode​(String actionId,
                                 char activationCharacter,
                                 int activationKeyCode,
                                 int activationStateMask)

Sets the given activation code for the specified action. If there is an activation code already registered, it is replaced. The activation code consists of the same information as a `KeyEvent`. If the activation code is triggered and the associated action is enabled, the action is performed and the triggering `KeyEvent` is considered consumed. If the action is disabled, the `KeyEvent` is passed on unmodified. Thus, action activation codes and action accelerators differ in their model of event consumption. The key code parameter can be `-1` to indicate a wild card. The state mask parameter can be SWT.DEFAULT to indicate a wild card.

Parameters:
  `actionId` - the action id
  `activationCharacter` - the activation code character
  `activationKeyCode` - the activation code key code or `-1` for wild card
  `activationStateMask` - the activation code state mask or `SWT.DEFAULT` for wild card

#### removeActionActivationCode

    void removeActionActivationCode​(String actionId)

Removes any installed activation code for the specified action. If no activation code is installed, this method does not have any effect.

Parameters:
  `actionId` - the action id

#### showsHighlightRangeOnly

    boolean showsHighlightRangeOnly()

Returns whether this text editor is configured to show only the highlighted range of the text.

Returns:
  `true` if only the highlighted range is shown, and `false` if this editor shows the entire text of the document
See Also:
  `showHighlightRangeOnly(boolean)`

#### showHighlightRangeOnly

    void showHighlightRangeOnly​(boolean showHighlightRangeOnly)

Configures this text editor to show only the highlighted range of the text.

Parameters:
  `showHighlightRangeOnly` - `true` if only the highlighted range is shown, and `false` if this editor shows the entire text of the document
See Also:
  `showsHighlightRangeOnly()`

#### setHighlightRange

    void setHighlightRange​(int offset,
                           int length,
                           boolean moveCursor)

Sets the highlighted range of this text editor to the specified region.

Parameters:
  `offset` - the offset of the highlighted range
  `length` - the length of the highlighted range
  `moveCursor` - `true` if the cursor should be moved to the start of the highlighted range, and `false` to leave the cursor unaffected - has no effect if the range to highlight is already the highlighted one
See Also:
  `getHighlightRange()`

#### getHighlightRange

    IRegion getHighlightRange()

Returns the highlighted range of this text editor.

Returns:
  the highlighted range
See Also:
  `setHighlightRange(int, int, boolean)`

#### resetHighlightRange

    void resetHighlightRange()

Resets the highlighted range of this text editor.

#### getSelectionProvider

    ISelectionProvider getSelectionProvider()

Returns this text editor's selection provider. Repeated calls to this method return the same selection provider.

Returns:
  the selection provider

#### selectAndReveal

    void selectAndReveal​(int offset,
                         int length)

Selects and reveals the specified range in this text editor.

Parameters:
  `offset` - the offset of the selection
  `length` - the length of the selection