Generate All Action
|Syntax and Metamodel Code Generation: The 'Generate All' action can be used to generate code for all EMF generator models and all syntax definitions also in multiple projects.||
Automatic spell checking
|EMFText does now integrate with the Eclipse spell checker by default.||
Support for task items
|EMFText does now automatically detect tasks in textual models and creates respective markers that are shown in the Tasks view.||
New actions in Outline view
|EMFText does now generate a set of useful actions for the Outline view.||
Improved performance of error marker creation
The speed of creating large sets of errors markers has been greatly improved. This will particulary be noticed when editing textual models that contain many errors.
Metamodel for layout information
The information about whitespaces can now not only be preserved in models, but also edited. To do so, DSLs must simply extend the common layout metamodel. Using so-called 'Collect-In'-Tokens is now deprecated.
Default execution environment is now Java 6
As Eclipse has officially moved to Java 6 as minimal execution environment, this is now the default environment for generated resource plug-ins. However, the plug-ins will still compile and run under Java 5.
Generating Eclipse independent code
EMFText does now explicitly offer the option to generate code that does not have any Eclipse dependencies, which is useful to deploy DSLs in non-Eclipse environments (e.g., web servers).
Encoding-aware parsing and printing
EMFText does take care of file encoding when parsing and printing models.
Upgrade to ANTLR 3.4.0
EMFText does now use the most recent version of ANTLR to generate parsers.
Improved printing and code completion
Quite some bugs have been fixed in the printer and the code completion algorithms.
|EMFCustomize allows to customize operations defined in EMF Ecore models without directly modifying the generated code. EMFCustomize detects subclasses of generated EMF classes and automatically adapts the Ecore model to produce customized EMF Factories that instantiate the custom subclasses instead of the generated Impl classes. As a result, the generated and the hand-written code are cleanly separated, but still the full JDT functionality is available during implementation.|
|CommentTemplate is a lightweight template engine that is tightly integrated with Java. Templates are written in Java, multi-line comments are used to encapsulate template content. CommentTemplate compiles templates written in plain Java file and creates generators in plain Java.|
|HEDL (Hibernate Entity Definition Language) can be used to generate entity classes and data access objects for the Hibernate ORM framework.|
|The Functions DSL can be used to specify system functions and data types on a high level. The DSL is accompanied by a builder that creates a PDF document from this specification.|
|The Calc DSL can be used to specify simple calculations. It can be used to configure such calculation rules at runtime within applications as it comes with an interpreter.|
|eJava now offers a custom wizard for new files which allows to select a metaclass and then generates a stub for the eJava file.||
MinimalEcore does now automatically reload the EMF generator model after updating the Ecore model. It also supports generics now.
Support for running/debugging models
|EMFText does now automatically add UI elements to execute models.||
Support for launch configurations
|The execution of DSL models can be parameterized with launch configurations.||
Debugging out of the box
|EMFText does now automatically generate a full-fledged debugger for DSLs that use an interpreter for execution.||
Support for New Project templates
|You can replace a default ZIP file with custom content to provide a template for new projects to users of your DSL.||
|Can be used to specify database schemata. The DSL comes with a wizard that can extract existing schemata using JDBC.|
Custom Syntax Wizard
|Syntax Generation: The custom syntax wizard allows to configure the syntax generation process with many options.|
Enhanced New Project Wizard
|Creating new projects: Select the code to be generated when creating new projects.||
|Can be used to quickly create Ecore models.|
|A basic script language for functional web site testing.|
Syntax for Enumeration Attributes
|Defining syntax for enumeration attributes is now even easier.||
Default Quick Fixes for unresolved references
|EMFText does now automatically add quick fixes for unresolved references.||
OSGi Manifest files
|Can be used to read, transform and write manifest files with EMF tools.|
|OWLCL be used to add OWL constraints to Ecore metamodels.|
EMFText 1.3.2 is a pure bugfix release. It does not contain new features. Please consult the Release Notes to see which bugs have been fixed.
Java-style Syntax Generator
|Syntax Derivation: Similar to HUTN, a Java-like syntax can now be generated.||
Syntax for Boolean Attributes
|Defining syntax for boolean attributes is now as easy as it can get.||
Improved syntax analysis
The analysis of .cs files has been extended to detect more problems. In particular duplicate and conflicting options are now reported.
Automatic token sorting
Tokens defined in .cs files are now automatically sorted. More specific tokens are preferred over more general ones.
Customization of Code Completion Proposals
EMFText does now generate a dedicated class which can be overridden to modify the completion proposals that are computed automatically.
Support for Quick Fixes
EMFText does now support to easily create quick fixes for problems that are detected in DSL documents.
Dynamic Syntax Highlighting
The highlighting of text elements can now be performed dynamically. Instead of assigning color and text style per token type, tokens can be styled depending on their text or position in the document.
EMFText is now shipped with a completely revised documentation that is both available from the Eclipse Help menu and the web.
|EMFDoc can be used to add documentation to Ecore models.|
EMFText Project Wizard
|Project Scaffolding: Advanced wizard to create new EMFText projects||
|Operator rules can be used for metamodels that have expression-like constructs.||
Examples are mathematical expressions, logical expressions or other forms of nested syntax elements. Often these expressions cause problems, because they are left-recursive and require to prioritize one rule over another. EMFText 1.3.0 does now provide special annotations (@Operator) to define such rules, assign priorities as well as associativity. This allows for clean and easy modelling of the expressions.
Partial token definitions
|The regular expression for token definitions can now be composed. This is particularly useful when regular expressions contain repeating sequences.||
Rules from imported syntaxes can be overridden now. To do so, basically add a new rule for the metaclass, which does already have syntax defined in an imported syntax and tag the new rule with the @Override annotation. One can also remove rules using @Override(remove="true").
|Anonymous attributes can be used if one expects a certain token in a CS rule, but does not want to store the token value in an attribute. This is particularly useful when defining syntax for existing metamodels, where one can not add attributes anymore, but the syntax required tokens at particular spots in CS rules.||
Separation of generated code into two plug-ins
Instead of generating one resource plug-in, EMFText does now generate two separate plug-ins. One contains the parser, printer and EMF integration code. The second one contains anything connected to the UI, for example the editor and preference pages. This enables the usage of DSLs in headless environments.
Generation of builder stub and project nature
EMFText does now generate a builder class for DSLs and a project nature. The builder can easily be customized to transform or compile DSL documents whenever these are saved.
Generation of interpreter stub
To ease the implementation of interpreters for DSLs, a stub class is generated, which implements a stack-based interpretation pattern. For each metaclass a method, responsible for interpreting instances of this class is added to the stub. By subclassing the abstract interpreter stub one can easily program interpreters. Examples can be found in the SimpleMath and Three Valued Logic languages.
The EMF Validation framework is now used to check textual models by default. This way, the same validation classes registered for a metamodel can be used both in graphical and textual editors.
Incremental Code Generation
EMFText does now override only classes that have changed. This speeds up both the code generation as well as the compilation of generated plug-ins.
Augmented Backus Naur Form (ABNF)
|ABNF is an IEEE standard for defining context-free syntax.|
Java Properties Files
|Java Properties Files are often used by Java programmers to store configuration data or externalized information (e.g., language-specific messages).|
|Theater DSL is a DSL to describe scripts for theater plays.|
|Contextual Insight: Editor provides selection sensitive information hover for all model elements.||
|Specification Context: Highlighting of specifcation and usage of model objects.||
|Hide and Reveal: Editor provides code folding that can be enabled by annotating rules in the syntax specification.||
|Efficiency and Comprehension: Editor completes and highlights corresponding brackets while typing.||
Removal of EMFText runtime dependencies. All code required by DSL plug-ins is now generated. Thus, there are no runtime dependencies to a specific EMFText version.
|Specify Ecore's EOperation bodies with Java. To provide the implementation for EOperations one simply puts an eJava file next to the Ecore model.|
|Ecore Facade is a language to add additional annotations to existing Ecore models|
|Customisable Beauty: Syntax highlighting is customisable per language (syntax specification) and per user (workspace preferences).||
|Intelligent Code Proposals: Automatic derivation of code proposals from syntax specifications and metamodel references.||
|Structural Overview: Integration of text editor and selection sensitive outline view.||
Syntax Specification Analysis
|Check and Report: Structural and semantic analysis of syntax specifcations w.r.t. a given metamodel and further consistency rules (e.g., Token conflicts, rule recursion, etc.).||
|Kickstart for syntax specification: Added action for EMF .genmodel that automatically generates a default HUTN syntax from the metamodel.||
|Reuse: Import metamodels and existing syntax specifications.||
|A complete specification of Java 5 together with its meta model.
See also: http://www.jamopp.org
|Textual metamodelling within the EMF:
Ecore TEXT is a textual syntax for EMF's meta modelling language.
Manchester Syntax for OWL2
|Ontology Modelling: A language implementing the Manchester Syntax for OWL2.|