The generic and extensible text editor

Instead of fully defining a new new editor, Platform Text does also provide a unique generic and extensible text editor that you can enrich to support your text files. The features of this editor (hover, completion...) can be provided by plugin developers as regular extensions, without requiring to define yet another editor. The approach is to contribute to the generic editor rather than creating a new editor.

To achieve that, the generic editor framework provides a few extension points that allow customers to enrich the editor according to the content-type of the editor input. The generic editor takes care of either selecting the most suitable extension for a given features, or to compose the multiple valid extensions and to present the aggregated result to user.

Here are the current extension points provided to augment the generic editor:

The generic editor also provides some non-customizable features typically desired for any text editor such as: The generic editor inherits most features from the AbstractTextEditor so it integrates into the workbench like a regular text editor. So you can for example:

Validation of the document, synchronization with a model and error discovery are not part of the generic editor per-se, although the generic editor allows to interact with the reported problems. The recommended way is to make document processing independent from the editor, and to rely on IDocumentListener and documentSetupParticipant extension to react to immediate changes on the working copy, or on IResourceChangeListener to react on save. For best results in user experience, reacting to document change should be a fast operation, so any long computation and reporting operation should happen asynchronously in a non-blocking way.

The generic editor works on plain text level and does not mandate the underlying document to be partitioned, it's up to the individual extensions to the generic editor to consider partitioning or not, and to contribute some document partitioning if they need it.