Das ist neu in IntelliJ IDEA 2021.3

IntelliJ IDEA 2021.3 bietet Unterstützung für Remote-Entwicklung (Beta) und führt mit der Aktion Repair IDE... eine neue Möglichkeit zur Behebung von IDE-Problemen ein. Die neue Version enthält zudem Debugger-Updates, die neue Kotlin-Inspektion „Constant conditions“ sowie weitere nützliche Neuerungen. Im Folgenden möchten wir diese und weitere wichtige Funktionen näher erläutern.

Wichtige Updates

Remote-Entwicklung

Remote-Entwicklung
Beta
Ultimate

IntelliJ IDEA Ultimate unterstützt jetzt eine Beta-Version unseres neuen Remote-Entwicklungsworkflows. Dieser ermöglicht Ihnen, von überall auf der Welt eine Verbindung zu einem Remote-Computer herzustellen, auf dem IntelliJ IDEA als Backend ausgeführt wird. Die gesamte Verarbeitung erfolgt auf diesem leistungsstarken Remote-System, und Sie können so reibungslos an Ihrem Projekt arbeiten, als ob es sich auf Ihrem lokalen Computer befinden würde. Diese Funktion können Sie über den Begrüßungsbildschirm von IntelliJ IDEA nutzen oder über eine neue Anwendung namens JetBrains Gateway, die Sie in der JetBrains Toolbox App herunterladen können.

Darüber hinaus können Sie mit Space – einer zentralen Plattform für Ihre gesamte Softwareentwicklungspipeline – Entwicklungsumgebungen erstellen, vorbereiten, freigeben, reproduzieren, pausieren und verwalten.

Weitere Einzelheiten dazu finden Sie in diesem Blogbeitrag.

Fehlerbehebung bei IDE-Problemen

Fehlerbehebung bei IDE-Problemen

IntelliJ IDEA 2021.3 bietet eine neue, schnellere Möglichkeit zur Diagnose und Behebung von Problemen, die die Funktionsfähigkeit Ihrer IDE beeinträchtigen. Wenn Ihre IDE nicht richtig funktioniert, rufen Sie im File-Menü die neue Aktion Repair IDE... auf. Diese führt Sie durch eine Reihe von Schritten, die verschiedene häufige Probleme beheben.

„Constant conditions“-Inspektion für Kotlin

Constant conditions-Inspektion für Kotlin

Mit der neuen Inspektion Constant conditions hilft Ihnen IntelliJ IDEA dabei, nicht-triviale Bedingungen und Werte zu erkennen, von denen statisch bekannt ist, dass sie immer „true“ , „false“, „null“ oder „0“ sind. Sie funktioniert genauso wie die entsprechende Java-Inspektion und unterstützt größtenteils die gleichen Prüfungen. Sie finden diese neue Inspektion unter Preferences / Settings | Editor | Inspections | Kotlin | Probable bugs.

Debugger-Updates für Kotlin

Smart Step Into

Wenn Sie einen Ausdruck mit verketteten Methodenaufrufen und Lambdas debuggen, bietet Ihnen die Aktion Step Into automatisch die Funktionalität von Smart Step Into. Sie hebt die Methoden und Lambdas hervor, die Sie schrittweise ausführen können. Zur Verwendung klicken Sie auf die Schaltfläche Step Into am oberen Rand des Debug-Toolfensters oder drücken Sie F7. Die IDE markiert dann die Stellen, an denen Sie in den Code einsteigen können, und Sie können die gewünschte Zeile durch Anklicken auswählen.

Inline-Stack-Frames

Der Debugger erkennt jetzt Kotlin-Inline-Funktionen und kann Inline-Funktionsaufrufe im Stack-Trace-Panel anzeigen. Sie können zu diesen Aufrufen navigieren und die Variablen in jedem Frame einsehen und auswerten.

Editor

Schriftgröße in allen Tabs ändern

Wie von Ihnen gewünscht haben wir es ermöglicht, die Schriftgröße in allen geöffneten Tabs gleichzeitig mit dem Mausrad anzupassen (⌘+Mausrad auf macOS und Strg+Mausrad auf Windows und Linux). Um diese Funktion zu aktivieren, öffnen Sie Preferences / Settings | Editor | General, wählen Sie Change font size with Command + mouse wheel in und aktivieren Sie die Option All editors. Wenn Sie Active editor auswählen, wird durch diese Aktion nur die Schriftgröße der aktuell bearbeiteten Datei geändert.

Verbesserte Intention-Vorschau

IntelliJ IDEA bietet eine hilfreiche Vorschau auf die Ergebnisse von Intention-Aktionen und Quick-Fixes, um die Auswirkungen zu überprüfen, bevor Sie eine Änderung auf Ihren Code anwenden. Sie finden diese Funktion im Menü Intention actions. Um die Vorschau zu aktivieren, drücken Sie F1 auf macOS bzw. Strg+Q auf Windows und Linux.

Seit der Einführung in v2020.1 haben wir kontinuierlich an der weiteren Verbesserung der Intention-Vorschau gearbeitet. In IntelliJ IDEA 2021.3 funktioniert sie für mehr Intention-Aktionen und Quick-Fixes in Kotlin, und statt der Meldung „Preview isn’t available“ (Keine Vorschau verfügbar) wird eine informativere HTML-Beschreibung der nicht unterstützten Intention-Aktionen angezeigt. Darüber hinaus zeigt die Vorschau bei Aktionen, die sich auf mehrere Dateien auswirken, eine teilweise Vorschau der Auswirkungen an. Diese Teilvorschau reicht in der Regel aus, um sich ein Bild von den Änderungen zu machen, die durch die Aktion vorgenommen werden.

Verbesserte Markdown-Unterstützung

Verbesserte Markdown-Unterstützung

In IntelliJ IDEA 2021.3 können Sie Tabellen ganz einfach erstellen. Rufen Sie einfach das Kontextmenü auf und wählen Sie Insert | Table. Das war’s! Sie können die bevorzugte Größe durch Überfahren mit der Maus oder mit der Tastatur auswählen.

