Das ist neu in GoLand 2019.3

GoLand 2019.3 ist CPU-schonender und schneller geworden. Die Unterstützung für Go-Module wurde ausgebaut, und es gibt mehrere neue Quick-Fixes sowie verbesserte Refaktorierungen. In Evaluate Expression können jetzt die Methoden eines eingebetteten Feldes aufgerufen werden, und Mozilla rr steht für das Remote-Debugging Ihrer Anwendungen bereit.

Sie können globale Dateiüberwachungen jetzt automatisch auf neue Projekte anwenden, mit MongoDB arbeiten und viele weitere Neuerungen nutzen!

Performance

Ein Diagramm mit der Messung der GoLand 2019.3-Startzeiten unter verschiedenen Betriebssystemen

Seit der Veröffentlichung von GoLand 2019.2 im Sommer dieses Jahres haben wir intensiv daran gearbeitet, GoLand schneller zu machen und die CPU-Auslastung zu reduzieren. Eine der zentralen Performance-Verbesserungen ist die Reduzierung der Wartezeit beim Start, während die IDE alles unter der Haube vorbereitet, den Begrüßungsbildschirm anzeigt und ein Projekt indiziert.

Bitte beachten Sie, dass die Ergebnisse je nach Projektgröße sowie Alter, RAM-Ausstattung und Speicherplatz Ihres Systems variieren können. Wir arbeiten weiterhin an diesem Thema, sodass Sie in künftigen Versionen noch kürzere Startzeiten erwarten können.

Verbesserung bei Go-Modulen

Navigation von der Datei go.mod zur Projektansicht

GoLand 2019.3 bietet Syntaxhervorhebung und Navigation für go.mod-Dateien. Wenn Sie auf einem Abhängigkeits-Importpfad ⌘+B (macOS) oder Strg+B (Windows/Linux) drücken, navigiert Sie GoLand zu den entsprechenden Quellen in der Projektansicht.

In der Projektansicht werden Go-Module außerdem mit ihrem vollen Importpfad statt nur dem letzten Segment angezeigt. Die Version der Go-Module wird in einer dezenteren Schriftfarbe als der Importpfad angezeigt, damit Sie leichter zwischen den beiden unterscheiden können.

Debugger-Updates

Ausdrucksdialog mit dem Ergebnis des Aufrufs auswerten

Methode eines eingebetteten Feldes aufrufen

Evaluate Expression im Debugger ermöglicht jetzt das direkte Aufrufen einer Methode eines eingebetteten Feldes.

Debuggen mit Mozilla rr

Remote-Debugging mit Mozilla rr

Viele in Go geschriebene Produktionsservices laufen unter Linux, und Mozilla rr kann dabei helfen, schwer reproduzierbare Fehler zu untersuchen. Das Debugging mit Mozilla rr wird bereits seit GoLand 2018.3 unterstützt, aber bisher funktionierte das nur auf Linux-Entwicklersystemen. Jetzt können Sie einen Debug-Server auf einem Linux-System starten und den Trace per Remote-Debugging unter macOS oder Windows untersuchen. Führen Sie dazu folgende Schritte aus:

  • Erfassen Sie einen rr-Trace auf dem entfernten System.
  • Starten Sie den Debugger auf dem entfernten System wie folgt: dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary.
  • Stellen Sie über die Go Remote-Konfiguration eine Verbindung zum entfernten System her.

Bitte beachten Sie, dass Mozilla rr nur auf Linux-Systemen verfügbar ist.

Neue quick-Fixes

Löschen Sie den nicht verwendeten Parameternamen aus dem Ausdruck über Alt + Enter

Umgang mit nicht genutzten Parametern

Bei ungenutzten Parametern werden in GoLand jetzt der Name und der Typ hervorgehoben, wenn beide entfernt werden können. Wird der Typ zur Implementierung einer Methodenspezifikation verwendet, so wird nur der Name hervorgehoben.

Im letzteren Fall bietet Ihnen die IDE die Wahl zwischen zwei Quick-Fixes: Delete parameter names oder Rename to_. Dasselbe gilt auch für Funktionen, die als Funktionstyp verwendet werden.

