Das ist neu in GoLand

In GoLand 2020.3 können Sie den goroutines-Dump erkunden, einzelne Tabellentests ausführen und zu ihnen navigieren und mehr von der erweiterten Unterstützung für das Testframework Testify erfahren. Sie werden auch viele neue Codebearbeitungsfunktionen finden, einschließlich der Unterstützung für das Zeitpaket, intelligentere Möglichkeiten zur Handhabung von Paketen, Verbesserungen der UI, eine Vielzahl neuer Funktionen für die Webentwicklung und die Arbeit mit Datenbanken und einen neuen Dienst von JetBrains für die kollaborative Entwicklung und Paarprogrammierung.

Bevorzugen Sie interaktives Lernen statt Lesen? Dann ist unser Tutorial What's New in GoLand 2020.3, das Sie auf dem Begrüßungsbildschirm der IDE finden, genau das Richtige für Sie.

Verbesserungen im Debugger

Goroutine-Stacks im Debugger erkunden

Mit dem neuen Symbol Dump Goroutines im Debugger können Sie während der Debug-Sitzung leicht Goroutinen finden, die einen bestimmten String im Stack enthalten. Klicken Sie einfach auf das Symbol, um einen Dump in einem separaten Fenster zu öffnen.

Damit Sie sich auf die wichtigen Informationen konzentrieren können, gibt es die Option, eine einzelne Goroutine oder Goroutinen mit demselben Stack auszublenden. Klicken Sie mit der rechten Maustaste auf eine Goroutine und wählen Sie die gewünschte Aktion aus, oder drücken Sie einfach die Löschtaste, um sie in einen speziellen Hidden Bereich im Dump-Fenster zu verschieben, wo sie Sie nicht ablenkt.

'Go Remote'-Konfiguration beenden

GoLand 2020.3 bietet die Möglichkeit, einen Prozess mit der Go Remote-Konfiguration anzuhalten, wenn kein erneutes Anfügen erforderlich ist.

In Ihren Konfigurationseinstellungen können Sie das Standardverhalten des Debuggers bei einer Unterbrechung festlegen und folgende Optionen auswählen: Stop remote Delve processes, Leave it running, oder GoLand fragt Sie jedes Mal, wie es weitergehen soll.

Verbesserungen beim Testen

Einzelne Tabellentests ausführen

Unterstützung für Tabellentests

Sie können einzelne Tabellentests über das Toolfenster Run ausführen und zu diesen navigieren.

Es gibt einige Einschränkungen:

  • Die Testdatenvariable muss ein Slice, ein Array oder eine Map sein. Sie muss in der gleichen Funktion wie der Aufruf definiert sein und darf nach der Initialisierung nicht mehr geändert werden (mit Ausnahme von range-Klauseln in einer for-Schleife).
  • Die individuelle Testdateneingabe muss ein struct-Literal sein. Loop-Variablen, die in einem Subtestnamensausdruck verwendet werden, dürfen vor dem Aufruf nicht geändert werden.
  • Ein Subtest-Namenausdruck kann ein String-Feld in den Testdaten, eine Verkettung von Testdaten-String-Feldern und ein fmt.Sprintf()-Aufruf mit %s und %d Verben sein.
GoLand schlägt ein Argument innerhalb von Testfunktionen vor

Erweiterte Unterstützung für Testify

Die IDE erkennt jetzt die Testfunktion, die eine Testsuite startet, und bietet eine Möglichkeit, eine einzelne suite.Run und suite.T().Run zu starten, solange der Name des Subtests eine String-Konstante ist. Darüber hinaus ist es möglich, einen Subtest vom Run-Toolfenster aus erneut auszuführen, um zu vermeiden, dass der gesamte Test der obersten Ebene erneut ausgeführt wird.

Darüber hinaus kann GoLand jetzt Testify-Suites mit demselben Methodennamen innerhalb eines einzigen Testfalls separat ausführen.

Zu guter Letzt: Wenn Sie eine Funktion oder Methode abschließen, die testing.T als erstes Argument akzeptiert, übergibt GoLand dieses Argument wenn möglich automatisch. Dies funktioniert für Funktionen und Methoden der Pakete testify/assert, testify/require, testify/mock, und testify/suite.

Codeinspektionen

GoLand warnt vor einem potentiellen Problem im Editor und zeigt die Intention 'Add format string argument' an

Die Codeinspektion Incorrect usage of Println/Printf like functions warnt Sie vor möglichen Problemen in den Paketen github.com/pkg/errors, github.com/sirupsen/logrus, und go.uber.org/zap.

Darüber hinaus haben wir das Hervorheben und Einfalten von Platzhaltern sowie die Intention Add format string argument hinzugefügt.

