Das ist neu in GoLand

GoLand 2020.2 bietet neue Features für Go-Module, neue Möglichkeiten zum Überprüfen und Beheben von Problemen in Ihrem Code sowie zahlreiche neue Codeinspektionen. Hinzu kommen neue Funktionen zur Codebearbeitung (etwa die lang erwartete Aktion Add Caret Per Selected Line), experimentelle Generics-Unterstützung, Hochladen von Code zum Go Playground, Updates für die Nutzung von Versionsverwaltungen einschließlich Unterstützung für Git in WSL 2 unter Windows – und noch einiges mehr!

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

Verbesserungen bei Go-Modulen

Sie können die neue Umgebungsvariable GOMODCACHE im Dialogfeld Environment Variables festlegen.

Ab Go 1.15 können Sie mit der neuen Umgebungsvariable GOMODCACHE den Standardspeicherort des Modulcaches von $GOPATH/pkg/mod zu einem anderen Ordner ändern.

Geben Sie dazu den gewünschten Pfad einfach unter GOMODCACHE in Preferences/Settings | Go Modules | Environment an. Die IDE erkennt den benutzerdefinierten Speicherort und verwendet ihn für alle nachfolgenden Aktionen mit Bezug zu Abhängigkeiten.

Auskommentieren von Modulabhängigkeiten in der Datei go.mod

Die Aktion Comment With Line Comment (Strg+/ auf Windows/Linux und ⌘/ auf macOS) kann jetzt in der go.mod-Datei genutzt werden.

GoLand ergänzt schließende Klammer für replace-Anweisung in go.mod

GoLand ergänzt jetzt sofort eine schließende Klammer, wenn Sie die öffnende Klammer für die Anweisungen replace, exclude oder require eingeben.

Bessere Nutzung von Kommentaren

Navigation von Kommentaren zum Quellcode

Die IDE markiert in Kommentaren Verweise auf entsprechende Deklarationen auf Paketebene und ermöglicht das Navigieren zu diesen mithilfe der Aktion Navigate to Declaration oder Usages (⌘B auf macOS und Strg+B/ auf Windows/Linux).

Codeinspektionen

Navigation zu Warnungen und Fehlern in der Datei mittels Inspektions-Widget

Das neue Inspektions-Widget zeigt Ihnen in der oberen rechten Ecke des Code-Editors die Anzahl der Warnungen, Fehler und Tippfehler in der aktuellen Datei an. Sie können mithilfe der Pfeilsymbole oder der Aktion Next Error (F2) zwischen ihnen navigieren.

Sie können einstellen, welche Probleme das Widget berücksichtigen soll (keine, nur Fehler oder alle Probleme). Außerdem können Sie den Severity-Grad der Inspektionen ändern und auf eine Kompaktansicht umschalten, um Ablenkungen zu vermeiden.

Navigieren zu einem Fehler in der Problemansicht und Beheben mit Alt+Enter

Das Problems-Toolfenster zeigt eine Liste der Warnungen und Fehler in der aktuellen Datei an. Zu jedem Problem wird eine Beschreibung angezeigt, und Sie können eventuelle Fehler mit Alt+Enter sofort beheben.

Um das Problems-Toolfenster zu öffnen, klicken Sie auf das Inspektions-Widget oder gehen Sie zu View | Tool Window | Problems. Mit einem Rechtsklick auf ein Problem gelangen Sie direkt zu der entsprechenden Codezeile.

GoLand warnt vor möglichen Konvertierungsproblemen und schlägt eine Korrektur mittels Alt+Enter vor

Eine neue Codeinspektion erkennt mögliche Probleme mit string(int)-Konvertierungen, die die UTF-8-Darstellung des Unicode-Codepunkts x anstelle der erwarteten Stringdarstellung der Dezimalzahl x zurückgeben.

GoLand weist Sie auf solche potenziellen Fehler hin und bietet einen entsprechenden Quick-Fix an.

GoLand warnt vor einem falschen Testnamen und schlägt Korrektur mittels Alt+Enter vor

GoLand weist Sie auf häufige Fehler bei der Verwendung von Tests und Beispielen hin, sodass Sie go vet nicht mehr explizit für diesen Zweck aufrufen müssen. Für einfache Fälle bietet die IDE auch Quick-Fixes an – zum Beispiel schlägt sie die Umbenennung von Testme zu TestMe vor.

Die Inspektion „Malformed struct tag code“ weist den Benutzer auf ein mögliches Problem hin

Die Codeinspektion Malformed struct tag überprüft, ob Struct-Tags den Go-Konventionen entsprechen, und weist Sie auf mögliche Probleme hin.

GoLand warnt den Benutzer vor einer unmöglichen Interface-Assertion

Die Codeinspektion Impossible interface type assertion prüft den Code auf Type-Assertions wie v.(T) sowie entsprechende Type-Switch-Blöcke, in denen der statische Typ V von v eine Schnittstelle ist, die die Zielschnittstelle T unmöglich implementieren kann.

