Suche
Besser, bunter, schneller

IntelliJ IDEA 2017.1: Finales Release erschienen

Dominik Mohilo

JetBrains hält Wort: Die angekündigte Veröffentlichung der nächsten Major Version von IntelliJ IDEA im Frühjahr ist vollbracht. Mit IntelliJ IDEA 2017.1 verbessert JetBrains aber nicht nur die bisherige Funktionalität der Entwicklungsumgebung, sondern implementiert auch zahlreiche neue Features. Unter anderem werden die neuesten Versionen des JDK 9 vollständig unterstützt und einige Funktionen wurden runderneuert.

Nutzer der IntelliJ IDEA haben seit Kurzem wieder Grund zu feiern, denn endlich brauchen sie keine Vorab- oder Testversionen des ersten 2017er Major Releases mehr zu verwenden. Mit an Bord der Entwicklungsumgebung von JetBrains sind im ersten großen Update des Jahres natürlich zahlreiche Bugfixes, die im Verlauf der letzten Wochen und Monate eingepflegt wurden. Aber natürlich gibt es auch wieder etliche Features und Verbesserungen, deren Wichtigste wir für euch hier zusammengefasst haben.

Update vom 27. März 2017

IntelliJ IDEA 2017: Finale Version mit Java 9 Support

Volle Unterstützung der jüngsten JDK 9 Builds, Assistenten für den Projekt-Import und Coding Assistance für das Bearbeiten von Modul-Deklarationen lassen (Java-)Entwicklerherzen höher schlagen. Die eingebauten Inspections validieren die Modul-Deklarationen und stellen Quick Fixes für das Anpassen von Projektabhängigkeiten zur Verfügung. Detaillierte Informationen zum Java 9 Support in IntelliJ 2017.1 hat Trisha Gee auf dem JetBrains Blog zusammengefasst.

Java 9 Support in 2017.1 / Quelle: JetBrains Blog

Die Code-Assistenz für Java 8 wurde ebenfalls verbessert. So sind die Quick Fixes für die Migration von for-Loops hin zu Stream API Calls in der aktuellen Version auch für komplizierte Fälle nutzbar. Das Ganze ist zudem ab IntelliJ 2017.1 auch in die andere Richtung möglich. Die Funktion sorgt in erster Linie für eine Verbesserung des Debugging-Prozesses, aber auch für Verständnisfragen ist sie hilfreich.

Im Bereich Debugging werden mit der neuesten Major-Version außerdem asynchrone Stacktraces unterstützt. Mithilfe eines smarten Step-Into-Befehls, der Lambda-Ausdrücke möglich macht, die in anderen Threads ausgeführt werden, soll das Debuggen asynchronen Codes noch leichter werden. Es ist dadurch nicht mehr nötig, einen Breakpoint direkt in einen Lambda-Ausdruck einzufügen.

Step-Into-Lambda-Ausdruck / Quelle: JetBrains Blog

Das Log-Panel für Git und Mercurial hat seit dem Update neue Anzeigeoptionen und der Dialog Find in Path wurde von Grund auf neu geschrieben. Auch das Spring Testing hat eine Aktualisierung erfahren und unterstützt nun Spring 5 sowie die aktuellste Version von Spring Boot.

Die JVM-Sprache Kotlin, die bei JetBrains zuhause ist, wird selbstverständlich nativ unterstützt. Ab sofort dann auch in der aktuellsten Version inklusive deren neuen Features (etwa Coroutines). Das Scala Plug-in hat einen neuen Project Wizard an Bord und was es im Bereich JavaScript alles Neues gibt, erklärt Paul Everitt von JetBrains in diesem Video:

Weitere Informationen zu IntelliJ IDEA 2017.1 gibt es wie immer auf dem JetBrains Blog, eine sehr detaillierte und umfangreiche Übersicht über die Änderungen, inklusive zahlreicher Beispiele findet man auf der Webseite zum Update.



Update vom 28. Februar 2017

IntelliJ IDEA 2017.1: Public Preview aktuell verfügbar

Es ist etwa drei Monate her, seit das letzte Major Release der Entwicklungsumgebung von JetBrains veröffentlicht wurde. Mit IntelliJ IDEA 2016.3 erschien das letzte Major Release des vergangenen Jahres und mit ihm hielten wichtige Features Einzug in das Entwicklungstool. Seitdem hat sich, wie unser Update-Thread zeigt, viel getan.