Die Zellenbreite der Tabelle wird während der Eingabe angepasst. Zur Bearbeitung des Tabelleninhalts stehen Ihnen schwebende Symbolleisten zur Verfügung.

Mit Umschalt+Enter erstellen Sie eine neue Zeile, und mit Tab navigieren Sie zur nächsten Zelle.

Schnellzugriff auf alle Aktionen für Tabs

Schnellzugriff auf alle Aktionen für Tabs

Die Arbeit mit Editor-Tabs ist jetzt noch einfacher. Klicken Sie einfach auf die drei Punkte im rechten Bereich des Tabs, um auf alle Tab-Aktionen zuzugreifen.

Benutzererfahrung

Neues Bookmarks-Toolfenster

Wir haben ein neues Bookmarks-Toolfenster eingeführt, das an die Stelle des ähnlichen Favorites-Toolfensters tritt. Ab sofort können Sie einfach F3 (macOS) bzw. F11 (Windows und Linux) drücken, um Ihre Dateien, Ordner oder Klassen als wichtig zu markieren.

Wenn Sie ein Lesezeichen hinzufügen, sortiert IntelliJ IDEA es standardmäßig im Bookmarks-Toolfenster unter dem Knoten ein, der den Namen Ihres Projekts trägt. Jedes Mal, wenn Sie ein neues Lesezeichen hinzufügen, wird es an den Anfang der Liste unter diesem Knoten hinzugefügt. Mit der Option Sort Groups und Bookmarks in den Einstellungen des Toolfensters können Sie Ihre Lesezeichen nach Typ sortieren. Sie können auch neue Knoten erstellen und Elemente dorthin ziehen.

Teilbares Run-Toolfenster

Teilbares Run-Toolfenster

Ab v2021.3 können Sie das Run-Toolfenster in Tabs aufteilen. Auf diese Weise können Sie bei der parallelen Ausführung mehrerer Konfigurationen die Ergebnisse gleichzeitig sehen.

Um das Fenster zu teilen, ziehen Sie den Tab, den Sie sehen möchten, in den hervorgehobenen Bereich des Run-Toolfensters und legen Sie ihn dort ab. Um die Teilung aufzuheben, klicken Sie mit der rechten Maustaste auf den oberen Fensterbereich und wählen Sie im Kontextmenü den Eintrag Unsplit aus.

ML-basierte Suche nach Aktionen in Search Everywhere

ML-basierte Suche nach Aktionen in Search Everywhere

Bei der Suche nach Aktionen in Search Everywhere wird IntelliJ IDEA jetzt standardmäßig durch maschinelles Lernen unterstützt. Wir haben eine ML-basierte Formel trainiert, die Folgendes berücksichtigt:

  • Ihr persönlicher Aktionsverlauf.
  • Aktionshäufigkeiten unseres gesamten Nutzerbestands.
  • Länge der Suchanfrage, Name der Aktion usw.

Wir hoffen, dass Sie durch die ML-basierten Modelle bessere Suchergebnisse erhalten, die auf Ihre individuellen Bedürfnisse abgestimmt sind.

Verbesserte Verwendungssuche

Verbesserte Verwendungssuche

Wenn Sie mit ⌥F7 (macOS) bzw. Alt+F7 (Windows und Linux) nach den Verwendungen einer Methodenimplementierung suchen, fragt die IDE nicht mehr in einem Popup-Fenster, ob Sie auch nach Verwendungen der Basismethode suchen möchten. Stattdessen bezieht IntelliJ IDEA standardmäßig auch übergeordnete Methoden in die Suche ein. Wenn Sie dieses Verhalten ändern möchten, klicken Sie auf das Zahnrad, um die Einstellungen des Find Usages-Toolfensters zu öffnen, und deaktivieren Sie das Kontrollkästchen Search for base method usages.

Überarbeitete Verwendungsansicht

Der Dialog Show Usages wurde um mehrere nützliche Funktionen erweitert. Wir haben eine Quellcodevorschau für einzelne Verwendungen eingeführt, die Sie aufrufen können, indem Sie auf das quadratische Symbol in der oberen Symbolleiste klicken. Eine weitere Neuerung ist die Dropdown-Liste neben dem Vorschau-Symbol, mit der Sie den Suchumfang anpassen können. Außerdem zeigt die Titelleiste des Fensters jetzt die Art des gesuchten Codeelements und die Anzahl der Vorkommen an.

Eine weitere kleine, aber sehr praktische Änderung ist die Möglichkeit, die Dialogbreite festzulegen. Diese Einstellung wird auch beim nächsten Start beibehalten.

Knoten Empty Project überarbeitet, Knoten Multi-Module Project neu

In v2021.3 werden Sie einige Änderungen an den Knoten des IntelliJ-IDEA-Projektassistenten bemerken.

Sie können nun den Empty Project-Knoten auswählen, um ein einfaches Projekt zu erstellen, in dem Sie Dateien mit unterschiedlichen Typen bearbeiten und Java- und Kotlin-Klassen hinzufügen können. Die IDE konfiguriert das Projekt automatisch, sodass Sie es gleich kompilieren können, wenn Java- oder Kotlin-Klassen vorhanden sind.

Mit dem neuen Knoten Multi-Module Project erstellen Sie ein neues Projekt mit komplexer Struktur. Sobald das Projekt angelegt ist, öffnet sich der Dialog Project Structure, in dem Sie verschiedene Module hinzufügen können.

Updates für die Barrierefreiheit

In IntelliJ IDEA 2021.3 wurden einige Probleme mit der Barrierefreiheit behoben, um die Arbeit mit Screenreadern komfortabler zu gestalten. Aufgrund Ihrer Anfragen haben wir das Toolfenster-Widget-Popup und das Kurzdoku-Popup, die bisher beim Überfahren mit der Maus angezeigt wurden, deaktiviert. Wir haben auch ein Problem beim Aufrufen des Dialogs Go to Declaration behoben.

Auch unter macOS haben wir in dieser Version die Barrierefreiheit verbessert. Wir haben mehrere Probleme mit dem Voiceover-Fokus gelöst, und bei der Projekterstellung können Screenreader jetzt die Listenelemente im Projektassistenten erkennen. Um Ablenkungen beim Programmieren zu minimieren, haben wir die Anzahl der Hilfe-Tooltips verringert, auf die mit einem Ton hingewiesen wird.

