Big revamp of Chapter 1 ("Frameworks for text editors: JFace Text and Gymnast Runtime") of the project report. With that, a user of the IDE generator is also in a position to understand (and further customize) the generated IDE. Features are classified, code snippets and references to further literature given.
----------------------------------------------------------------------
The features per category are:
a) The Gymnast Runtime extension to the JFace Text framework
- background parsing and notification of changes to the CST of the document
- context outline (with nodes implementing navigation back to the text region, and property source)
- custom problem markers
- parse-tree view
b) Customizations requiring CST or AST
- hovers over text fragments
- hovers over annotations (annotations on the vertical ruler)
- hyperlinks
- mark occurrences
- select in outline
- show in
- context menu on the editor surface, for example Go to Declaration
- views, for example EMF Type Hierarchy
- content formatting
- content assist
c) Customizations directly working on the document text
- document partitioning
- show range indicator
- bracket matching (brace, parenthesis, etc.)
- AutoEdits (for example, SmartBrace: after typing { in the JDT editor, an indented newline and a closing } are added below it). Another example is AutoIndent.
- Double-click strategy (in JDT, double-clicking an opening brace selects all the text up to the matching closing brace)
- Automatic Indentation
d) Document-independent customizations
- templates, including associated Preferences page
- actions on the toolbar and menu bar, in particular retargetable actions (i.e., those actions whose UI activators are shared between different editors, such as e.g. Content Assist)
- new file wizard, so that the document does not start empty but in syntactically valid state (thus avoiding spurious parse errors the moment background parsing kicks in)
- Preferences
----------------------------------------------------------------------
It's incredible the amount of detail hiding in each feature ... an Eclipse-based text editor can really be a machine with lots of moving parts ...
http://www.sts.tu-harburg.de/~mi.garcia/SoC2007/draftreport.pdf