Dies tritt auf, wenn V und T Methoden mit demselben Namen, aber unterschiedlichen Signaturen enthalten.

Codebearbeitung

Show Context Actions zeigt verfügbare Optionen an

Um das Ergebnis einer Intention-Aktion oder eines Quick-Fixes vor der Anwendung auf Ihren Code in einer Vorschau zu überprüfen, rufen Sie mit dem Tastenkürzel Alt+Enter den Befehl Show Context Actions auf, wählen Sie eine Intention-Aktion bzw. einen Quick-Fix aus, und drücken Sie ⌥+Leertaste (macOS) bzw. Strg+Umschalt+I (Windows und Linux).

Die Aktion Add Caret Per Selected Line setzt Einfügemarken am Ende jeder ausgewählten Zeile

Die neue Aktion Add Caret Per Selected Line setzt Einfügemarken am Ende jeder ausgewählten Zeile und hebt dann die Zeilenauswahl auf. Zum Aufrufen drücken Sie Alt+Umschalt+G auf Windows/Linux bzw. ⌥⇧G auf macOS.

Die Intention-Aktion „Put arguments on one line“ teilt einen Ausdruck auf mehrere Zeilen auf

Sie können die Handhabung von Zeilenumbrüchen bei Aufrufargumenten, Funktionsparametern und zusammengesetzten Literalen unter Preferences/Settings | Editor | Code Style | Go | Wrapping und Braces einstellen.

Alternativ können Sie mittels Alt+Enter die Intention-Aktionen Put arguments on separate lines und Put arguments on one line verwenden, um Zeilen manuell aufzuteilen oder zu verbinden.

Perfekte Kontrolle über variadische Argumente

Das Refactoring Inline Variable entpackt ein Slice in variadische Argumente

Das Refactoring Introduce Variable (Strg+Alt+V auf Windows und Linux, ⌘⌥ V auf macOS) kann bestimmte variadische Argumente in eine neue Slice-Variable verpacken, während Inline Variable (⌥⌘N auf macOS und Strg+Alt+N auf Linux und Windows) umgekehrt vorgeht und ein Slice in variadische Argumente entpackt.

Quick-Fix „Unpack slice“ in Aktion

Darüber hinaus können Sie jetzt mit dem Quick-Fix Unpack slice Probleme mit entpackten variadischen Argumenten beheben.

Projekte als Vorlagen speichern

Toolfenster Save Project as Template

Sie können jetzt Projekte oder Dateien wiederverwenden, indem Sie sie als benutzerdefinierte Projektvorlagen speichern: Wählen Sie dazu Tools | Save Project as Template. Bei Verwendung der Vorlage reproduziert die IDE den Projektbaum samt Dateien, Ordnern und Build-Konfigurationen.

Go Playground

Aktion „Share in Playground“ im Dropdown-Menü

Durch einen einfachen Doppelklick im Editor können Sie jetzt Code im Go Playground teilen und ausführen. Wählen Sie dazu einfach Go Tools | Share in Playground im Dropdown-Menü. Alternativ können Sie den Menüeintrag Tools | Go Tools | Share in Playground verwenden oder ⌥⇧⌘S (macOS) bzw. Strg+Alt+Umschalt+S (Windows/Linux) drücken.

Dies funktioniert auch mit go2-Dateien zum Experimentieren mit Generics. In diesem Fall bringt Sie GoLand zur neuen Website https://go2goplay.golang.org/.

Generics (Typparameter)

Bei go2-Dateien hebt der Editor die Syntax hervor und bietet eine grundlegende Auflösung von Referenzen

Das Go-Team hat kürzlich einen Designentwurf für Generics vorgestellt. In der Golang-Dokumentation finden Sie eine ausführliche Beschreibung des Konzepts.

GoLand 2020.2 bietet experimentelle Unterstützung für Generics, die Sie ausprobieren können, indem Sie die Einstellung Enable experimental support for generics a.k.a. type parameters unter Settings/Preferences | Go aktivieren.

Diese Erstunterstützung umfasst die Syntaxhervorhebung und die grundlegende Referenzauflösung und funktioniert nur in go2-Dateien.

Unter der Haube

Abhängigkeit mittels Alt+Enter synchronisieren

Wenn der Vendoring-Modus aktiviert ist, werden beim Erstellen eines Builds Ihrer Anwendung nur die Abhängigkeitspakete verwendet, die im Ordner Vendor Ihres Projekts gespeichert sind.

Wenn ein Projekt einen Vendor-Ordner hat und Sie die Einstellung „Enable vendoring mode automatically“ unter Settings/Preferences | Go | Go Modules aktiviert haben, wird jetzt beim Auflösen nur der Vendor-Ordner verwendet, ohne den Modul-Cache zu berücksichtigen.

