Difference between revisions of "Emfatic"

From Eclipsepedia

Jump to: navigation, search
(Screenshots)
(Screenshots)
Line 74: Line 74:
 
</tt>
 
</tt>
  
[[Image:EmfaticWizard.PNG|frame]]
+
[[Image:EmfaticWizard.PNG]]
 
</td></tr>
 
</td></tr>
  
Line 81: Line 81:
 
definition is shown.
 
definition is shown.
  
[[Image:EmfaticHover.PNG|frame]]
+
[[Image:EmfaticHover.PNG]]
 +
</td></tr>
 +
 
 +
 
 +
<tr><td>
 +
AutoEdits
 +
SmartBrace: typing an opening brace automatically adds its
 +
closing brace and leaves the cursor indented on its own line
 +
(end result shown left). Besides that strategy the usual ones:
 +
<ul>
 +
<li>DefaultIndentLine</li>
 +
<li>Closing quote for opening quote</li>
 +
</ul>
 +
 
 +
[[Image:EmfaticAutoEdit.PNG]]
 
</td></tr>
 
</td></tr>
  

Revision as of 14:53, 28 October 2007

Summary

Emfatic is a text editor supporting navigation, editing, and conversion of Ecore models, using a compact and human-readable syntax similar to Java. The EPLed Emfatic now hosted at EMFT extends the Feb 2005 alphaworks release with support for EMF Generics, folding, "red squigglies", an EMF Type Hierarchy, hyperlinks, AutoEdits, and the possibility to define templates to speed up document creation, among other usability features. The best way to gain hands-on experience with Emfatic is to right-click on any .ecore file and choose "Generate Emfatic source", a similar converter works in the opposite direction. Online help is also available.

Emfatic itself builds upon Gymnast, a framework for jumpstarting text editors for custom Domain Specific Languages. Documentation on how to extend Emfatic, as well as on using Gymnast, can be found in this technical report.


Screenshots

The Outline view displays the same elements as the Sample Ecore Editor, toolbar actions are available for hiding/showing annotations, attributes, references, operations.
   OutlineView.PNG
Mark occurrences highlights usages of the same EClassifier, range indication on the vertical bar spans the EClassifier declaration.
   EmfaticMarkOccurrences.PNG
Folding is supported, with an annotation hover for collapsed regions
EmfaticFolding01.PNG EmfaticFolding02.PNG
Problem and warning markers (with squigglies) are updated after each keystroke.

EmfaticProblemMarkers.PNG

Attempting to generate an .emf for an .ecore triggers an EcoreValidation. Errors and warnings are shown in the Problems view, generation is still allowed if there are only warnings. EmfaticEcoreValidation.PNG

The selected outline node follows the cursor position in the text.

Emfatictext2outline.PNG

Navigable hyperlinks (from usages of classifiers and from type variables to their declarations). Hyperlinks are very handy for example to follow an eOpposite to its declaration (alternatively, letting the mouse cursor rest over an eOpposite displays its definition in a text hover, see below) Open declaration is also supported, i.e. pressing F3 (or whatever key binding is in effect for it) moves the cursor to the declaration.

EmfaticHyperlinks.PNG

A File > New > Other … wizard is available, which initializes the just created .emf file to a syntactically correct state:
@namespace(
   uri="http://a.b.c/x/y/Z",
   prefix="p")
package top;

EmfaticWizard.PNG

Hovers for usages of classifiers, type parameter variables, and eOpposite references: the definition is shown.

EmfaticHover.PNG

AutoEdits SmartBrace: typing an opening brace automatically adds its closing brace and leaves the cursor indented on its own line (end result shown left). Besides that strategy the usual ones:

  • DefaultIndentLine
  • Closing quote for opening quote

EmfaticAutoEdit.PNG

Organization

Initial committers