Das ist neu in GoLand

Mit GoLand 2021.1 können Sie Ihr Programm über Docker, SSH und WSL 2 remote erstellen und ausführen, mit Go 1.16 neu eingeführte Funktionen wie //go:embed verwenden, JSON in Code umwandeln und mit neuen Quick-Fixes Fehler beheben.

GoLand ist mehr als nur eine Go-IDE. Zusätzlich zu den Funktionen für die Go-Entwicklung erhalten Sie neue Features für JavaScript, TypeScript und Datenbanken.

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

Ziele ausführen

Konfigurieren der erstellten Ziele im Fenster „Run Configuration“

In GoLand 2021.1 können Sie den auf Ihrem Computer lokal entwickelten Quellcode auf Remote-Systemen ausführen. Derzeit unterstützt die IDE Docker, SSH und WSL 2 (Windows-Subsystem für Linux).

Wählen Sie in den Einstellungen Run | Manage Targets…, klicken Sie auf das Hinzufügen-Symbol (+) und wählen Sie die gewünschten Ziele aus. Nach Abschluss der Konfiguration müssen Sie die Run-Konfiguration unter Run | Edit Configurations… angeben und das Ziel auswählen, mit dem Sie arbeiten möchten.

Go 1.16

Ordner zu einer Embed-Direktive hinzufügen

Unterstützung für //go:embed

Ab Go 1.16 können Sie Dateien und Verzeichnisse zur Kompilierungszeit in eine Go-Binärdatei einbetten.

Embedding works on a few types of variables: string, []byte, and embed.FS. Sie müssen diese Variablen auf der obersten Ebene Ihres Pakets deklarieren. Damit das Einbetten funktioniert, müssen Sie schließlich die //go:embed-Direktive hinzufügen.

GoLand bietet Syntaxhervorhebung, Navigation von den Referenzen innerhalb der Embed-Direktive zu den Dateien und Ordnern in Ihrem Projekt, Rename-Refactoring, Verwendungssuche, Code-Completion und einige Code-Inspektionen. So werden Sie beispielsweise gewarnt, wenn Sie versuchen, Dateien in eine Variable vom falschen Typ einzubetten.

Quick-Fix zum Ersetzen von "Fatal" durch "Error"

Erkennen falscher Verwendungen von (t/b).Fatal

GoLand warnt Sie vor ungültigen Anrufen der testing.T-Methode Fatal innerhalb einer Goroutine, die während des Tests erstellt wurde.

Der dazugehörige Quick-Fix schreibt den Code, der t.Fatal (oder eine ähnliche Methode) aufruft, so um, dass der Testfehler mit t.Error signalisiert und die Goroutine mit einer return-Anweisung vorzeitig beendet wird.

Die IDE zeigt eine Warnung an und bietet einen geeigneten Quick-Fix zur Behebung an

Erkennen falscher Verwendungen von asn1.Unmarshal

In Go 1.16 erkennt go vet falsche Verwendungen von asn1.Unmarshal, um sicherzustellen, dass der Wert, in den ein Byte-Slice entpackt wird, nicht Null ist.

GoLand 2021.1 bietet eine ähnliche Prüfung sowie einen Quick-Fix zur Behebung des Problems.

Arbeiten mit JSON

Einfügen von JSON-Daten in den Editor per Copy-and-Paste

Sie können aus JSON-Daten in Sekundenschnelle einen Struct mit Feldern und Tags erstellen, indem Sie einfach die JSON-Daten in den Editor kopieren.

Wenn Sie den JSON-Code vor dem Generieren eines Structs anpassen möchten, drücken Sie Alt+Enter, um die Intention Generate type from JSON aufzurufen. GoLand öffnet das Fenster Generate Go type from JSON mit dem kopierten JSON-Code. Sie können den Code in diesem Fenster nach Belieben anpassen und dann mit Generate den Struct erstellen. Natürlich können Sie JSON-Code auch manuell in das Fenster kopieren.

