Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "ESON"
(Outline view is intentionally disabled) |
(documenting https://git.eclipse.org/r/#/c/46180/) |
||
Line 22: | Line 22: | ||
=== Programmatically === | === Programmatically === | ||
+ | |||
+ | Using ESON, any *.eson file can be loaded as a normal EMF resource. An instance of your "real" EMF model described by the ESON will be available in getContents().get(1); the get(0) will give you the internal Xtext representation which typically you won't be interested in. This resource has bi-directional synchronization of changes made to either of these two models - so you can use it like a "normal" EMF model, save it, and the ESON will be correctly updated. | ||
+ | |||
+ | === Curiosum & Noteworthy === | ||
+ | |||
+ | ESON supports EClass, EAttribute etc. names with dots in them (that is dots in the actual name, not dots to separate the name from the EPackage/s). While this is not typically valid in ECore, it was added to ESON to support a particular use case. | ||
== How to contribute == | == How to contribute == |
Revision as of 11:18, 21 April 2015
Contents
ESON - EMF Simple Object Notation
Introduction
ESON is a textual syntax for EMF models; like XMI is a XML-based syntax, ESON is a more human readable notation. It complements Xcore, which as a textual syntax for Ecore can define your EClass & Co.while ESON can represent their instances.
ESON is implemented based on Xtext, and *.eson files are thus truly textual representations; for example, changes made to your EObject are applied incrementally and preserve comments in or the formatting of the text. Crucially, users of ESON do *NOT* require any Xtext know-how or code generation for their Ecore models, because ESON is a fully dynamic.
How to use
Install
Install it from https://hudson.eclipse.org/xtext/job/eson/lastSuccessfulBuild/artifact/targetPlatform/
ESON Editor UI
The Editor shows the DSL source on the left, and a tree view of the model on the right. The Properties view allows to edit the currently selected node. Changes in any of these 3 parts are live auto synchronized to the other (without saving).
Double clicking on the background in source on the left or the tree on the right maximizes and hides the respective other part, double clicking it again restores the default split sash presentation.
The traditional read-only Outline view is intentionally disabled, to avoid end-user confusion with the right-hand side of the editor.
Programmatically
Using ESON, any *.eson file can be loaded as a normal EMF resource. An instance of your "real" EMF model described by the ESON will be available in getContents().get(1); the get(0) will give you the internal Xtext representation which typically you won't be interested in. This resource has bi-directional synchronization of changes made to either of these two models - so you can use it like a "normal" EMF model, save it, and the ESON will be correctly updated.
Curiosum & Noteworthy
ESON supports EClass, EAttribute etc. names with dots in them (that is dots in the actual name, not dots to separate the name from the EPackage/s). While this is not typically valid in ECore, it was added to ESON to support a particular use case.
How to contribute
Src: http://git.eclipse.org/c/emf/org.eclipse.emf.eson.git/ ("Pull Requests" via Gerrit more than welcome!)
The Eclipse Installer (based on Oomph) is great to get it all set up.
Further Documentation
Doc with linked demo videos: http://git.eclipse.org/c/emf/org.eclipse.emf.eson.git/plain/README.md
TBD Transfer, and update, old documentation from https://github.com/vorburger/efactory/blob/eclipse.org/org.eclipse.emf.eson.help/help/concepts.mediawiki