Außerdem können Sie jetzt alle ungenutzten Parameter in einem Zug löschen. Drücken Sie Alt+Enter und wählen Sie den Quick-Fix Delete all unused parameters.

Fehlende Funktion erstellen

Fehlende Methode oder Funktion erstellen

GoLand bietet einen Quick-Fix zum Erstellen einer fehlenden Funktion oder Methode anhand der Verwendung in einem Funktionstyp. Drücken Sie einfach Alt+Enter und wählen Sie Create method/function.

GoLand-Vorschlag zum Importieren eines Pakets

Verbesserte Handhabung von Paketaliasen

GoLand schlägt jetzt Pakete basierend auf den verwendeten Aliase vor, über Alt+Enter in eine beliebige Datei Ihres Projekts zu importieren.

Refaktorierungen

Parametertypen werden auf den Registerkarten Parameters und Result Parameters angezeigt

Signatur ändern

Change Signature zeigt jetzt auf den Registerkarten Parameters und Result parameters immer den Typ der Parameter an. Aktivieren Sie das neue Kontrollkästchen Reuse types, um Folgetypen in der Signature Preview und im Ergebnis auszublenden.

Darüber hinaus gibt es zwei neue Intention-Aktionen: Reuse signature types führt Parameterdefinitionen in einer einzigen Deklaration zusammen, und Expand signature types fügt mittels Alt+Enter Typen zu jedem Parameter hinzu.

Extract Variable schlägt err für den Ausdruck vom Typ error vor

Umbenennen und Variable extrahieren

Extract Variable und Rename können jetzt besser Namen vorschlagen. err wird zum Beispiel für Ausdrücke vom Typ error vorgeschlagen, ctx wird für context.Context vorgeschlagen usw.

Optimiertes Verhalten von Codeinspektionen

Vergleich des Verhaltens von Codeinspektionen zwischen den Versionen 2019.2 und 2019.3

Die Codeinspektionen von GoLand sind jetzt präziser fokussiert. Wir haben den Hervorhebungsumfang bei erkannten Problemen im Editor reduziert, um Ihnen beim Aufrufen des Kontextmenüs über Alt+Enter die relevantesten Quick-Fixes und Intention-Aktionen für den entsprechenden Codeabschnitt vorschlagen zu können.

Codebearbeitung

Ein Beispiel für die Fehlermeldung für das Runenliteral

Verbesserter Lexer für Runenliterale

Wir haben den Runenliteral-Lexer in mehrfacher Hinsicht verbessert:

  • GoLand erklärt jetzt in Fehlermeldungen klarer und prägnanter, warum der Ausdruck falsch ist.
  • GoLand hebt ein gültiges Runenliteral nach der Bearbeitung nicht als Fehler hervor.
  • Das Parsen von ungültigen Runenliteralen ist jetzt stabiler.
GoLang hebt die Neuzuweisung auf der linken Seite der Deklaration hervor

Hervorhebung von Neuzuweisungen

Go erlaubt die Verwendung vorhandener Variablen auf der linken Seite von kurzen var-Deklarationen. Somit können zwei Konstrukte, die identisch aussehen, unterschiedliche Bedeutungen haben. Damit Sie solche Fälle leichter erkennen können, haben wir eine Syntaxhervorhebung für solche Neuzuweisungen eingeführt.

Ein Beispiel für die Codefaltung für Verbundliterale

Codefaltung für Verbundliterale

GoLand 2019.3 führt die Codefaltung für Verbundliterale ein. Um das Codefragment ein- oder auszublenden, verwenden Sie die Codefaltungs-Umschaltsymbole oder drücken Sie Strg+NumPad Minus/Strg+NumPad Plus auf Windows bzw. ⌘+NumPad Minus/⌘+NumPad Plus auf macOS. Das Standardverhalten für die Codefaltung können Sie unter Settings/Preferences | Editor | General | Code Folding einstellen.

Erweiterte Live-Vorlagen

für Live-Vorlage schlägt Linie als Wert vor

