Menü
Developer

Entwicklungsumgebung: IntelliJ IDEA 2019.1 zeigt zuletzt besuchte Codestellen

Neben neuen Komfortfunktionen kennt die Entwicklungsumgebung die Switch Expressions im JDK 12 und Java-artige Lambda-Syntax in Groovy 3.0.

Von
vorlesen Drucken Kommentare lesen 10 Beiträge
IntelliJ IDEA 2019.1 ist auf Java 12 vorbereitet

JetBrains hat die erste Beta des Flaggschifftools IntelliJ IDEA 2019.1 veröffentlicht. Zu den Neuerungen im Editor gehören konfigurierbare Soft Wraps und eine Übersicht der zuletzt besuchten Codepassagen. Java-Entwickler finden unter anderem Switch Expressions, die mit JDK 12 kommen, und präzisere Warnungen für bedingte Ausdrücke und mathematische Operationen.

Eine Neuerung ist das Pop-up-Fenster "Recent Locations", das eine Übersicht aller zuletzt besuchten Code-Regionen in chronologischer Reihenfolge zeigt. Entwickler können in dem Fenster nach Codeabschnitten suchen – wahlweise anhand des Codetexts, des Dateinamens oder Breadcrumbs. Letztere Form der Navigation bietet IntelliJ IDEA seit Version 2016.2.

IntelliJ IDEA bietet vorgefertigte Sets von Tastaturkürzeln, die Entwicklern den Umstieg von anderen Entwicklungsumgebungen vereinfachen sollen. Im aktuellen Release findet sich Sublime Text als Neuzugang unter Preferences | Settings | Keymap. Eine weitere neue Einstellung findet sich unter Preferences | Settings | Editor | General: Dort lassen sich nun die automatischen, weichen Umbrüche (Soft-Wraps) auf einzelne Dateitypen beschränken. Soft-Wraps sind im Editor sichtbar, aber im Code sind keine Zeilenumbrüche gespeichert.

Mit Java 12 halten sogenannte Switch Expressions Einzug in die Programmiersprache. Sie erweitern die switch-Blöcke einerseits um eine vereinfachte Ausdrucksform über -> und erlauben zusätzlich, switch direkt für Ausdrücke zu verwenden. Folgendes Beispiel aus dem zugehörigen JEP 325 (JDK Enhancement Proposal) kombiniert beide Vorgehensweisen und ist dabei übersichtlicher und weniger fehleranfällig als die üblichen case-break-Abschnitte:

int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};

IntellilJ IDEA 2019.1 sucht switch-Blöcke, die sich in Java 12 vereinfachen lassen, und wandelt sie bei Bedarf automatisch um.Auch der umgekehrte Weg ist möglich.

Die IDE wandelt switch-Anweisungen Wunsch für Java 12 um.

(Bild: JetBrains)

Das Team hat erneut die Datenflussanalyse für Java erweitert. Als Folge grenzt IntelliJ IDEA Warnungen bei bedingten Ausdrücken über den ternären Auswahloperator ? nun präziser ein: Wenn beispielsweise eine Methode als @NotNull deklariert ist und folgende return-Anweisung enthält:

return x>0 ? wert : "Text";

beschränkt die IDE die Warnung auf die Variable wert, da die Zeichenkette nicht null sein kann.

Die Datenflussanalyse untersucht zudem mathematische Operatoren besonders für Multiplikation, den mathematischen Rest und Bit-Operatoren besser. Die IDE erkennt unter anderem neuerdings, dass für einen Integer-Wert ganzzahl die Bedingung if (ganzzahl * 2 == 7) immer false ergibt.

Zu den Neuerungen im Debugger gehört, dass Java-Entwickler im laufenden Debug-Prozess den jeweils aktiven Block verlassen und die Ausführung dahinter fortsetzen können. Außerdem löst der Mausklick auf eine Zeilennummer im Debug-Modus die Ausführung bis zu der jeweiligen Position aus. Schließlich berechnet der Debugger nun synchronisierte und Switch-Statements sowie Assert-Ausdrücke.

Der Debugger berechnet unter anderem Assert-Ausdrücke.

(Bild: JetBrains)

Für neue Projekte lagert IntelliJ IDEA nun standardmäßig den Build- und Run-Prozess an Gradle aus, Außerdem lässt sich die Option, ob die Prozesse intern vorgenommen oder an Gradle ausgelagert werden sollen, nun auf Projektebene festlegen statt global. Mehr eine Korrektur ist, dass HotSwap nun auch funktioniert, wenn Gradle den Build übernimmt.

In Groovy-Code kann die IDE neuerdings die bisher noch als experimentell gekennzeichneten Java-Syntax für Lambda-Ausdrücke erkennen. Der Editor bietet beim Erstellen der Ausdrücke Autovervollständigung, und Entwickler finden passende Formatierungen. Außerdem kann die Entwicklungsumgebung die Lambdas inspizieren. Zusätzliche Funktionen unter anderem für das Refactoring sollen in künftigen Releases folgen.

Die IDE inspiziert Java-artige Lambda-Syntax in Groovy-Code.

(Bild: JetBrains)

Weitere Details lassen sich den Blogbeiträgen zu den Early-Access-Builds EAP1, EAP2, EAP3, EAP4, EAP5 sowie zur Beta 1 entnehmen. Die Betaversion ist sowohl in der kostenfreien Community-Edition als auch für Kunden des Ultimate-Version über die Vorschauseite verfügbar. (rme)