Gänzlich abgeschlossen sind die Arbeiten an IntelliJ IDEA 2017.1 noch nicht, doch die meisten neuen Features können damit erstmals in nahezu fertiger Form getestet werden. Offiziell wird die EAP-Version 171.3566.24 als sogenannte Public Preview bezeichnet und bringt, neben den bereits in vorangegangenen Vorversionen enthaltenen Features, unter anderem die Unterstützung für Java 9.

Java 9 & Java 8

Was lange währt wird endlich gut: Die versprochene Unterstützung für Java 9 ist nun endlich Teil der IntelliJ IDEA. Vor allem der Support für das neue Modulsystem (aka. Jigsaw) lag im Fokus der Entwickler von JetBrains. Zudem gibt es nativ Hilfe für das Importieren von Projekten und Code-Assistenz beim Bearbeiten von Modul-Deklarationen:

Code-Asisstenz beim Editieren von Modul-Deklarationen / Quelle: JetBrains Blog

Code-Asisstenz beim Editieren von Modul-Deklarationen / Quelle: JetBrains Blog

Eine eingebaute Inspection validiert die Module und stellt, wenn nötig, einen Quick Fix für die richtige Anpassung der Projekt-Dependencies zur Verfügung. Für die Verwendung und das Testen von Java 9 wird empfohlen, immer das aktuellste JDK installiert zu haben.

Auch der Java-8-Code-Assistent wurde nicht vergessen, sondern weiter verbessert. Die Quick Fixes für die Migration von for-Loops hin zu Stream API Calls sind in IntelliJ IDEA 2017.1 auch für komplizierte Fälle nutzbar und das Ganze ist ab sofort auch in die andere Richtung möglich. Dadurch soll das Debugging verbessert werden, auch bei Verständnisfragen könnte diese Funktion helfen.

Wer noch mitten im Übergang zu Java 8 steckt, für den lohnt sich möglicherweise das Video von Trisha Gee mit dem Titel Refactoring to Java 8. In der Demo zeigt sie die Vorteile von Java 8 und wie man Code automatisch umwandeln kann, um davon zu profitieren.

Weitere Änderungen

Das Dialogfenster Find in Path hat in einer älteren Vorabversion ein Preview-Tab bekommen, nun wurde es von Grund auf überarbeitet. Nutzer können jetzt sämtliche gefundenen Resultate der Suche anwählen und sie sich mit einem einfachen Drücken der Enter-Taste im Editor anzeigen lassen. Durch die Tastenkombination STRG + Enter werden die Resultate im Tool-Fenster angezeigt.

Auch die Unterstützung für Gradle Composite Builds, die mit IntelliJ Idea 2016.3 eingeführt wurde, ist vom IDEA-Team noch einmal aufgebohrt worden. Die Entwicklungsumgebung entdeckt seit dem Update automatisch includeBuild in den Einstellungen von Gradle und konfiguriert das Projekt entsprechend. Hierfür ist keine manuelle Konfiguration mehr notwendig.

Automatische Konfiguration von Gradle-Projekten in IntelliJ IDEA 2017.1 / Quelle: JetBrains Blog

Automatische Konfiguration von Gradle-Projekten in IntelliJ IDEA 2017.1 / Quelle: JetBrains Blog

Docker for Mac wird mit dem neuesten Docker Plug-in unterstützt und lässt sich via unix:// nutzen. Android-Entwickler können sich darüber freuen, dass die Public Preview sämtliche Funktionen und Änderungen des Android Studio 2.2.2 enthält. Windows-Nutzer dürfen, dank des 64-bit JDKs, der IDE mehr RAM zuteilen.

Eine vollständige Liste mit den neuen Features und Updates von IntelliJ IDEA, die die Public Preview an Bord hat, gibt es auf dem Blog von JetBrains, herunterladen kann man sich die aktuellste Version auf der Downloadseite. Bugs, Anregungen und Vorschläge können per YouTrack eingereicht werden.



Update vom 16.02.2017

IntelliJ IDEA 2017.1: Weitere Verbesserung für das Debuggen asynchronen Codes

Kaum eine Woche ist seit der Veröffentlichung des letzten EAP-Builds vergangen, da erscheint auch schon der nächste. Nach der jüngst eingeführten Unterstützung von asynchronen Stacktraces setzt das Team der Entwicklungsumgebung seine Bestrebungen fort, das Debuggen asynchronen Codes einfacher zu machen.