GoLand gibt eine Warnung aus, wenn ein Ausführungspfad die Abbruchfunktion nicht aufruft

Die Inspektion context.CancelFunc not called code berichtet über potenziell unsichere Verwendungen der Kontextstornierung. Dies ist besonders nützlich, wenn die von context.WithCancel (und ähnlichen Funktionen) zurückgegebene Funktion 'cancel' nicht auf allen Ausführungspfaden aufgerufen wird.

Um mehr über dieses Paket zu erfahren, besuchen Sie bitte: https://golang.org/pkg/context/.

Codebearbeitung

GoLand bietet Code-Completion für Zeitlayout

Unterstützung für das Zeitpaket

Wir haben Unterstützung für das Zeitpaket hinzugefügt, damit es einfacher ist, mit Zeit und Dauer zu arbeiten. GoLand wird Elemente des vordefinierten Layouts mittels Code-Completion (Strg+Leertaste) als YYYY, MM, DD Platzhalter aus ISO-8601 vorschlagen.

Drücken Sie Strg+P auf einem Token, und die IDE zeigt seine Bedeutung an. Es gibt auch Syntaxhervorhebung für Layout-Token. Die Code-Completion schlägt auch Standard-Zeitlayouts außerhalb des Stringliterals vor.

Paket vom Import ausschließen und Code-Completion über Alt+Enter

Intelligentere Paketbehandlung

Die IDE ist jetzt intelligenter bei der Priorisierung von Completion-Elementen für Pakete, die Sie häufig verwenden und die explizit in der go.mod-Datei Ihres Projekts deklariert sind.

Wir haben auch eine Option hinzugefügt, um Pakete vollständig von Ihrem Projekt-Importpfad und den Completion-Vorschlägen auszuschließen. Sie können dies über Alt+Enter oder im neuen Fenster Exclude for import and completion unterSettings | Go | Imports anpassen.

GoLand verwendet eine andere Farbe, um Variablen hervorzuheben, die eine vorhandene Deklaration schattieren

Unterstützung für schattierte Variablen

GoLand macht es einfacher, schattierte Variablen zu erkennen:

  • Die IDE zeigt Variablen, die eine vorhandene Deklaration schattieren, jetzt in einer anderen Farbe an.
  • Wenn Sie zur Intention-Aktion Navigate to shadowing declaration navigieren, können Sie sofort zur schattierten Deklaration wechseln.
GoLand unterstützt eckige Klammern in Typparametern

Eckige Klammern in Typparametern

Wir haben die Updates des Designs von Generika durch das Go-Team verfolgt und Unterstützung für eckige Klammern für die Generika-Syntax anstelle von Klammern hinzugefügt, da dies in der vorherigen Version des Proposals umgesetzt wurde.

Bitte beachten Sie, dass die Einstellung Enable generics (experimental support for type parameters) in Settings | Go standardmäßig deaktiviert ist. Sie müssen dieses Kontrollkästchen explizit auswählen, um die Funktion nutzen zu können.

Lesen Sie diesen Blogbeitrag, um mehr über Typparameter zu erfahren.

Andere Verbesserungen

GoLand zeigt 'Test'- und 'Benchmark'-Live-Vorlagen in der Vorschlagsliste für die Code-Completion

Wenn Sie func in die Testdatei eingeben, schlägt GoLand in den Completion-Optionen standardmäßig bench und test Live Templates vor.

GoLand schlägt vor, eine for-Schleife mit b.N innerhalb der Benchmark zu vervollständigen

Wenn Sie for innerhalb des Maßstabs eingeben, schlägt die IDE vor, diesen durch eine for-Schleife mit b.N. zu vervollständigen.

GoLand schlägt vor, einen Tippfehler zu korrigieren

Verbesserte Rechtschreib- und Grammatikprüfung

Vorschläge erscheinen jetzt sofort im Dialogfeld, wenn Sie Alt+Enter drücken. Darüber hinaus bietet eine neue Version der LanguageTool-Engine für die Grammatikprüfung verbesserte Textprüfungen für Englisch und kommt mit Unterstützung für 10 zusätzliche Sprachen.

Code With Me

'Code With Me' in Aktion

GoLand 2020.3 unterstützt Code With Me (EAP) – den neue JetBrains-Service für kollaborative Entwicklung und Paarprogrammierung. Mit Code With Me können Sie das Projekt, das gerade in Ihrer IDE geöffnet ist, für andere freigeben, um gemeinsam in Echtzeit daran zu arbeiten.

Mehr dazu erfahren Sie in diesen Beiträgen.

Verbesserungen der UI

Überarbeiteter Begrüßungsbildschirm

