Das ist neu in GoLand

GoLand 2020.1 bietet eine Vielzahl von Upgrades für die Unterstützung von Go-Modulen sowie Funktionen zur Codebearbeitung, die nur wenig Interaktion des Benutzers erfordern, und eine erweiterte Code-Vervollständigungsfamilie.

Darüber hinaus gibt es neue Codeinspektionen, Quick-Fixes und andere Verbesserungen, z. B. den neuen LightEdit-Modus (mit dem Sie eine Datei im Texteditor öffnen können, ohne ein Projekt zu erstellen oder zu laden), intelligente Rechtschreib- und Grammatikprüfungen sowie neue Funktionen für die Webentwicklung und die Arbeit mit Datenbanken.

Lernen Sie lieber interaktiv als durch Lesen? Schließen Sie das Tutorial Funktionen von GoLand 2020.1 in der IDE ab.

Verbesserungen bei Go-Modulen

Konfigurieren von GOPROXY mit automatisch von GoLand vorgeschlagenen Auswahlmöglichkeiten zwischen "direct" und "off" Werten im neuen Dialogfeld "Environment Variables".

Die Umgebungsvariablen von Go 1.13 GOPROXY , GOPRIVATE , GOSUMDB , GONOPROXY und GONOSUMB werden jetzt unterstützt.

Konfigurieren Sie ihre Standardwerte mithilfe der Projektvorlage Go Modules . Klicken Sie einfach auf das Symbol Browse im Feld Environment , um das neue Dialogfeld Environment Variables zu öffnen.

Codevervollständigung für das Schlüsselwort 'Replace', den Abhängigkeitsnamen und den Pfad für das Ersetzen in Aktion.

Codevervollständigung für go , module , require , replace , exclude Schlüsselwörter, Abhängigkeitsnamen und Ersetzungen durch lokale Pfade sind für die Datei go.mod verfügbar.

GoLand schlägt vor, ein Paket zu importieren.

Die Refactorings Rename und Move sind ebenfalls verfügbar. Wenn Sie Verzeichnisse umbenennen oder verschieben, auf die durch replace -Anweisungen verwiesen wird, ändert GoLand den Pfad in der go.mod -Datei entsprechend.

Verwenden Sie Find Usages, um herauszufinden, wo das Verzeichnis in der Datei go.mod verwendet wird, und navigieren Sie zur Quelle.

Jetzt können Sie auch Find Usages über die Projektansicht aufrufen, um zu ermitteln, wo der Pfad zu einem bestimmten Verzeichnis in der Datei go.mod verwendet wird.

GoLand weist auf ungenutzte und fehlende Abhängigkeiten hin und schlägt vor, sie mithilfe von Quick-Fixes (mittels Alt-Enter) zu entfernen bzw. zu importieren.

In GoLand 2020.1 können Sie fehlende Abhängigkeiten abrufen und nicht verwendete Abhängigkeiten über Alt-Enter entfernen.

GoLand weist darauf hin, dass das Commit die Datei go.mod mit Ersetzungen für lokale Pfade enthält.

Last but not least wird in der neuen Version vor dem Commit eine Benachrichtigung angezeigt, wenn Ersetzungen durch lokale Pfade vorgenommen werden, damit Sie Commits nicht versehentlich durchführen.

Codevervollständigungsfunktionen, die Sie nicht erlernen müssen

Durch Eingabe von 'if' in einer Funktion kann die Ausnahmebehandlung vervollständigt werden.

GoLand 2020.1 schlägt if err != nil { ... } vor, um ein Fehlerbehandlungsmuster zu vervollständigen. Geben Sie einfach if in den Ausdruck ein.

Deklaration von 'struct' und 'interface' mittels Code-Completion.

Definieren Sie Struktur- und Schnittstellentypen schneller, indem Sie einfach das Schlüsselwort type oder struct und interface eingeben.

'Fill Fields' fügt Leerzeichen nach dem Doppelpunkt ein.

Die Aktion Fill Fields fügt Leerzeichen nach Doppelpunkten hinzu, wenn dies nach den Formatierungsregeln erforderlich ist. Außerdem wird am Ende der Anweisung in Deklarationen von zusammengesetzten Literalen ein Komma eingefügt.

GoLand bewegt den Cursor hinter die schließende Klammer.

Wenn Sie jetzt mit Karten arbeiten, bewegt die Codevervollständigung den Cursor hinter die schließende Klammer, nachdem Sie einen Schlüsseltyp abgeschlossen haben.

GoLand bietet Vorschläge zum Vervollständigen lokaler Variablen im Rückgabetyp der Funktion.

