Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Emfatic"
(→Summary) |
(→Where to download Emfatic from: pointed to repository) |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | __TOC__ | ||
+ | |||
== Summary == | == Summary == | ||
Emfatic is a text editor supporting navigation, editing, and conversion of Ecore models, | 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 | + | using a compact and human-readable syntax similar to Java (see [http://www.eclipse.org/modeling/emft/emfatic/ Emfatic language reference]). The EPLed Emfatic now hosted |
at [http://www.eclipse.org/modeling/emft/ EMFT] extends the Feb 2005 alphaworks release with support for EMF Generics, folding, | at [http://www.eclipse.org/modeling/emft/ 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 | "red squigglies", an EMF Type Hierarchy, hyperlinks, AutoEdits, and the possibility to | ||
Line 10: | Line 12: | ||
Online help is also available. | 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 [http://www.sts.tu-harburg.de/%7Emi.garcia/SoC2007/draftreport.pdf technical report]. | + | 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 [http://www.sts.tu-harburg.de/%7Emi.garcia/SoC2007/draftreport.pdf technical report]. |
+ | |||
+ | == Where to download Emfatic from == | ||
+ | Emfatic can be downloaded from the eclipse repository http://download.eclipse.org/emfatic/update | ||
== Screenshots == | == Screenshots == | ||
− | + | ||
− | + | === Outline view === | |
− | + | ||
+ | The Outline view displays the same elements as the Sample Ecore Editor, toolbar actions are available for hiding/showing annotations, attributes, references, operations. | ||
[[Image:OutlineView.PNG]] | [[Image:OutlineView.PNG]] | ||
− | + | ||
− | + | === Mark Occurrences === | |
− | + | ||
− | + | Mark Occurrences highlights usages of the same EClassifier, range indication on the vertical bar spans the EClassifier declaration. | |
[[Image:EmfaticMarkOccurrences.PNG]] | [[Image:EmfaticMarkOccurrences.PNG]] | ||
− | |||
− | |||
+ | === Folding === | ||
− | + | Folding is supported, with an annotation hover for collapsed regions | |
<table><tr> | <table><tr> | ||
<td>[[Image:EmfaticFolding01.PNG]]</td> <td>[[Image:EmfaticFolding02.PNG]]</td> | <td>[[Image:EmfaticFolding01.PNG]]</td> <td>[[Image:EmfaticFolding02.PNG]]</td> | ||
</tr></table> | </tr></table> | ||
− | |||
− | |||
− | + | === Problem and warning markers === | |
+ | |||
+ | Problem and warning markers (with squigglies) are updated after each keystroke. | ||
[[Image:EmfaticProblemMarkers.PNG]] | [[Image:EmfaticProblemMarkers.PNG]] | ||
− | |||
− | + | ||
+ | === Validation on conversion attempt === | ||
+ | |||
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. | 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. | ||
[[Image:EmfaticEcoreValidation.PNG]] | [[Image:EmfaticEcoreValidation.PNG]] | ||
− | |||
− | + | ||
+ | === Outline selection follows cursor === | ||
+ | |||
The selected outline node follows the cursor position in the text. | The selected outline node follows the cursor position in the text. | ||
[[Image:Emfatictext2outline.PNG]] | [[Image:Emfatictext2outline.PNG]] | ||
− | |||
+ | === Hyperlinks === | ||
− | |||
Navigable hyperlinks (from usages of classifiers and from type variables to their declarations). | 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 | Hyperlinks are very handy for example to follow an eOpposite to its declaration | ||
Line 61: | Line 67: | ||
[[Image:EmfaticHyperlinks.PNG]] | [[Image:EmfaticHyperlinks.PNG]] | ||
− | |||
− | + | === Wizard === | |
+ | |||
A File > New > Other … wizard is available, which initializes the just created .emf file to | A File > New > Other … wizard is available, which initializes the just created .emf file to | ||
a syntactically correct state: | a syntactically correct state: | ||
Line 74: | Line 80: | ||
[[Image:EmfaticWizard.PNG]] | [[Image:EmfaticWizard.PNG]] | ||
− | |||
− | + | === Hovers showing declaration for the element under the cursor === | |
+ | |||
Hovers for usages of classifiers, type parameter variables, and eOpposite references: the | Hovers for usages of classifiers, type parameter variables, and eOpposite references: the | ||
definition is shown. | definition is shown. | ||
[[Image:EmfaticHover.PNG]] | [[Image:EmfaticHover.PNG]] | ||
− | |||
− | + | === AutoEdits === | |
− | AutoEdits | + | |
SmartBrace: typing an opening brace automatically adds its | SmartBrace: typing an opening brace automatically adds its | ||
closing brace and leaves the cursor indented on its own line | closing brace and leaves the cursor indented on its own line | ||
Line 95: | Line 100: | ||
[[Image:EmfaticAutoEdit.PNG]] | [[Image:EmfaticAutoEdit.PNG]] | ||
− | |||
+ | === Preference pages === | ||
− | |||
Preference pages, to control AutoEdits and templates (see example below). | Preference pages, to control AutoEdits and templates (see example below). | ||
[[Image:EmfaticPreferencePages.PNG]] | [[Image:EmfaticPreferencePages.PNG]] | ||
− | |||
+ | === Time-saving Templates === | ||
− | |||
− | |||
A template for each kind of annotation saves typing. In the example, the template | A template for each kind of annotation saves typing. In the example, the template | ||
definition for adding OCL invariants is shown (the error marker is transient, once the | definition for adding OCL invariants is shown (the error marker is transient, once the | ||
Line 113: | Line 115: | ||
[[Image:EmfaticTemplates.PNG]] | [[Image:EmfaticTemplates.PNG]] | ||
− | |||
− | + | ||
+ | === Show in EMF Type Hierarchy === | ||
''Show in EMF Type Hierarchy'' can be activated from the editor and from the outline view. | ''Show in EMF Type Hierarchy'' can be activated from the editor and from the outline view. | ||
Line 126: | Line 128: | ||
[[Image:EmfaticTypeHierarchy02.PNG]] | [[Image:EmfaticTypeHierarchy02.PNG]] | ||
− | |||
− | |||
− | |||
== Organization == | == Organization == | ||
Line 136: | Line 135: | ||
<li>[http://www.sts.tu-harburg.de/%7Emi.garcia/ Miguel Garcia]</li> | <li>[http://www.sts.tu-harburg.de/%7Emi.garcia/ Miguel Garcia]</li> | ||
<li>Chris Daly</li> | <li>Chris Daly</li> | ||
+ | </ul> | ||
+ | '''Releng + Lead Interim Commiter''' | ||
+ | <ul> | ||
+ | <li>[http://my-naked-truth.blogspot.com Lucas Bigeardel]</li> | ||
</ul> | </ul> |
Latest revision as of 14:26, 28 September 2012
Contents
- 1 Summary
- 2 Where to download Emfatic from
- 3 Screenshots
- 3.1 Outline view
- 3.2 Mark Occurrences
- 3.3 Folding
- 3.4 Problem and warning markers
- 3.5 Validation on conversion attempt
- 3.6 Outline selection follows cursor
- 3.7 Hyperlinks
- 3.8 Wizard
- 3.9 Hovers showing declaration for the element under the cursor
- 3.10 AutoEdits
- 3.11 Preference pages
- 3.12 Time-saving Templates
- 3.13 Show in EMF Type Hierarchy
- 4 Organization
Summary
Emfatic is a text editor supporting navigation, editing, and conversion of Ecore models, using a compact and human-readable syntax similar to Java (see Emfatic language reference). 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.
Where to download Emfatic from
Emfatic can be downloaded from the eclipse repository http://download.eclipse.org/emfatic/update
Screenshots
Outline view
The Outline view displays the same elements as the Sample Ecore Editor, toolbar actions are available for hiding/showing annotations, attributes, references, operations.
Mark Occurrences
Mark Occurrences highlights usages of the same EClassifier, range indication on the vertical bar spans the EClassifier declaration.
Folding
Folding is supported, with an annotation hover for collapsed regions
Problem and warning markers
Problem and warning markers (with squigglies) are updated after each keystroke.
Validation on conversion attempt
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.
Outline selection follows cursor
The selected outline node follows the cursor position in the text.
Hyperlinks
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.
Wizard
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;
Hovers showing declaration for the element under the cursor
Hovers for usages of classifiers, type parameter variables, and eOpposite references: the definition is shown.
AutoEdits
SmartBrace: typing an opening brace automatically adds its closing brace and leaves the cursor indented on its own line (end result shown below). Besides that strategy the usual ones:
- DefaultIndentLine
- Closing quote for opening quote
Preference pages
Preference pages, to control AutoEdits and templates (see example below).
Time-saving Templates
A template for each kind of annotation saves typing. In the example, the template definition for adding OCL invariants is shown (the error marker is transient, once the template is inserted it disappears).
Show in EMF Type Hierarchy
Show in EMF Type Hierarchy can be activated from the editor and from the outline view.
The supertype and subtype relationships can be followed, with a list of (inherited) class members displayed on the lower pane. Double-clicking on any of these elements navigates in the editor to its declaration.
Organization
Initial committers
- Miguel Garcia
- Chris Daly
Releng + Lead Interim Commiter