Since 3.2, Acceleo offers a full-featured live request interpreter. We will focus here on detailling all of this view's possibilities.
First things first, what are all of these menus and fields for?
The title of the interpreter features a drop-down menu that allows the user to select the language of his expressions. By default, Acceleo provides the interpreter for itself, but any third-party plugin can come and add its own language to the list. More on the extension in the Extensibility section.
The expression section allows users to enter and edit expressions for the selected language. It can be fully customized by language providers and can thus become as powerful as a full-fledged editor for that language. Completion proposals and syntax highlighting are available by default for the Acceleo interpreter.
The expression will be interpreted on the fly as it is typed if the Real-time toggle is activated (located at the upper-right of the view, 6 in the above breakdown). Otherwise, users can call for the evaluation at any given time through either :
- Right-click in the expression view, then hit evaluate
- Hit the Evaluate icon of the expression section
- Use the CTRL + SHIFT + D keyboard shortcut
This section displays the result of evaluations in the form of a tree. There are multiple possibilities as to the result look-and-feel :
- Collection result : each of the collection's values will be displayed as one row of the result tree.
- Single object : if the result consists of a single, plain object, it will be displayed as the only row of the tree.
Each row of the tree can be displayed in a number of ways, depending on the object's type. The objects are usually displayed as they would in their own editors, but two types of generated objects are displayed in a special manner :
If the result is a string, its very first line will be displayed as the Tree's row.
If the string is longer than a single line, its full length can be seen in two ways :
- Hover : Hovering the mouse over the row
- Popup : Double-clicking the row
The interpreter allows you to generate "files". No file will actually be generated on disk; instead the interpreter will display them in their own special way, with the icon corresponding to their type (as known to Eclipse) and their content as a child row :
A double-click on the "file" row will open a read-only editor for the file, along with all of the syntax highlighting this editor may have. (partial exemple of a "java" file opened through this action below)
The variables will be displayed as a Tree, with variable names as the root, and their value(s) as children. They can be used in any expression with only their name :
Existing variables can be renamed or deleted through the right-click menu, or through the F2 (rename) and del (delete) keyboard shortcuts.
New variable wizard
A wizard to create new primitive variables can be initiated through a right-click in the Variables view and selecting the New Variable action.
The wizard itself consists of a single page that allows users to select a name for the new variable, and a primitive value (String, Boolean, Integer or Float).
If the selected name matches that of an existing variable, the new value will be added to that existing variable's list of values.
Drag and Drop
The variable view supports drag and drop from almost any other view, or editor. As long as the "other view" enables dragging, the variable viewer will accept the "drop" and create a new variable with the dropped element as its value. Dropped elements can be either primitives (String, integer, float...), EObjects (elements dropped from an EMF model) or plain Java Objects.
What you can do with the values of these variables, however, depends on the current interpreted language.
|Project||Project · Installation · New & noteworthy · Release review · API policy · Retention policy · Next · Checklist|
|Features||Acceleo Features · Runtime · Acceleo editor · Views & Perspective · Debugger · Profiler · Traceability · Wishlist · Interpreter · Maven|
|User documentation||Getting Started · 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||Conferences · Twitter & Blogs · Professional Support · Report a bug|