Für den Rückgabetyp der Funktion liefert die Vervollständigung Vorschläge für lokale Variablen und Nullwerte, die für den entsprechenden Rückgabewerttyp geeignet sind.

Intelligente Codevervollständigung (Strg+Umschalt+Leertaste)

GoLand schlägt einen Zeiger auf einen Struct-Initialisierer vor.

Intelligente Codevervollständigung schlägt einen Zeiger auf den Strukturinitialisierer vor.

GoLand schlägt einen kompatiblen Typ in einer Assertion vor.

Außerdem werden zuerst kompatible Typen in Assertions und Type-Switch-Cases vorgeschlagen.

GoLand schlägt einen Typ für die zugewiesene Variablen in einer Assertion vor.

In der Typassertion wird der Typ der zugewiesenen Variablen vorgeschlagen.

Die intelligente Code-Completion in GoLand bietet eine Liste der möglichen Zeiger in einem Ausdruck an.

Schließlich enthält es eine Liste von Vorschlägen für mögliche Zeiger im Ausdruck.

Grundlegende Codevervollständigung (Strg+Leertaste)

GoLand vervollständigt den Namen einer Funktion im Kommentarblock.

Freuen Sie sich auf grundlegende Codevervollständigung für Kommentare, was das Schreiben von Dokumentationen erheblich erleichtert! Es werden Namen für die aktuellen Paketdeklarationen und Parameternamen für Funktionen und Methoden vorgeschlagen.

GoLand schlägt Konvertierungen in einem Ausdruck vor.

Außerdem schlägt die grundlegende Codevervollständigung Literale und Konvertierungen vor.

Codebearbeitung

GoLand setzt den Typ 'int' in Klammern, wenn ein Komma eingegeben wird, um einen weiteren Rückgabetyp hinzuzufügen.

GoLand 2020.1 fügt beim Schreiben einer Signatur einer mehrwertigen Rückgabefunktion nach dem Komma Klammern um die Rückgabetypen hinzu.

Beim Einfügen in ein Stringliteral verwandelt GoLand doppelte Anführungszeichen in Escape-Sequenzen.

Wenn Sie Text in ein Stringliteral einfügen, wird die IDE nicht in doppelte Anführungszeichen gesetzt.

Um mehr über Funktionen zu erfahren, die automatisch funktionieren, lesen Sie den Artikel GoLand Editing Features You Didn’t Know About.

Unterstützung für Go 1.14

Unterschied zwischen GoLand 2019.3 und 2020.1 in Bezug auf die Unterstützung überlappender Interfaces.

Unterstützung für überlappende Schnittstellen

Go 1.14 hat Unterstützung für das Einbetten überlappender Schnittstellen hinzugefügt, und wir auch! Wenn Sie verschiedene Aspekte eines Typs mithilfe überlappender Schnittstellen beschreiben, meldet GoLand keine doppelten Methoden für sie als Fehler.

Neue Einstellungen im Abschnitt 'Go Modules'.

Automatischer Vendoring-Mode

Der Vendoring-Mode wird in Go 1.14 automatisch aktiviert, wenn das Modulstammverzeichnis ein Vendor-Verzeichnis enthält. Für GoLand 2020.1 haben wir beschlossen, ein ähnliches Verhalten für Go-Versionen 1.13 und früher zu implementieren. Die IDE löst Importe in den Hersteller / Ordner automatisch auf, wenn sie im Modul vorhanden sind.

Debugger-Updates

Im Debug-Fenster lassen sich Goroutinen mit Profiler-Labels finden.

Unterstützung für Profiler-Labels

Um Ihnen die Unterscheidung zwischen goroutines während des Debuggens oder der Speicherauslesungsanalyse zu erleichtern, haben wir ihnen Profiler-Labels hinzugefügt.

Wenn Sie mehr erfahren möchten, lesen Sie diesen Artikel: How to Find Goroutines During Debugging.

Auswählen vordefinierter Makros im neuen Dialogfeld 'Macros' für das Feld 'Program arguments' in 'Run/Debug Configurations'.

Unterstützung von Makros

Jetzt können Sie Makros als Parameter verwenden, um Ihre Anwendung auszuführen oder zu debuggen. Klicken Sie im Dialogfeld Run/Debug Configurations in den Feldern Go Tool oder Program Arguments auf + , um den neuen Dialog Macros mit der Liste der verfügbaren Makros zu öffnen.

Außerdem können Sie jetzt die Konfigurationsdatei im Projekt speichern. Wählen Sie oben im Dialogfeld Run/Debug Configurations die Projektdatei-Option Store .

Postfix-Vervollständigung

Postfix-Vorlage '.else' in Aktion.

