IntelliJ IDEA 2022.1 erleichtert mit dem Dependency Analyzer die Verwaltung von Abhängigkeiten und die Lösung von Konflikten, vereinfacht mit einem überarbeiteten New Project-Assistenten die Erstellung neuer Projekte und bietet mit dem Notifications-Toolfenster einen verbesserten Überblick über die Benachrichtigungen der IDE. Darüber hinaus haben wir eine Reihe weiterer Verbesserungen vorgenommen, die wir Ihnen im Folgenden detailliert vorstellen möchten.
Der neu eingeführte Dependency Analyzer bietet umfangreiche Informationen über alle in Ihren Projekten und Unterprojekten verwendeten Maven- und Gradle-Abhängigkeiten. Dadurch können Sie Abhängigkeitskonflikte erkennen und beheben, identische Abhängigkeiten herausfiltern und ihre Präsenz in unterschiedlichen Bibliotheken prüfen sowie unkompliziert zwischen allen Abhängigkeiten navigieren, um Build-Konfigurationen zu korrigieren.
Wir haben die Benutzerführung des New Project-Assistenten überarbeitet, um die Projekterstellung zu vereinfachen. Sie können in Sekundenschnelle ein leeres Projekt starten, die vorkonfigurierten Optionen für Java, Kotlin, Groovy und JavaScript verwenden oder für komplexere Projekte Generatoren nutzen.
Das Event Log wurde durch das neue Notifications-Toolfenster ersetzt. In diesem separaten Toolfenster werden wichtige und hilfreiche Empfehlungen und Benachrichtigungen deutlicher hervorgehoben und besser strukturiert. Weitere Details finden Sie im entsprechenden Blogbeitrag.
Der aktualisierte Projektgenerator für Maven Archetype im New Project-Assistenten bietet eine während der Eingabe aktualisierte Direktsuche nach Archetypen, die Möglichkeit, einen Archetyp-Katalog im Zuge der Modulerstellung zu verwalten, sowie die Möglichkeit, erforderliche Eigenschaften nach Archetyp einzugeben.
Die Code-Vision-Funktionalität, die Ihnen direkt im Editor nützliche Informationen zu Ihrem Code bereitstellt, wurde um weitere Inlay-Hinweise erweitert. Die Liste der angezeigten Informationen umfasst jetzt Vererbungen, Verwendungen, Autorenschaft und zugehörige Probleme. Die Informationen sind jetzt alle standardmäßig aktiviert und können in den Einstellungen unter „Inlay Hints“ geändert werden. Die Einstellungen selbst wurden ebenfalls überarbeitet und erleichtern die Konfiguration mit einer neuen Bedienoberfläche.
Jetzt haben Sie die Möglichkeit, den Arbeitsbereich so auf die Editor-Tabs aufzuteilen, dass diese die gleiche Breite haben. Die dazugehörige Einstellung lautet Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.
UML-Diagramme können jetzt in den Formaten yEd (.graphml), JGraph (.drawio), Graphviz bzw. Graphviz mit Positionen (.dot), Mermaid (.md), Plantuml und IntelliJ IDEA (.uml) exportiert werden, um die Kompatibilität mit Drittanbieter-Tools zu gewährleisten.
Der Dialog Structural Search und Replace enthält jetzt eine Liste aller Vorlagen, um die Navigation zwischen ihnen zu vereinfachen. Außerdem kann der Dialog durch Anklicken eines Symbols angeheftet werden, und die Kontrollkästchen Injected code und Match case wurden neu angeordnet.
IntelliJ IDEA 2022.1 can now detect vulnerabilities in Maven and Gradle dependencies used in your projects by checking across the Checkmarx SCA Database and the National Vulnerability Database, thanks to the Package Сhecker plugin that is bundled with IntelliJ IDEA Ultimate.
Erfahren Sie mehr darüber in diesem Blogbeitrag.
Wenn Sie mit Markdown-Dateien arbeiten, die Befehle enthalten, können Sie diese mithilfe des Ausführen-Symbols in der Randleiste direkt aus der Datei heraus ausführen.
Mit der neuen Aktion Copy code snippet in Markdown-Blöcken können Sie Inhalte mit einem einzigen Klick in die Zwischenablage kopieren.
Die überarbeitete Symbolleiste ermöglicht die Erstellung von Listen und bietet ein Dropdown-Menü zur Auswahl von Überschriftenstilen. Die Symbolleiste kann angepasst werden, sodass Sie die Optionen aufnehmen können, die Sie benötigen.
Wir haben den LightEdit-Modus erweitert, um Ihnen noch mehr Möglichkeiten zu bieten, ohne dass Sie ein Projekt erstellen oder öffnen müssen. Ab sofort können Sie Ihren Code auch im projektfreien Modus neu formatieren.
Die neue Inspektion Incorrect formatting informiert Sie, wenn die aktuelle Formatierung einer Datei nicht mit Ihren Codestil-Einstellungen übereinstimmt.
Um eine einheitliche Formatierung Ihres Codes zu gewährleisten, haben wir die Option Add a space at line comment start um das Kontrollkästchen Enforce on reformat erweitert, das standardmäßig aktiviert ist. Die Option ist standardmäßig für Java, Kotlin und Groovy verfügbar und greift nur bei Zeilenkommentaren ein, die mit alphanumerischen Zeichen beginnen.
Der Befehlszeilen-Formatierer unterstützt einen „dry run“-Modus zur Validierung von Projektdateien. Wenn eine Datei formatiert werden muss, wird die Ausführung mit einem von null abweichenden Status beendet.
IntelliJ IDEA 2022.1 unterstützt neue Sprachmerkmale aus Java 18, das im März 2022 veröffentlicht wurde. Die IDE unterstützt jetzt Code-Snippets, das geänderte Pattern-Matching für Switch-Ausdrücke und einiges mehr. Einzelheiten finden Sie in diesem Blogbeitrag.
Die Kompatibilität des Java-Decompilers mit Java 17 wurde verbessert. Er unterstützt moderne Konstruktoren, zum Beispiel Sealed-Typen und Pattern-Matching, verbessert die „Switch-over-String“-Dekompilierung, bietet Typ-Annotationen und erkennt gängige Konstanten.
Wir haben Unterstützung für die in JUnit 5.7 eingeführten Neuerungen hinzugefügt, darunter die Annotationen @EnabledIf/DisabledIf
, @NullSource/EmptySource
und @TempDir
.
Die aktualisierte Vorlage Surround mit try/catch reicht Ausnahmen jetzt in eine RuntimeException gehüllt weiter, statt sie zu verschlucken.
IntelliJ IDEA 2022.1 unterstützt Kotlin 1.6.20 inklusive der neuesten Sprachmerkmale wie paralleles Kompilieren, Context-Receiver-Prototyp und verbesserte gemeinsame Nutzung von Code über alle Kotlin-Zielplattformen hinweg. Weitere Informationen über die neuen Kotlin-Updates erhalten Sie in diesem Blogbeitrag.
Durch die Optimierung der Paketindizes wurde die Geschwindigkeit der IDE bei der Code-Completion, der Syntaxhervorhebung und bei Vorgängen im Zusammenhang mit der Referenzsuche deutlich erhöht. Auch die Anzahl und der Umfang von Neuindizierungen nach Codeänderungen wurden verringert.
Wir haben die Funktionalität Smart Step Into beim Debuggen von Kotlin-Projekten um einige nützliche Verbesserungen und Updates erweitert. Darüber hinaus wurden mehrere Probleme mit Haltepunkten gelöst.
To ensure better Kotlin code coverage, the Kover plugin has been integrated with IntelliJ IDEA.
Die Code-Completion für Groovy unterstützt jetzt die meisten von Java bekannten Postfix-Vorlagen wie arg
, cast
, for
, iter
, nn
, notnull
, null
, not
, throw
, try
, var
, par
, sout
, serr
, while
, new
, reqnonnull
und return
.
IntelliJ IDEA Ultimate unterstützt jetzt Go-Microservices und stellt Features wie URL-Pfadreferenzen, Endpunkte, Search Everywhere und Randleistensymbole bereit. Die Nutzung setzt die Installation des Go-Plugins voraus und ist derzeit auf die Funktionen der Standardbibliothek beschränkt. Weitere Einzelheiten finden Sie hier.
Bei der Arbeit mit Spring Data MongoDB hebt IntelliJ IDEA jetzt JSON-Abfragen hervor, vervollständigt Operatoren und Dokumentenfelder und bietet Navigationsfunktionen von gemappten Entitäten zum Database-Toolfenster.
Eine neue Intention-Aktion für .proto-Dateien fügt bei unaufgelösten Message-Referenzen fehlende Importanweisungen hinzu. Nach Ergänzung der fehlenden Importanweisungen bietet die IDE Completion-Vorschläge für Message-Referenzen.
Mit IntelliJ IDEA Ultimate können Sie jetzt Anfragen ausführen und Completion-Vorschläge für Service- und Methodennamen direkt aus einer laufenden Serverinstanz erhalten. The project does not need to contain .proto files, but the server should support gRPC reflection.
IntelliJ IDEA Ultimate bietet jetzt eine verbesserte Unterstützung für Thymeleaf: Inspektionen geben seltener falsch positive Ergebnisse zurück, die IDE-Performance bei der Bearbeitung von Thymeleaf-Vorlagen wurde verbessert, und die Inspektions- und Hervorhebungsstufen wurden optimiert, um Ihnen das richtige Maß an Informationen zu bieten.
Das Helidon-Framework wird jetzt in IntelliJ IDEA Ultimate besser unterstützt. Die IDE vervollständigt jetzt Konfigurationsschlüssel in Properties- und .yaml-Dateien und unterstützt die Aktionen Go to Declaration und Quick Doc.
Wir haben eine Fortschrittsanzeige für Gradle-Prozesse wie das Herunterladen von Abhängigkeiten und den Import von Artefakten eingeführt. Damit können Sie Dateivorgänge genau nachvollziehen und die voraussichtliche Dauer abschätzen.
Wir haben das Maven-Compiler-Plugin mit einer experimentellen Funktionalität ausgestattet. Sie können jetzt das genaue Sprachniveau für Produktions- und Testcode separat festlegen. Diese Option kann unter Preferences/Settings | Build, Execution, Deployment | Build Tools | Maven | Importing aktiviert werden.
Wir haben die Code-Vision-Funktionalität erweitert: In IntelliJ IDEA können Sie jetzt ohne Umwege feststellen, wer gemäß VCS-Verlauf einen bestimmten Codeabschnitt geschrieben hat. Die Code Author-Inlay-Hinweise sind unter Preferences / Settings | Editor | General | Inlay Hints | Code Vision standardmäßig aktiviert.
Wir haben die Funktionalität von Annotate with Git Blame verbessert, um die Untersuchung von Änderungen zu erleichtern. Die IDE färbt den Unterschied zwischen den Zeilen direkt im Editor ein, wenn sich die Maus über einer Annotation befindet, und beim Anklicken wird das Git-Log-Toolfenster geöffnet.
Die Commit-Details umfassen jetzt Informationen zu GPG-Signaturen und Build-Status. Zuvor wurden diese Daten nur als Spalte im Git-Log angezeigt.
Die neue Bedienoberfläche für das Toolfenster Git File History ist jetzt unabhängig vom Indizierungsprozess. Die Daten werden in einer neuen Oberfläche dargestellt, auch wenn der Logindex ausgeschaltet ist.
IntelliJ IDEA erleichtert Ihnen das Arbeiten mit Änderungsvorschlägen, da Sie Änderungen jetzt lokal in der IDE anwenden oder als Commit festschreiben können.
IntelliJ IDEA 2022.1 bietet jetzt die Möglichkeit, je nach Dateityp unterschiedliche externe Diff- und Merge-Tools zu verwenden. Die Konfiguration erfolgt unter Settings / Preferences | Tools | Diff & Merge | External Diff Tools.
Wir haben die neue Profiler-Konfiguration IntelliJ Profiler implementiert. Damit kombinieren wir die Leistungsfähigkeit des Async Profiler und des Java Flight Recorder und kommen dem Ziel näher, ein einziges, allumfassendes Profiling-Tool für alle Plattformen zu implementieren.
Im Frames-Bereich des Debugger-Toolfensters haben wir die Aktion Drop Frame von der Symbolleiste entfernt und sie stattdessen in Form eines Inline-Symbols Reset Frame zugänglich gemacht.
Um den nutzbaren Bereich im Debugger-Toolfenster zu maximieren, werden die Tab-Beschriftungen jetzt standardmäßig ausgeblendet. Um sie wieder einzublenden oder ihre Position zu ändern, verwenden Sie die Option Show Tab Labels unter Layout Settings.
Der Page Object Editor im Plugin Selenium UI Testing wurde umfassend verbessert. Wir haben den Workflow optimiert und die Bedienoberfläche überarbeitet, um Ablenkungen zu minimieren. Sie können ohne Umwege Seitenelemente aus der Webseite in den Code einfügen und dann die Bearbeitung fortsetzen, ohne den Page Object Editor zu verlassen. Wenn Sie dem Code ein neues Seitenelement hinzufügen, haben Sie außerdem die Möglichkeit, den zu verwendenden Selektortyp auszuwählen.
Mit dem neuen Page Object-Assistenten können Sie beim Anlegen einer neuen Seitenobjekt-Klasse die Sprache und das Testautomatisierungs-Framework auswählen. Außerdem steht Ihnen der Assistent jetzt an allen Stellen in Ihrem Code zur Verfügung, an denen eine Abhängigkeit von der Selenium-Bibliothek vorhanden ist. Wenn Sie die automatische Generierung von Seitenobjekten mit unterschiedlichen Frameworks und angepassten Vorlagen ausprobieren möchten, ohne eine neue Datei anzulegen, steht Ihnen dazu ein spezieller Playground-Modus unter Tools | Open Selenium Page Object Playground zur Verfügung.
Das Ändern von aus dem Cluster geladenen Ressourcen kann jetzt im Editor-Tab erfolgen.
Sie können den Pfad zu kubectl manuell konfigurieren, wenn das Programm sich nicht am Standard-Speicherort befindet. Um den benutzerdefinierten Pfad anzugeben, gehen Sie zu Settings/Preferences | Build, Execution, Deployment | Kubernetes | Path to kubectl executable.
Für Pods ist jetzt eine Port-Weiterleitungsfunktion verfügbar. Um Ports weiterzuleiten, können Sie entweder das Symbol in der Symbolleiste verwenden oder den entsprechenden Eintrag im Kontextmenü auswählen.
Es gibt eine neue Aktion Describe Resource für alle Ressourcen in der Services-Ansicht. Sie können sie über das Kontextmenü aufrufen oder die Schaltfläche in der Symbolleiste anklicken.
Cluster-Ereignisse werden jetzt in einem separaten Knoten in der Services-Ansicht angezeigt, um Ihnen einen Überblick über die jüngsten Ereignisse im System zu bieten. Um die Ereignisse eines bestimmten Pods zu sehen, rufen Sie Describe Resource für den Pod auf und sehen Sie sich im Ergebnis den Abschnitt Events an.
Wir haben eine begrenzte Editor-Unterstützung für werf.yaml und zugehörige Helm-Template-Dateien eingeführt, einschließlich Code-Completion, Inspektionen, Quick-Fix-Vorschläge, Refactoring/Umbenennung für .Values.werf.image.*
und Validierung einiger Felder wie boolean
und int
.
IntelliJ IDEA Ultimate bietet jetzt Unterstützung für den Import untergeordneter Werte über import-values-Einstellungen. Dies wirkt sich bei Builtin-Objekten in Templates auf die Completion und Navigation aus.
Im Services-Toolfenster von IntelliJ IDEA 2022.1 wurde die Docker-UI umfassend überarbeitet. Die Überarbeitung erstreckt sich auf Container, Images, Netzwerke und Volumes.
Docker-Compose-Targets werden jetzt unterstützt. Um beispielsweise eine Spring-Boot-Anwendung auf einem Compose-Target auszuführen, öffnen Sie die Run-Konfiguration, erstellen Sie in Manage targets ein Compose-Target und führen Sie die Anwendung aus.
Bei Verwendung von Docker 1.6+ wird die Docker Registry HTTP API V2 unterstützt. Sie können einfache oder passwortgeschützte Docker-V2-Registries anlegen und alle üblichen Aktionen ausführen, z. B. Anzeige, Push und Pull von Images.
Die Remote-Entwicklung wird jetzt durch das Widget Backend Control Center unterstützt, das die CPU- und Speicherauslastung, die Festplattenkapazität und andere Parameter anzeigt, die Sie zur Überwachung des Backend-Status benötigen.
Mit einer neuen Sicherheitseinstellung können Sie jetzt die Weiterleitung von SSH-Schlüsseln verwenden, um den Zugriff auf Git-Repositories von Ihrem Remote-System aus zu authentifizieren. Alternativ können Sie auch das SSH-Agent-Hilfsprogramm verwenden.
Sie können jetzt den Downloadpfad und den genauen Speicherort für das IDE-Backend auf Ihrem Remote-System vorgeben.
Der JetBrains Client unterstützt jetzt mehr Dateieditoren, sodass Sie nicht nur Textdateien, sondern auch PNG-Bilder, UML-Diagramme, Jupyter-Notebook-Dateien und Android-Layoutressourcen bearbeiten können.
Im Randleistenmenü haben wir Run with coverage sowie ein Profiler-Fenster hinzugefügt. Das Kontextmenü enthält jetzt das Maven- und Gradle-Toolfenster und es wurden einige weitere hilfreiche Untermenüpunkte hinzugefügt.
Wir haben auch die Debugging-Funktionen verbessert und mehrere Aktionen bereitgestellt, die Ihnen bei der Remote-Entwicklung die Untersuchung Ihres Codes erleichtern.
Sie können jetzt mehrere Tabellen auswählen und in ein anderes Schema kopieren. Wählen Sie die Tabellen aus und drücken Sie F5
, um den Exportdialog zu öffnen. Wenn Sie eine einzelne Tabelle exportieren, können Sie die Spalten zuordnen und die DDL der neuen Tabelle ansehen und gegebenenfalls ändern.
Die IDE unterstützt den Export zwischen unterschiedlichen Datenbanksystemen. Das Zielschema kann sich also in jeder beliebigen Datenbank in Ihrem Projekt befinden. Weitere Informationen dazu finden Sie in diesem Blogartikel.
Jetzt können Sie Ergebnisse in MongoDB-Collections genauso einfach bearbeiten wie in relationalen Datenbanken. Auch Ergebnismengen, die Sie über .find()
erhalten, lassen sich jetzt bearbeiten. Dies funktioniert selbst dann, wenn Cursor-Methoden, die das Ergebnis verändern, wie sort()
oder limit()
, nach .find()
ausgeführt wurden.
Die Logik zum Abbrechen laufender Statements wurde aktualisiert. Es ist jetzt klar zu erkennen, dass die Anfrage abgebrochen wird. Außerdem werden Datenquellen nicht mehr ohne Warnung deaktiviert. Weitere Informationen bietet Ihnen dieser Blogbeitrag.
Jetzt können Sie den Prozess des Verbindungsaufbaus stoppen, ohne die Datenquelle zu deaktivieren. Wenn Sie auf Cancel klicken, während die Verbindung hergestellt wird, wird der Verbindungsaufbau gestoppt, und die Meldung Connection canceled wird angezeigt. Weitere Informationen zu diesem Update finden Sie in diesem Blogbeitrag.
Dank der integrierten React-Unterstützung konnten Sie in Ihren Next.js-Projekten alle wichtigen Funktionalitäten bisher schon nutzen. IntelliJ IDEA 2022.1 fügt Unterstützung für einige Framework-spezifische Aspekte hinzu – z. B. Seiten. Die IDE löst jetzt Pfade auf, die in der href
-Eigenschaft von Link
-Komponenten, in Formularen oder anderen Tags verwendet werden. Die Code-Completion, die Navigation im Code und das Refactoring funktionieren ebenfalls.
In diesem Release haben wir die Integration mit dem JavaScript-Toolmanager Volta verbessert. IntelliJ IDEA 2022.1 erkennt jetzt automatisch Yarn und npm, wenn sie mit Volta installiert wurden.
Für extension
-Methoden steht jetzt Auto-Completion zur Verfügung. Außerdem bietet der Editor an, extension
-Methoden und given
-Instanzen automatisch zu importieren. Neue Inspektionen für den infix
-Modifikator und die @targetName
-Annotation helfen Ihnen, einen einheitlichen Codestil beizubehalten. Wir haben die Performance des .tasty
-Readers erheblich verbessert, sodass die Indizierung von Scala-3-Bibliotheken jetzt bis zu doppelt so schnell erfolgt.
Sie können neue Scala-Projekte jetzt noch einfacher konfigurieren. Im überarbeiteten New Project-Assistenten können Sie in einem einzigen Schritt ein Projekt-JDK, das gewünschte Build-System und die Scala-Version auswählen.
Aliasnamen sind in Scala allgegenwärtig – zum Beispiel String
, Seq
, List
, Set
und Map
. Dies hat Auswirkungen auf die Syntaxhervorhebung, GoTo, die Schnelldokumentation, Schnelldefinitionen, die Verwendungssuche, die Importoptimierung und weitere IDE-Funktionen, da diese sich auf die Aliasnamen statt auf die tatsächlichen Definitionen beziehen. Um die Benutzererfahrung zu verbessern, behandelt der Editor Aliasnamen in der Standardbibliothek jetzt als transparente Exporte, sodass zum Beispiel List
scala.collection.immutable.List
impliziert und nicht scala.List
.
Die Erkennung von ungenutzten Deklarationen war bisher auf private
-Bindings beschränkt. Die Inspektion Unused declaration unterstützt jetzt auch public
-Bindings, die durch Klassen, Methoden, Variablen, Parameter usw. eingeführt werden.
Wir haben in dieser Version den Scala-Debugger überarbeitet und optimiert. Wir haben die Handhabung von object
, primären Konstruktor-Parametern, Werteklassen, Array
, lazy val
und Collection
verbessert sowie die Auswertung von Ausdrücken optimiert.
Beim Überprüfen von Codeänderungen in der IDE können Sie jetzt auswählen, wann der Code-Review-Kommentar veröffentlicht werden soll.
For more details, check out this blog post.
Um die Benutzererfahrung bei Code-Reviews zu verbessern, werden jetzt relevante Tastenkürzel angezeigt. Wenn Sie einen Code-Review-Kommentar schreiben, können Sie mit Enter eine neue Zeile hinzufügen. Mit Strg+Enter wird der Kommentar gespeichert oder veröffentlicht.