Überarbeiteter Begrüßungsbildschirm

Wir haben den Welcome-Bildschirm überarbeitet, um Ihnen sofortigen Zugang zu ermöglichen zu:

  • Die Suche nach Projekten.
  • Die Einstellungen zur Individualisierung Ihrer IDE.
  • Die Plugins, um die Funktionalität Ihrer IDE zu erweitern.
  • Die Lernprogramme, um mehr über die Funktionen Ihrer IDE zu erfahren.
Option 'Sync with OS theme' in den Einstellungen

Synchronisieren des IDE-Designs mit Ihrer Betriebssystempräferenz

Wählen Sie die Option Sync with OS unter Settings | Appearance & Behavior | Appearance | Theme, um Ihr IDE-Design automatisch umzuschalten, damit es Ihren Betriebssystempräferenzen entspricht.

Drag & Drop einer Registerkarte zum Aufteilen des Editors

Ziehen und Ablegen von Registerkarten an beliebiger Stelle, um den Editor aufzuteilen

Teilen Sie den Hauptbildschirm des Editors horizontal oder vertikal, indem Sie eine Registerkarte an die gewünschte Position ziehen und dort ablegen. Wenn Sie eine Registerkarte ziehen, markiert der Editor, wo Sie ihn ablegen können.

Öffnen einer zweiten Datei im Editor

Updates der Projektansicht

Wir haben die Benutzererfahrung bei der Arbeit mit Dateien aus der Project-Ansicht verbessert. Wenn Sie jetzt eine Datei aus der Project-Ansicht öffnen, wird der Fokus automatisch auf den Editor gesetzt, so dass Sie sofort mit der Arbeit mit Ihrem Code beginnen können. Drücken Sie die Leertaste und die IDE zeigt Ihnen eine Vorschau der Datei in der Project-Ansicht.

Wenn Sie mehrere Dateien gleichzeitig im Editor geöffnet haben möchten, können Sie dies jetzt mit einer einfachen Tastenkombination tun. Wählen Sie die Datei in der Project-Ansicht und drücken Sie Shift+Enter, damit die IDE das Editor-Fenster teilt und die Datei im rechten Teil des Fensters öffnet.

VCS-Updates

Überarbeitetes VCS-Menü

Überarbeitetes VCS-Menü

Das VCS-Menü passt sich jetzt an das Versionsverwaltungssystem an, das Sie gerade verwenden, was den Zugriff auf wichtige VCS-Funktionen erleichtert, da sie nicht mehr in einem Submenü versteckt sind.

Git-Staging-Bereich

Unterstützung für Git-Staging

Es ist ein großartiger neuer Git-Staging-Bereich verfügbar! Bitte beachten Sie, dass diese Funktionalität nur für das Commit-Toolfenster verfügbar ist.

Aktivieren Sie das Kontrollkästchen Enable staging area unter Settings | Version Control | Git, um ihn zu aktivieren. Sobald Sie dies tun, wird die Unterstützung für Änderungslisten deaktiviert.

In der Commit-UI finden Sie Staged- und Unstaged-Dateien. Wenn Sie bereit sind, eine Datei bereitzustellen, klicken Sie einfach auf das Plus-Symbol neben der Datei. Die Datei erscheint dann unter dem Knoten Staged. Um Ihre Änderungen zum Staging-Bereich hinzuzufügen, können Sie auch das Randleistensymbol oder Show Diff verwenden.

GoLand korrigiert einen falschen Branchnamen

Verbesserungen bei der Arbeit mit Branches

Die Arbeit mit den Branches wurde verbessert:

  • Die IDE korrigiert jetzt automatisch nicht zulässige Symbole bei der Benennung neuer Branches, was Ihnen hilft, Branches übereinstimmend mit dem akzeptierten Format zu erstellen.
  • Die IDE zeigt Ihnen jetzt alle verfügbaren Aktionen für den aktuell ausgewählten Branch an – genauso wie bei anderen Branches.
  • Für Remote-Branches haben wir die Aktionen Merge into Current und Rebase Current onto Selected in Pull into Current Using Merge bzw. Pull into Current Using Rebase umbenannt.

Weitere Funktionen

Deaktivieren eines Plugins für alle Projekte

Pro Projekt aktivierte Plugins

Wir haben die Möglichkeit hinzugefügt, Plugins für das aktuelle Projekt oder für alle Projekte zu aktivieren, indem Sie Enable for Current Project oder Enable for All Projects wählen. Drücken Sie unter Settings | Plugins auf das Zahnradsymbol auf dem Plugin, das Sie aktivieren oder deaktivieren möchten, und wählen Sie die gewünschte Option.

System-Shortcut-Tastaturschema für macOS in Einstellungen