Die Vorlage .else postfix-Vervollständigung fügt schnell eine if -Anweisung hinzu, um zu überprüfen, ob der Ausdruck falsch ist.

Quick-Fixes

Konvertieren von Println in Printf

Ändern Sie einen nicht formatierenden Aufruf in kürzester Zeit in einen formatierenden Aufruf, indem Sie Alt+Enter drücken.

„Create variable“ schlägt die Vervollständigung eines Ausdrucks mit einem passenden Typ vor.

Der Quick-Fix Create variable zeigt jetzt einen erwarteten Type Hint an, um die Eingabe des richtigen Wertes zu erleichtern.

Codeinspektionen

GoLand warnt vor ungültigen Aufrufen von Zeigermethoden und bietet einen Quick-Fix zur Fehlerkorrektur.

Diese neue Codeinspektion warnt Sie vor ungültigen Aufrufen von Zeigermethoden auf Nicht-Zeigerempfängern und bietet eine Quick-Fix.

GoLand warnt vor einer möglicherweise fehlerhaften Verwendung von unsafe.Pointer.

Die Codeinspektion Invalid conversions of uintptr to unsafe.Pointer warnt Sie vor falschen Verwendungen von uintptr und unsafe.Pointer zum Konvertieren von Ganzzahlen in Zeiger.

GoLand weist darauf hin, dass ein Argument in der Funktion 'Unmarshal' ein Zeiger sein muss.

Die Inspektion Unmarshal is called with incorrect argument analysiert Aufrufe an json.Unmarshal und ähnliche Funktionen von encoding/json , encoding/xml und Codierung/gob -Pakete.

GoLand weist darauf hin, dass das Argument ein Zeiger sein muss.

Mit den Locks mistakenly passed by value Codeinspektion können Sie vermeiden, dass versehentlich ein Wert kopiert wird, der gesperrt ist.

Live-Templates

Deklaration von 'var' und 'consts'.

Wir haben neue Vorlagen hinzugefügt, mit denen Sie schnell Gruppen von Deklarationen erstellen können. Dazu gehören consts, vars, types, und imports. Wenn Sie eine dieser Vorlagen verwenden, fügt GoLand um die Deklarationsnamen geschweifte Klammern hinzu.

'fori'-Vorlage in Aktion.

Die Vorlage fori fügt den Codebaustein für die klassische for-Schleife ein.

Refaktorierungen

'Extract Method' behält die ursprüngliche Reihenfolge bei.

Die Refaktorierung Extract Method behält die ursprüngliche Reihenfolge der übergeordneten Funktions- und Methodenparameter bei.

'Rename' bietet über Alt+Enter die Möglichkeit, Verwendungen umzubenennen.

Die Refaktorierung Rename erkennt jetzt das Umbenennen einer Deklaration automatisch. Dies bedeutet, dass beim manuellen Umbenennen einer Deklaration ein Randleistensymbole in der IDE angezeigt wird, mit dem alle Verwendungen umbenannt werden können.

Navigation

'Find Usages' zeigt die Verwendungen von Schnittstellenmethoden an.

Navigate to implementations (Ctrl+Alt+B) und Navigation to Declaration oder Usages (Ctrl+B) zeigen jetzt zuerst die Ergebnisse des aktuellen Projekts an.

Außerdem sucht die Aktion Find Usages (Alt+F7) jetzt immer nach Auslastung von Schnittstellenmethoden. Verwenden Sie Alt + Umschalt + Strg + F7, um die Verwendung der aktuellen Methode wie zuvor zu ermitteln.

VCS-Verbesserungen

Neues Commit-Toolfenster mit Diff-Anzeige im Editor.

Neues Commit-Toolfenster

Das neue Fenster des Commit-Tools enthält jetzt die Registerkarten Local Changes und Shelf . Dieses Toolfenster behandelt alle Commit-bezogenen Aufgaben, z. B. das Überprüfen von diffs, das Auswählen von Dateien und Blöcken um Commits auszuführen und das Eingeben einer Commit-Nachricht. Commit wird ein vertikales Toolfenster auf der linken Seite des Bildschirms angezeigt, sodass genügend Platz zum Anzeigen des diffs im Editor bleibt.

Das Branches-Popup

Verbessertes Branches-Popup

Das Popup Branches wurde auf verschiedene Weise überarbeitet:

  • Wir haben ein explizites Suchfeld hinzugefügt, mit dem Sie nach vorhandenen Remote- und lokalen Branches suchen können.
  • Jetzt können Sie die Refresh-Schaltfläche verwenden, um die vorhandenen Remote-Branches zu aktualisieren.
  • Die Statusleiste wurde um Commit-Indikatoren für eingehende (blau) und ausgehende (grün) Commits ergänzt.
