ionality. Text editors use source viewers (<code>ISourceViewer</code>)
for displaying and editing the given editor input. In order to translate
the editor input into a document and vice versa (e.g., for saving a change),
a text editor uses document providers (<code>IDocumentProvider</code>). A document
provider is responsible not just for providing the document for a given
editor input but for the complete translation between the domain model
and the editor's internal document-based model. Document provider