# Package org.eclipse.jface.text

package org.eclipse.jface.text

Provides a framework for creating and manipulating text documents.

## Package Specification

`IDocument` is the major text model abstraction. It provides content management, position management using position categories, document partition management, and change notification. In order to be notified about document changes, an object must implements `IDocumentListener` and must be registered with the document. `Position` updating in responds to a document change is performed by implementers of `IDocumentPositionUpdater`. Partition updating in responds to a document change is performed by implements of `IDocumentPartitioner`. In order to be notified about document partition changes, objects must implement `IDocumentParititoningListener` and must be registered with the document.

The package contains default implementations for document position updaters and for documents. `AbstractDocument` uses `ITextStorage` for storing and managing its content and `ILineTracker` to maintain a line structure of its content. As defaults a gap text implementation of `ITextStore` is provided, together with a line tracker understanding the three standard line delimiters ("\r", "\n", "\r\n") and a line tracker which can be freely configured to consider any given set of strings as valid line delimiters.

`ITextViewer` defines the concept of a document based, editiable viewer. `ITextViewer` offers the following functionality:

- present a document
- event consumption (`IEventConsumer`)
- viewport tracking and notification (`IIViewportListener`)
- change notification (`ITextListener`, `ITextInputListener`)
- listeners (combined view/model notification, input document)
- standard text editing functions plus text hover support
- visual region support

An `ITextViewer` supports the following plug-ins

- `IUndoManager` for the undo/redo mechanism
- `IDoubleClickStrategy` for partition type specific behavior on mouse double click
- `IAutoIndentStrategy` for content type specific behavior on inserting a line break
- `ITextHover` for content type specific behavior when overing over text

The package provides default implementations for all these interfaces.