Das Fenster 'Rebasing Commits'

Dialog „Interactively Rebase from Here“

Wir haben Interactively Rebase from Here grundlegend überarbeitet. In diesem Dialogfeld können Sie Ihre bisherigen Commits bearbeiten, kombinieren und entfernen, um Ihren Commitverlauf linearer und übersichtlicher zu gestalten.

Um diesen Dialog aufzurufen, rufen Sie die Registerkarte Log des Toolfensters Git auf, wählen Sie das älteste Commit in der Reihe der Commits aus, die Sie bearbeiten möchten, klicken Sie mit der rechten Maustaste darauf und wählen Sie Interactively Rebase from Here.

Updates der Datenbankunterstützung

Die Ergebnisse werden im Code-Editor angezeigt.
  • Führen Sie Skriptdateien und Codeausschnitte mit Run configurations aus. Auf diese Weise können Sie mehrere Dateien gleichzeitig ausführen, neu anordnen, neue hinzufügen und vor dem Start andere Programme oder Konfigurationen ausführen.
  • Die Ergebnisse können jetzt im Code-Editor angezeigt werden. Diese Option ist standardmäßig deaktiviert. Um dies zu aktivieren, gehen Sie zu: Settings/Preferences | Database | General | Show output results in the editor.
  • Erstellen Sie eine SSH-Tunnel-Konfiguration und verwenden Sie ihn in mehreren Datenquellen oder sogar in Projekten.
  • Wir haben die Möglichkeit hinzugefügt, Daten in eine Excel-Datei zu exportieren.
  • Sie können auch Ihr bevorzugtes Datenformat in der Extraktor-Dropdown-Liste auswählen.

Webentwicklung

GoLand bietet an, bestehenden Code über Alt+Enter in eine optionale Verkettung und/oder Nullish-Coalescing umzuwandeln.

Neue, intelligente Intentions und Inspektionen für JavaScript und TypeScript

Mit den neuen intelligenten Intentions und Inspektionen (Alt+Enter) können Sie beim Programmieren viel Zeit sparen! So können Sie zum Beispiel vorhandenen Code ohne Aufwand für die Verwendung von optionaler Verkettung und/oder Nullish-Coalescing konvertieren – zwei Syntaxmerkmale, die in den neuesten Versionen von JavaScript und TypeScript eingeführt wurden.

Das Dokumentations-Popup zeigt den Typ eines Symbols an und den Ort, an dem es definiert wurde.

Noch hilfreichere Kurzdokumentation

Bei JavaScript und TypeScript zeigt das Dokumentations-Popup jetzt weitere nützliche Informationen an, einschließlich Daten zu Typ und Sichtbarkeit des Symbols sowie dem Definitionsort des Symbols.

Weitere Änderungen

Eine Datei wurde mit dem neuen LightEdit-Modus im Texteditor geöffnet, ohne ein Projekt zu erstellen oder zu laden.
  • JetBrains Mono , eine neue Schriftart von JetBrains, ist standardmäßig verfügbar. Um mehr über die Schriftart zu erfahren, besuchen Sie bitte diese Seite .
  • Grazie , ein Plugin, das intelligente Rechtschreib- und Grammatikprüfungen für Text in die IDE bietet, wird standardmäßig gebündelt.
  • Mit dem neuen LightEdit-Modus können Sie eine Datei im Texteditor öffnen, ohne ein Projekt zu erstellen oder zu laden. Um diese neue Funktionalität auszuprobieren, müssen Sie zunächst einen Befehlszeilenstarter über Tools | Create Command-line Launcher, wie hier beschrieben (wenn Sie die JetBrains Toolbox App verwenden, unterscheiden sich die Schritte geringfügig ). Detailliertere Anweisungen zum Öffnen einer Datei, zum Vergleichen / Zusammenführen von Dateien und sogar zum Ausführen von Codeinspektionen finden Sie in dieser Webhilfe .
  • Wir haben den neuen Zen-Modus hinzugefügt, der mögliche Ablenkungen beseitigt und Ihnen hilft, sich ganz auf Ihren Code zu konzentrieren. Im Wesentlichen kombiniert dieser Modus den ablenkungsfreien Modus und den Vollbildmodus . Um es zu aktivieren, gehen Sie zu View | Appearance | Enter Zen Mod oder wählen Sie es aus dem Popup Quick Switch Scheme ( Strg + `| View mode | Enter Zen Mode).
  • Externe Dokumentation führt jetzt zu https://pkg.go.dev anstelle von https://godoc.org .
  • Wir haben das Standardfarbschema zurückgebracht, allerdings mit dem neuen Namen Classic Light .