Emfatic
I. Introduction
Emfatic is a proposed open source component in the Eclipse Modeling Framework Technology (EMFT) project to support the editing, structured navigation, and conversion (between .emf and .ecore formats) of Ecore models, including support for EMF Generics.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the component. Please send all feedback to the eclipse.technology.emft newsgroup (please prefix the subject with [Emfatic]).
II. Background
Textual notations can succintly convey the structure of models, provided tooling is available to support recurring use cases (such as navigating from usages to declarations, displaying a class hierarchy, or performing refactoring). Some of these use cases are already supported by the original Emfatic. However, capabilities such as handling EMF Generics or supporting navigation are missing. The software architecture of Emfatic arranges for extensions, by building upon another extensible framework (Gymnast Runtime) which in turn simplifies the development of JFace Text editors. Both Emfatic and Gymnast were authored by Chris J Daly. More details about Gymnast can be found in the technical report Generation of Eclipse-based IDEs for Custom DSLs [2], co-authored by the submitter of this proposal (Miguel Garcia).III. Scope
The objectives of the Emfatic component can be divided into those already achieved:- (a.1) support EMF Generics.
-
(a.2) provide additional usability features, for example:
- (a.2.a) more complete Outline View, Mark Occurrences, Folding, File creation wizard, Templates, Preferences page
- (a.2.b) Problem and Warning Markers (with squigglies) as reported by Ecore Validation
- (a.2.c) Navigable hyperlinks (from usages of classifiers and type variables to their declarations)
- (a.2.d) Show In EMF Type Hierarchy
- (a.3) More text-editor usability features:
- (a.3.a) content assist for visible type params and declared types.
- (a.3.b) Right-click menu > References, or Control-Shift-G.
- (a.3.c) Support for multi-document ("cross-EMF-resource") navigation.
-
(a.4) Some refactorings can be implemented with the infrastructure in place, namely,
- (a.4.a) Rename a classifier declaration, and usages get renamed
- (a.4.b) Move a classifier declaration to another package, and usages get rewritten.
- (a.5) Round-tripping between the EMF diagramming component (provided with the Graphical Modeling Framework) and a 'Text' page in a MultiPageEditor.
-
(a.6) Generate an automatic diagram layout (for example in a second tabbed page in a MultiPageEditor).
There is previous work in this regard, suggesting that an integration could be attempted. Among others:
- (a.6.a) Diomidis Spinellis. On the declarative specification of models. IEEE Software, 20(2):94–96, March/April 2003. Also available online at http://www.spinellis.gr/pubs/jrnl/2003-IEEESW-umlgraph/html/article.html
- (a.6.b) Martin Fowler on this topic, http://martinfowler.com/bliki/UmlSketchingTools.html
- (a.6.c) Actually this idea is pretty much already realized by The TextUML Toolkit (only that for a textual syntax slightly different from .emf). This toolkit builds upon the EclipseGraphviz project. Another Eclipse-ready graph layout library is Zest
IV. Description
This section focuses on the functionality available in the code contribution. Pointers to related work are included in the next section ("Relationship with other Eclipse-based projects"). The features described in the notes Improvements to the Emfatic Editor [1] are available in the code contribution. The APIs used in the code contribution have been described in Ch. 1 of the technical report Generation of Eclipse-based IDEs for Custom DSLs [2], where references can be found to further resources on building text editors.V. Relationship with other Eclipse-based Projects
The Generative Modeling Technologies (GMT) project hosts a number of different text editors, related to EMF but invariably implementing either a subset or superset (or both) of what an Ecore 2.3 model is all about.VI. Organization
VI.a) Initial committers
The initial committers will focus on evolving and hardening the Emfatic editor, as feedback is provided by the community. Our agile development process will follow eclipse.org's standards for openness and transparency. The initial committers are (alphabetically):- Christopher J Daly, IBM
- Miguel Garcia (Technische Universitaet Hamburg-Harburg, Germany), http://www.sts.tu-harburg.de/~mi.garcia/
VI.b) Code contributions
Miguel Garcia has contributed an extension (whose functionality is described in [1]) to the original Emfatic.VI.c) Interested parties
Interested parties are welcome to post to the eclipse.technology.emft newsgroup and ask to be added to the list below as interested parties or to suggest changes to this document.- Richard Gronback, Borland
VI.d) Developer community
We expect the initial set of committers to grow given the vitality of the EMF community. Additionally, technical documentation is available for the intial contribution.VII. Tentative Plan
- 2007-08: internal release for study in the EMF team
- 2007-09: public release for community study
References
- [1]
- Garcia, M. Improvements to the Emfatic Editor. http://www.sts.tu-harburg.de/~mi.garcia/SoC2007/ImprovementsToTheEmfaticEditor.pdf
- [2]
- Garcia, M. and Sentosa, P. Generation of Eclipse-based IDEs for Custom DSLs. Technical report, Institute for Software Systems (STS), Hamburg University of Technology, Germany, September 2007. http://www.sts.tu-harburg.de/~mi.garcia/SoC2007/draftreport.pdf