Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Acceleo"

(removed duplicated content from the portal)
(removed duplicated content from the portal)
Line 77: Line 77:
 
* Galileo allows us to properly check the return type of standard library operations; thus "oclAsType" calls that were mandatory in Ganymede aren't in Galileo. Templates making use of this cannot compile within Eclipse 3.4 without re-adding these calls.
 
* Galileo allows us to properly check the return type of standard library operations; thus "oclAsType" calls that were mandatory in Ganymede aren't in Galileo. Templates making use of this cannot compile within Eclipse 3.4 without re-adding these calls.
 
* OCL 1.3 allowed us to activate an option to activate control characters within Acceleo templates. ''\n'', ''\t'', ''\r'', ''\''', ''\"'' and ''\\'' can be used in templates to generate ''linefeed''s, ''horizontal tab''s, ''carriage return''s, ... from Acceleo 3.0 onward. templates containing such characters will generate the '''text \n''' instead of linefeeds in Acceleo < 3.0.
 
* OCL 1.3 allowed us to activate an option to activate control characters within Acceleo templates. ''\n'', ''\t'', ''\r'', ''\''', ''\"'' and ''\\'' can be used in templates to generate ''linefeed''s, ''horizontal tab''s, ''carriage return''s, ... from Acceleo 3.0 onward. templates containing such characters will generate the '''text \n''' instead of linefeeds in Acceleo < 3.0.
 
== Features ==
 
<p>The Acceleo template editor is associated with Acceleo source files (<em>.mtl</em>
 
files) and provides all the features of a modern programming editor to
 
make you more productive when developing code generation modules:</p>
 
<ul>
 
<li><p class="first">Syntax highlighting</p>
 
</li>
 
<li><p class="first">Smart completion</p>
 
</li>
 
<li><p class="first">Navigation to definitions and references</p>
 
</li>
 
<li><p class="first">Error highlighting</p>
 
</li>
 
<li><p class="first">Dynamic outline</p>
 
</li>
 
<li><p class="first">Code folding</p>
 
</li>
 
</ul>
 
<p>Some of these features are described in details in the Acceleo documentation plugin.</p>
 
 
[[Image:AcceleoCompletion.png]]
 
  
  

Revision as of 07:29, 5 January 2011

Acceleo


Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developer with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT ... Acceleo also has a unique tooling around example-based design of code generators.

Introduction

The Acceleo Project (previously named MTL) is an open source component under the Eclipse Modelling / Model To Text (M2T) project [1]. Its primary goal is to provide an implementation of the MOF Model To Text OMG standard [2].

You do not need to be an expert to start using the plug-ins: using the provided example projects and the powerful completion feature of the Acceleo editor, it is very easy to get started once you understand the basic principles.

If you don't know anything about Acceleo, you can start with a little demo Acceleo at Eclipse Modeling Runaway 2010

Concerning the language, almost all of the OMG specification keywords are supported (those marked with an asterisk are not fully supported yet):

module, import, extends, template, query, public, private, protected, guard, init,
overrides, each, before, after, for, if, elseif, else, let, elselet, trace*, macro*,
file, mode, text_explicit*, code_explicit*, super, stdout

For all the details about these keywords and the MOF Model to Text Language in general, you can consult the official MTL Specification available at the OMG website.

Note that a documentation is also available in the Acceleo plugins.

From Acceleo.org to Eclipse.org

Acceleo.org was created 4 years ago, and as the time goes, the Team has been more and more convinced that the MOF Model To Text OMG specification was the way to go for the project. We started to code a reference implementation for the standard within the Eclipse M2T project. We have managed to provide nice tooling, simple syntax and efficient code generation with all the pragmatism we had about Acceleo.org. There aren't a lot of differences between the old version of acceleo and the new one.

We are confident that the Acceleo community gain value from moving to a self hosted project to an Eclipse one, and that end users will follow the transfert from Acceleo.org to Eclipse.org as we will provide the same level of functionnalities and we will insure an interoperability between the old syntax and the new syntax (the standard one).

The Acceleo Team will continue to maintain the old syntax of Acceleo outside of eclipse (www.acceleo.org ) during some few years, but the new versions and the new features will take place on Eclipse.org. In the next release you'll have an automated tooling helping you to migrate your templates from a syntax to another.

For Acceleo lover, you will find in Eclipse Acceleo everything you have loved in the Acceleo.org version and more (the standard compliance with more documentation). This specification is really a good one : http://www.omg.org/spec/MOFM2T/1.0

For Helios, this is the first time we plan to graduate under Eclipse. We also plan to grow the version number from 0.9.0 to 3.0.0 because the last release of Acceleo outside of Eclipse was the 2.7.0 version (Acceleo.org). We are also in the process of transferring the community, and for a community point of view, it is clearer to graduate and set the new Eclipse version as 3.0.0.

Short Description

Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developper with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT ... Acceleo also has a unique tooling around example-based design of code generators.

Documentation

The full documentation is included in the Help Content of Eclipse; in your Eclipse, go to Help => Help Contents and navigate to the Acceleo Model To Text section. The very same help is accessible online on the help center.

Compatibility

The Acceleo development team does its best to maintain downward compatibility towards Ganymede (Eclipse 3.4). Following is the compatibility chart (Note that there has been no "0.9" version, and Acceleo jumped right up to version 3.0 when graduating, details here) :

Acceleo Eclipse 3.4 - EMF 2.4 Eclipse 3.5 - EMF 2.5 Eclipse 3.6 - EMF 2.6
0.8 OK OK
3.0 OK OK OK

An empty cell indicates that the compatibility hasn't been tested for a particular combination.

Behavioral changes between versions

Take note that as new OCL features are enabled in new Eclipse versions, they allow shortcuts or characters in OCL expressions that cause Acceleo templates written within a newer Eclipse to be incompatible (at compilation time) with older Eclipses! In short, modules that compile in a given Eclipse will always compile in subsequent releases, and modules that have been compiled (whatever the version) should be launch-able in any Eclipse.

  • Galileo allows us to properly check the return type of standard library operations; thus "oclAsType" calls that were mandatory in Ganymede aren't in Galileo. Templates making use of this cannot compile within Eclipse 3.4 without re-adding these calls.
  • OCL 1.3 allowed us to activate an option to activate control characters within Acceleo templates. \n, \t, \r, \', \" and \\ can be used in templates to generate linefeeds, horizontal tabs, carriage returns, ... from Acceleo 3.0 onward. templates containing such characters will generate the text \n instead of linefeeds in Acceleo < 3.0.




Acceleo Portal
Project Project · Installation
Features Acceleo Features · Runtime · Acceleo editor · Views & Perspective · Interpreter · Maven
User documentation Getting Started · User Guide · Acceleo operations reference · OCL operations reference · Text Production Rules · Migration From Acceleo 2.x · Best Practices · Videos · FAQ
Developer documentation Source code · How to contribute · Compatibility · MOFM2T specification · OCL specification
Community Professional Support · Report a bug

Back to the top