Updated Eclipse toolkit shines
Eclipse SDK 2.1 leverages Java’s strengths in IDE toolkit, but beware of too much expansion
Quick fixes clean up some compiler detected errors such as a nonstatic method attempting to access a static method, or an instance field being declared in a static method. It can also detect errors prior to compilation, such as unused variables or uncaught exceptions.
“En masse” editing is also improved in Version 2.1. Rename an identifier, and the “linked rename” capability will change all occurrences of the identifier in the file. Remove a statement or block of statements that might otherwise disrupt the indentation of surrounding text, and indentation is automatically corrected throughout the file.
Refactoring and Hyperlinking
Eclipse’s refactoring abilities have been boosted as well. These are automated editing activities that occur if you make an alteration that has ramifications beyond the line you’re currently editing, such as moving a method from a subclass up into its parent or creating an interface based on a class definition.
Not only do the refactoring tools save typing time, but they ensure that the alterations — which could span several source files — are made so that “referential integrity” is maintained throughout the project.
Eclipse 2.1 cleverly employs hyperlinking for quick inter- and intrafile navigation. Hold down the Ctrl key while the mouse hovers over an identifier (class name, method name, etc.), and the identifier turns into a hyperlink; click the hyperlink and you’re transported to proper source file and line where the identifier is declared.
In the debugger, when an exception is thrown and a stack trace erupts in the console, hover over a line in the trace, and it becomes a hyperlink. Click on the hyperlink, and the associated Java source file opens already positioned to the proper line.
Hyperlinking through stack traces is not the only debugger improvement. Deadlock detection has been added, so the debugger can now show which threads are holding monitors and which threads are waiting on monitors.
The debugger’s conditional break points have also been refined. In the past, a conditional break point was triggered when a specified expression evaluated to “true”. Now a conditional break point can be triggered whenever a specified expression’s value changes, allowing more versatility.
Beware of IDE Overload
Most of the additions to the Eclipse platform and the JDT are associated with editing, but there are also a host of incremental modifications in code generation (specific to the JDT) and enhancements to the PDE. Many of the latter additions provide tools that help developers discover and navigate among plug-in dependencies. These tools will be most helpful to those who want to write Eclipse plug-ins, but not to the larger group who will use Eclipse as an IDE.
Individually, each addition or enhancement is reasonable, even downright clever. But each adds its volume to an already densely-packed and increasingly daunting UI, which can become overwhelming if you don’t monitor its growth.
It gets a solid thumbs-up, but Eclipse will have to extend itself cautiously, lest it begin to stagger under the weight of all its spiffy features.