IntelliJ IDEA 2019.3: Leistungsoptimierung und Qualitätsverbesserung

Hallo!

In dieser Version haben wir uns auf Leistung und Qualität konzentriert. Gemeinsam mit anderen JetBrains-Teams haben wir die Leistung optimiert, die Reaktionsfähigkeit der Benutzeroberfläche erhöht und die vorhandenen Funktionen verbessert.

Zur richtigen Priorisierung haben wir uns auf Ihr Feedback verlassen und uns bei allen bedankt, die Ideen geteilt und Fehler in unserem Tracker gemeldet haben. Infolgedessen haben wir mehr als 1.600 Probleme behoben, die insgesamt rund 4.000 Nutzerstimmen erhielten.

Wir haben auch an der Unterstützung neuer Microservices-Frameworks wie Micronaut , Quarkus und Helidon gearbeitet und die lang erwartete Unterstützung für MongoDB geleistet.


blog @ 2x (3)




Leistungsoptimierung


Wir haben hart daran gearbeitet, die Leistung von IntelliJ IDEA zu verbessern. Folgendes haben wir:


  • IntelliJ IDEA startet viel schneller.
  • Weniger Editor und Benutzeroberfläche frieren ein.
  • Die IDE verbraucht weniger Speicher, insbesondere beim Importieren von Gradle- Projekten.




Eine der Hauptaufgaben in diesem Jahr war die Verkürzung der Startzeit der IDE. Wir haben die Architektur der IntelliJ-Plattform grundlegend geändert: Einige der beim Start sequenziell ablaufenden Prozesse werden jetzt parallel ausgeführt. Darüber hinaus haben wir Klassen neu organisiert, um die Initialisierung zu beschleunigen, das Herunterladen von Schriftarten unter macOS zu optimieren und vieles mehr.


Wir haben darauf geachtet, die Reaktionsfähigkeit der Benutzeroberfläche zu verbessern, und viele Einfrierungen in verschiedenen Teilen von IntelliJ IDEA beseitigt. Wir haben es geschafft, die Ursachen für das Einfrieren von mehr als 1600 Fehlerberichten zu beseitigen. Darüber hinaus ist es jetzt einfacher, Einfrierungen zu melden.


Jetzt funktioniert IntelliJ IDEA viel schneller, wenn im Editor oder Debugger viele Registerkarten geöffnet sind und der reguläre Ausdruck auch mit sehr langen Zeilen in Find in Path übereinstimmt. Auch das Öffnen des Projektbaums nimmt weniger Zeit in Anspruch.


Wir haben die Arbeit des Editors beschleunigt, indem wir die Typinferenz in Java optimiert haben. Die Typinferenz für lange Ketten von Methodenaufrufen ist jetzt viel schneller. Die Hervorhebung der Java-Syntax funktioniert auch schneller, insbesondere bei generischen varargs- Methoden ( Arrays.asList, Map.ofEntries usw.), die Dutzende von Argumenten enthalten können. Das Verbinden mehrerer Linien mit der Aktion Linien verbinden wurde ebenfalls beschleunigt.


Die Unterstützung von Kotlin 1.3.60 führte auch zu Verbesserungen, beispielsweise zu einer beschleunigten Hervorhebung der Kotlin-Syntax im Editor.


Andere Korrekturen wirkten sich auf VCS aus: Sie konnten die Verarbeitungszeit von Ereignissen und ignorierten Dateien reduzieren, Einfrierungen beseitigen und Statusaktualisierungen in großen Projekten beschleunigen.


Im Build-Subsystem haben wir den Speicherspitzenverbrauch beim Importieren großer Gradle-Projekte reduziert. Wir haben auch Probleme beim Bearbeiten von pom.xml- Dateien in Maven-Projekten behoben: Jetzt bietet die IDE Optionen für die automatische Vervollständigung ohne Verzögerung.


Wir sind mit dem Ergebnis zufrieden, hören aber nicht auf. In zukünftigen Versionen werden wir die Leistung weiter optimieren und versuchen, den Start der IDE noch schneller zu machen.



Qualitätsverbesserung


Plugins

IntelliJ IDEA verfügt über ein reichhaltiges Ökosystem an Plugins, aber es gibt einen Nachteil: Wenn Sie ein Plugin installieren oder entfernen, müssen Sie die IDE neu starten. Wir haben begonnen, dieses Problem zu lösen und die Basisinfrastruktur für die dynamische Installation von Plugins implementiert, ohne die IDE neu zu starten. Bisher funktioniert dies nur für Schnittstellenthemen und Tastaturkürzel.


