DevBooststLogotudLogorewerseLogo modelplexLogo
The fastest way to refinable, durable and evolution-resistant textual syntaxes for EMF models!

Whats new and noteworthy in EMFText 1.4.1?

User Interface

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.


Code generation

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.


Further improvements

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.

New tools available on the update site


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.
EMFCustomize example


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.
CommentTemplate example

New languages available on the update site


HEDL (Hibernate Entity Definition Language) can be used to generate entity classes and data access objects for the Hibernate ORM framework.
HEDL example model


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.
Functions document


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.
Calc example

New features for languages available on the update site


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.

Whats new and noteworthy in EMFText 1.4.0?

Code generation

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.


New languages available on the update site


Can be used to specify database schemata. The DSL comes with a wizard that can extract existing schemata using JDBC.
DBSchema discovery wizard

Whats new and noteworthy in EMFText 1.3.4?

User Interface

Custom Syntax Wizard

Syntax Generation: The custom syntax wizard allows to configure the syntax generation process with many options.
EMFText Feature CustomSyntaxGenerator.gif

Enhanced New Project Wizard

Creating new projects: Select the code to be generated when creating new projects.


New languages available on the update site

Minimal Ecore

Can be used to quickly create Ecore models.
Example Minimal Ecore file


A basic script language for functional web site testing.
Example WebTest script

Whats new and noteworthy in EMFText 1.3.3?

Syntax specification (CS language)

Syntax for Enumeration Attributes

Defining syntax for enumeration attributes is now even easier.


Code generation

Default Quick Fixes for unresolved references

EMFText does now automatically add quick fixes for unresolved references.


New languages available on the update site

OSGi Manifest files

Can be used to read, transform and write manifest files with EMF tools.
Example Manifest and Outline


OWLCL be used to add OWL constraints to Ecore metamodels.
OWL CL example and corresponding Ecore model

Whats new and noteworthy in EMFText 1.3.2?

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.

Whats new and noteworthy in EMFText 1.3.1?

User Interface

Java-style Syntax Generator

Syntax Derivation: Similar to HUTN, a Java-like syntax can now be generated.


Syntax specification (CS language)

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.

Code generation

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.

Improved features

  • Improved overall performance
    • Code generation for large DSLs is now significantly faster
    • Code completion for large documents performs faster now
  • Improved generated preference pages for syntax highlighting
  • Generated editors do now show occurrences in the overview ruler
  • Generated editors do now include documentation that is found in generator models in the default hover text


EMFText is now shipped with a completely revised documentation that is both available from the Eclipse Help menu and the web.

New languages available on the update site


EMFDoc can be used to add documentation to Ecore models.

EMFText Language EMFDoc.gif

Whats new and noteworthy in EMFText 1.3.0?

User Interface

EMFText Project Wizard

Project Scaffolding: Advanced wizard to create new EMFText projects


Syntax specification (CS language)

Operator rules

Operator rules can be used for metamodels that have expression-like constructs.


EMFText Language SimpleMath.gif

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.

Examples on how to use these new annotations can be found in the SimpleMath and Three Valued Logic languages.

Partial token definitions

The regular expression for token definitions can now be composed. This is particularly useful when regular expressions contain repeating sequences.


Rule Overrides

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

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.


Code generation

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.

EMF Validation

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.

Improved features

  • Improved printing of models
  • Layout of textual models (e.g., whitespace and linebreaks) is preserved now
  • Improved default token resolving (integrated EMF data type handlers)
  • Improved default reference resolving (external references are now resolved automatically)
  • Updated ANTLR to version 3.2.0

Breaking changes

  • The escape mechanism for keywords has been changed. Keywords are now handled exactly like strings in Java source code. There is no need to additionally escape backslashes as before.
  • The following languages have new feature IDs. Before installing them, make sure to remove the older versions that are installed. Otherwise you may end up with two versions of the same language.
    • Custom Sandwich
    • Featherweight Java
    • Primitive Types
    • Simple Math
    • Simple GUI
    • Template Concepts

New languages available on the update site

Augmented Backus Naur Form (ABNF)

ABNF is an IEEE standard for defining context-free syntax.

EMFText Language ABNF.gif

Java Properties Files

Java Properties Files are often used by Java programmers to store configuration data or externalized information (e.g., language-specific messages).

EMFText Language JavaProperties.gif

Theater DSL

Theater DSL is a DSL to describe scripts for theater plays.

EMFText Language Theater.png

Whats new and noteworthy in EMFText 1.2.0?

User Interface


Contextual Insight: Editor provides selection sensitive information hover for all model elements.


Occurrence Highlighting

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.


Bracket Handling

Efficiency and Comprehension: Editor completes and highlights corresponding brackets while typing.


Code generation

Runtime independence

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.

New languages available on the update site


Specify Ecore's EOperation bodies with Java. To provide the implementation for EOperations one simply puts an eJava file next to the Ecore model.
EMFText Language Java eJava.png

Ecore Facade

Ecore Facade is a language to add additional annotations to existing Ecore models
EMFText Language Ecore Facade.png

Whats new and noteworthy in EMFText 1.1.0?

User Interface

Syntax Highlighting

Customisable Beauty: Syntax highlighting is customisable per language (syntax specification) and per user (workspace preferences).



Code Completion

Intelligent Code Proposals: Automatic derivation of code proposals from syntax specifications and metamodel references.


Outline View

Structural Overview: Integration of text editor and selection sensitive outline view.


Syntax specification (CS language)

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.).


HUTN Generator

Kickstart for syntax specification: Added action for EMF .genmodel that automatically generates a default HUTN syntax from the metamodel.


Syntax Import

Reuse: Import metamodels and existing syntax specifications.


New languages available on the update site

Java 5

A complete specification of Java 5 together with its meta model.

See also:

EMFText Language Java.gif

Ecore TEXT

Textual metamodelling within the EMF:

Ecore TEXT is a textual syntax for EMF's meta modelling language.

EMFText Language Ecore.gif

Manchester Syntax for OWL2

Ontology Modelling: A language implementing the Manchester Syntax for OWL2.

EMFText Language Owl.gif