Java

Inspektion zur Verfolgung unsicherer Zeichenfolgen

IntelliJ IDEA warnt Sie jetzt vor Gefahren wie SQL-Injection- und XSS-Schwachstellen, Zugänglichkeit von vertraulichen Daten und unsicherer Deserialisierung. Die IDE verhindert zudem, dass Sie unsichere Daten an sichere Methoden übergeben. Diese zusätzlichen Warnungen werden von der neuen Inspektion Non-safe string is passed to a safe method bereitgestellt.

Damit diese Inspektion funktioniert, müssen Sie die Zeichenfolgen mit den Annotationen @Untainted (sicher) und @Tainted (unsicher) markieren. Damit diese Annotationen gültig sind, müssen Sie die Abhängigkeit org.checkerframework.​checker.​tainting.​qual hinzufügen.

Weitere neue Java-Inspektionen

Wir haben zwei Inspektionen hinzugefügt, die Sie beim Vereinfachen Ihres Codes unterstützen. Die erste schlägt vor, collect(toList()) durch .toList() zu ersetzen. Zur Verwendung wird eine Java-Version ab 16 benötigt. Eine weitere Inspektion bietet an, collection.addAll(List.of("x")) durch collection.add(x) und map.putAll(Map.of("a", "b")) durch map.put("a", "b") zu ersetzen.

Verbesserte Refaktorierungen

Wenn Sie in Java eine lokale Variable einführen, werden die dafür geltenden Einstellungen nicht mehr in einem Popup angezeigt, das den Code, den Sie gerade schreiben, verdeckt. Stattdessen können Sie auf diese Optionen zugreifen, indem Sie auf das Zahnradsymbol neben der Variable klicken oder das Tastenkürzel ⌥⇧O (macOS) bzw. Alt+Umschalt+O (Windows) drücken.

Das Refactoring Introduce parameter wurde ebenfalls verbessert. Wenn Sie dieses Refactoring mit ⌥⌘P (macOS) oder Strg+Alt+P (Windows und Linux) aufrufen, fragt die IDE, wo Sie die Verwendungen ersetzen möchten. Nachdem Sie diese Auswahl getroffen haben, können Sie ein Zahnradsymbol anklicken, um weitere Einstellungen für das Refactoring zu konfigurieren.

Classpath-Anpassung in Run/Debug-Konfigurationen

Classpath-Anpassung in Run/Debug-Konfigurationen

Manchmal wäre es hilfreich, im Run/Debug Configurations-Dialog einen konfigurationsspezifischen Klassenpfad einstellen zu können. Ab dieser Version haben Sie mit Modify options | Modify classpath die Möglichkeit dazu.

Kotlin

Refactoring Extract constant

Refactoring Extract constant

Wir haben ein neues Refactoring eingeführt, mit dem Sie Konstanten in Kotlin extrahieren können. Um es zu verwenden, legen Sie die Einfügemarke auf eine Zeichenfolge und drücken Sie ⌥⌘C (macOS) bzw. Strg+Alt+C (Windows und Linux).

Inspektion „Possibly blocking call in non-blocking context“ verbessert

Inspektion Possibly blocking call in non-blocking context verbessert

Die Inspektion Possibly blocking call in non-blocking context warnt Sie, wenn Sie eine Coroutine im falschen Kontext verwenden. In diesem Release zeigt die Inspektion nicht nur eine Warnung an, sondern bietet auch einen kontextspezifischen Quick-Fix an.

Außerdem haben wir einige weitere Verbesserungen vorgenommen. Die Inspektion deckt jetzt mehr Fälle ab und kann an Ihre individuelle Umgebung angepasst werden.

Inline-Hints für Ranges

Inline-Hints für Ranges

Manchmal kann es schwierig sein, den Überblick über die verschiedenen Deklarationsarten von Kotlin-Ranges zu behalten. Um Ihnen dies etwas einfacher zu machen, haben wir Inline-Hints hinzugefügt, die mit einfachen mathematischen Zeichen erklären, was die Begriffe oder Symbole in den Ranges bedeuten. Wenn Sie diese Unterstützung nicht benötigen, können Sie sie einfach deaktivieren. Klicken Sie dazu einfach mit der rechten Maustaste auf einen Hint und wählen Sie Disable ‘Ranges’ hints type.

Verbesserter Projektassistent

Verbesserter Projektassistent

Wir haben das Layout des Projektassistenten überarbeitet und Tooltips für alle Felder hinzugefügt, damit Sie immer wissen, welche Informationen benötigt werden. Auch der Vorlagenbereich wurde aktualisiert – wir haben einige kaum verwendete Vorlagen entfernt und die neue Vorlage „Compose Web Application“ hinzugefügt.

Nicht zuletzt ist auch die Projekteinrichtung viel einfacher geworden. Sie müssen jetzt nur noch die wichtigsten Felder ausfüllen.

Scala

Verbesserte Scala-3-Unterstützung

Verbesserte Scala-3-Unterstützung

Das Hauptaugenmerk dieser Version lag auf der Scala-3-Unterstützung. Wir haben Hervorhebung, Navigation und Auto-Completion für end-Markierungen hinzugefügt. Die Auto-Completion unterstützt jetzt die Schlüsselwörter given, using und export, Soft-Schlüsselwörter sowie die klammerlose „Quiet“-Syntax. Der TASTy-Reader kann jetzt package object sowie Varianz und Bounds bei höherwertigen Typen parsen. Lexer- und Parserfehler werden jetzt deutlich schneller hervorgehoben. Es gibt jetzt mehr Inspektionen, die mit Scala 3 kompatibel sind. Wir haben die Auflösung von given-Importen verbessert und unterstützen jetzt Top-Level-Member mit dem Modifizierer final sowie abstract lazy val.

Öffnen von cross-kompilierten Projekten als Scala 2

Öffnen von cross-kompilierten Projekten als Scala 2

