GoLand 2023.1 führt eine Sicherheitslückenprüfung ein, verbessert die Navigation in gRPC-Code und bietet ein Rename-Refactoring für generische Receiver.
Sie können jetzt Scratch-Dateien ausführen, die auf Pakete außerhalb der Standardbibliothek verweisen, mit regulären Ausdrücken eigene Inspektionen zum Suchen und Ersetzen erstellen und unkompliziert in beiden Richtungen zwischen Raw-Zeichenfolgenliteralen und solchen in doppelten Anführungszeichen umwandeln. Die Kontextaktion Implement interface funktioniert jetzt auch für nicht exportierte Schnittstellen.
Darüber hinaus bietet die neue Version verschiedene Verbesserungen für die neue Bedienoberfläche, Updates für Docker und Kubernetes und Verbesserungen für die Webentwicklung.
Wenn Sie interaktive Lernmethoden bevorzugen, empfehlen wir Ihnen, das Tutorial What's New in GoLand 2023.1 zu absolvieren, das Sie auf dem Begrüßungsbildschirm finden.
GoLand kann jetzt Pakete mit bekannten Sicherheitslücken in go.mod
hervorheben. Bewegen Sie den Mauszeiger auf den hervorgehobenen Code oder drücken Sie Alt+Enter und wählen Sie Show vulnerability info for …, um eine Liste der Sicherheitslücken mit Links zur detaillierten Beschreibung anzuzeigen. Die Informationen zu den Sicherheitslücken werden vom Software-Sicherheitsunternehmen Checkmarx bereitgestellt.
Um eine Abhängigkeit auf eine Version ohne Sicherheitslücken zu aktualisieren, legen Sie in go.mod
die Einfügemarke auf ein hervorgehobenes Paket, drücken Sie Alt+Enter und wählen Sie den Quick-Fix Change package-name version to v0.x.x aus.
GoLand hebt außerdem direkt im Editor Aufrufe von Methoden hervor, die aus Paketen mit bekannten Sicherheitslücken stammen. Wenn Sie mit dem Mauszeiger über den hervorgehobenen Code fahren, wird ein Popup mit Informationen über die Sicherheitslücke und einem Link zur ausführlichen Beschreibung angezeigt.
Sie können es über Code | Analyze Code | Show Vulnerable Dependencies aufrufen.
Der HTTP-Client in GoLand unterstützt bereits das Ausführen von gRPC-Anfragen. gRPC-Anfragen können auch im Endpoints-Toolfenster ausgeführt werden.
Die neue Version bietet eine weitere wertvolle Ergänzung zu unserer gRPC-Unterstützung. Sie haben jetzt die Möglichkeit, aus Ihrem Go-Code zu den Deklarationen von Nachrichten, Services und Methoden zu navigieren und aus .proto
-Dateien zu den Go-Implementierungen zu navigieren.
Klicken Sie dazu auf das entsprechende Symbol neben der Deklaration bzw. Implementierung einer Nachricht, eines Service oder einer Methode.
Sie haben jetzt die Möglichkeit, Scratch-Dateien mit Go-Abhängigkeiten außerhalb der Standardbibliothek auszuführen. Wenn Sie Ihren Code aus einer Projektdatei in eine Scratch-Datei kopieren und die Schaltfläche Run anklicken, erstellt GoLand eine Run-Konfiguration mit dem Flag -overlay
. Dieses Flag wird mit einer JSON-Datei verwendet, die Dateipfade den Dateien go.mod
und go.sum
in Ihrem Originalprojekt zuordnet.
Wenn Sie einen Typparameter in einem Struct umbenennen, schlägt das Rename-Refactoring jetzt vor, die Receiver entsprechend anzupassen.
Wir haben mehrere Probleme bei der Navigation zwischen Schnittstellen, Implementierungen und Methodenspezifikationen in generischem Code behoben. Außerdem haben wir mehrere Korrekturen für falsch positive und falsch negative Ergebnisse im Zusammenhang mit Generics vorgenommen.
Mit einer Kontextaktion können Sie jetzt Raw-Stringliterale – Strings, die von Backticks umschlossen sind – in normale Strings zwischen doppelten Anführungszeichen umwandeln, und umgekehrt.
Bisher empfahl GoLand zunächst den Quick-Fix Convert to ‘string’, wenn Sie eine Ganzzahl in einen String konvertieren wollten. Um die Umwandlung korrekt abzuschließen, musste dann noch ein weiterer Quick-Fix ausgeführt werden: Convert integer to string using strconv.Itoa() call.
Wir haben diesen Ablauf vereinfacht; GoLand schlägt jetzt den Quick-Fix Convert integer to string using strconv.Itoa() call gleich vor.
Die Kontextaktion Implement interface funktioniert jetzt auch für nicht exportierte Schnittstellen.
GoLand bietet jetzt eine Inspektion mit dazugehörigem Quick-Fix, um führende Leerzeichen in Go-Direktiven wie //go:embed
zu erkennen und zu entfernen.
In der letzten Version haben wir die Funktion Intention Preview standardmäßig aktiviert.
Mit dieser Funktion können Sie vorab überprüfen, wie Ihr Code verändert wird, wenn Sie die Vorschläge der IDE annehmen.
Diese Vorschau steht jetzt für eine breitere Palette von Kontextaktionen und Quick-Fixes zur Verfügung: Introduce local variable, Create variable/global variable, Create constant/global constant, Create field, Merge declaration up, Delete all unused parameters, Create function, Create method, Fill all fields.
Wir haben das Startverhalten der IDE verbessert, indem wir den Prozess Scanning files to index... im intelligenten Modus ausführen. Dadurch steht nach dem Start der IDE viel früher der volle Funktionsumfang zur Verfügung. Wenn Sie ein Projekt öffnen, verwendet GoLand vorhandene Caches aus Ihrer letzten Sitzung mit dem Projekt und sucht gleichzeitig nach Dateien, die indiziert werden müssen. Wenn bei der Suche keine Änderungen gefunden werden, ist die IDE sofort einsatzbereit. Damit entfallen die Verzögerungen, die bisher durch die Indizierung beim Start verursacht wurden.
Wenn der Echtzeitschutz des Windows Defender aktiv ist, zeigt die IDE eine neue Benachrichtigung an. Da diese Virenprüfungen die IDE-Geschwindigkeit erheblich beeinträchtigen können, empfiehlt GoLand, bestimmte Ordner in die Defender-Ausschlussliste aufzunehmen. Die Benachrichtigung bietet die Wahl, diese Einstellungen entweder automatisch anzupassen oder erst die Defender-Konfigurationsanweisungen zu prüfen und die Änderungen dann manuell vorzunehmen.
Wir haben die Code Vision-Funktionalität aktualisiert. GoLand zeigt jetzt die Anzahl der Implementierungen einer Schnittstelle und deren Methodenspezifikationen an.
Bereits seit der letzten Version wird neben allen Funktionen und Typen angezeigt, wie oft sie im aktuellen Projekt referenziert werden. Darüber hinaus wird auch die Codeautorenschaft angezeigt, wenn eine Versionsverwaltung eingebunden wurde.
Sie können jetzt eigene Inspektionen mit regulären Ausdrücken für Such- und Ersetzungsvorgänge erstellen. Diese Inspektionen können insbesondere für die Hervorhebung von Problemen mit dem Codestil oder der Formatierung nützlich sein.
Öffnen Sie Settings | Editor | Inspections und drücken Sie das +-Symbol. Wenn Sie in der Liste die Option Add RegExp Search Inspection auswählen, wird ein Dialog angezeigt, in dem Sie Ihre neue Inspektion definieren können. Wählen Sie die gewünschte Sprache aus, erstellen Sie mithilfe der Hinweise in der linken Seitenleiste den regulären Ausdruck und geben Sie die gewünschte Ersetzung an. Sie können auch festlegen, wie die IDE die Treffer im Projekt hervorheben soll.
In Version 2022.3 haben wir die Go-Playground-Funktionalität in GoLand integriert.
In dieser Version haben wir den Funktionsumfang erweitert. Erstens enthalten geteilte URLs jetzt einen Versionsparameter, wenn Sie die Dev-Version oder frühere Versionen auswählen.
Außerdem haben wir eine Option hinzugefügt, mit der Sie das Popup-Fenster deaktivieren können, das Sie um Erlaubnis für das Teilen von Code im Playground fragt. Sie können die Abfrage unter Settings | Go | Ask before sharing in Go Playground deaktivieren.
Die neue Version ermöglicht eine feinere Abstimmung des Verhaltens beim Einfügen einer Zeile, die ohne eine Auswahl kopiert oder ausgeschnitten wurde. Mit einer speziellen Einstellung können Sie jetzt die Platzierung der eingefügten Inhalte steuern.
Suchen Sie unter Settings | Advanced Settings nach dem Abschnitt Editor und wählen Sie in der Dropdown-Liste das gewünschte Verhalten für die Aktion Paste aus.
Mit dem neuen Kontrollkästchen Selection unter Settings | Editor | General | Appearance | Show Whitespace können Sie festlegen, dass die IDE Leerräume nur in der Textauswahl als kleine Punkte anzeigen soll.
Wir haben die Typo-Inspektion überarbeitet, sodass sie Hashes und spezielle Werte nicht mehr prüft und als falsch geschrieben moniert. Diese Änderung gilt für die folgenden Werte:
Wir haben in Find Usages die neue Gruppe Call für Funktionsaufrufe eingeführt.
Außerdem haben wir einige Korrekturen an der Darstellung von generischen Codeelementen im Fenster Find Usages vorgenommen.
Sie können jetzt in GoLand hinein- und herauszoomen und dabei alle Elemente der Bedienoberfläche gleichzeitig verkleinern oder vergrößern. Wählen Sie dazu im Hauptmenü View | Appearance | Switch Zoom IDE aus und passen Sie die IDE-Skalierung nach Wunsch an.
Wir haben eine neue Layout-Option eingeführt, mit der Sie die Breite der seitlichen Toolfenster vereinheitlichen oder aber ihre Größe individuell anpassen können. Das neue Kontrollkästchen Remember size for each tool window finden Sie unter Settings | Appearance | Appearance & Behavior | Tool Windows.
In der neuen Bedienoberfläche ist die Einstellung standardmäßig deaktiviert. Dies bedeutet, dass die Toolfenster eine einheitliche Breite haben und ihre Größe konstant bleibt, wenn Sie zwischen ihnen wechseln. In der alten Bedienoberfläche ist die Option aktiviert, sodass die Toolfenster unterschiedlich breit sind. Allerdings haben Sie jederzeit die Möglichkeit, eine einheitliche Breite zu erzwingen, indem Sie die Einstellung deaktivieren.
Sie können jetzt mehrere Toolfenster-Layouts speichern und nach Bedarf zwischen ihnen wechseln.
Um ein neues Layout zu speichern, ordnen Sie die Toolfenster wie gewünscht an und klicken Sie auf Window | Layouts | Save Current Layout as New. Wenn Sie die Anordnung weiter anpassen, können Sie entweder mit Save Changes in Current Layout das aktuell verwendete Layout aktualisieren oder ein neues Layout speichern. Um ein gespeichertes Layout zu aktivieren, bewegen Sie in der Liste unter Window | Layouts den Mauszeiger auf den Layoutnamen und klicken Sie auf Apply.
In dieser Version können Sie mit einer neuen Option das Verhalten von Actions on Save für neue Projekte festlegen.
Öffnen Sie dazu File | New Projects Setup | Preferences For New Projects | Tools | Actions on Save und wählen Sie aus, welche Aktionen in Ihren Projekten beim Speichern von Änderungen ausgeführt werden sollen.
Im vergangenen Jahr haben wir eine neue, übersichtlicher gestaltete Bedienoberfläche für GoLand und andere JetBrains-IDEs eingeführt. In der Zwischenzeit haben wir die neue Bedienoberfläche anhand Ihres Feedbacks weiter optimiert. Im Folgenden finden Sie nähere Informationen zu den wichtigsten Änderungen, die wir in dieser Version an der neuen Bedienoberfläche vorgenommen haben. Um die neue Bedienoberfläche auszuprobieren, aktivieren Sie das Kontrollkästchen New UI unter Settings | Appearance & Behavior.
Besuchen Sie diese Seite, um mehr über die neue Bedienoberfläche zu erfahren.
Um die Nutzung der neuen Bedienoberfläche auf kleineren Bildschirmen zu optimieren, haben wir den Kompaktmodus eingeführt, der durch schmalere Symbolleisten und Fensterkopfzeilen, verringerte Abstände und Freiräume sowie kleinere Symbole und Schaltflächen ein verdichtetes Design bietet.
Um zum Kompaktmodus zu wechseln, aktivieren Sie im Menü View die Option Appearance | Compact Mode.
Als weitere Neuerung ist die obere Symbolleiste in den Modi Zen und Distraction Free nicht mehr sichtbar.
In der neuen Bedienoberfläche kann der Toolfensterbereich jetzt geteilt werden, um die Fenster flexibler anordnen zu können.
Um ein Toolfenster im unteren Teil dieses Bereichs zu platzieren, ziehen Sie sein Symbol entlang der Seitenleiste und legen es unterhalb der Trennlinie ab. Alternativ können Sie mit einem Rechtsklick auf ein Symbol das Kontextmenü aufrufen und das Toolfenster mit der Aktion Move to an den gewünschten Ort verschieben.
Wenn mehrere Projekte geöffnet sind, können Sie jetzt unkompliziert zwischen diesen wechseln, indem Sie die Projekt-Tabs unter der Symbolleiste anklicken. Wählen Sie dazu den Menüpunkt Window | Merge All Project Windows.
Wir haben die Funktion Show Hidden Tabs in der neuen Bedienoberfläche nachgerüstet. Jetzt wird nun ein Dropdown-Menü angezeigt, das die komplette Liste der geöffneten Tabs anzeigt, einschließlich der ausgeblendeten Tabs.
Um die Nutzungserfahrung mit der neuen Bedienoberfläche zu verbessern, haben wir ein Feld hinzugefügt, das den Namen der aktuell geöffneten Datei anzeigt, wenn die Editor-Tableiste ausgeblendet ist.
Wir haben das Run-Widget am oberen Rand des IDE-Fensters überarbeitet. Statt eines farbigen Hintergrunds sind jetzt die Symbole selbst grün eingefärbt, was zu einem zurückhaltenderen und augenfreundlicheren Erscheinungsbild führt.
Bei Verwendung des Pakets testcontainers-go
bietet dieser Build Completion-Vorschläge für Containernamen.
Nach Eingabe des Containernamens können Sie die bereits früher implementierte Aktion Pull Docker image verwenden.
Der Dashboard-Tab des Docker-compose-Knotens führt jetzt die Protokolle aller Docker-Compose-Container zusammen, um diese Daten übersichtlich und in Echtzeit an einem Ort zu präsentieren.
Sie können jetzt unkompliziert eine Verbindung zur Azure Container Registry herstellen. Gehen Sie zu Settings | Build, Execution, Deployment | Docker | Docker Registry und führen Sie die Einrichtung aus, indem Sie die Option Docker V2 im Eingabefeld Registry auswählen.
Sie können jetzt Docker-Bind-Mounts mit dem Konfigurationsflag :z versehen, um Volumes mit Docker-Containern auf SELinux-Workstations zu verbinden. Sie können diese Funktion unter Settings | Advanced Settings | Docker aktivieren.
Um die Erstellung neuer Kubernetes-Dateien zu vereinfachen, haben wir dem Menü New, das bei einem Rechtsklick auf das Toolfenster Project erscheint, die neue Aktion Kubernetes Resource hinzugefügt.
Wenn Sie die Option Kubernetes Resource auswählen, erscheint ein Popup mit einer Liste der gängigsten Ressourcentypen, darunter Pod, Deployment und ConfigMap.
Wir haben einen neuen Dialog zum Erstellen von Kubernetes-Secrets eingeführt.
Um ein neues Secret zu definieren, können Sie einen Schlüssel und einen Wert manuell eingeben. Alternativ können Sie auch eine Datei angeben, deren Inhalt als Wert des erzeugten Secrets verwendet werden soll.
Wenn Sie die Aktion View YAML für Ressourcen aus einem Cluster verwenden und Änderungen in der geöffneten Datei vornehmen, kennzeichnet die IDE jetzt alle Ihre Änderungen mit farbigen Markierungen in der Randleiste. Auf diese Weise können Sie sicherstellen, dass die erforderlichen Bereiche der Ressource geändert wurden, bevor Sie die Änderungen in den Cluster übernehmen.
Außerdem können Sie über das Symbol Compare with Cluster eine vollständige Diff-Ansicht öffnen, um die aktuelle Ressourcenversion aus dem Cluster abzurufen und mit der lokalen Version zu vergleichen.
Sie können jetzt in der Services-Ansicht unkompliziert auf kubeconfig-Dateien zugreifen und sie im Editor öffnen. Wenn Sie eine kubeconfig-Datei außerhalb der IDE ändern, erkennt GoLand dies und aktualisiert automatisch die Konfiguration im Services-Toolfenster. Darüber hinaus bietet die IDE jetzt sowohl Syntaxhervorhebung als auch Completion für kubeconfig-Dateien.
Den meisten Kubernetes-Aktionen in der Services-Ansicht – z. B. Forward Ports, Delete Resource oder Describe Resource – können jetzt Tastenkürzel zugewiesen werden. Um Ihre eigenen Tastenkürzel festzulegen, gehen Sie zu Settings | Keymap | Plugins | Kubernetes.
Mit einer neuen Kontextaktion können Sie die Formatierung von Tabellen in Markdown-Dateien korrigieren. Um den Quick-Fix auszuführen, drücken Sie Alt+Enter oder klicken Sie auf das gelbe Glühbirnensymbol und wählen Sie in der Liste Reformat table aus.
Mit der Editoraktion Fill Paragraph können Sie jetzt in Markdown-Dateien lange Texte in gleichmäßige Zeilen umbrechen. Setzen Sie dazu die Einfügemarke auf den entsprechenden Absatz und rufen Sie die Aktion im Edit-Menü auf, oder suchen Sie mit Search everywhere (2x Umschalt) nach dem Befehl Fill Paragraph und führen Sie diesen aus.
Unter Settings | Editor | General | Smart Keys haben wir eine separate Seite für das Konfigurieren und Bearbeiten Ihrer Markdown-Einstellungen hinzugefügt. Diese Seite erleichtert die Verwaltung Ihrer Einstellungen, da sie separate Kontrollkästchen für verschiedene Editorfunktionen bereitstellt, die das einzelne Kontrollkästchen unter Settings | Languages & Frameworks ablösen.
Wir haben die Bedienfreundlichkeit des Popup-Fensters Branches verbessert. So ist zum Beispiel die Navigation zwischen den Branches jetzt einfacher, da sie in erweiterbaren Listen gruppiert sind.
Sie erhalten jetzt Completion-Vorschläge im Popup-Fenster Create New Branch. Wenn Sie Strg+Leertaste drücken, schlägt die IDE anhand der Namen bestehender lokaler Branches entsprechende Präfixe vor.
Um das Verfolgen von Dateiänderungen zu vereinfachen, sind die Einträge im Structure-Toolfenster jetzt farblich gekennzeichnet. Im Toolfenster werden geänderte Objekte blau und neu hinzugefügte Objekte grün angezeigt.
Wir haben das Verhalten der Commit-Prüfungen für Git und Mercurial überarbeitet, um den gesamten Commit-Ablauf zu beschleunigen. Die Prüfungen werden jetzt im Hintergrund durchgeführt – nach dem Commit, aber vor dem Pushvorgang.
Wir haben das Toolfenster Pull Request überarbeitet. Für jeden geöffneten Pull-Request wird ein eigener Tab angezeigt. Der Tab zeigt sofort die Liste der geänderten Dateien an, enthält aber weniger Informationen als bisher. Dadurch können Sie sich besser auf Ihre aktuelle Aufgabe konzentrieren. Mit einer speziellen Schaltfläche können Sie außerdem sehr einfach die wichtigste Aktion für den aktuellen Pull-Request-Status ausführen.
GoLand bietet jetzt eine Astro-Unterstützung. Die Bereitstellung erfolgt über unser neues Astro-Plugin, das Sie unter Settings | Plugins installieren können. Das Plugin stellt grundlegende Funktionen bereit, einschließlich Syntaxhervorhebung, Code-Completion mit automatischen Importen, Refactorings, Navigation, korrekte Formatierung und mehr.
GoLand wandelt jetzt in einfache oder doppelte Anführungszeichen eingefasste Strings automatisch in Template-Literale um, wenn Sie ${
eingeben. Dies funktioniert sowohl für Raw-Strings als auch für JSX-Eigenschaften.
Die TypeScript-Unterstützung wird jetzt in Vue-Templates aktiviert, wenn Sie das lang
-Attribut eines script
-Tags auf ts
setzen. Bisher wurde unabhängig vom lang
-Attribut im script
-Tag JavaScript als Sprache verwendet.
Hinweis: Details zu allen Verbesserungen in Version 2023.1 im Zusammenhang mit der Webentwicklung erfahren Sie auf der Seite Das ist neu in WebStorm.