Die Live-Vorlagen for und forr schlagen jetzt relevante Variablennamen vor. Für Indizes werden zum Beispiel Namen wie i und index vorgeschlagen; für Werte werden die Namen s, string und line empfohlen.

Die Live-Vorlage meth bietet jetzt Codevorschläge für Empfängernamen.

Navigation

Nur im ausgewählten Bereich suchen

Nur im ausgewählten Bereich suchen

Bei Verwendung von Find (⌘+F auf macOS und Ctrl+F auf Windows/Linux) können Sie die Suche auf den ausgewählten Bereich beschränken. Wählen Sie im Editor einfach den gewünschten Codebereich aus und rufen Sie Find auf – die IDE führt die Suche dann nur im ausgewählten Bereich aus. Um die Suche auf die gesamte Datei auszudehnen, drücken Sie ⌘+F/ Ctrl+F ein zweites Mal, oder schalten Sie die Option In Selection in der Suchleiste um.

Suchen mit "Find in Path" mit Dateimaske in Aktion

„Find in Path“ mit Dateimaske

Wenn Sie den Find in Path-Dialog mit einer Dateimaske verwenden, zeigt GoLand jetzt die Dateierweiterungen in den Suchergebnissen an. Dadurch können Sie leichter zwischen Dateien unterscheiden, die den gleichen Namen, aber eine unterschiedliche Erweiterung besitzen.

Globale Dateiüberwachung für alle neuen Projekte

golangci-lint für alle neuen Projekte aktivieren

In GoLand 2018.2 haben wir die Möglichkeit eingeführt, eine Dateiüberwachungskonfiguration mithilfe der Optionen Project und Global in mehreren Projekten zu nutzen. Die Funktion heißt Global File Watcher.

Allerdings musste dieser Watcher für jedes neue Projekt einzeln aktiviert werden. Jetzt haben Sie die Möglichkeit, diesen Watcher in allen Projekten, die Sie neu erstellen oder öffnen, standardmäßig zu aktivieren.

Wählen Sie im File-Menü Other Settings | Settings for new projects aus, und rufen Sie dann Tools | File Watchers auf. Erstellen Sie einen neuen globalen Watcher, und aktivieren Sie das Kontrollkästchen daneben, um den Watcher in allen neuen Projekten zu aktivieren.

Lernprogramme

Eine Übung für die neue Funktion des Refactorings von Extract Variable

Oft fehlt einem vor lauter Projektstress die Zeit, zu jedem verwendeten Produkt die What's-New-Seiten, Versionshinweise und Blog-Posts durchzulesen. Abhilfe bieten unsere Tutorials, die Ihnen die Möglichkeit geben, die Funktionen von GoLand in Ihrem eigenen Tempo kennenzulernen.

Sie finden die Tutorials auf dem Begrüßungsbildschirm über Ihrer Projektliste. Wenn Sie die IDE auf eine neue Version aktualisieren, werden die Funktionen der neuen Version in einer eigenen Lektion vorgestellt. Alternativ können Sie in jedem Projekt über das entsprechende Toolfenster auf die Tutorials zugreifen.

Weitere Änderungen

Umschalten zwischen den aufrufenden und den aufgerufenen Methoden im Hierarchie-Werkzeugfenster

Hierarchie-Toolfenster

Das Toolfenster Hierarchy bietet eine neue Option, Methodenhierarchien zu untersuchen. Wir haben zwei neue Schaltflächen hinzugefügt, mit denen Sie zwischen den aufrufenden und den aufgerufenen Methoden der gewählten Methode umschalten können. Außerdem können Sie durch Anklicken einer speziellen Menüschaltfläche die Elemente einer Baumstruktur alphabetisch sortieren. Um das Hierarchy-Toolfenster in der Tool Windows-Liste zu sehen, müssen Sie erst eine Hierarchie aufbauen und dann Navigate | Call Hierarchy oder Navigate | Type Hierarchy aufrufen.

Wechseln des Design-Plugins ohne Neustart der IDE

Design- und Tastenkürzel-Plugins sofort wechseln

In GoLand 2019.3 können Sie Design- und Tastenkürzel-Plugins nach Belieben installieren und entfernen, ohne die IDE neu zu starten.

