Difference between revisions of "Acceleo/Wishlist"

From Eclipsepedia

Jump to: navigation, search
m (Formatting)
(Tooling)
 
(26 intermediate revisions by 2 users not shown)
Line 4: Line 4:
  
 
== How to contribute ? ==
 
== How to contribute ? ==
In order to contribute, you can find here a small guide to create a development environment. After having installed a development environment, you can create a bug entry on the bugzilla [http://wiki.eclipse.org/Acceleo/Setup_Environment here].
+
In order to contribute, you can find [[Acceleo/Setup_Environment|here]] a small guide to create a development environment. After having installed a development environment, you can create a bug entry on the [[Acceleo/Bugs|Bugzilla]].
  
 
== Tooling ==
 
== Tooling ==
  
 
=== Camel case support in the Acceleo tooling ===
 
=== Camel case support in the Acceleo tooling ===
We should be able to type something like MAM and Ctrl+Space and have MyAcceleoModule instead for example. It should work for the completion, the quick outline, etc.
+
We should be able to type something like MAM and Ctrl+Space and have MyAcceleoModule instead for example. It should work for the completion, the quick outline, etc. If you want to comment or help code this feature, see bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=325310 325310].
  
 
=== Checkstyle for Acceleo ===
 
=== Checkstyle for Acceleo ===
 
Support for checkstyle rules for Acceleo.
 
Support for checkstyle rules for Acceleo.
 
=== Documentation of the standard Acceleo and OCL library ===
 
The completion system should provide the documentation for the Acceleo and OCL operation
 
  
 
=== Declaration view ===
 
=== Declaration view ===
Line 27: Line 24:
  
 
=== Smarter highlighting ===
 