Darüber hinaus können Sie JSON-Daten auch in einem bereits vorhandenen leeren Struct ablegen. Klicken Sie dazu einfach auf den leeren Struct und rufen Sie mit Alt+Enter oder über das Generate-Menü die Intention-Aktion Generate struct fields from JSON auf.

GoLand warnt Sie, wenn Sie versuchen, im Fenster Generate Go type from JSON ungültigen JSON-Code zu verwenden.

Generieren eines Structs aus JSON-Daten im Fenster „Generate Go type from JSON“

Es ist jetzt viel einfacher, JSON- und XML-Tags für alle exportierten Felder im Struct zu erstellen.

Wenn Sie mit Alt+Enter die Aktion Add key to tags für den Struct oder ein Feld des Structs aufrufen, fügt GoLand allen Feldern im Struct ein Tag mit dem Feldnamen hinzu. Wenn Sie den Stil des Feldnamens für alle Tags ändern möchten, drücken Sie Alt+Enter auf einem beliebigen Schlüssel erneut und wählen Sie Change field name style in tags. Die folgenden Stile werden unterstützt: feldName, FeldName, feld-name und feld_name.

Sie können mit der Intention-Aktion Update key value in tags alle Tag-Werte in einem Zug ändern. Drücken Sie Alt+Enter auf einem beliebigen Tag-Wert Ihres Structs, und GoLand setzt in jedem Feld Einfügemarken an das Ende des Tag-Werts.

Darüber hinaus bietet die IDE Completion-Vorschläge in Tag-Werten für bekannte Token, die vom SDK für JSON-, XML- und ASN.1-Code bereitgestellt werden.

JSON-Datei in einem neu unterstützten Stil

Und schließlich unterstützt GoLand 2021.1 das durch Zeilenumbrüche getrennte JSON-Lines-Format, das für strukturierte Daten und Protokolle verwendet wird. Die IDE erkennt die Dateitypen .jsonl, .jslines, .ldjson und .ndjson.

Dateien in diesem Format bestehen aus mehreren Zeilen, die jeweils ein JSON-Objekt enthalten. Als Trennzeichen wird das Zeilenvorschubzeichen verwendet. Weder am Anfang noch am Ende der Zeilen sind Kommas erforderlich, und es ist nicht nötig, den gesamten Dateiinhalt in eckige oder geschweifte Klammern zu setzen.

Einfache Fehlerbehandlung

Die Codeinspektion „Unhandled Error“ und der Quick-Fix „Wrap error handling in a closure“ in Aktion

Der Codeinspektion Unhandled Error stehen jetzt eine ganze Reihe von Quick-Fixes zur Seite:

  • Der Quick-Fix Handle error speichert Aufrufergebnisse in Variablen und generiert eine if error not nil-Prüfung.
  • Der Quick-Fix Wrap error handling in a closure ist für die Anweisungen defer und go verfügbar und erzeugt ählichen Code wie Handle error, allerdings wird alles von einer Closure umgeben.
  • Wir haben den Anwendungsbereich von Ignore explicitly auf die Anweisungen defer und go erweitert. Der Quick-Fix weist die Aufrufergebnisse leeren Variablen zu und schließt alles in eine Closure ein.

Weitere Quick-Fixes

Konvertieren von Byte in String mit einem neuen Quick-Fix

Quick-Fix für Typinkompatibilität in zusammengesetzten Literalen

Wir haben den Anwendungsbereich eines Quick-Fixes zur Behebung von Typ-Kompatibilitätsproblemen erweitert. Der Quick-Fix schlägt nun auch die Erstellung einer Schnittstelle sowie die Konvertierung zum erwarteten Typ in zusammengesetzten Literalen vor.

Erstellen eines Typs mit allen erforderlichen Feldern über einen neuen Quick-Fix

