Updated Eclipse toolkit shines
Eclipse SDK 2.1 leverages Java’s strengths in IDE toolkit, but beware of too much expansion
Documentation for the Eclipse platform rightly describes it as “an IDE for anything, and for nothing in particular.” Eclipse is written in Java, and Java suites Eclipse’s extensibility well. But such easy extensibility is fertile ground for overgrown features.
Eclipse is the umbrella name for three related projects: the Eclipse Project, the Eclipse Tools Project, and the Eclipse Technology Project.
The Eclipse Project oversees development of the Eclipse IDE platform and the JDT (Java Development Tooling) — a Java development environment built on the Eclipse platform. It also sets the code and specifications for the plug-in development environment (see “Understanding Eclipse’s architecture,” page 43).
The Eclipse Tools Project coordinates many development environment implementations on the Eclipse platform, including CDT (C/C++ Development Tool), which creates a C/C++ IDE out of Eclipse; a GEF (Graphical Editing Framework); and — hold your breath — a COBOL IDE. Further along than the GEF and the COBOL IDE, the CDT already ships with an editor, a debugger, and a number of wizards.
Finally, the Eclipse Technology Project scouts future directions for the Eclipse platform.
For my purposes here, I focused on the Eclipse SDK, the product of the Eclipse Project. The SDK includes the components and tools that would be used by someone interested in working with the Eclipse IDE, either as a user or as a developer hoping to extend the IDE’s capabilities. Users and developers alike will find welcome additions in Eclipse SDK 2.1.
New Editing Powers
Eclipse SDK 2.1 comes with the platform, the JDT, and the plug-in development environment. The JDT is a reasonably complete Java IDE, really an embodiment of the Eclipse platform. I explored the new features of Eclipse 2.1 using the JDT.
Many of the new features of the 2.1 platform revolve around improved editing capabilities. Some enhancements are small but useful, including visual cues such as line numbers and current-line highlighting in the editor itself. Others are navigational improvements. For example, the platform now provides a browser-like back-arrow that returns you to previous edit sessions as you move from one source file to another.
A more substantial change involves how the navigator window tracks the current editing target. Previously, Eclipse synchronized the navigator to the editor automatically. Move to a new document in the editor, and the current position in the navigator view changed to match the move. Although this was usually the preferred behavior, it was occasionally confusing. Eclipse 2.1 lets you sever the implicit connection between navigator and editor so your position in the navigator stays put as you leap among source files in a project. The “Show In” menu selection lets you resynchronize if you’ve leapt too far.
Improvements to JDT are also related to editing, though within the context of a Java development environment. A good example of this is the expanded “quick fix” capability, an automated activity provided by the IDE to accelerate necessary but tedious text-entry chores. You can call on a quick fix to create a missing constructor, add missing catch or throws declarations, conjure stubs for as-yet unimplemented methods, and so on.