Viele Projekte, die sowohl für Scala 2 als auch für Scala 3 kompiliert werden, werden als für Scala 2 kompilierte Scala-3-Projekte modelliert, obwohl es sich technisch gesehen um Scala-2-Projekte handelt.

Wenn Sie solche Projekte als Scala 2 öffnen, kann die IDE die richtige Scala-Version verwenden und arbeitet zuverlässiger.

Datenflussanalyse für Scala

Datenflussanalyse für Scala

Das Scala-Plugin unterstützt jetzt die Datenflussanalyse, mit der Sie Programmierfehler leichter erkennen können. Mehr Details finden Sie in unserem kürzlich veröffentlichten Blogartikel.

Auto-Completion für Scala-Compileroptionen

Auto-Completion für Scala-Compileroptionen

Kaum jemand kennt die unzähligen Optionen des Scala-Compilers auswendig, zumal sie sich je nach verwendeter Scala-Version unterscheiden.

Die Auto-Completion unterstützt Sie jetzt bei der Eingabe der möglichen Optionen und bietet sogar eine Kurzdokumentation zu jeder Option.

Inlay-Hints für Ranges

Inlay-Hints für Ranges

Haben Sie schon mal darüber gegrübelt, ob 1 to 3 ein inklusiver oder exklusiver Range ist? Und wie verhält es sich mit 1 until 3? Oder Range(1, 3)? Sie müssen nicht länger grübeln – Ihre IDE gibt Ihnen jetzt eine klare Antwort.

JavaScript

Neue Inspektion zum Aktualisieren von Abhängigkeiten

Neue Inspektion zum Aktualisieren von Abhängigkeiten
Ultimate

In IntelliJ IDEA 2021.3 können Sie Ihre npm-Pakete direkt im Editor auf die neueste Version aktualisieren! Öffnen Sie die Datei package.json, legen Sie die Einfügemarke auf die Paketversion, die Sie aktualisieren möchten, drücken Sie ⌥⏎ (macOS) bzw. Alt+Enter (Windows und Linux) und wählen Sie dann Update ‘Paketname’ to the latest version. Wenn Sie mit der Maus über die Paketversion fahren, wird außerdem ein Quick-Fix angezeigt.

Verbesserte Code-Completion für HTML

Verbesserte Code-Completion für HTML
Ultimate

Wir haben die Funktionsweise der HTML-Completion verbessert. Wenn Sie im Editor einen Tag-Namen oder eine Abkürzung eingeben oder die Code-Completion explizit aufrufen, zeigt IntelliJ IDEA sofort relevante Vorschläge an. Bisher wurden die Vorschläge nur angezeigt, nachdem Sie das <-Zeichen eingegeben haben. Außerdem sollte die Code-Completion für Zeichenentitäten jetzt besser funktionieren.

SSH

Proxy-Unterstützung für SSH-Verbindungen

Eine lang erwartete neue Funktion ermöglicht es Ihnen, in Ihrer SSH-Konfiguration unter Preferences / Settings | Tools | SSH Configurations einen HTTP- oder SOCKS-Proxyserver anzugeben. Im neuen HTTP/SOCKS-Abschnitt können Sie den Proxy-Typ auswählen, einen Hostnamen und einen Port festlegen und bei Bedarf Anmeldenamen und Passwort für die Authentifizierung angeben. Sie haben auch die Möglichkeit, Ihre SSH-Proxy-Einstellungen mit den globalen IDE-Einstellungen zu synchronisieren. Aktivieren Sie dazu das Kontrollkästchen Use global IDE proxy settings.

Profiler

Vergleichen von .jfr-Snapshots

Vergleichen von .jfr-Snapshots
Ultimate

Sie können jetzt sehr einfach überprüfen, ob Ihre Änderungen wie beabsichtigt funktionieren oder eine Regression verursacht haben. Öffnen Sie dazu einfach im Profiler-Toolfenster zwei Snapshots und vergleichen Sie sie. Klicken Sie im neueren Snapshot auf das Diff-Symbol und wählen Sie den Snapshot aus, den Sie als Vergleichsgrundlage heranziehen möchten. Die IDE kann das Ergebnis als Flammendiagramm, Aufrufbaum oder Methodenliste anzeigen.

Unterstützung für Async Profiler 2.0 unter Windows
Ultimate

Die macOS- und Linux-Versionen von IntelliJ IDEA unterstützen Async Profiler 2.0 bereits seit v2021.2. Ab v2021.3 unterstützt auch die Windows-Version Async Profiler 2.0 „out of the box“. Diese Unterstützung sorgt für ein reibungsloseres Profiling und verbessert die Anzeige von nativen Funktionen in Snapshots.

Build-Tools

Überarbeitete Maven-Konfigurationen

Überarbeitete Maven-Konfigurationen

Mit dieser Version setzen wir die Verbesserung unserer Run/Debug-Konfigurationen fort – diesmal haben wir die Maven-Konfigurationen gründlich überarbeitet. Die wichtigsten Parameter sind alle auf einem Bildschirm zusammengefasst, während zusätzliche Optionen unter „Modify options“ zugänglich sind.

Unterstützung für .mvn/maven.config

Unterstützung für .mvn/maven.config

Wenn Sie die Maven-Einstellungen für jedes Projekt in der .mvn/maven.config-Datei konfigurieren möchten, aktivieren Sie unter Preferences / Settings | Build, Execution, Deployment | Maven am unteren Bildschirmrand die Option Use settings from .mvn/maven.config. Beachten Sie, dass die Einstellungen in dieser Datei die Maven-UI-Standardeinstellungen überschreiben.

Versionsverwaltung

Checkout and Rebase onto Current für Remote-Branches

Checkout and Rebase onto Current für Remote-Branches

Wenn Sie einen ausgewählten Branch auschecken und ein Rebasing auf dem aktuell ausgecheckten Branch durchführen möchten, können die Aktion Checkout und Rebase onto Current verwenden. Diese Aktion war bisher nur für lokale Branches verfügbar. Ab IntelliJ IDEA 2021.3 können Sie sie auch für Remote-Branches verwenden.

VCS-Einstellungen mit neuer Struktur

