Das ist neu in GoLand 2023.3

GoLand 2023.3 enthält mehrere bedeutende Neuerungen:

  • Der AI Assistant von JetBrains ist jetzt allgemein verfügbar und bietet eine Reihe von neuen und verbesserten Funktionen, die Ihre Produktivität bei der Arbeit mit JetBrains-IDEs steigern.
  • Dev-Container werden jetzt offiziell unterstützt. Wir arbeiten aktiv an der Unterstützung von Dev-Containern und an der Festlegung des Funktionsumfangs, weshalb die Funktion als „Beta“ bereitgestellt wird.
  • Ein umfangreiches Update für die Codefaltung unter anderem in den Bereichen Fehlerbehandlung, einzeilige returns und panics.
  • Verschiedene Hinweise, Refactorings und Quick-Fixes zur Verbesserung Ihrer Produktivität, z. B. Hinweise für slice-Ausdrücke, Code-Insight für benutzerdefinierte printf-ähnliche Funktionen und Verbesserungen im Debugger.

Darüber hinaus bietet GoLand 2023.3 weitere Updates und Verbesserungen in den Bereichen Docker- und Kubernetes-Integration, Versionsverwaltung und Webentwicklung. Sehen Sie sich gleich die Details an!

AI Assistant Allgemein verfügbar

Zu den neuesten Updates zählen eine verbesserte Codegenerierung direkt im Editor, ein kontextspezifischer KI-Chat, der Antworten auf projektbezogene Fragen gibt, ohne dass Sie Code kopieren müssen, sowie projektbezogene KI-Aktionen, die durch Berücksichtigung des erweiterten Kontexts zielgenauere Ergebnisse liefern. Ein neuer Diff-Betrachter macht es einfacher, Änderungen zu erkennen, die durch KI-Aktionen an Ihrem Code vorgenommen wurden.

Sie können AI Assistant in GoLand als Zusatzfunktion mit einem Abonnement für den JetBrains AI Service verwenden.

AI Assistant für GoLand: Umbenennen

Gute Namen zu finden ist nicht einfach! Deshalb unterstützt Sie AI Assistant in GoLand mit Namensvorschlägen für Funktionen, die zur Verständlichkeit des Codes beitragen.

AI Assistant für GoLand: Dokumentation schreiben

Das Dokumentieren des eigenen Codes ist eine langweilige, aber notwendige Routine. Mithilfe der Aktion Write documentation können Sie Ihren Code mit wenigen Klicks solide dokumentieren.

AI Assistant für GoLand: Unit-Tests generieren

AI Assistant unterstützt Sie dabei, einen Test für eine bestimmte Funktion oder Methode zu erstellen. Nachdem die erste Testklasse erstellt wurde, schlägt der Assistent vor, weitere Testfälle hinzuzufügen.

Refactoring

Quick-Fix: Funktion in einem anderen Paket erstellen

Mit diesem Quick-Fix können Sie einen nicht existierenden Funktionsnamen eingeben und dann eine Implementierung in einem Paket Ihrer Wahl generieren.

Refactoring Extract Parameter

Das Release 2023.3 enthält den ersten Teil des vielfach erwarteten Refactorings Extract Parameter. Mit dem Quick-Fix Create Parameter können Sie eine unaufgelöste Referenz auswählen und einen passenden Parameter erstellen. Sie können auch den Typ ändern, wenn dieser nicht präzise genug ist, einen Standardwert vorgeben und Aufrufe mit dem Standardwert anpassen.

Dev-Container Beta

Unterstützung für Dev-Container

GoLand unterstützt jetzt Dev-Container, sodass Sie Container als vollwertige Entwicklungsumgebung zum Bearbeiten, Erstellen und Ausführen Ihrer Projekte verwenden können. Dev-Container können über eine SSH-Verbindung oder lokal mit Docker ausgeführt werden.

Unterstützung für Dev Container Features

GoLand 2023.3 unterstützt Dev Container Features, sodass Sie schnell und unkompliziert zusätzliche Tools, Laufzeitumgebungen und Bibliotheken integrieren können, wenn Sie diese für die Entwicklung benötigen.

Unterstützung für Docker Compose in Dev-Containern

Auch Docker Compose wird jetzt in Dev-Containern unterstützt. Dadurch können sowohl der Hauptcontainer als auch abhängige Container, die während des Entwicklungsprozesses nützlich sind – z. B. Datenbanken oder Nachrichtenwarteschlangen – mit der IDE gestartet werden.

Verbesserte Codefaltung

Einzeilige returns und panics

Für einzeilige returns und panics kann jetzt die neue, kompakte Codefaltung verwendet werden, die dem Aussehen des ursprünglichen Codes wesentlich näher kommt.

Die neue Faltsyntax ist standardmäßig aktiviert.

Einen ähnlichen Ansatz verwenden wir auch bei case-Klauseln: Der Aufwärtspfeil wird entfernt und nur der Doppelpunkt wird gefaltet.