Versionskontrollsysteme

Viel Neues zur Unterstützung von VCS. Um die Arbeit mit Zweigen zu vereinfachen, haben wir anstelle der Aktion Auschecken als ... zwei neue hinzugefügt: Auschecken und Neuer Zweig von Ausgewählt . Die Aktion Neuer Zweig von Ausgewählt erstellt einen neuen lokalen Zweig, ermöglicht jedoch nicht die Verfolgung von Remote-Zweigen. Wenn die Checkout- Aktion aufgerufen wird, erstellt die IDE einen neuen lokalen Zweig, extrahiert ihn aus dem Repository und aktiviert die Verfolgung des ausgewählten fernen Zweigs, wenn kein lokaler Zweig mit demselben Namen vorhanden ist.





Wir haben das Dialogfeld " Klonen " überarbeitet und eine einzige Oberfläche zum Herunterladen von Projekten von verschiedenen VCS-Hosts erstellt. Jetzt können Sie Ihr Konto direkt aus dem aktualisierten Dialog eingeben. Wenn Sie bereits angemeldet sind, zeigt die IDE Listen aller Repositorys an, die nach Konten oder Organisationen gruppiert sind, denen Sie angehören.


Außerdem müssen Sie keine Verzweigung mehr herunterladen, um Änderungen an das Repository zu senden: Wählen Sie die gewünschte Verzweigung im Fenster Verzweigungen aus und klicken Sie auf Push . Für verschobene oder umbenannte Dateien haben wir eine Spalte mit Dateinamen zum Dateiverlauf hinzugefügt. Eine weitere nützliche Verbesserung ist die Möglichkeit, das Hinzufügen einer Datei zu Git (oder Mercurial) zu erzwingen, auch wenn sie sich in der Liste .gitignore (oder .hgignore) befindet.


Andere Verbesserungen

In der Vorgängerversion haben wir die Funktionalität von Java 13 unterstützt und diesmal die Unterstützung von Java 13-Textblöcken erheblich verbessert. Darüber haben wir kürzlich in unserem Blog gesprochen .


Jetzt gibt es eine einfache Möglichkeit, die Aufrufhierarchie für das ausgewählte Feld anzuzeigen: Verwenden Sie die neue Aktion " Aufrufhierarchie für Felder" ( Strg / Befehlstaste + Alt + H ).


Wenn Sie das Kontrollkästchen Schnelldokumentation zum Bewegen der Maus anzeigen aktiviert haben und mit der Maus über eine Warnung oder einen Fehler fahren, wird ein einzelner Hinweis mit einer Beschreibung der Warnung oder des Fehlers und Hilfeinformationen zum Code angezeigt.
Zuvor zeigte die IDE in solchen Fällen nur einen Fehlerhinweis ohne Dokumentation an, und manchmal wurden zwei vollständige Popup-Fenster angezeigt.


Wir haben das Verhalten des Intention Actions- Dialogfelds aktualisiert: Aktionen werden nicht aus der Liste der Sätze entfernt, wenn Sie einen von ihnen auswählen und das Dialogfeld schließen.


Das Fenster Dienste wird jetzt immer angezeigt und sein Verhalten kann im Fenster selbst konfiguriert werden. Außerdem können Sie bestimmte Startkonfigurationen ausblenden.


Und auch:


- Tipps zu Typinkongruenzen wurden detaillierter und verständlicher.
- Beim Öffnen eines Projekts zeigt IntelliJ IDEA seinen Namen an.
- Wir haben das Einfügen von Codefragmenten in neue Vorlagensprachen unterstützt, insbesondere Pug (ehemals Jade ), Handlebars , EJS und Slim .
- Mit dem Mausrad wurde flüssig gescrollt.
- Bildlaufleisten können mit dem Kontrollkästchen Kontrast-Bildlaufleisten verwenden in den Voreinstellungen / Einstellungen | besser sichtbar gemacht werden Aussehen & Verhalten | Aussehen .

Unterstützung für neue Frameworks und Technologien


Obwohl wir uns bei der Vorbereitung dieser Version hauptsächlich auf die Qualität konzentriert haben, haben wir auch an mehreren neuen Funktionen gearbeitet und freuen uns, diese vorstellen zu können. Alles, was unten beschrieben wird, ist nur in IntelliJ IDEA Ultimate verfügbar.