Wir haben die Einstellungen unter Preferences / Settings | Version Control neu strukturiert, um die wichtigsten Konfigurationsoptionen leichter auffindbar zu machen. Der Knoten Version Control dient nun als Ausgangspunkt für die Navigation, mit Links zu allen verfügbaren Einstellungen. Wenn Sie von dort aus zum Git-Knoten navigieren, werden Sie feststellen, dass wir die Einstellungen in Abschnitte unterteilt haben, die den wichtigsten Vorgängen entsprechen: Commit, Push und Update. Außerdem sind die Parameter in diesen Abschnitten jetzt sinnvoller strukturiert. Wir haben mit Directory mappings einen separaten Knoten für Verzeichniszuordnungen hinzugefügt, und die Hintergrundoperationen sind jetzt standardmäßig aktiviert. Der Knoten Background ist nicht mehr vorhanden.

Neues Changes-Toolfenster

Neues Changes-Toolfenster

Beginnend mit Version 2021.3 zeigt IntelliJ IDEA die Unterschiede zwischen Commits in einem separaten Changes-Toolfenster links neben dem Editor an.

Neue Aktion Push All up to Here

Neue Aktion Push All up to Here

Die neue Aktion bietet Ihnen die Möglichkeit, nur diejenigen Commits zu pushen, von denen Sie überzeugt sind – den Rest können Sie für später aufheben.

Mit dieser Funktion können Sie einen Commit im Log-Tab des Git-Toolfensters auswählen und nur die Commits bis zu diesem ausgewählten Commit pushen. Um diese Funktion zu verwenden, wählen Sie den Commit aus, bei dem Sie den Push-Vorgang anhalten möchten, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Kontextmenü die neue Aktion Push All up to Here aus.

Hervorgehobene Änderungen ausrichten

Hervorgehobene Änderungen ausrichten

In den Einstellungen der Diff-Anzeige, die über das Zahnradsymbol zugänglich sind, haben wir die neue Option Align Changes Highlighting hinzugefügt. Diese Funktion verbessert die Lesbarkeit des Diffs insbesondere bei komplexen Änderungen, da die unveränderten Zeilen so ausgerichtet werden, dass sie nebeneinander angezeigt werden. Auf diese Weise lassen sich hinzugefügte oder entfernte Codeabschnitte klarer erkennen.

Terminal

ConPTY-Unterstützung unter Windows

ConPTY-Unterstützung unter Windows

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

Type-Ahead-Unterstützung

Type-Ahead-Unterstützung

Die neue Type-Ahead-Unterstützung im IntelliJ-IDEA-Terminal nimmt Textänderungen vorweg und zeigt sie sofort hellgrau an. Dadurch können Sie in Remote-Terminals genauso schnell tippen wie in einem lokalen Terminal.

Debugger

Auswertung von Ausdrücken im Debugger

Auswertung von Ausdrücken im Debugger

In dieser Version haben wir die Auffindbarkeit der Funktion Evaluate verbessert. Zum Auswerten von Ausdrücken wurde früher oft auf Überwachungen ausgewichen. Statt den Evaluate-Dialog zu verwenden, wurde eine Überwachung erstellt und dann gleich wieder gelöscht. Das Evaluate-Feld ist jetzt direkt im Debug-Toolfenster zugänglich. Damit rückt die praktischste Methode zum Auswerten von Ausdrücken deutlicher ins Blickfeld der Nutzer*innen.

Frameworks und Technologien

gRPC-Anfragen im HTTP-Client
Ultimate

Der HTTP-Client von IntelliJ IDEA bietet grundlegende Unterstützung für gRPC-Anfragen. Wenn Sie das Schlüsselwort GRPC eingeben, um Ihre Anfrage zu beginnen, unterstützt Sie der HTTP-Client durch Code-Completion. Die IDE bietet Vorschläge zu bekannten gRPC-Diensten, unären und Server-Streaming-Methoden eines bestimmten Servers und vor allem zu den Feldern im Hauptteil der Anfrage.

Eine weitere neue Funktion generiert gRPC-Anfragen im HTTP-Client. Klicken Sie dazu einfach auf die Randleistensymbole in Ihren .proto-Dateien.

Binäre Antworten im HTTP-Client

Binäre Antworten im HTTP-Client
Ultimate

Der HTTP-Client erkennt Bilder in Antworten und zeigt sie in einer Vorschau in der Antwortkonsole an.

Unterstützung für Textstreams und JSON-Streams im HTTP-Client
Ultimate

Beim Testen von Streaming-Anwendungen in IntelliJ IDEA müssen Sie nicht mehr auf das Ende eines Streams warten: Der HTTP-Client zeigt die erhaltenen Inhalte direkt an. Möglich wurde dies durch die neu eingeführte Unterstützung für die folgenden Content-Typen: text/event-stream, application/stream+JSON und application/x-ndjson. Sie erhalten außerdem eine Benachrichtigung, wenn ein Stream endet.

Umleitung der HTTP-Client-Ausgabe in Datei/Verzeichnis
Ultimate

Sie können die Ausgabe des HTTP-Clients in eine benutzerdefinierte Datei oder ein benutzerdefiniertes Verzeichnis umleiten. Für erzwungene und „weiche“ Umleitungen stehen zwei Operatoren bereit:

  • Der Operator >> erstellt immer eine neue Datei und fügt dem Dateinamen den Suffix -n hinzu, wenn der angeforderte Dateiname bereits existiert.
  • Der Operator >>! überschreibt existierende Dateien.

Benennung von HTTP-Anfragen
Ultimate

