Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

We have just released Groovy-Eclipse 2.0.2. This release includes a number of exciting new features, Groovy 1.7.3, and fixes for over 80 jira issues. For this release, we have two streams available: an Eclipse 3.5 (Galileo) stream and an Eclipse 3.6 (Helios) stream. To install 2.0.2, you can add one of the following release URLs to your Eclipse update manager:

Groovy-Eclipse update site for Eclipse 3.5


Groovy-Eclipse update site for Eclipse 3.6



Refactoring support

For this release, we have done some work on refactoring. In the past, there was a separate Groovy Refactoring menu, which was the only place Groovy refactorings could be invoked from. Now, we have integrated the refactorings into the JDT refactoring support. Now, Groovy refactorings can be invoked using the same keyboard commands and menu items as their Java counterparts.

Extract Local Variable Refactoring

The extract local variable refactoring allows programmers to select an expression and convert it into a local variable:

  • Initial code:
  • This refactoring also supports replacing all occurrences of the expression:
  • Preview:
  • See the results:

The keyboard binding for this refactoring is the same as it is for the Java variant of the refactoring (e.g., Command-Alt-L on Macs).

Extract Constant Refactoring

Extract constant expression allows a programmer to select a static expression, and pull it out as a constant in the current class. This refactoring is also available from the refactoring context menu.

To invoke this refactoring, select a static expression and select the Extract Constant... refactoring:

In the refactoring wizard, you can choose to replace all occurrences with the constant, and you can also choose to qualify references to the constant with the class name:

As with extract local, you can see the preview:

And the result is what you would expect with all text properly replaced:

Note that you cannot extract constants inside of a script and that all components must be static.

Extract Method Refactoring

Extract method refactoring was available in version 2.0.0 and earlier, but was removed for 2.0.1 because it depended on deprecated internal APIs that had been removed. For 2.0.2, we have reimplemented extract the method refactoring and linked it to the standard Java method refactoring in the editor:

This refactoring supports reordering and renaming of the parameters of the extracted method:

As expected, the result properly extract the selected statements into a new method, taking into account new parameters and the return statement:

There are some limitations to this refactoring:

  • Only complete statements or groups of complete statements can be refactored.
  • Multiple return values are not supported.

Rename Refactoring

Although originally introduced in the 2.0.1 version, rename refactoring is now available from the context menu:


the menu bar:


or keyboard commands (e.g., Alt-CMD-R on Macos).

Expand and contract selection

would be nice to have a video here

Code Formatting and Indentation

Quite a bit of work was done for this release on formatter related issues. The main focus has been on fixing issues that directly affect a user's experience while they are working with the editor doing day-to-day work: typing, copying and pasting. While typing, copying and pasting the Groovy editor performs a lot of "smart" editing transformations behind the scenes. Unfortunately, most of these features in the previous implementation where inherited from the Java editor. These implementations worked to some degree, but tended to be quite unreliable because of differences between the Java and Groovy syntax. In this release we are providing a brand new groovy-specific implementations for three "smart editor" features:

  • smart paste: attempt to preserve relative indentation of code pasted into a Groovy editor.
  • smart newline: try to put the cursor in a sensible place after the user presses newline.
  • smart tab: correct the indentation of the current line when pressing tab at start of a line.

Like their Java counterparts, these implementation relay on heuristics rather than a full parser, so they should work even when the document in the editor is not syntactically correct. These implementations are brand new and we are looking forward to getting your feedback on how to make them work better and polish them up.

Besides these "on-line" algorithms that get invoked while typing and pasting. The Groovy editor also provides an "of-line" formatter that can be invoked explicitly by pressing CTRL-I or CTRL-SHIFT-F. Numerous bugfixes and small improvements have been made to the of-line Groovy formatter and indentor as well.

Better AST Transform support

Disabling AST Transforms in editor

(come up with a better way to describe this)

Reconciling of common AST transforms

(how much working already?)

What's next?

You can find more details on the Groovy-Eclipse Roadmap, where you can comment on proposed features and see our release schedule. More specifically, we are scheduled to release Groovy-Eclipse 2.1.0 in mid-September.

We appreciate all the community support and feedback we have had through the version 2.0.2 development cycle. 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'd like to see), please raise them in our issue tracker.

  • No labels