Quick-Fix „Create Type“ generiert fehlende Felder

Wenn Sie in GoLand einen noch nicht existierenden Typ verwenden, kann der Quick-Fix Create Type nicht nur den Typ selbst erstellen, sondern auch die benötigten Felder.

Generieren von Getter- und Setter-Methoden aus einem Struct im Fenster „Select Fields“

Generieren aller Getter und Setter in einem Zug

Die Erstellung von get- und set-Methoden für jedes Feld eines riesigen Structs kann eine mühsame Aufgabe sein. Jetzt können Sie Getter und Setter für den gesamten Struct in einem Zug generieren.

Drücken Sie Alt+Enter auf einem beliebigen Struct-Feld und wählen Sie im Dropdown-Menü Generate getter and setters aus. GoLand öffnet das Fenster Select Fields, in dem Sie get- und set-Methoden für alle Felder oder nur für bestimmte Felder generieren können.

Refaktorierungen

Extrahieren eines Typs aus einer vorhandenen Struktur

Das Refactoring „Extract Type“

Mit dem Refactoring Extract Type können Sie einen Typ aus einem vorhandenen Typ extrahieren oder einen anonymen Strukturtyp in einen benannten Typ konvertieren. Drücken Sie zum Aufrufen die Tastenkombination Strg+Alt+Umschalt+T.

Go-Module

Ändern eines Modulnamens mittels „Rename“-Refactoring

Rename-Refactoring für go.mod-Datei

Manchmal kommt es vor, dass man nach Abschluss der Vorarbeiten oder nach einigem Experimentieren mit dem Projekt ein Modul umbenennen möchte. Zu diesem Zweck steht Ihnen nun das Rename-Refactoring für die go.mod-Datei zur Verfügung. Sie können das Modul ohne Risiko umbenennen, ohne in der Projektstruktur alle Verwendungen suchen und anpassen zu müssen.

Rufen Sie dazu auf dem Modulnamen mit Umschalt+F6 das Rename-Refactoring auf. GoLand öffnet das Rename-Fenster, in dem Sie den aktuellen Namen ändern können. Sie haben die Wahl, ob die Änderung auch Kommentare und Zeichenfolgen umfassen soll, und Sie können eine Vorschau des Refactorings überprüfen. Vom Tab Refactoring Preview können Sie zu allen Verwendungen des Modulnamens navigieren. Mit der Rückgängig-Aktion können Sie alle durch das Refactoring vorgenommenen Änderungen schnell rückgängig machen.

Postfix-Vervollständigung

Die neue Postfix-Completion in Aktion

Neue Postfix-Completion „varCheckError“

Wenn Sie nach einem Bezeichner, der einen Fehler zurückgibt, .varCheckError eingeben, generiert die IDE automatisch Standard-Variablennamen und gibt den Fehler aus der Funktion zurück.

Formatierer

Importeinstellungen

Der integrierte Formatierer kann jetzt Importe genauso gruppieren wie goimports -local.

Um dies zu aktivieren, gehen Sie zu Settings | Editor | Code Style | Go | Imports und aktivieren Sie die Importgruppierung. Sie können auch angeben, welche Importe in separate Blöcke gruppiert werden sollen.

Ausführen und Debuggen

Einstellungen für „Process Elevation“

Mit GoLand 2021.1 können Sie längere sudo-Sitzungen ausführen. Beim ersten Ausführen fragt GoLand, ob Sie sudo weiter ausführen oder sofort beenden möchten. Unter Settings | Appearance & Behavior | System Settings | Process Elevation können Sie die Einstellung jederzeit ändern.

Bitte beachten Sie, dass Sie durch Aktivieren dieser Option GoLand und allen Drittanbieter-Plugins Zugriff auf Ihr System gewähren.

Codevervollständigung

Completion-Vorschläge bei aktiviertem maschinellem Lernen