=== Smarter highlighting ===
The highlighting of a block should not highlight the whole block but its beginning and end. It would be useful for nested "if", "for" and "else".
+
The highlighting of a block should not highlight the whole block but its beginning and end. It would be useful for nested "if", "for" and "else". Should also be implemented to highlight matching parenthesis, brackets, angle brackets... in OCL expressions. If you want to comment or help code this feature, see bugzilla entry [https://bugs.eclipse.org/bugs/show_bug.cgi?id=319081 319081].
  
 
=== Ant support ===
 
=== Ant support ===
Line 40: Line 37:
 
=== Code templates ===
 
=== Code templates ===
 
A preference menu with code templates for Acceleo should be available.
 
A preference menu with code templates for Acceleo should be available.
 +
 +
=== Classpath container ===
 +
The Acceleo builder/compiler and the Acceleo runtime should be available as classpath container in order to be easily included in Java project within Eclipse. An example of what the result could look like is available [http://stephanebegaudeau.tumblr.com/post/2510267258/the-acceleo-compiler-as-an-eclipse-library here]. If you want to comment or help code this feature, see bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=330351 330351].
 +
 +
=== Improved Acceleo wizard ===
 +
The Acceleo wizard allow the user to create an Acceleo project and then to create a UI plugin for Eclipse containing the generators created with Acceleo in order to integrate them seamlessly within Eclipse. This wizard should provide more option for the creation of the µEclipse plugin containing the generator. On of these options could be to be able to have the bundle in the classpath thanks to a classpath container.
 +
 +
=== Documentation generation ===
 +
Just like Java can generate a HTML documentation, we would like to be able to generate a HTML version of the Acceleo documentation.
 +
 +
=== BIRT integration ===
 +
Acceleo should have a connector with BIRT to use the graph framework of BIRT for the profiling or the traceability.
 +
 +
=== Java Integration ===
 +
Improve Java services.
 +
 +
=== Integration in the Welcome page ===
 +
Acceleo should be integrated in the welcome page of Eclipse.
 +
 +
=== Orion prototype ===
 +
Acceleo should have a working prototype on Orion
 +
 +
=== Remote Generation ===
 +
Currently, Acceleo only knows how to launch a generation on emtl files that are on the local machine (file-scheme URIs). It would be interesting for it to also work with "remote" emtl that could be located on a server (http, ftp...), on a repository (CVS, SVN, git...) and so on.
 +
 +
=== Model Coverage View ===
 +
The Model Coverage View should display the element from the metamodel that are used by the generator. The view should present a tree based representation of the model just like the Ecore Sample Editor with the element used by the generator in green and the unused elements in red. This view should also be linked to the drag and drop system of the Acceleo editor in order to generate a new template / query for an element. This view could also modify the completion within the Acceleo Editor by modifying the completion for a new template / query for a completion typed with the unused elements of the metamodel. The view should also let the user provide an example of a model using the current metamodel in order to limit the elements shown in the view to the element used in the example model in order to improve the example based approach.
 +
 +
=== Module Formatter ===
 +
Though most of the Acceleo modules cannot be formatted lest we prevent the generation of some whitespaces, there are places in the Acceleo modules that can be "safely" formatted. It would be interesting to isolate these "safe" locations and determine a set of rules for their formatting. For example, OCL expressions (as in Acceleo queries' bodies) can be safely altered without changing their output. That would allow us to properly format an OCL "if" or "let" expression for example.
 +
 +
== Language ==
 +
 +
=== Post-Processing at the file level ===
 +
Acceleo should provide a way to create services that will modify the file as a whole after its generation. For example when generating Java, we'd like to have a service which would record a list of Strings as the evaluation runs (for example, "java.util.List", "java.util.Set", "java.util.ArrayList", ...) and which would add the "import" clauses for all of the Strings contained by this list to the generated file.
  
 
== Parser ==
 
== Parser ==
Line 57: Line 89:
  
 
=== Export the profiling data into "gprof" file ===
 
=== Export the profiling data into "gprof" file ===
Acceleo should provide a way to create the data from the profiling as a "gprof" file.
+
Acceleo should provide a way to create the data from the profiling as a "gprof" file. If you want to comment or help code this feature, see bug [https://bugs.eclipse.org/bugs/show_bug.cgi?id=293304 293304].
 +
 
 +
=== Stand alone unit testing framework ===
 +
Acceleo modules should be easy to test thanks to a stand alone testing framework. An example of this framework can be seen [http://stephanebegaudeau.tumblr.com/post/2379262223/having-fun-with-junit-and-acceleo here].
 +
 
 +
{{Acceleo-index}}
 +
 
 +
[[Category:Modeling]]
 +
[[Category:M2T]]
 +
[[Category:Acceleo]]

Latest revision as of 11:33, 22 February 2012

Contents

[edit] The Acceleo Wishlist

This page will contain a list of some features that have been requested by members of the Acceleo community and that are not in the roadmap of the Acceleo dev team. Those features may be realized someday and if someone wants to contribute to Acceleo, this is definitely the right place to start. Those features are ranked by type and each of them contains a small summary of the task requested and where to find a possible starting point in the Acceleo source code to realize those features.

[edit] How to contribute ?

In order to contribute, you can find here a small guide to create a development environment. After having installed a development environment, you can create a bug entry on the Bugzilla.

[edit] Tooling

[edit] Camel case support in the Acceleo tooling

We should be able to type something like MAM and Ctrl+Space and have MyAcceleoModule instead for example. It should work for the completion, the quick outline, etc. If you want to comment or help code this feature, see bug 325310.

[edit] Checkstyle for Acceleo

Support for checkstyle rules for Acceleo.

[edit] Declaration view

The documentation should be available in a documentation view, just like in Java

[edit] Call hierarchy

The call hierarchy view and its shortcut (Ctrl+Alt+H) should be available with the same behavior as in the JDT.

[edit] Type Hierarchy

The type hierarchy view, its quick view and its shortcut should be available with the same behavior as in the JDT.

[edit] Smarter highlighting

The highlighting of a block should not highlight the whole block but its beginning and end. It would be useful for nested "if", "for" and "else". Should also be implemented to highlight matching parenthesis, brackets, angle brackets... in OCL expressions. If you want to comment or help code this feature, see bugzilla entry 319081.

[edit] Ant support

Acceleo should have more Ant tasks to manipulate the parser and the engine.

[edit] Maven support

Acceleo should have a support for maven to manipulate the parser and the engine.

[edit] Cheat sheet

Cheat sheets should be integrated to Acceleo in order to provide the user with tutorials and documentation.

[edit] Code templates

A preference menu with code templates for Acceleo should be available.

[edit] Classpath container

The Acceleo builder/compiler and the Acceleo runtime should be available as classpath container in order to be easily included in Java project within Eclipse. An example of what the result could look like is available here. If you want to comment or help code this feature, see bug 330351.

[edit] Improved Acceleo wizard

The Acceleo wizard allow the user to create an Acceleo project and then to create a UI plugin for Eclipse containing the generators created with Acceleo in order to integrate them seamlessly within Eclipse. This wizard should provide more option for the creation of the µEclipse plugin containing the generator. On of these options could be to be able to have the bundle in the classpath thanks to a classpath container.

[edit] Documentation generation

Just like Java can generate a HTML documentation, we would like to be able to generate a HTML version of the Acceleo documentation.

[edit] BIRT integration

Acceleo should have a connector with BIRT to use the graph framework of BIRT for the profiling or the traceability.

[edit] Java Integration

Improve Java services.

[edit] Integration in the Welcome page

Acceleo should be integrated in the welcome page of Eclipse.

[edit] Orion prototype

Acceleo should have a working prototype on Orion

[edit] Remote Generation

Currently, Acceleo only knows how to launch a generation on emtl files that are on the local machine (file-scheme URIs). It would be interesting for it to also work with "remote" emtl that could be located on a server (http, ftp...), on a repository (CVS, SVN, git...) and so on.

[edit] Model Coverage View

The Model Coverage View should display the element from the metamodel that are used by the generator. The view should present a tree based representation of the model just like the Ecore Sample Editor with the element used by the generator in green and the unused elements in red. This view should also be linked to the drag and drop system of the Acceleo editor in order to generate a new template / query for an element. This view could also modify the completion within the Acceleo Editor by modifying the completion for a new template / query for a completion typed with the unused elements of the metamodel. The view should also let the user provide an example of a model using the current metamodel in order to limit the elements shown in the view to the element used in the example model in order to improve the example based approach.

[edit] Module Formatter

Though most of the Acceleo modules cannot be formatted lest we prevent the generation of some whitespaces, there are places in the Acceleo modules that can be "safely" formatted. It would be interesting to isolate these "safe" locations and determine a set of rules for their formatting. For example, OCL expressions (as in Acceleo queries' bodies) can be safely altered without changing their output. That would allow us to properly format an OCL "if" or "let" expression for example.

[edit] Language

[edit] Post-Processing at the file level

Acceleo should provide a way to create services that will modify the file as a whole after its generation. For example when generating Java, we'd like to have a service which would record a list of Strings as the evaluation runs (for example, "java.util.List", "java.util.Set", "java.util.ArrayList", ...) and which would add the "import" clauses for all of the Strings contained by this list to the generated file.

[edit] Parser

[edit] Distributed parsing

The Acceleo parser should be able to parse several files at the same time.

[edit] Engine

[edit] Compilation on the fly

The AbstractAcceleoGenerator should be changed to allow the compilation on the fly of the mtl files if the emtl files are not found.

[edit] Debugging of OCL expressions

The Acceleo debugger should be able to visit the content of an OCL expression.

[edit] Other

[edit] Export the profiling data into "gprof" file

Acceleo should provide a way to create the data from the profiling as a "gprof" file. If you want to comment or help code this feature, see bug 293304.

[edit] Stand alone unit testing framework

Acceleo modules should be easy to test thanks to a stand alone testing framework. An example of this framework can be seen here.


Acceleo Portal
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