Funktionen mit einem einzigen return

Wie bei einzeiligen returns und panics haben wir auch bei Funktionen mit einer einzelnen return-Anweisung die Faltung aktiviert.

Fehlerbehandlung

Um in Codeabschnitten zur Fehlerbehandlung die Lesbarkeit zu verbessern, faltet GoLand if-Blöcke in Fehlerbehandlungen automatisch.
Bei if-Blöcken mit Fehlerbehandlungscode faltet GoLand außerdem alle Einzelanweisungen, zum Beispiel Protokollierungsaufrufe.

Codefaltung für string-Formatierung deaktiviert

Wir haben die Codefaltung für die string-Formatierung deaktiviert, um die relevante Syntax besser erkenntlich zu machen. Außerdem können Sie mit dem neuen Faltungsansatz Codeblöcke bearbeiten, ohne sie erweitern zu müssen.

Code-Completion

switch-Generierung für Enums

GoLand kann Sie jetzt beim Schreiben von switch-Anweisungen für Enums unterstützen. Die IDE schlägt bei der Completion die Generierung von Fällen für alle Werte vor.

Warnung vor fehlenden Branches, wenn Fälle mit iota deklarierte Konstanten enthalten

Die Inspektion hilft Ihnen, den Überblick über switch-Ausdrücke für iota-Konstanten zu behalten. Die Inspektion warnt Sie vor Fällen, die nicht vom switch-Block abgedeckt werden, und bietet zwei Lösungen an: Hinzufügen der fehlenden Klauseln oder Hinzufügen einer default-Klausel.

Ausführen und kompilieren

Code-Coverage-Profile für Programme

Mit dieser Funktion können Sie genau sehen, welcher Code in einem oder mehreren Durchläufen ausgeführt wurde. Dadurch können Sie auch ungenutzten Code leichter erkennen.
Bisher funktionierte dies nur bei Testläufen; jetzt können Sie auch die Funktion main mit Coverage ausführen.

Weitere Go-bezogene Funktionen

Parameterhinweise für Slice-Ausdrücke

slice-Ausdrücke können verwirrend sein, insbesondere wenn sie drei Indizes haben. GoLand zeigt Ihnen jetzt Hinweise an, während Sie einen Slice definieren.

Code-Insight für benutzerdefinierte printf-ähnliche Funktionen

GoLand stellt zahlreiche nützliche Funktionen für standardmäßige printf-ähnliche Funktionen bereit: Einfärben von Platzhaltern, Fehlererkennung, Codefaltung usw. Jetzt stehen alle diese Funktionen auch für benutzerdefinierte printf-ähnliche Funktionen zur Verfügung.

Datenflussanalyse

GoLand 2023.3 führt eine verbesserte Datenflussanalyse ein, die auf der CLion-Engine basiert. Dadurch wird ein größeres Spektrum von Codeproblemen erkannt, z. B. potenzielle nil-Dereferenzierungen, fehlerhafte oder fehlende Fehlerbehandlungen oder Bedingungen, die immer true/false sind.

Bitte beachten Sie, dass sich diese Funktion derzeit in der Early-Access-Phase befindet und standardmäßig deaktiviert ist. Sie können sie unter Settings | Editor | Inspections | Go | Data Flow Analysis (experimental) aktivieren – wir freuen uns auf Ihr Feedback!

Unterstützung lokaler Go-Installationen mit asdf

asdf ist ein Befehlszeilentool, mit dem Sie mehrere Laufzeitversionen der Sprache verwalten können. Aufgrund der Rückmeldungen der Community haben wir beschlossen, die asdf-Unterstützung in die diese Version aufzunehmen. Ab diesem Release prüft GoLand die Go-Version in der Datei .tool-versions und verwendet die passende Go-Version für das Projekt.

Vorwärtskompatibilität und Toolchain-Verwaltung für Go 1.21

Go 1.21 und spätere Versionen sollten besser darauf achten, keinen Code falsch zu kompilieren, der eine noch neuere Version von Go erfordert. Konkret bedeutet dies, dass in der Zeile go in go.mod nun die benötigte Mindestversion der Go-Toolchain vorgegeben wird, während dies in früheren Releases ein Vorschlag war, der größtenteils nicht erzwungen wurde.

GoLand unterstützt jetzt dieses Vorgehen vollständig und lädt automatisch die SDK-Version herunter, die in einer go.mod-Datei in der Zeile go oder toolchain angegeben ist. Die angegebene Version wird auch in die Go project-Einstellungen automatisch übernommen.

Performance-Verbesserungen bei der Vendoring-Unterstützung

GoLand 2023.3 wurde auf die moderne IntelliJ-Plattform-API umgestellt, und dadurch wird go list -m nicht ein zweites Mal ausführt, wenn das Projekt Vendor-Verzeichnisse enthält. Eine effektivere Cache-Nutzung verbessert die Leistung bei Projekten mit vielen Go-Modulen.