Tastaturschema mit den macOS-System-Shortcuts

Das macOS-System-Shortcut Tastaturschema (Settings | Keymap) zielt darauf ab, Ihnen ein alternatives macOS-Tastaturschema zur Verfügung zu stellen, die eine erweiterte Kompatibilität mit Systemtastenkürzel bietet und es Ihnen ermöglicht, die Verwendung von F-Tasten für wesentliche Aktionen zu vermeiden.

Flammendiagramm im Profiler in Aktion

Profiler – Flammendiagramm

Wir haben den Suchmechanismus des Flammendiagramms im Profiler und seine Visualisierung verbessert, damit Sie Methodenmetriken schneller finden können. Sie können auf das Lupensymbol klicken oder Ihre Suchanfrage im Flammendiagrammbereich eingeben.

Außerdem haben wir ein Suchfeld, Auf-/Ab-Pfeile für die schnellen Navigation zwischen den Suchergebnissen und einen Filter zum Suchen im gesamten Flammendiagramm oder nur in einem bestimmten Teilbaum.

Änderungen der Webentwicklung

React-Komponenten aus Verwendungen erstellen

React-Komponenten aus Verwendungen erstellen

Dank der Arbeit des WebStorm-Teams hat GoLand nun umfangreichliche Unterstützung für die Webentwicklung unter der Haube. Eine der bevorstehenden Änderungen in diesem Bereich ist die Möglichkeit, React-Komponente aus einer nicht aufgelösten Referenz zu erstellen. Platzieren Sie den Textcursor auf eine ungelöste Komponente, drücken Sie Alt+Enter und wählen Sie die entsprechende Inspektion aus.

GoLand fand pnpm auf dem Rechner

Volle Unterstützung für pnpm

GoLand bietet volle Unterstützung für den pnpm-Paketmanager, zusammen mit npm und yarn. Wenn Sie ein Projekt mit einer pnpm-Sperrdatei öffnen und pnpm auf Ihrem Computer installiert haben, ändert GoLand automatisch den Paketmanager für dieses Projekt auf pnpm. Die IDE hat auch eine spezielle pnpm-Option in der Liste der Paketmanager unter Settings | Languages and Frameworks | Node.js and NPM.

Webpack-Einstellungen

Grundlegende Unterstützung für mehrere Webpack-Konfigurationen

GoLand 2020.3 lässt Ihnen zwischen der manuellen oder automatischen Erkennung von Webpack-Konfigurationsdateien auswählen. Die neuen Optionen finden Sie unter Settings | Languages & Frameworks | JavaScript | Webpack.

Mit Datenbanken arbeiten

Hinzufügen von Couchbase Query als Datenquelle

Couchbase-Unterstützung

Dank unserer Kolleg*innen aus dem DataGrip-Team hat GoLand seine unterstützten Datenbanken um ein neues Mitglied erweitert - Couchbase! Bitte beachten Sie, dass die IDE den Couchbase Query-Service unterstützt, nicht den Couchbase Analytics-Service.

GoLand zeigt Berechtigungen in den DDLs eines Objekts an

Unterstützung für Berechtigungen

GoLand kennt jetzt Objektberechtigungen und zeigt sie in der DDL des Objekts an. Dies funktioniert für MySQL, PostgreSQL, Greenplum, Redshift und SQL Server.

GoLand zeigt den formatierten Wert in einem separaten Editor an

Separater Editor für Zellenwerte

Wir haben den separaten Editor für Zellenwerte verbessert:

  • Er zeigt jetzt den formatierten Wert an, auch wenn der Wert nicht richtig formatiert ist.
  • Es ist möglich, den Wert in der formatierten Ansicht zu bearbeiten und ihn mit der ursprünglichen Formatierung in einzeiligen XMLs und JSONs zu aktualisieren.
  • Wenn die Breite des Bildschirms für Ihren Flow wichtig ist, können Sie den Zellenwerte-Editor an den unteren Rand des Daten-Editors verschieben.
  • Dieser Editor kann jetzt auch Bilder anzeigen!
'One-Row'-Extraktor in Aktion

Datenbanken importieren und exportieren

Wir haben zwei neue Extraktoren hinzugefügt, um Ihnen die Arbeit mit Daten zu erleichtern:

  • One-Row hilft Ihnen, eine Spalte in eine durch Komma getrennte String zu kopieren.
  • SQL-Insert-Multirow generiert eine einzelne INSERT-Anweisung mit den mehreren neuen Zeilen, die eingefügt werden.

Darüber hinaus gibt es jetzt eine neue Option in der Konfiguration des CSV-Formats: Werte niemals in Anführungszeichen setzen.