Eclipse 3.4 "Ganymede" will be released in the upcoming days. I've been working with the RC builds for some time now and I like it. Eclipse 3.4 is a better IDE and a more robust platform than its' predecessor. In this post, I've gathered some new features which I like and may be "off the beaten path".
This is not a hidden feature, but I had to mention it. The Java Development Tools include some interesting enhancements in this release. The greatest innovation is the Java Editor Breadcrumbs. It looks cool, but, after using it for some time, I didn't find it very useful. The Rich Hovers, on the other hand, are very useful. I especially like the Javadoc hovers. There's an emphasis in making the documentation accessible and that's a very positive improvement.
Another useful rich hover is the Java debug hover which makes it easier to view the contents of compound objects without having to copy them to the expressions view. You can use the preferences to determine whether the behavior of the "enriched hovers".
The Dropins Folder
If you paid attention to the hype around Eclipse 3.4, you've heard the term P2. In simple terms, it's a new way of deploying Eclipse applications and plug-ins. For the average Eclipse user, the most noticeable change will be a new "Software Update" dialog which replaces the previous "Find & Install..." and "Manage Configuration" duo. It's a much better UI and it's a promising future to Eclipse updates.
Part of this change is "the dropins folder". This folder is located in your Eclipse distribution folder and it is initially empty. In this folder you can manually drop features and plugins which will be installed once you restart Eclipse. No more restarting with "-clean" option. There's also an option of using this folder to link to a central location of plugins, which can be shared among several Eclipse installations. I'll write a dedicated post about it in the future.
One of the late features to make it into the Eclipse 3.4. Templates can be inserted while coding, usually using the content assistant. Adding and editing templates was possible before. In Eclipse 3.4 there's a new view which shows all possible templates and makes it easier to add new templates. There are also some new parameters which can be used when composing template. Templates are already an important feature. The templates view makes this feature even more user friendly, especially for customizations.
The view is found in the views under "General" - "Templates". Look in the Eclipse help for more details on the template variables.
Format Only Edited Lines
The "Save Actions" is one of my favorite features in Eclipse 3.3 (read my original post about it). In Eclipse 3.4 there are several improvements including some new formatting features. One of the complaints against the Save Actions feature was that it will change the entire file, thus, making it very hard to compare to previous revisions when using a source control. It can become very annoying if some team members use it and some don't.
For that purpose there's a new feature which allows changing just the edited lines, keeping the rest of the file intact. I highly recommend using the Save Actions feature. It is inactive by default, so go ahead and activate it.
Outline View Drag & Drop
This is a true hidden treasure. You can now easily rearrange your source code by dragging and dropping elements in the outline view. AFAIK, this currently works for Java and for XMLs. To use it, make sure the "sort" option is not selected and just drag & drop.
There are many new features in the Plug-in Development Environment (PDE) project which makes writing and deploying Eclipse plugins much easier. The Plug-in spy is a true hidden gem in this stack. One of the best ways to learn how to write plug-ins is to read the code of existing plug-ins. Naturally, the organic Eclipse plug-ins make great candidates. You see a view and you want to create something similar. The question is: how do you find the code behind that view?
This is where the plug-in spy comes into play. Invoke the plug-in spy and you'll get all the information that you need to start exploring the existing code. The plug-in spy can be invoked using the keyboard shortcut Shit+Option+F1 (Alt+Shift+F1 on Windows). It works on views and in dialogs as well, including the wizard and preferences dialog.
Error Log View
The error log view is not new. It shows platform errors and informational messages. It was greatly improved in Eclipse 3.4, with a search box and a grouping feature. It's all good, but, there's one cool feature tucked away in the toolbar. You can quickly use the log view to view the logs of workspaces you launched when running or debugging plug-ins. It shows all the defined launch configuration. Each launch configuration is associated with a runtime workspace. The log of this workspace will be shown when that configuration is selected.
Export/Import Launch Configurations
Launch configurations are an important part of the workspace. Every once in a while I start over and create a new workspace after having too much garbage in the old one. Importing the projects is a breeze. It's the configuration that takes time. Most of the configuration can be exported and imported and now the launch configuration are included. Since creating launch configurations can be time consuming, this is a much needed feature.
Start from the "File" menu and select the "Export" feature. Select the "Launch Configurations" and in the next dialog box select the configurations to export. The result is a folder of XMLs which can be later imported to any workspace
God is in the Details
The features I mentioned above are mostly major features. Eclipse 3.4 also includes an assortment of small improvements for making your life easier. The content assistant, for example, is improved, and it works in cases where it didn't before. Argument name guessing is much improved and can now also guess methods which may be called to produce the arguments (e.g. getters). There are many new feature you'll discover once you start using the new version. "Ganymede" is a great release for the Eclipse platform.