The Groovy-Eclipse team is proud to announce the release of Groovy-Eclipse 2.5.2. There are many new features available with this release, including Eclipse 3.7.1 support, Java 7 support, and Groovy 1.8.2 support

Outline

Compiler switching through command line argument

It is now possible to use command line arguments to specify a compiler level for Groovy-Eclipse. You can add the -groovy.compiler.level argument to the launch command to control which compiler level is started.

Inferencing improvements

Better DGM inferencing

Default Groovy Methods now have better inferencing inside of associated closure blocks. For example, the unique DGM method now supports inferencing of the parameter on its closure:

In addition to unique all methods inside the DefaultGroovyMethods class now support inferencing on parameters in closures where possible. A complete list is available in GRECLIPSE-1143.

Support for DateGroovyMethods, SwingGroovyMethods, XmlGroovyMethods, and ProcessGroovyMethods.
These classes are now handled just like DefaultGroovyMethods in terms of content assist, hovers, and navigation.

Multiple assignment statements

The types of variables assigned in multi-assignment statements are discovered during inferencing. For example, when assigning a list to multiple variables, the static type of the list elements will be assigned to each variable:

Also, when a method returns a list or array, the type parameter or component type is used as the type of assigned variabled:

Match operator inferencing

Content assist improvements

Method context information

Groovy-Eclipse now follows the JDT model of displaying context information for methods when invoking content assist inside of a method call and there is no prefix. For example, when invoking content assist just after an opening paren, you are only shown a list of known ways to invoke the target method:

Selecting one of the proposals will show that methods information in tooltips above the caret location:

Similarly, invoking content assist after a comman will show context information as well:

Content assist now recognizes closure parameters

Editing support for Groovy files outside of the build path

Scripts that are not placed on the build path now provide many of the standard editing features that is used by scripts on the build path, such as content assist, type inferencing, and mark occurrences. The classpath for the script is assumed to be the same build path as the one for the rest of the project.

Note that missing import references will not be reported, and references in scripts will not show in search results, nor will refactoring work in these files.

Other

Fix import statements after move/copy

Import statements are now properly cleaned up after a move or copy of a Groovy file to a new location. See GRECLIPSE-682 for more information.

More precise searching for overloaded methods

The number of parameters of method declarations are now used to help more precisely determine the actual declaration of a method reference:

More precise rename refactoring of overloaded methods

This new technique for method searching is used to ensure that overloaded methods do not interfere with rename refactoring:

Compatibility

Groovy-Eclipse 2.5.2 includes Groovy 1.7.10 by default. Groovy 1.8.2 can be optionally installed. This version of Groovy-Eclipse is recommended to be installed on STS 2.7.2, 2.8.0.M2, Eclipse 3.7.0, 3.7.1, 3.6.0, 3.6.1, or 3.6.2. There are different update sites for Groovy-Eclipse targeting Eclipse 3.6 and 3.7 (see above).

Bug fixes

We have fixed over 100 bugs for this release. See the details on our issue tracker.

What's next?

We appreciate all community support and feedback. If you wish to join the discussion about Groovy-Eclipse then please sign up for the mailing list. For any issues you have (or enhancements you would like to see), please raise them in our issue tracker. If there is an existing bug fix or enhancement that you require are not seeing any movement on, please make some noise on it (and get your friends to do the same). We respond to community feedback, and we can make the most improvements to Groovy-Eclipse when we hear directly from the community. So, please speak up!