Wählen Sie in den Einstellungen für die Aktion "Focus Editor" die Option "Add Keyboard Shortcut"

Rückkehr zum Editor mit frei gewähltem Tastenkürzel

Sie müssen nicht mehr unbedingt Esc benutzen, um den Fokus an den Editor zurückzugeben. Sie können stattdessen Ihr eigenes Tastenkürzel definieren. Finden Sie die Aktion Focus Editor unter Preferences/Settings | Keymap, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Dropdown-Menü den Eintrag Add Keyboard Shortcut.

Besser sichtbare Bildlaufleisten im Editor

Besser sichtbare Bildlaufleisten

Wir haben eine neue Option eingeführt, um die Bildlaufleisten auffälliger zu gestalten. Um dies zu nutzen, aktivieren Sie das Kontrollkästchen Use contrast scrollbars unter Preferences | Appearance & Behavior | Appearance.

Verbesserungen bei der Versionsverwaltung

Neuer Clone-Dialog mit der Liste der Repositories

Überarbeiteter Clone-Dialog

Der Clone-Dialog befindet sich im Menü VCS | Get from Version control. Sie können sich jetzt direkt in diesem Dialog anmelden, und wenn Sie angemeldet sind, zeigt Ihnen die IDE sofort eine Übersicht aller Repositories an, gruppiert nach Konten und Organisationen.

"Show Details" öffnet ein Fenster mit Konfliktänderungen

Mehr Informationen bei Merge-Konflikten

Jetzt ist es einfacher, einen Konflikt während eines Merge-, Rebase- oder Cherrypick-Vorgangs zu untersuchen. Klicken Sie einfach auf den Link Show Details, um eine Liste der Commits anzuzeigen, die zum jeweiligen Codezustand geführt haben, und um weitere Informationen zum Ursprung der im Merge-Dialog angezeigten Änderungen zu erhalten.

Updates der Datenbankunterstützung

Im Datenbank-Explorer Collections und Felder einsehen

MongoDB-Unterstützung

GoLand 2019.3 bietet grundlegende Unterstützung für MongoDB. Sie können jetzt:

  • Im Datenbank-Explorer Collections und Felder einsehen.
  • Jede Collection öffnen und das Abfrageergebnis einsehen. Es ist auch möglich, nach Spalten zu sortieren oder die Werte zu filtern.
  • Abfragen ausführen und die Ergebnisse erhalten. Wählen Sie eine Anweisung aus und führen Sie sie durch Drücken von Strg/⌘+Enter oder durch Anklicken der Play-Schaltfläche auf der Symbolleiste aus.
Ein Beispiel für den Verbindungsfehler

Nach Verbindungsfehlern suchen

Sie können jetzt Verbindungsfehlern einfacher auf den Grund gehen. Wenn ein Verbindungsfehler auftritt, können Sie einfach eine spezielle Schaltfläche in der IDE drücken, um die Google-Suchergebnisse für Ihren Fehler aufzurufen.

Webentwicklung

Codevervollständigung für den Klassennamen aus der CSS-Bibliothek

Vervollständigung für CSS-Bibliotheken aus CDNs

Wenn Sie Bootstrap oder eine andere CSS-Bibliothek verwenden, die Sie in Ihrer HTML-Datei aus einem CDN laden, werden nun Klassennamen aus dieser Bibliothek vervollständigt, ohne die Quelldateien dem Projekt hinzufügen zu müssen.

Codevorschläge für neue Variable

Namensvorschläge für neue Symbole

Wenn Sie in JavaScript- oder TypeScript-Code neue Variablen- und Parameternamen eingeben, erhalten Sie Namensvorschläge basierend auf den Namen der Klassen, Schnittstellen und Typ-Aliasnamen, die im Projekt, den Standardbibliotheken und den verwendeten Abhängigkeiten definiert sind.

Bei neuen Variablen, Funktionen, Klassen und Schnittstellen werden auch Namen vorgeschlagen, die im entsprechenden Geltungsbereich bereits verwendet wurden, aber noch nicht definiert sind.