Related Packages
Package
Description
org.eclipse.jface.text.codemining
org.eclipse.jface.text.contentassist
Provides a content assist add-on for an `ITextViewer`.
org.eclipse.jface.text.formatter
Provides a content formatter add-on for an `ITextViewer`.
org.eclipse.jface.text.hyperlink
Provides support for detecting and displaying hyperlinks in `ISourceViewer`s.
org.eclipse.jface.text.information
Provides an information provider add-on for an `ITextViewer`.
org.eclipse.jface.text.link
Application programming interfaces for interaction with the Eclipse text editor's linked position support.
org.eclipse.jface.text.presentation
Provides a presentation reconciler add-on for an `ITextViewer`.
org.eclipse.jface.text.projection
This package provides an implementation of projection documents.
org.eclipse.jface.text.quickassist
This package provides the quick assist assistant add-on for an `ISourceViewer`.
org.eclipse.jface.text.reconciler
Provides a reconciler add-on for an `ITextViewer`.
org.eclipse.jface.text.revisions
Provides a revision model and a protocol to display revision information in a vertical ruler column.
org.eclipse.jface.text.rules
Provides a framework for rule based text scanning and uses the framework to provide rule-driven default implementations of `IPresentationDamager`, `IPresentationRepairer` and `IDocumentPartitioner`.
org.eclipse.jface.text.source
Provides a framework for connecting document regions with annotations and for displaying those.
org.eclipse.jface.text.templates
Application programming interfaces for interaction with the Eclipse text template support.
Class
Description
AbstractDocument
Abstract default implementation of `IDocument` and its extension interfaces `IDocumentExtension`, `IDocumentExtension2`, `IDocumentExtension3`, `IDocumentExtension4`, as well as `IRepairableDocument`.
AbstractHoverInformationControlManager
An information control manager that shows information in response to mouse hover events.
AbstractInformationControl
An abstract information control that can show content inside a shell.
AbstractInformationControlManager
Manages the life cycle, visibility, layout, and contents of an `IInformationControl`.
AbstractInformationControlManager.Anchor
Constitutes entities to enumerate anchors for the layout of the information control.
AbstractInformationControlManager.IInformationControlCloser
Interface of an information control closer.
AbstractLineTracker
Abstract implementation of `ILineTracker`.
AbstractLineTracker.DelimiterInfo
Combines the information of the occurrence of a line delimiter.
AbstractLineTracker.Request
Representation of replace and set requests.
AbstractReusableInformationControlCreator
Abstract class for a reusable information control creators.
BadLocationException
Indicates the attempt to access a non-existing position.
BadPartitioningException
Represents the attempt to refer to a non-existing document partitioning.
BadPositionCategoryException
Indicates the attempt to access a non-existing position category in a document.
BlockTextSelection
Standard implementation of `IBlockTextSelection`.
ConfigurableLineTracker
Standard implementation of a generic `ILineTracker`.
CopyOnWriteTextStore
Copy-on-write `ITextStore` wrapper.
CursorLinePainter
A painter the draws the background of the caret line in a configured color.
DefaultAutoIndentStrategy
Deprecated.
since 3.1 use `DefaultIndentLineAutoEditStrategy` instead
DefaultIndentLineAutoEditStrategy
This strategy always copies the indentation of the previous line.
DefaultInformationControl
Default implementation of `IInformationControl`.
DefaultInformationControl.IInformationPresenter
An information presenter determines the style presentation of information displayed in the default information control.
DefaultInformationControl.IInformationPresenterExtension
An information presenter determines the style presentation of information displayed in the default information control.
DefaultLineTracker
Standard implementation of `ILineTracker`.
DefaultPositionUpdater
Default implementation of `IPositionUpdater`.
DefaultTextDoubleClickStrategy
Standard implementation of `ITextDoubleClickStrategy`.
DefaultTextHover
Standard implementation of `ITextHover`.
DefaultUndoManager
Deprecated.
As of 3.2, replaced by `TextViewerUndoManager`
Document
Default document implementation.
DocumentCommand
Represents a text modification as a document replace command.
DocumentEvent
Specification of changes applied to documents.
DocumentPartitioningChangedEvent
Event describing the change of document partitionings.
DocumentRewriteSession
A document rewrite session.
DocumentRewriteSessionEvent
Description of the state of document rewrite sessions.
DocumentRewriteSessionType
A document rewrite session type.
FindReplaceDocumentAdapter
Provides search and replace operations on `IDocument`.
FindReplaceDocumentAdapterContentProposalProvider
Content assist proposal provider for the `FindReplaceDocumentAdapter`.
GapTextStore
Implements a gap managing text store.
IAutoEditStrategy
An auto edit strategy can adapt changes that will be applied to a text viewer's document.
IAutoIndentStrategy
Deprecated.
since 3.0, use `IAutoEditStrategy` directly
IBlockTextSelection
A rectangular selection in a text document.
IDelayedInputChangeProvider
A delayed input change provider notifies the registered `IInputChangedListener` about input changes that occur after the normal operation of the provider.
IDocument
An `IDocument` represents text providing support for text manipulation positions partitions line information document change listeners document partition change listeners A document allows to set its content and to manipulate it.
IDocumentAdapter
Adapts an `IDocument`to the `StyledTextContent` interface.
IDocumentAdapterExtension
Extension interface for `IDocumentAdapter`.
IDocumentExtension
Extension interface for `IDocument`.
IDocumentExtension.IReplace
Interface for a post notification replace operation.
IDocumentExtension2
Extension interface for `IDocument`.
IDocumentExtension3
Extension interface for `IDocument`.
IDocumentExtension4
Extension interface for `IDocument`.
IDocumentInformationMapping
A `IDocumentInformationMapping` represents a mapping between the coordinates of two `IDocument` objects: the original and the image.
IDocumentInformationMappingExtension
Extension to `IDocumentInformationMapping`.
IDocumentInformationMappingExtension2
Extension to `IDocumentInformationMapping`.
IDocumentListener
Interface for objects which are interested in getting informed about document changes.
IDocumentPartitioner
A document partitioner divides a document into a set of disjoint text partitions.
IDocumentPartitionerExtension
Extension interface for `IDocumentPartitioner`.
IDocumentPartitionerExtension2
Extension interface for `IDocumentPartitioner`.
IDocumentPartitionerExtension3
Extension interface for `IDocumentPartitioner`.
IDocumentPartitioningListener
Interface of objects which are interested in getting informed about changes of a document's partitioning.
IDocumentPartitioningListenerExtension
Extension interface for `IDocumentPartitioningListener`.
IDocumentPartitioningListenerExtension2
Extension interface to `IDocumentPartitioningListener`.
IDocumentRewriteSessionListener
Interface for objects which are interested in getting informed about document rewrite sessions.
IEditingSupport
Implemented by tools supporting the editing process.
IEditingSupportRegistry
A registry for `IEditingSupport`s.
IEventConsumer
Implementers can register with a text viewer and receive `VerifyEvent`s before the text viewer they are registered with.
IFindReplaceTarget
Defines the target for finding and replacing strings.
IFindReplaceTargetExtension
Extension interface for `IFindReplaceTarget`.
IFindReplaceTargetExtension3
Extension interface for `IFindReplaceTarget`.
IFindReplaceTargetExtension4
Extension interface for `IFindReplaceTarget` providing methods to select multiple text ranges.
IInformationControl
Interface of a control presenting information.
IInformationControlCreator
Interface of a factory for information controls ( `IInformationControl`).
IInformationControlCreatorExtension
Extension interface for `IInformationControlCreator`
IInformationControlExtension
Extension interface `IInformationControl`.
IInformationControlExtension2
Extension interface for `IInformationControl`.
IInformationControlExtension3
Extension interface for `IInformationControl`.
IInformationControlExtension4
Extension interface for `IInformationControl`.
IInformationControlExtension5
Extension interface for `IInformationControl`.
IInputChangedListener
A listener which is notified when the target's input changes.
ILineTracker
A line tracker maps character positions to line numbers and vice versa.
ILineTrackerExtension
Extension interface for `ILineTracker`.
IMarkRegionTarget
A mark region target to support marked regions as found in emacs.
IMarkSelection
A mark selection can be sent out by text viewers.
IMultiTextSelection
This interface represents a textual selection that can be made of multiple discontinued selected ranges.
IPainter
A painter is responsible for creating, managing, updating, and removing visual decorations on an `ITextViewer`'s text widget.
IPaintPositionManager
Manages and updates positions used by `IPainter`s.
IPositionUpdater
A position updater is responsible for adapting document positions.
IRegion
A region describes a certain range in an indexed text store.
IRepairableDocument
Tagging interface to be implemented by `IDocument` implementers that offer a line repair method on the documents.
IRepairableDocumentExtension
Extension interface for `IRepairableDocument`.
IRewriteTarget
A target publishing the required functions to modify a document that is displayed in a text viewer.
ISelectionValidator
A selection validator allows clients to test whether the selection they received during selection changed notification is valid.
ISlaveDocumentManager
Slave documents are documents whose contents is defined in terms of a master document.
ISlaveDocumentManagerExtension
Extension interface for `ISlaveDocumentManager`.
ISynchronizable
Interface for text related objects which may be used in the multi-threaded context and thus must provide a way to prevent concurrent access and manipulation.
ITextDoubleClickStrategy
A text double click strategy defines the reaction of a text viewer to mouse double click events.
ITextHover
Computes the information to be shown in a hover popup which appears on top of the text viewer's text widget when a hover event occurs.
ITextHoverExtension
Extension interface for `ITextHover`.
ITextHoverExtension2
Extension interface for `ITextHover`.
ITextInputListener
Text input listeners registered with an `ITextViewer` are informed if the document serving as the text viewer's model is replaced.
ITextListener
Text listeners registered with a text viewer are informed about all modifications of an `ITextViewer` by means of text events.
ITextOperationTarget
Defines the target for text operations.
ITextOperationTargetExtension
Extension interface for `ITextOperationTarget`.
ITextPresentationListener
Text presentation listeners registered with an `ITextViewer` are informed when a `TextPresentation` is about to be applied to the text viewer.
ITextSelection
This interface represents a textual selection.
ITextStore
Interface for storing and managing text.
ITextViewer
A text viewer connects a text widget with an `IDocument`.
ITextViewerExtension
Extension interface for `ITextViewer`.
ITextViewerExtension2
Extension interface for `ITextViewer`.
ITextViewerExtension3
Deprecated.
replaced by `ITextViewerExtension5`
ITextViewerExtension4
Extension interface for `ITextViewer`.
ITextViewerExtension5
Extension interface for `ITextViewer`.
ITextViewerExtension6
Extension interface for `ITextViewer`.
ITextViewerExtension7
Extension interface for `ITextViewer`.
ITextViewerExtension8
Extension interface for `ITextViewer`.
ITextViewerExtension8.EnrichMode
Type-safe enum of the available enrich modes.
ITextViewerExtension9
Extension interface for `ITextViewer`.
ITextViewerLifecycle
`ITextViewer` lifecycle API to track install / uninstall of a given `ITextViewer` for the given contribution which extends `ITextViewerLifecycle`: `IReconciler` `IPresentationReconciler` `IHyperlinkPresenter` `DefaultInformationControl.IInformationPresenter` `IContentAssistant` It is possible too to implement `ITextViewerLifecycle` to track install / uninstall of a given `ITextViewer` for implementation of: `IReconcilingStrategy` `IAutoEditStrategy`
ITypedRegion
Describes a region of an indexed text store such as a document or a string.
IUndoManager
An undo manager is connected to at most one `ITextViewer`.
IUndoManagerExtension
Extension interface for `IUndoManager`.
IViewportListener
Registered with a text viewer, view port listeners are informed about changes of a text viewer's view port.
IWidgetTokenKeeper
A widget token keeper may require a widget token from an `IWidgetTokenOwner` and release the token to the owner after usage.
IWidgetTokenKeeperExtension
Extension interface for `IWidgetTokenKeeper`.
IWidgetTokenOwner
In order to display information in a temporary window, a widget token must be acquired.
IWidgetTokenOwnerExtension
Extension interface for `IWidgetTokenOwner`.
JFaceTextUtil
A collection of JFace Text functions.
MarginPainter
Paints a vertical line (margin line) after a given column respecting the text viewer's font.
MarkSelection
Default implementation of `IMarkSelection`.
MultiStringMatcher
Fast matcher to find the occurrences of any of a fixed set of constant strings.
MultiStringMatcher.Builder
A Builder for creating a `MultiStringMatcher`.
MultiStringMatcher.Match
Describes a match result of `MultiStringMatcher.indexOf(CharSequence, int)`, giving access to the matched string and the offset in the text it was matched at.
MultiTextSelection
PaintManager
Manages the `IPainter` object registered with an `ITextViewer`.
Position
Positions describe text ranges of a document.
PropagatingFontFieldEditor
Deprecated.
since 3.0 not longer in use, no longer supported
Region
The default implementation of the `IRegion` interface.
RewriteSessionEditProcessor
A text edit processor that brackets the application of edits into a document rewrite session.
SequentialRewriteTextStore
Deprecated.
since 3.3 as `GapTextStore` performs better even for sequential rewrite scenarios
SlaveDocumentEvent
A slave document event represents a master document event as a slave-relative document event.
TabsToSpacesConverter
Auto edit strategy that converts tabs into spaces.
TextAttribute
Description of textual attributes such as color and style.
TextEvent
This event is sent to implementers of `ITextListener`.
TextPresentation
Describes the presentation styles for a section of an indexed text such as a document or string.
TextSelection
Standard implementation of `ITextSelection`.
TextUtilities
A collection of text functions.
TextViewer
SWT based implementation of `ITextViewer` and its extension interfaces.
TextViewerUndoManager
Implementation of `IUndoManager` using the shared document undo manager.
TypedPosition
Convenience class for positions that have a type, similar to `ITypedRegion`.
TypedRegion
Default implementation of `ITypedRegion`.
WhitespaceCharacterPainter
A painter for drawing visible characters for (invisible) whitespace characters.