An intermediate editor comprising functionality not present in the leaner AbstractTextEditor,
but used in many heavy weight (and especially source editing) editors, such as line numbers,
change ruler, overview ruler, print margins, current line highlighting, etc.
Abstract implementation of a marker-based annotation model.
Markers are provided by an underlying source (a subclass responsibility).
Markers whose textual range gets deleted during text editing are removed
from the model on save.
Preference store that composes multiple preference stores in a
chain and serves a preference value from the first preference store in the
chain that contains the preference.