Es gab viele Gespräche über Microservices, lange bevor wir mit der Planung dieses Releases begannen. Irgendwann dachten wir, wir sollten Unterstützung für die Technologien hinzufügen, die zum Entwickeln von Java- und Kotlin-Projekten mit Mikroservice-Architektur verwendet werden. Die Stars kamen zusammen und wir begannen an der Integration zu arbeiten.


Erstens haben wir unsere Funktionen zur Unterstützung beim Schreiben von Code und zur Navigation für die Mikrodienstentwicklungs-Frameworks der nächsten Generation erweitert: Micronaut, Quarkus und Helidon. Für diejenigen, die sich mit reaktiver Programmierung beschäftigen, haben wir die Unterstützung für Spring Web Flux hinzugefügt.




Da Microservices normalerweise über HTTP / WebSocket miteinander kommunizieren, bestand der nächste Schritt für uns darin, die Java API API für Java-Clients wie java.net.URI / URL, Retrofit v2, OkHttp v3 sowie Client-Bibliotheken gängiger Server-Frameworks zu unterstützen: Spring Feign, MicroProfile REST Client usw. Wichtig ist, dass die IDE jetzt die URL-Vervollständigung und Navigation für die HTTP / WebSocket-API bereitstellt.


Zweitens haben wir ein neues Endpunktfenster hinzugefügt, damit Sie die Endpunkte Ihres Projekts bequem anzeigen können. In diesem Fenster werden sowohl die Client- als auch die Server-APIs angezeigt. Allmählich wird hier nicht nur die HTTP-API hinzugefügt, sondern auch die Messaging-API, gRPC und GraphQL.


Schließlich haben wir die Unterstützung für API-Spezifikationen erweitert. In dieser Version wurden Swagger 2 und OpenAPI Specification 3 unterstützt. Die Unterstützung umfasst die Überprüfung der Einhaltung des Schemas, die automatische Vervollständigung, die Navigation, die Suche nach Verwendungen und die Neuformulierung der Umbenennung in YAML / JSON-Dateien mit API-Beschreibungen.


Momentan funktioniert dies alles nur für Projekte in Java und Kotlin, aber in zukünftigen Versionen planen wir, andere Sprachen und Frameworks zu unterstützen.


Darüber hinaus unterstützt IntelliJ IDEA 2019.3 endlich MongoDB. In dieser Version werden Sammlungen und Felder im Datenbankexplorer angezeigt. Sie können Abfragen ausführen und deren Ergebnisse anzeigen.



Wichtige Korrekturen


- Die IDE findet jetzt das Verzeichnis, in dem Gradle über Homebrew installiert wurde.
- Es ist einfacher geworden, das Gradle-Ausgangsverzeichnis manuell festzulegen.
- IntelliJ IDEA unterstützt jetzt das Speichern von Passwörtern in KWallet unter Linux.
- Bei JavaFX-Projekten kann die IDE eine FXML-Datei mit dem integrierten Szenen-Generator auf der Registerkarte Szenen-Generator anzeigen.
- Im Debug- Fenster funktioniert die Tastaturnavigation.
- Sie können den ausgewählten Text mit Strg / Cmd + C aus dem Sichtfenster kopieren .
- Beim Umschalten zwischen IDE-Fenstern geht der Fokus nicht verloren.
- Die Position von Fenstern und Tooltips wurde verbessert.
- Wenn das Darcula-Design in der IDE ausgewählt ist, werden MacOS-Systemfenster beim Aufrufen in einem dunklen Design geöffnet.

Wir haben auch die JetBrains Runtime 11 (JBR 11) aktualisiert.


- Das Rendern von Schriftarten unter macOS Catalina wurde korrigiert.
- Ein Problem beim Öffnen eines Projekts unter macOS 10.15 Catalina wurde behoben.
- Feste Zeichen im Dialogfeld " Ausdruck auswerten".
- IntelliJ IDEA erkennt Konflikte zwischen IDE-Tastaturkürzeln und Betriebssystemkürzeln.
- Der Editor hat das Problem mit immer kursiv gedruckten Schriften behoben.
- Der Startbildschirm unter Windows wurde repariert.

Lesen Sie alle Details zur neuen Version auf der Website oder lesen Sie die Rezension (in englischer Sprache).

JetBrains-Team

Source: https://habr.com/ru/post/de479902/


All Articles