Wir haben bei der Code-Completion die Unterstützung durch maschinelles Lernen aktiviert. Damit debütiert die in einem frühen Stadium befindliche ML-gestützte Code-Completion, die eine Alternative zum herkömmlichen Ranking-Mechanismus darstellt.

Aktivieren Sie Mark position changes in completion popup unter Settings | Editor | General | Code Completion, um Vorschläge, die durch ML-Completion umsortiert wurden, in der Completion-Liste mit Auf-/Ab-Pfeilen zu markieren.

Verbesserungen der UI

Ändern des IDE-Designs über das neue Schnellzugriffsmenü

Schnellzugriffsmenü

Das Configuration-Widget, das bisher in der unteren linken Ecke der IDE verfügbar war, wurde durch ein Schnellzugriffsmenü ersetzt. Das neue Menü wird in der oberen rechten Ecke angezeigt. Klicken Sie auf das Zahnradsymbol, um das Design oder die Tastaturbelegung zu wechseln, zu den Plugins zu navigieren oder die Einstellungen zu öffnen.

Schneller Zugriff auf aktuelle Projekte unter Windows

Schneller Zugriff auf aktuelle Projekte über Windows-Startmenü

Sie können jetzt unter Windows auf Ihre letzten Projekte zugreifen, indem Sie in der Taskleiste oder im Start-Menü mit der rechten Maustaste auf das GoLand-Symbol klicken.

Neue Tooltip-Anzeige

Bessere Tooltip-Anzeige

Tooltips werden jetzt nacheinander angezeigt, um Überlappungen zu vermeiden.

Die Typografie-Einstellungen

Schriftvarianten

Sie können jetzt unter Settings | Editor | Font Schriftvarianten auswählen.

Andere Änderungen

Die neue integrierte Browser-Vorschau in Aktion

Integrierte HTML-Vorschau

Mit einer neuen, integrierten Browser-Vorschau können Sie HTML-Dateien in Sekundenschnelle überprüfen. Alle Änderungen, die Sie in der IDE an den HTML-Dateien oder den verknüpften CSS- und JavaScript-Dateien vornehmen, werden sofort gespeichert, und die Vorschau wird unmittelbar aktualisiert.

Um die Vorschau zu öffnen, klicken Sie im Widget in der oberen rechten Ecke des Editors auf das GoLand-Logo.

Ändern der Tab-Größe im Editor

Maximieren von Editor-Tabs in der geteilten Ansicht

Benötigen Sie hin und wieder mehr Platz, wenn Sie in einem geteilten Editor mit mehreren Dateien gleichzeitig arbeiten? Doppelklicken Sie auf den gerade verwendeten Tab, um ihn im Editorfenster zu maximieren. Mit einem erneuten Doppelklick wird der Tab wieder auf die ursprüngliche Größe verkleinert.

Installiertes Plugin „Makefile Language“ auf der Plugin-Seite der IDE

Plugin „Makefile Language“ standardmäßig enthalten

Das Plugin Makefile Language, das Sprachunterstützung für GNU Make bietet und früher von einem Drittanbieter gepflegt wurde, ist jetzt im Standard-Lieferumfang enthalten. Damit bietet GoLand 2021.1 direkt nach der Installation Syntaxhervorhebung, Kurzdokumentation, Verwendungssuche für Targets und einige Navigations- und Code-Completion-Aktionen für Makefile!

Code With Me

'Code With Me' in Aktion

Code With Me, der neue JetBrains-Service für kollaborative Entwicklung und Paarprogrammierung, ist ab sofort in GoLand enthalten.

Stellen Sie die benötigte Zugriffsstufe für Ihr Projekt ein und teilen Sie den Link mit Ihren Gästen. Ihre Kolleg*innen benötigen nicht einmal eine eigene IDE, um mit Ihnen zusammenzuarbeiten. Integrierte Audio- und Videoanrufe sowie Chat-Nachrichten helfen Teams dabei, den Code zu besprechen, ihr Wissen zu teilen und effizienter zusammenzuarbeiten.