Diesmal soll dies mithilfe eines Step-Into-Befehls vonstattengehen, der Lambda-Ausdrücke unterstützt, die in anderen Threads ausgeführt werden. Bislang war dies nur möglich, wenn ein Breakpoint manuell direkt in einen Lambda-Ausdruck eingefügt wurde; jetzt kann man ganz einfach den Smart Step Into nutzen, um asynchronen Code zu debuggen.

Step-Into-Lambda-Ausdruck / Quelle: JetBrains Blog

Step-Into-Lambda-Ausdruck / Quelle: JetBrains Blog

Der neue EAP-Build von IntelliJ IDEA 2017.1 enthält außerdem eine komplett neue Dateihistorie für Git. Die neue File History ist schneller, kann die Revisionsgraphen anzeigen und hat sogar einen Button der es erlaubt, Änderungen von anderen Branches als dem gerade aktuellen einzufügen.

Drittes und letztes Feature des Updates ist die Option, Breakpoints per Drag-and-Drop zu entfernen. Ist die Einstellung aktiv, kann man den Breakpoint per Mausklick aktivieren oder deaktivieren, anstatt ihn direkt zu entfernen. So soll das Entfernen eines Breakpoints aus Versehen verhindert werden und damit der Verlust der enthaltenen Parameter. Via Settings | Build, Execution, Deployment | Debugger | Drag a breakpoint to the editor area to remove it kann die Option aktiviert werden.

 Drag-and-Drop zum Entfernen von Breakpoints / Quelle: JetBrains Blog


Drag-and-Drop zum Entfernen von Breakpoints / Quelle: JetBrains Blog

Weitere Informationen zum aktuellen EAP-Build gibt es, wie immer, auf dem Blog von JetBrains, herunterladen kann man sich die aktuellste Version auf der Downloadseite. Bugs, Anregungen und Vorschläge können per YouTrack eingereicht werden.



Update vom 13.02.2017

IntelliJ IDEA 2017.1: Asynchrone Stacktraces im Debugger

Der neueste EAP-Build von IntelliJ IDEA 2017.1 bringt für den Debugger ein wichtiges neues Feature namens Capture. Dieses verändert den Stacktrace, indem es die Teile der asynchronen Code-Ausführung (Empfänger) durch die korrespondierenden Teile des Stacktraces ersetzt, die dort erfasst werden, wo der asynchrone Code übermittelt wird (Sender). Damit das Feature funktioniert, muss IntelliJ IDEA die exakten Signaturen und Methoden kennen, die für das Senden und Empfangen von Daten (also des asynchronen Codes) verwendet werden sowie die Ausdrücke, die die gesendeten Daten repräsentieren.

Ziel des Features ist es, die Navigation zu relevanten Frames und das Verständnis des Datenflows zu erleichtern. Einziger Haken derzeit: All das muss noch manuell konfiguriert werden. Es ist allerdings geplant, eine vordefinierte Konfiguration für die beliebtesten Bibliotheken zukünftig zur Verfügung zu stellen.

Zu finden sind die Einstellungsmöglichkeiten im Menü Settings | Build, Execution, Deployment | Debugger | Capture. Sind alle Voraussetzungen erfüllt, wird IntelliJ IDEA die adaptierten Stacktraces anzeigen:

Die adaptierten Stacktraces werden angezeigt / Quelle: JetBrains Blog

Die adaptierten Stacktraces werden angezeigt / Quelle: JetBrains Blog

Die Frames der Bibliotheken können herausgefiltert werden, um eine bessere Übersicht zu erhalten:

Übersicht ohne Library-Frames / Quelle: JetBrains Blog

Übersicht ohne Library-Frames / Quelle: JetBrains Blog

Die Macher der IntelliJ IDEA weisen darauf hin, dass dieses Feature die Performance beeinflussen könnte. Dies liegt in erster Linie am Sammeln der zusätzlichen Daten während des Ausführens. Capture befindet sich zurzeit noch in der aktiven Entwicklungsphase, ist aber mit dem aktuellen EAP-Build bereits verfügbar.

Neben Capture wurde ein weiteres Feature dem aktuellen Build hinzugefügt. Im Diff-Dialog ist nun eine neue Option verfügbar: Ignore imports and formatting. Durch diese Option werden Veränderungen innerhalb von Import-Statements und Whitespaces ignoriert, Whitespaces innerhalb von String-Literalen werden allerdings berücksichtigt.

