Standen frühere Eclipse-Simultanreleases noch im Zeichen der Jupitermonde Callisto, Europa und Ganymede, so hat man sich in diesem Jahr für einen ganz neuen Codenamen entschieden: Galileo. Bei Galileo handelte es sich übrigens auch um eine Raumsonde auf Entdeckertour. Aufgabe der Sonde war es nämlich, den Jupiter zu erforschen, ehe sie ebendort verglühen würde.
In den letzten Jahren wurde insbesondere im Bereich der Java Development Tools (JDT) im Eclipse-Projekt viel getan, sodass man bereits in der vorangegangenen Version einen Stand erreicht hatte, der nahezu keine Wünsche mehr offen zu lassen schien. Auf Grund dieses erstaunlichen Reifegrades darf man in der neuesten Version nun freilich auch keine Wunderwerke bzw. spektakuläre neue Funktionen erwarten. Die Änderungen liegen dieses Mal viel mehr im Detail, aber einige bringen in jedem Fall wieder echten Mehrwert in die IDE. Gehen wir also ebenfalls auf Entdeckertour und erkunden, was sich bei JDT im letzten Jahr getan hat.
Detailverbesserungen
Bereits seit Längerem verfügbar ist eine Funktion in Eclipse, mit der man ausführbare Jar-Dateien exportieren kann. Der entsprechende Assistent, der den Entwickler beim Erzeugen solcher Jar-Dateien unterstützt, ist unter EXPORT ... | JAVA | RUNNABLE JAR FILE verfügbar. In der aktuellen Version wurde dieser Assistent nun dahingehend erweitert, dass es jetzt auch möglich ist, abhängige Jar-Dateien mit in den Export zu nehmen. Genaugenommen hat man hier über entsprechende Radio-Buttons nun die Qual der Wahl: Abhängige Bibliotheken lassen sich entweder als komplettes Jar oder in ausgepackter Form in den Export aufnehmen.
Der Open-Type-Dialog (CTRL+SHIFT+T) dürfte einer der am meisten benutzten Dialoge in Eclipse sein, wenn es darum geht, Klassen zu suchen und zu öffnen. Einfach Dialog öffnen, Suchbegriff (mit oder ohne Jokerzeichen) eingeben und schon hat man die gesuchte Klasse ohne langwieriges Navigieren im Projektbaum gefunden und ganz schnell im Java-Editor geöffnet. Im Open-Type-Dialog wurde die Anzeige der Suchergebnisse nun so gestaltet, dass die Suchbegriffe hervorgehoben dargestellt werden. Die untere Abbildung zeigt den überarbeiteten Open-Type-Dialog.
In JDT finden sich neben den bisher besprochenen noch viele weitere Detailverbesserungen: So können Working-Sets jetzt alphabetisch sortiert werden, das Rename Refactoring ist nun auch über einen Quick Fix (CTRL+1) erreichbar und der Javadoc Viewer wurde nochmals überarbeitet und unterstützt jetzt neben dem bisher vermissten Tag {@inheritDoc} auch umfassendes Hyperlinking. Im Java-Editor hat man ab sofort die Möglichkeit, mit Doppelklick auf den Anfangs- oder Endmarker eines Kommentars den kompletten Kommentar zu markieren.
Quelltexthyperlinks abermals verbessert
Von jeher angenehm im Java-Editor sind die hilfreichen Links, die zur Verfügung gestellt werden, wenn man die CTRL-Taste drückt und sich mit der Maus z. B. auf eine bestimmte Methode bewegt, die man irgendwo im Quelltext aufruft. Ein Klick hierauf und der Editor zeigt den Quellcode dieser Methode an. Mithilfe dieser sinnvollen Funktion hat man also die Möglichkeit, durch den Quelltext einer Anwendung zu browsen. Der Sourcecode fühlt sich so quasi wie ein HTML-Dokument an und bietet dem Entwickler die Möglichkeit, sehr schnell im Quelltext umherzuspringen. Ein Problem waren dabei jedoch immer Methodenaufrufe in Klassen, die ein bestimmtes Interface implementieren. Der Link, der bei einem solchen Konstrukt vom Editor angeboten wurde, hat in der Vergangenheit stets auf die (leere) Methode im Interface verwiesen. Ein direktes Springen zur Methode in der Implementierung war dagegen nicht möglich. In der aktuellen Version wird nun genau dies möglich: Anstatt direkt ins Interface zu springen, wird ein kleines Pop-up-Menü eingeblendet, in dem man wählen kann, ob man zum Interface (Declaration) oder in die Implementierung gelangen möchte. Gibt es zu dem verwendeten Interface mehr als eine Implementierung, wird anstatt zur Implementierung zu springen der bekannte Type-Hierarchy-Dialog angezeigt, in dem man sehen kann, welche Klassen das betreffende Interface implementieren. Das Ganze funktioniert selbstverständlich auch mit abstrakten Klassen.