Unternehmen, die besonderen Wert auf Sicherheit legen, können Code With Me in ihrem eigenen privaten Netzwerk installieren und sicher ausführen.

Weitere Informationen zur Verfügbarkeit von Code With Me mit Ihrer aktuellen JetBrains-Lizenz finden Sie auf unserer Preisseite.

Docker

Code-Completion im Feld „Run Options“

Verbesserte Run/Debug-Konfigurationen

Wir haben den Dialog Run/Debug Configuration in verschiedener Hinsicht verbessert:

  • Um die benötigten Build-Optionen hinzuzufügen, klicken Sie auf Modify options. Um Run-Optionen hinzuzufügen, klicken Sie auf Modify. Die IDE überprüft nun jede Option, um die Kompatibilität sicherzustellen.
  • Für Docker-сompose unterstützen wir alle vorhandenen Optionen, einschließlich der Option zum Deklarieren von Umgebungsvariablen-Dateien (.env).
  • Bei Dockerfile müssen Sie sich nicht alle Ausführungsbefehle merken, da die Code-Completion auch im Feld Run Options funktioniert.
  • Bei Docker-Image können Sie die Code-Completion verwenden, um den Image-Namen in das Feld Image ID oder name einzugeben.
Die IDE erstellt das Image mit BuildKit

BuildKit-Unterstützung

Durch experimentelle Unterstützung für BuildKit haben wir den Build-Prozess von Projekten erheblich beschleunigt. Um diese Option zu aktivieren, klicken Sie in Run/Debug Configurations auf Modify options und dann auf Enable BuildKit (experimental).

Klicken Sie einfach auf das Hammer-Symbol neben dem Stage-Namen, und die IDE erstellt das Image mit BuildKit. Wenn Sie den Abschnitt Run in Run/Debug Configurations hinzufügen, ändert sich das Symbol. Wenn Sie es anklicken, wird nicht nur ein Image erstellt, sondern auch ein Container ausgeführt.

Faltung von Stages im Editor

UI-Verbesserungen in Multistage-Dockerfiles

Wenn Sie mehrere FROM-Anweisungen in Ihrer Dockerfile verwenden, startet jede FROM-Anweisung eine neue Stage. In GoLand 2021.1 können Sie jetzt die einzelnen Stages zuklappen. Außerdem ist zwischen den Stages eine eindeutige Trennlinie zu sehen.

Docker kann über die entsprechende Schaltfläche im Services-Toolfenster angehalten werden

Docker-Ausführung abbrechen

Wenn Sie eine ausgeführte Dockerfile beenden möchten, können Sie dies ganz einfach im Services-Toolfenster erledigen. Wählen Sie das ausgeführte Objekt aus, rufen Sie das Kontextmenü auf und klicken Sie auf Stop Deploy.

Code-Completion im Fenster „Bind Mounts“

Umgebungsvariablen und Makros für Docker-Mounts

Bei Verwendung von Bind-Mounts lässt sich der Pfad zu einem Verzeichnis auf dem Host schneller eingeben. Die Completion-Funktion schlägt in der Bind mount-Option von Run/Debug Configurations Makros und Umgebungsvariablen vor.

Code-Completion für Images in einer Dockerfile

Completion von Images in Dockerfiles

Zu guter Letzt haben wir die Completion von Image-Namen implementiert.

Änderungen der Webentwicklung

Ein Tooltip mit MDN-Dokumentation im Editor

Integrierte MDN-Dokumentation

Die MDN-Dokumentation wird jetzt mit GoLand mitgeliefert. Auf diese Weise werden Verbindungsprobleme zur MDN-Website vermieden, und die Dokumentation für Ihre HTML-, CSS- und JavaScript-Dateien kann schneller angezeigt werden. Auch der Umfang der im Editor angezeigten Informationen wurde erweitert – für die JavaScript-APIs werden zum Beispiel die unterstützten Browserversionen angezeigt.

