# Package org.eclipse.jface.text.source

package org.eclipse.jface.text.source
Provides a framework for connecting document regions with annotations and for displaying those.

## Package Specification

`IAnnotationModels` manage `Annotations`. When an annotation model is connected to an `IDocument`, any change to the document is reflected in the position of the managed annotations. Implementers of `IAnnotationModelListener` registered with an `IAnnotationModel` object get informed about changes of the model in respect to annotations.

`ISourceViewer` defines the concept of a document based, editable viewer supporting visual annotations. `ISourceViewer` supports document-specific and viewer-specific annotations attached to the viewer's input document. An `ISourceViewer` uses an `IAnnotationModel` to manage annotations and to inform implementers of `IAnnotationModelListener` about changes in respect to annotations. An `IVerticalRuler` represents an `IAnnotationModel` access adapter for an SWT widget capapble of display annotations. This package also provides default implementations for all defined interfaces.

Related Packages
Package
Description
org.eclipse.jface.text
Provides a framework for creating and manipulating text documents.
org.eclipse.jface.text.source.inlined
org.eclipse.jface.text.source.projection
This package provides the UI part for projection documents of which the most important part is the projection viewer.
Class
Description
AbstractRulerColumn
Abstract implementation of a `IVerticalRulerColumn` that uses a `Canvas` to draw the ruler contents and which handles scrolling and mouse selection.
Annotation
Annotation managed by an `IAnnotationModel`.
AnnotationBarHoverManager
This manager controls the layout, content, and visibility of an information control in reaction to mouse hover events issued by the vertical ruler of a source viewer.
AnnotationColumn
Deprecated, for removal: This API element is subject to removal in a future version.
use `AnnotationRulerColumn(int)` instead.
AnnotationModel
Standard implementation of `IAnnotationModel` and its extension interfaces.
AnnotationModelEvent
Specification of changes applied to annotation models.
AnnotationPainter
Paints decorations for annotations provided by an annotation model and/or highlights them in the associated source viewer.
AnnotationPainter.BoxStrategy
Box text style strategy.
AnnotationPainter.HighlightingStrategy
AnnotationPainter.IDrawingStrategy
A drawing strategy draws the decoration for an annotation onto the text widget.
AnnotationPainter.ITextStyleStrategy
A text style painting strategy draws the decoration for an annotation onto the text widget by applying a `TextStyle` on a given `StyleRange`.
AnnotationPainter.NullStrategy
Drawing strategy that does nothing.
AnnotationPainter.SquigglesStrategy
Deprecated.
As of 3.4, replaced by `AnnotationPainter.UnderlineStrategy`
AnnotationPainter.UnderlineStrategy
Underline text style strategy.
AnnotationRulerColumn
A vertical ruler column showing graphical representations of annotations.
ChangeRulerColumn
A vertical ruler column displaying line numbers and serving as a UI for quick diff.
CompositeRuler
Standard implementation of `IVerticalRuler`.
ContentAssistantFacade
Facade to allow minimal access to the given content assistant.
DefaultAnnotationHover
Standard implementation of `IAnnotationHover`.
DefaultCharacterPairMatcher
A character pair matcher that matches a specified set of character pairs against each other.
IAnnotationAccess
An annotation access provides access to information that is not available via the API of `Annotation`.
IAnnotationAccessExtension
Extension interface for `IAnnotationAccess`.
IAnnotationAccessExtension2
Extension interface for `IAnnotationAccess`.
IAnnotationHover
Provides the information to be displayed in a hover popup window which appears over the presentation area of annotations.
IAnnotationHoverExtension
Extension interface for `IAnnotationHover` for providing its own information control creator providing the range of lines for which the hover for a given line is valid providing whether the information control can interact with the mouse cursor
IAnnotationHoverExtension2
Extension interface for `IAnnotationHover` for providing whether the information control can interact with the mouse wheel
IAnnotationMap
An annotation map is a map specialized for the requirements of an annotation model.
IAnnotationModel
This interface defines the model for managing annotations attached to a document.
IAnnotationModelExtension
Extends `IAnnotationModel`with the ability piggyback other annotation models.
IAnnotationModelExtension2
Extends `IAnnotationModel` with the ability to retrieve a set of annotations within a given region.
IAnnotationModelListener
Interface for objects interested in getting informed about annotation model changes.
IAnnotationModelListenerExtension
Extension interface for `IAnnotationModelListener`.
IAnnotationPresentation
Interface for annotations that can take care of their own visible representation.
IChangeRulerColumn
An `IChangeRulerColumn` can display quick diff information.
ICharacterPairMatcher
A character pair matcher finds to a character at a certain document offset the matching peer character.
ICharacterPairMatcherExtension
Extension interface for `ICharacterPairMatcher`.
ILineDiffer
Protocol that allows direct access to line information.
ILineDifferExtension
Extension interface for `ILineDiffer`.
ILineDifferExtension2
Extension interface for `ILineDiffer`.
ILineDiffInfo
Describes the change state of one line, which consists of the state of the line itself, which can be `UNCHANGED`, `CHANGED` or `ADDED`, and the number of deleted lines before and after this line.
ILineRange
Describes a range of lines.
ImageUtilities
Provides methods for drawing images onto a canvas.
IOverviewRuler
This interface defines a visual component which may serve text viewers as an overview annotation presentation area.
IOverviewRulerExtension
Extension interface for `IOverviewRuler`.
ISharedTextColors
Manages SWT color objects.
ISourceViewer
In addition to the text viewer functionality a source viewer supports: visual annotations based on an annotation model visual range indication management of text viewer add-ons explicit configuration It is assumed that range indication and visual annotations are shown inside the same presentation area.
ISourceViewerExtension
Extension interface for `ISourceViewer`.
ISourceViewerExtension2
Extension interface for `ISourceViewer`.
ISourceViewerExtension3
Extension interface for `ISourceViewer`.
ISourceViewerExtension4
Extension interface for `ISourceViewer`.
ISourceViewerExtension5
Extension interface for `ISourceViewer`.
IVerticalRuler
This interface defines a visual component which may serve text viewers as an annotation presentation area.
IVerticalRulerColumn
A vertical ruler column is an element that can be added to a composite vertical ruler (`CompositeRuler`).
IVerticalRulerExtension
Extension interface for `IVerticalRuler`.
IVerticalRulerInfo
A vertical ruler is a visual component which may serve text viewers as an annotation presentation area.
IVerticalRulerInfoExtension
Extension interface for `IVerticalRulerInfo`.
IVerticalRulerListener
Interface for listening to annotation related events happening on a vertical ruler.
LineChangeHover
A hover for line oriented diffs.
LineNumberChangeRulerColumn
A vertical ruler column displaying line numbers and serving as a UI for quick diff.
LineNumberRulerColumn
A vertical ruler column displaying line numbers.
LineRange
Default implementation of `ILineRange`.
MatchingCharacterPainter
Highlights the peer character matching the character near the caret position, or a pair of peer characters enclosing the caret position.
OverviewRuler
Ruler presented next to a source viewer showing all annotations of the viewer's annotation model in a compact format.
SourceViewer
SWT based implementation of `ISourceViewer` and its extension interfaces.
SourceViewerConfiguration
This class bundles the configuration space of a source viewer.
TextInvocationContext
Text quick assist invocation context.
VerticalRuler
A vertical ruler which is connected to a text viewer.
VerticalRulerEvent
An event sent to `IVerticalRulerListener` instances when annotation related event occurs on the vertical ruler.