GoLand zeigt „go list“-Fortschritt in einem Fortschrittsbalken an

GoLand führt go list-Befehle nacheinander aus und zeigt in einem Fortschrittsbalken die Anzahl der „go list“-Befehle an, die sich in der Warteschlange befinden.

Versionsverwaltung

WSL2-Unterstützung für Git unter Windows

WSL2-Unterstützung für Git unter Windows

Mit GoLand 2020.2 können Sie die Git-Version aus WSL2 verwenden, die seit dem Mai-Update von Windows 10 (Version 2004) nativ verfügbar ist. Wenn Git nicht in Windows installiert ist, sucht GoLand automatisch nach Git in WSL und verwendet die dort gefundene Git-Version. Außerdem schaltet die IDE automatisch zu Git in WSL um, wenn ein Projekt in WSL geöffnet wird (über \wsl$ path).

Verbesserte Git-Aktionsdialoge

Verbesserte Git-Aktionsdialoge

Wir haben die Git-Dialoge für Aktionen wie Merge, Pull und Rebase überarbeitet, um sie einheitlicher und informativer zu gestalten. Jetzt wird deutlicher hervorgehoben, welcher Git-Befehl ausgeführt wird, und es sind neue Optionen verfügbar: –rebase im Pull-Dialog sowie –no-verify im Merge-Dialog.

Review mit einer Kommentaraktion starten

Vollständige Unterstützung für GitHub-Pull-Requests

GitHub-Pull-Requests können jetzt ohne Einschränkungen genutzt werden! Sie können Pull-Requests durchsuchen, zuweisen, verwalten und sogar mergen. Sie können den zeitlichen Verlauf und die Inline-Kommentare anzeigen, Kommentare und Reviews einreichen und Änderungen übernehmen – alles ohne GoLand zu verlassen.

Verbesserte Darstellung beim Vergleichen von Branches

Verbesserte Darstellung beim Vergleichen von Branches

Wenn Sie zwei Branches in GoLand vergleichen, werden die Commits beider Branches in einer gemeinsamen Ansicht angezeigt. Die IDE öffnet jetzt die Logs beider Branches im Editor statt im VCS-Toolfenster, da das Toolfenster nicht genügend Platz bietet, um alle Informationen anzuzeigen.

Updates der Datenbankunterstützung

Separater Editor für Zellenwerte

Separater Editor für Zellenwerte

Wenn Ihre Zelle einen großen Wert enthält, können Sie diesen jetzt in einem separaten Bereich anzeigen oder bearbeiten. Sie können außerdem auf der rechten Symbolleiste die Zeilenumbrüche ein- und ausschalten (Soft-Wrap-Modus). Nutzen Sie die ganze Leistungsfähigkeit unseres Code-Editors für Ihre Daten!

DML-Vorschau im Dateneditor

DML-Vorschau im Dateneditor

Seit dieser Version können Sie sich die Abfrage anzeigen lassen, die Ihren im Dateneditor vorgenommenen Änderungen entspricht. Die neue DML-Schaltfläche ist dann aktiv, wenn es ungespeicherte Änderungen gibt.

Es wird ein Dialog mit der DML-Vorschau angezeigt. Diese Abfrage entspricht nicht in jedem Fall exakt der SQL-Abfrage, die zur Änderung Ihrer Daten ausgeführt wird, da GoLand einen JDBC-Treiber zum Aktualisieren von Tabellen verwendet. Meistens sind die beiden Abfragen jedoch identisch.

Neue Benutzeroberfläche für boolesche Werte

Neue Benutzeroberfläche für boolesche Werte

Es gibt jetzt eine benutzerfreundlichere Möglichkeit, boolesche Werte anzuzeigen und zu bearbeiten. Wahre Werte werden jetzt mit einem Punkt markiert, um sie von anderen Werten zu unterscheiden.

Programmierunterstützung für den SQL-Dialekt Google BigQuery

Google-BigQuery-Dialekt

Wir haben einen neuen SQL-Dialekt hinzugefügt: Google BigQuery. Die vollständige Unterstützung von BigQuery lässt zwar noch ein wenig auf sich warten, aber der Anfang ist jetzt gemacht. GoLand kann bei der Verwendung von Google BigQuery Ihre Abfragen korrekt hervorheben und Programmierunterstützung bereitstellen.

JavaScript und TypeScript

Neue, intelligente Intentionen

Neu eingeführte intelligente Intentions (Alt+Enter) helfen Ihnen dabei, einige Aktionen schneller auszuführen. Zum Beispiel können Sie jetzt eine for-Schleife mit numerischem Index mühelos in eine forEach-Arraymethode umwandeln. Das Lesen von Dokumentationskommentaren in JavaScript- und TypeScript-Dateien ist ebenfalls einfacher geworden, da diese jetzt direkt im Editor gerendert werden können, um Ablenkungen zu minimieren.