Stylelint mit zugehörigem Quick-Fix in Aktion

Verbesserte Stylelint-Unterstützung

Das Überprüfen von CSS-Code mit Stylelint ist jetzt einfacher. Es bedarf nur weniger Klicks, um mit diesem beliebten Linter Probleme in Ihrem Code zu beheben. Bewegen Sie den Mauszeiger oder die Einfügemarke auf ein Problem in Ihrer Datei, drücken Sie Alt+Enter und wählen Sie Stylelint: Fix current file.

Darüber hinaus können Sie jetzt im entsprechenden Feld unter Settings | Languages & Frameworks | Style Sheets | Stylelint den Pfad zur Konfigurationsdatei angeben.

Dokumentations-Popup für einen Selektor

Spezifität von CSS-Selektoren

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. Alternativ können Sie den Fokus auf einen Selektor legen und mit Strg+Q das Dokumentations-Popup aufrufen, das diese Informationen ebenfalls enthält.

Mit Datenbanken arbeiten

Ein neues „ORDER BY“-Feld in einer Tabelle

Bessere Sortierung

Wir haben die Sortierung von Daten verbessert:

  • Das neue ORDER BY-Feld funktioniert ähnlich wie das WHERE-Feld (das früher Filter hieß): Geben Sie eine funktionierende Klausel ein, um sie auf die Abfrage anzuwenden, die der Tabellenanzeige zugrunde liegt.
  • Die Sortierung erfolgt standardmäßig anhand einer einzelnen Spalte. Wenn Sie also auf einen Spaltennamen klicken, um die Daten entsprechend zu sortieren, wird eine eventuelle Sortierung nach anderen Spalten aufgehoben. Um nach mehreren Spalten zu sortieren, halten Sie die Alt-Taste gedrückt, während Sie auf einen Spaltennamen klicken.
  • Wenn die Sortierung auf der Clientseite erfolgen soll (GoLand führt die Abfrage nicht erneut aus und sortiert auch nicht die Daten auf der aktuellen Seite), deaktivieren Sie Sort via ORDER BY.
  • Es ist auch möglich, Tabellen beim Öffnen anhand des numerischen Primärschlüssels zu sortieren.
„Erste N Zeilen aus einer Tabelle auswählen“ im Editor

Kontextbezogene Live-Vorlagen

Dies ist unsere Lösung für alle, die einfache Anweisungen direkt im Datenbank-Explorer generieren möchten. Allgemeine Live-Vorlagen decken viele Fälle ab, wenn es darum geht, schnell eine einfache Abfrage zu schreiben. Aber wenn Sie im Datenbank-Explorer bereits das gewünschte Objekt ausgewählt haben, sollte es einfachere Möglichkeiten geben, um eine Abfrage zu erstellen, die sich auf dieses Objekt bezieht.

Select first N rows from a table sieht wie eine allgemeine Vorlage aus (und kann auch als solche verwendet werden). Da diese spezielle Syntax nicht in allen Datenbanken verwendet werden kann, sind die entsprechenden Dialekte für die Vorlage festgelegt. Das Unterscheidungsmerkmal, das die Anwendung dieser Vorlage im Datenbank-Explorer ermöglicht, ist der spezielle Ausdruck dbObjectName, der für die Variable $table$ verwendet wird.

Grant-Vergabe für ein Objekt über das neue Fenster

Bedienoberfläche für Grants

Wir haben eine Bedienoberfläche zum Bearbeiten von Grants beim Ändern von Objekten hinzugefügt.

Das Fenster Modify user, das Sie mit Strg+F6 für einen Benutzer im Datenbank-Explorer aufrufen können, bietet jetzt die Möglichkeit, Objekten Grants zuzuordnen.

Dieses Feature ist für PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server und Sybase verfügbar.