Debugger

Inlay-Option Run to Cursor

Die neue Inlay-Option Run to Cursor, bietet beim Debuggen eine einfache Möglichkeit, den Code bis zu einer bestimmten Codezeile auszuführen. Wenn Ihr Programm angehalten ist, können Sie den Mauszeiger auf die Codezeile bewegen, bis zu der Sie die Ausführung fortsetzen möchten. Dann können Sie über das Popup Run to Cursor den Code bis zu der Zeile ausführen, auf der sich Ihr Cursor befindet.

VCS

Unterstützung für GitLab-Snippets

Wir erweitern die GitLab-Integration um die Unterstützung von GitLab-Snippets. Sie haben jetzt die Möglichkeit, direkt in der IDE öffentliche oder private Snippets zu erstellen.

Kubernetes

Hinzufügen von Cluster-Kontexten aus einer Datei

Sie können jetzt unkompliziert kubeconfig-Kontexte aus Clustern hinzufügen, die sich in Verzeichnissen außerhalb des benötigten Systems befinden. Dem Projekt werden Links zu kubeconfig-Dateien hinzugefügt, sodass diese Cluster Ihnen bei der Arbeit an Ihrem Projekt zur Verfügung stehen. Die auf diese Weise hinzugefügten kubeconfig-Inhalte werden nicht in das System (~/.kube/config) kopiert oder dort verändert. Diese Funktion ist besonders nützlich, wenn Sie häufig Kubernetes-Cluster aus Cloud- oder On-Premises-Umgebungen hinzufügen und entfernen. Mehr erfahren.

Automatische Installation von Kubernetes-Tools

Wenn Sie das Kubernetes-Plugin zum ersten Mal verwenden, müssen Sie möglicherweise kubectl und/oder Helm installieren. Wenn diese noch nicht auf Ihrem System vorhanden sind, bietet die IDE an, sie automatisch zu installieren.

Verbessertes Debugging mit Telepresence

Mit Telepresence können Sie die Microservices einer Kubernetes-Anwendung lokal debuggen – ganz so, als wäre Ihr Arbeitsrechner Teil des Clusters. In dieser Version haben wir durch einen Eintrag im Cluster-Kontextmenü den Zugang zum Telepresence-Workflow vereinfacht. Außerdem haben wir das Interception-Management optimiert, um die Debugging-Erfahrung zu vereinfachen.

Unterstützung für import-Block in Terraform

GoLand unterstützt import-Blöcke auf der obersten Ebene, wie sie ab Version 1.5 der Terraform-Konfigurationssprache möglich sind. Mit import-Blöcken können Sie die aktuelle Infrastruktur der Verwaltung durch Terraform unterstellen. Wenn import innerhalb eines Codeblocks verwendet wird, wird es Teil des standardmäßigen „plan“- und „apply“-Zyklus und ist nicht mehr ein Statusvorgang. Terraform führt eine automatische Codegenerierung für importierte Ressourcen durch, sodass Sie bei der Entwicklung von Infrastruktur als Code Zeit sparen.

Weitere Updates

TypeScript-Verbesserungen

GoLand 2023.3 behebt einige der Unstimmigkeiten, die beim Hinzufügen von import type-Anweisungen auftreten können. Die Verwendung der TypeScript-Anweisung „import type“ bzw. des Spezifizierers „type“ beim Importieren eines Typs kann jetzt konfiguriert werden. Außerdem haben wir bei TypeScript-Dateien das Verhalten für das Feld exports in der Datei package.json verbessert.

Verbesserungen im HTTP-Client

Wir haben die Structure-Ansicht verbessert, um in großen .http-Dateien eine einfachere Navigation zu ermöglichen. Dieses Update führt außerdem farbige Etiketten für Anfragetypen ein und bietet eine übersichtlichere Auflistung der jeweiligen Inhalte. Als weitere Neuerung können Variablen mit @ deklariert werden, und für die Authentifizierung wurden die OAuth-2.0-Grant-Typen „Passwort“ und „Client-Zugangsdaten“ hinzugefügt.

Cypress- und Playwright-Unterstützung

GoLand erkennt automatisch Ihre Cypress- und Playwright-Tests, sodass Sie diese mit einem einzigen Mausklick ausführen oder debuggen können. Die Unterstützung umfasst auch die Möglichkeit, in der Test Tree-Ansicht die Ergebnisse zu überprüfen und Probleme zu lokalisieren.

Universeller Diff-Betrachter

Dies ist eine überarbeitete Möglichkeit zur Überprüfung von Code-Änderungen. Anstatt jede Datei einzeln durchzugehen, können Sie jetzt alle geänderten Dateien eines Changesets in einem einzigen, scrollbaren Rahmen betrachten. Mehr erfahren.