Sie können einer Anfrage entweder in Form eines Kommentars (@name) oder als Text in der ersten Trennlinie (###) einen Bezeichner zuordnen. Die IDE versteht diese Bezeichner und ermöglicht das Aufrufen von Anfragen im Services-Toolfenster sowie in den Dialogen Run Configuration, Run Anything und Search Everywhere.

Unterstützung für Qute-Templates

Unterstützung für Qute-Templates
Ultimate

Qute gehört jetzt zu den unterstützten Template-Sprachen. Dies bedeutet, dass IntelliJ IDEA Sie bei der Entwicklung von Templates für Ihr Quarkus-Projekt mit Codehervorhebung, Auto-Completion und anderen nützlichen Funktionen unterstützt.

Auflösung und Completion von Referenzen aus sekundären Spezifikationsdateien

Auflösung und Completion von Referenzen aus sekundären Spezifikationsdateien
Ultimate

IntelliJ IDEA erkennt auf mehrere Dateien verteilte und über $ref verknüpfte OpenAPI-Spezifikationen und bietet Completion für sie an.

Neue Annotationen für reaktiven Code: Blocking/Non-Blocking

Neue Annotationen für reaktiven Code: Blocking/Non-Blocking
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. Sobald Sie 'org.jetbrains:annotations:23.0.0' in Ihre Projektabhängigkeiten aufgenommen haben, können Sie Klassen und Methoden als @Blocking oder @NonBlocking annotieren. Dadurch erkennt die IDE blockierende Aufrufe in nicht blockierenden Kontexten wie Kotlin-Coroutinen oder in reaktivem Code, der mit Project Reactor, RxJava oder SmallRye Mutiny erstellt wurde.

Darüber hinaus unterstützt die IDE automatisch die entsprechenden Annotationen von Micronaut und SmallRye Mutiny.

Verbesserte Erkennung von blockierendem Code in Spring und Java EE

Verbesserte Erkennung von blockierendem Code in Spring und Java EE
Ultimate

IntelliJ IDEA erkennt jetzt mehr Fälle von blockierendem Code in Spring und Java EE, darunter in JpaRepository und CrudRepository von Spring Data, RestTemplate und JdbcTemplate, Spring-Feign-Schnittstellenmethoden, JPA-EntityManager-Aufrufen und als @Transactional annotierten Methoden und Klassen.

Überarbeitete Spring-Boot-Konfigurationen

Überarbeitete Spring-Boot-Konfigurationen
Ultimate

Wir haben den Dialog Run/Debug Configurations für Spring-Boot-Projekte überarbeitet. Das Design ähnelt den Konfigurationen, die zuvor bereits für Java aktualisiert wurden. Die neue Oberfläche fasst die wichtigsten Einstellungen auf einem Bildschirm zusammen und ermöglicht das Konfigurieren weiterer Parameter unter Modify Options.

Verbesserte Unterstützung für Spring-Boot-Applikationsdateien

Verbesserte Unterstützung für Spring-Boot-Applikationsdateien
Ultimate

IntelliJ IDEA bietet jetzt Code-Completion in weiteren Konfigurationsdateien (.properties oder .yaml), wenn in einem spring.config.import-Schlüssel auf eine andere Datei verwiesen wird. Das Einrichten komplexer und benutzerspezifischer Spring-Boot-Konfigurationsdateien wurde ebenfalls verbessert.

Verweise auf application.yaml

Verweise auf application.yaml
Ultimate

In Spring-Boot-Projekten bietet die IDE jetzt Code-Completion sowie Verwendungssuche für Verweise auf application.yaml aus @Value, @Scheduled und Environment.getProperty().

Bessere Unterstützung für @NamedQuery aus Spring-Data-Repositories

Bessere Unterstützung für @NamedQuery aus Spring-Data-Repositories
Ultimate

Für Abfragen, die in Spring-Data-JPA-Projekten als @NamedQuery deklariert sind, werden jetzt Abfragemethoden-Vorschläge bereitgestellt. Sie können außerdem über das Randleistensymbol zur Definition einer @NamedQuery navigieren.

Kotlin-Unterstützung für Java EE CDI
Ultimate

Ab v2021.3 können Sie alle CDI-Inspektionen auch in Kotlin-Dateien verwenden. Bisher funktionierten diese Inspektionen nur in Java-Dateien. Darüber hinaus werden in Kotlin-Dateien CDI-Randleistensymbole angezeigt. Sie ermöglichen die einfache Navigation zu Injektionspunkten oder Injektionskandidaten, Bean-Makern, Disposer-Methoden und Ereignissen.

Verbesserte UML-Klassendiagramme
Ultimate

Wir haben sowohl in Java als auch in Kotlin alle Vorgänge in Verbindung mit UML-Klassendiagrammen beschleunigt. Das Öffnen von Diagrammen, das Wechseln zwischen Kategorien, das Zoomen und die Rückgängig-/Wiederherstellen-Funktion sind allesamt schneller geworden. Weitere wichtige Änderungen sind ein neues Raster, die Hervorhebung von Membern und ein Dokumentationsvorschau-Popup.

Wenn Sie das Erscheinungsbild des Diagramms anpassen möchten, wählen Sie im Kontextmenü den Eintrag Appearance.

Datenbank-Tools

Aggregate im Dateneditor

Aggregate im Dateneditor
Ultimate

Wir haben die Möglichkeit hinzugefügt, eine aggregierte Ansicht für einen Zellenbereich anzuzeigen. Diese lang erwartete Funktion hilft Ihnen bei der Verwaltung Ihrer Daten und dürfte Ihnen so manche zusätzliche Abfrage ersparen! Der Dateneditor wird dadurch noch leistungsfähiger und benutzerfreundlicher und kommt Excel und Google Tabellen einen Schritt näher.

Wählen Sie einfach den gewünschten Zellenbereich aus, klicken Sie mit der rechten Maustaste und wählen Sie Show Aggregate View.

Zuordnungen zwischen DDL- und echten Datenquellen

Zuordnungen zwischen DDL- und echten Datenquellen
Ultimate

Dieses Release ist eine logische Fortsetzung des letzten, das die Möglichkeit einführte, eine DDL-Datenquelle anhand einer echten Datenquelle zu generieren. Dieser Workflow wird jetzt vollständig unterstützt. Sie haben folgende Möglichkeiten:

  • Generieren Sie eine DDL-Datenquelle aus einer echten Datenquelle: siehe Ankündigung zur Version 2021.2.
  • Ordnen Sie eine DDL-Datenquelle einer echten Datenquelle zu.
  • Vergleichen Sie beide und synchronisieren Sie sie in beiden Richtungen.

Zur Erinnerung: Eine DDL-Datenquelle ist eine virtuelle Datenquelle, deren Schema auf einer Reihe von SQL-Skripten basiert. Das Speichern dieser Dateien in Ihrer Versionsverwaltung bietet Ihnen die Möglichkeit, Ihre Datenbanken zu versionieren.

Auf dem neuen Tab DDL mappings in den Datenkonfigurationseigenschaften können Sie vorgeben, welche reale Datenquelle welcher DDL-Datenquelle zugeordnet ist.

Zuordnungen zwischen DDL- und echten Datenquellen

Neues Diff-Fenster für Datenbanken
Ultimate

Das neue Datenbank-Diff-Fenster ist über das Kontextmenü zugänglich. Es bietet eine bessere Benutzerführung und zeigt auf der rechten Seite genau an, welches Ergebnis Sie bei einer Synchronisierung erhalten.

Die Legende im rechten Fensterbereich zeigt an, was die Farben für das potenzielle Ergebnis bedeuten:

  • Grün und kursiv: Ein Objekt wird erstellt.
  • Grau: Ein Objekt wird gelöscht.
  • Blau: Ein Objekt wird geändert.

Im Tab Script preview sehen Sie das Ergebnisskript, das entweder in einer neuen Konsole geöffnet oder in diesem Dialog ausgeführt werden kann. Die Änderungen, die durch dieses Skript vorgenommen werden, führen dazu, dass die Datenbank rechts (Ziel) zu einer Kopie der Datenbank links (Quelle) wird.

Neben dem Tab Script preview enthält der untere Fensterbereich zwei weitere Tabs: Object Properties Diff und DDL Diff. Sie zeigen die Unterschiede zwischen den jeweiligen Versionen des Objekts in Ursprungs- und Zieldatenbank an.

Introspektionsstufen

Introspektionsstufen
Oracle
Ultimate

Wir haben drei Introspektionsstufen für Oracle-Datenbanken eingeführt:

  • Stufe 1: Namen und Signaturen aller unterstützten Objekte, ausgenommen Namen von Indexspalten und privaten Paketvariablen
  • Stufe 2: Alles außer dem Quellcode
  • Stufe 3: Alle Daten

Die Introspektion ist auf Stufe 1 am schnellsten und auf Stufe 3 am langsamsten. Über das Kontextmenü können Sie die Introspektionsstufe nach Bedarf ändern.

Die Introspektionsstufe kann entweder für ein Schema oder für die gesamte Datenbank festgelegt werden. Die Schemata erben ihre Introspektionsstufe von der Datenbank, Sie können für sie aber auch eine abweichende Stufe festlegen.

Die Introspektionsstufe wird durch die pillenähnlichen Symbole neben dem Datenquellensymbol angezeigt. Je höher der Füllgrad der Pille ist, desto höher ist die Introspektionsstufe. Ein blaues Symbol bedeutet, dass die Introspektionsstufe direkt festgelegt ist, während ein graues Symbol eine geerbte Stufe darstellt.

QA-Tools

Seitenobjekt-Editor

Bearbeiten von Selenium-Seitenobjekten

Ein riesiges Update unterstützt die UI-Testautomatisierung mit Selenium. Der visuelle Editor hilft Ihnen jetzt bei der Wartung vorhandener Seitenobjekt-Klassen. Bisher war es nur möglich, neue Seitenobjekt-Klassen zu generieren, aber jetzt können bestehende Seitenobjekt-Klassen sogar direkt – ohne visuellen Editor – aktualisiert werden. IntelliJ IDEA erkennt Seitenobjekt-Klassen automatisch und markiert sie mit einem entsprechenden Symbol in der Randleiste. Durch Anklicken dieses Symbols können Sie einen visuellen Editor öffnen und der Seitenobjekt-Klasse neue Elemente hinzufügen.

Test Data

Test Data

Das neueste Plugin des Test Automation Kit hat neben einigen kleineren Fehlerkorrekturen eine nützliche Zusatzfunktion für die Generierung von Mehrfachdaten erhalten. Jetzt können Sie Präfix, Suffix und Trennzeichen mit einer mehrzeiligen Definition ändern.

Testmanagement

Testlaufhierarchie

Wir haben Unterstützung für mehrstufige Testläufe implementiert. Sie können jetzt mehrere untergeordnete Testläufe für bestimmte Funktionsdomänen oder Testtypen erstellen. Jeder übergeordnete Testlauf aggregiert die Ergebnisse der untergeordneten Testläufe und stellt Gesamtstatistiken für alle untergeordneten Testläufe bereit.

Mehrfachverwendung von Testschritten

Wenn Sie unsere Funktion „Local TMS“ verwenden, um Ihre Testfälle in Markdown-Dateien zu verwalten, können Sie Testschritte sehr einfach deklarieren und in mehreren Testfällen wiederverwenden. Schritte zur mehrfachen Verwendung werden als regulärer Testfall mit einer eindeutigen numerischen ID deklariert. Wenn Sie in anderen Testfällen auf diesen Testfall verweisen, ersetzt IntelliJ IDEA beim Generieren von Vorschauen, Testläufen oder Codevorlagen für automatische Tests diese Referenzen durch die entsprechenden Testschritte.

Kubernetes

Verbesserte Formatierung für Helm-Templates

Verbesserte Formatierung für Helm-Templates
Ultimate

Beim Formatieren Ihrer Helm-Templates können Sie sich auf ein korrektes Ergebnis verlassen. Wir haben alle diesbezüglichen Probleme behoben, sodass die Formatierung jetzt viel zuverlässiger funktioniert. Um die Verbesserungen zu sehen, klicken Sie im Menü auf Code | Reformat code oder Reformat file oder drücken Sie ⌥⌘L (macOS) bzw. Strg+Alt+L (Windows und Linux).

Hervorhebung von Blockelementen in Helm-Templates

Hervorhebung von Blockelementen in Helm-Templates
Ultimate

Blockelemente wie if, else, range, with und define werden jetzt in Helm-Templates hervorgehoben. Das Arbeiten mit Code, der Go-Templates einbettet, wird dadurch viel einfacher.

Sprachinjektion in ConfigMap-Ressourcen

Sprachinjektion in ConfigMap-Ressourcen
Ultimate

IntelliJ IDEA unterstützt jetzt in ConfigMap-Ressourcen die automatische Codeinjektion in verschiedenen Sprachen für Schlüssel mit Erweiterungen wie .yaml, .json, .properties usw. Die injizierten Codeteile sind grün hervorgehoben, und Sie können unsere Code-Insight-Funktionen für sie nutzen, einschließlich Code-Completion, Fehlerhervorhebung und mehr.

Wiederholung des letzten Befehls

Wiederholung des letzten Befehls
Ultimate

Sie können Ihren letzten helm-Befehl jetzt im Services-Toolfenster erneut ausführen. Klicken Sie dazu einfach auf das neue Symbol in der oberen rechten Ecke. Wenn Sie zum Beispiel den Befehl helm lint ausführen, können Sie nach Abschluss der Befehlsausführung auf das Symbol klicken, um den Befehl zu wiederholen.

Docker

Docker-Verbindung aus Minikube

Docker-Verbindung aus Minikube

Sie können jetzt ganz einfach aus Minikube eine Verbindung zu einem Docker-Daemon herstellen. Aktivieren Sie dazu unter Preferences / Settings | Build, Execution, Deployment die Optionsschaltfläche Minikube. Im Feld daneben zeigt die IDE automatisch die Docker-Daemon-Umgebungen des erkannten Minikube an, die Sie für die Verbindung verwenden können.

Einfacherer Verbindungsaufbau

Einfacherer Verbindungsaufbau

Sie können jetzt Docker-Verbindungen schneller herstellen, indem Sie einfach auf den entsprechenden Knoten doppelklicken oder das neue Tastenkürzel ⌘Enter (macOS) bzw. Strg+Enter (Windows und Linux) verwenden. Die Aktion Start container kann auch mit diesem Tastenkürzel aufgerufen werden.

Neue Clean-up-Aktion

Neue Aktion Clean up

The new Clean up action works just like the prune terminal command. Wenn Sie auf die Knoten Networks, Volumes, Containers oder Images rechtsklicken und Clean up auswählen, löscht die IDE nicht verwendete Objekte. Sie können diese Aktion auch auf den Docker-Stammknoten anwenden, um alle nicht benötigten Objekte mit einem Klick zu entfernen.

Unterstützung für Compose V2

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

Um diese Option einzuschalten, aktivieren Sie unter Preferences / Settings | Build, Execution, Deployment | Docker | Tools das Kontrollkästchen Use Compose V2.

Image-Ebenen

Image-Ebenen

Image layers allow you to track all the commands that are applied to images. Um auf sie zuzugreifen, wählen Sie ein Image aus und gehen Sie zum Tab Layers. Wenn Sie dort einen Befehl auswählen, können Sie rechts auf den Link Analyze image for more information klicken, um detaillierte Informationen zu den Änderungen zu erhalten, die auf die einzelnen Ebenen angewendet wurden.

Container als Image speichern

Container als Image speichern

Wenn Sie einen vorkonfigurierten Container später verwenden möchten, können Sie ihn lokal als Image speichern und pushen, um ihn bei Bedarf jederzeit remote verwenden zu können. Klicken Sie dazu im Services-Toolfenster mit der rechten Maustaste auf den Container und wählen Sie Image | Save as a new Image.

Registry-Updates

Wir haben mehrere Änderungen in Verbindung mit der Docker-Registry vorgenommen. First off, the IDE now displays all available registries in separate nodes in the Services tool window. Bisher wurde nur die Docker Hub-Registry unterstützt. Version 2021.3 unterstützt jetzt auch GitLab (registry.gitlab.com) und JetBrains Space (.<benutzername>.registry.jetbrains.space).

Sie können die Registry-Knoten im Services-Toolfenster erweitern, das benötigte Image auswählen und mit Pull an den gewünschten Ort kopieren. Wenn mehrere Docker-Verbindungen vorhanden sind, fragt die IDE, wohin Sie das Image kopieren wollen. Es ist möglich, Images in jede hinzugefügte Registry zu pushen, und im Push-Dialog erkennt die IDE automatisch die verfügbaren Namensräume der jeweiligen Registry und zeigt sie in einer Dropdown-Liste an, damit Sie einen auswählen können.

Zu guter Letzt bietet die Completion Vorschläge für Images aus den Registries von JetBrains Space, GitLab und Docker-Hub.

Podman-Unterstützung

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

Sobald Podman in Ihrem Betriebssystem installiert und konfiguriert wurde, können Sie über Preferences / Settings | Build, Execution, Deployment | Docker eine Verbindung herstellen, indem Sie die Optionsschaltfläche TCP socket auswählen und die erforderlichen Felder ausfüllen.

Space-Integration

Merge-Requests und Code-Reviews in der IDE erstellen

Sie können jetzt für Ihre in Space gespeicherten Projekte Merge-Requests und Code-Reviews erstellen. Dabei können Sie zwei verschiedene Methoden nutzen:

  • Klicken Sie in der oberen Symbolleiste des Code Reviews-Toolfensters auf das +-Symbol und wählen Sie die gewünschte Aktion aus.
  • Klicken Sie im Log-Tab des Git-Toolfensters mit der rechten Maustaste auf den entsprechenden Commit und wählen Sie Space | Create merge request bzw. Create code review.

Für weitere Einzelheiten lesen Sie unseren Blogbeitrag oder sehen Sie sich die nachfolgenden GIF-Bilder an.

Dateien als gesehen markieren

Dateien als gesehen markieren

Wenn Sie ein Code-Review durchführen, werden die Dateien, die Sie noch nicht geöffnet haben, mit blauen Punkten gekennzeichnet. Dadurch können Sie sicherstellen, dass Sie keine wichtigen Änderungen übersehen. Wenn Sie später zu einer Datei zurückkehren möchten, können Sie im Kontextmenü Mark as Not Viewed auswählen. Dies funktioniert auch für GitHub-Pull-Requests.

Sonstiges