# 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.

Interface Summary
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`.
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.
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.

Class Summary
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. 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.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.
ImageUtilities: Provides methods for drawing images onto a canvas.
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.