Ignore imports and formatting im Diff-Dialog / Quelle: JetBrains Blog

Ignore imports and formatting im Diff-Dialog / Quelle: JetBrains Blog

Weitere Informationen zum aktuellen Update gibt es auf dem Blog von JetBrains, herunterladen kann man sich den aktuellen EAP-Build hier.



IntelliJ IDEA 2017.1: Bessere Performanz, Unicode-Emojis und Zero-latency Typing

Java & JVM Debugger

Bereits mit Version 2016.3 hatten die Entwickler der IntelliJ IDEA die Möglichkeit implementiert, for-Loops durch Ketten von Stream API Calls zu ersetzen. Da die for-Loops allerdings ab und zu lesbarer sind, gibt es das gleiche Quick-Fix nun auch für die Konvertierung in die Gegenrichtung. So ist es möglich, komplizierte Ketten zu debuggen und anschließend in for-Loops umzuwandeln.

Konvertierung einer Stream API Chain in einen for-Loop / Quelle: JetBrains Blog

Konvertierung einer Stream API Chain in einen for-Loop / Quelle: JetBrains Blog

IntelliJ IDEA 2017.1 bringt für Java-Entwickler auch die Möglichkeit, das Syntax-Highlighting zu individualisieren: In den Einstellungen können die benutzten Farben für reguläre Expressions manuell eingestellt und angepasst werden. Wer auf neue Inspections für JUnit 5 gewartet hat, wird ebenfalls nicht enttäuscht. Sämtliche Inspections, die für JUnit 4 verfügbar waren, gibt es ab sofort auch für den Nachfolger.

Eine weitere Verbesserung der Usability gibt es im Hinblick auf das Überschreiben oder Implementieren von Methoden. Mit der neuen Version von IntelliJ wird es möglich sein, auszusuchen, welche Annotations von der zu überschreibenden oder implementierenden Methode kopiert werden sollen.

Manche Method Breakpoints stellten in der Vergangenheit ein Problem in Sachen Performance dar und behinderten Entwickler bei ihrer Arbeit. Die Emulation durch die IDE als Kombination aus regulären Line Breakpoints soll dieses Problem jetzt beheben. Die JVM Debugger Memory View ist außerdem in Version 2017.1 fest implementiert und muss nicht mehr als Plug-in geladen werden.

Emojis

Natürlich sind Emojis im Editor nicht jedermanns Sache. Bereits jetzt schimpfen manche Entwickler auf JetBrains, dass sie sich zu diesem Schritt entschlossen haben. Andere wiederum sehen es pragmatisch: Emojis gehören eben zu Unicode dazu. Daher werden sie nun auch korrekt im Editor der Entwicklungsumgebung angezeigt:

Emojis im IntelliJ-Editor / Quelle: JetBrains Blog

Emojis im IntelliJ-Editor / Quelle: JetBrains Blog

Emojis können einerseits in Kommentaren, allerdings auch in String-Literalen und Resources genutzt werden. Der einzige Haken: Nur unter Mac OS X werden sie auch wirklich bunt angezeigt. Unter Windows und Linux werden sie als monochrome Zeichen gerendert.

Weitere Features

Das Zero-latency Typing, das bereits experimentell verfügbar ist, wird mit der kommenden Version fester Bestandteil der Entwicklungsumgebung werden. Kurz gesagt soll somit dafür gesorgt werden, dass keine Lags beim Tippen innerhalb des Editors entstehen.

Für Windows-Nutzer gibt es ein neues 64-Bit-JDK. Dadurch können Entwickler der IDE mehr RAM zuweisen, was ebenfalls die Performance verbessern sollte. Keine Neuigkeiten gibt es hingegen im Hinblick auf die Java-9-Unterstützung. Diese befindet sich nach Aussage von JetBrains noch in der Entwicklung, bald soll es aber dazu Neuigkeiten geben – es bleibt also spannend.

Eine vollständige Liste mit Änderungen gibt es auf dem JetBrains Blog, herunterladen kann man sich die aktuelle EAP-Verison auf der entsprechenden Download-Seite.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare
  1. Steven2017-03-28 09:27:48

    Ich finde deren Lizenzmodell etwas gruselig.
    Ist es so, dass nach einem Jahr die Software nicht mehr läuft, oder haben sie das mittlerweile geändert? Kann sich ja nicht jede Firma/User jedes Jahr ne neue Lizens leisten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.