Dieses Repository stellt das Modul golang.org/x/tools
bereit, das verschiedene Tools und Pakete umfasst, hauptsächlich für die statische Analyse von Go-Programmen, von denen einige unten aufgeführt sind. Klicken Sie oben auf den Link „Zur Referenz“, um weitere Informationen zu den einzelnen Paketen zu erhalten.
Es enthält außerdem das Modul golang.org/x/tools/gopls
, dessen Root-Paket ein Language-Server-Protocol-Server (LSP) für Go ist. Ein LSP-Server analysiert den Quellcode eines Projekts und antwortet auf Anfragen einer Vielzahl von Editoren wie VSCode und Vim, sodass diese IDE-ähnliche Funktionen unterstützen können.
Ausgewählte Befehle:
cmd/goimports
formatiert ein Go-Programm wie go fmt
und fügt zusätzlich Importanweisungen für alle Pakete ein, die von der Datei nach der Bearbeitung benötigt werden.cmd/callgraph
druckt das Aufrufdiagramm eines Go-Programms.cmd/digraph
ist ein Dienstprogramm zum Bearbeiten gerichteter Graphen in Textnotation.cmd/stringer
generiert Deklarationen (einschließlich einer String
-Methode) für „Enum“-Typen.cmd/toolstash
ist ein Dienstprogramm zur Vereinfachung der Arbeit mit mehreren Versionen der Go-Toolchain.Diese Befehle können mit einem Befehl wie abgerufen werden
go install golang.org/x/tools/cmd/goimports@latest
Ausgewählte Pakete:
go/ssa
bietet eine statische Single-Assignment-Form (SSA)-Zwischendarstellung (IR) für Go-Programme, ähnlich einem typischen Compiler, zur Verwendung durch Analysetools.
go/packages
bietet eine einfache Schnittstelle zum Laden, Parsen und Typprüfen eines vollständigen Go-Programms aus dem Quellcode.
go/analysis
bietet ein Framework für die modulare statische Analyse von Go-Programmen.
go/callgraph
stellt Aufrufdiagramme von Go-Programmen bereit, die eine Vielzahl von Algorithmen mit unterschiedlichen Kompromissen verwenden.
go/ast/inspector
bietet eine optimierte Möglichkeit zum Durchlaufen eines Go-Parse-Baums zur Verwendung in Analysetools.
go/cfg
bietet ein einfaches Kontrollflussdiagramm (CFG) für eine Go-Funktion.
go/gcexportdata
und go/gccgoexportdata
lesen und schreiben die Binärdateien mit Typinformationen, die von den Standard- und gccgo
Compilern verwendet werden.
go/types/objectpath
bietet ein stabiles Benennungsschema für benannte Entitäten („Objekte“) in der go/types
-API.
Zahlreiche andere Pakete bieten weitere esoterische Funktionalität.
Dieses Repository verwendet Gerrit für Codeänderungen. Informationen zum Einreichen von Änderungen finden Sie unter https://go.dev/doc/contribute.
Das Git-Repository ist https://go.googlesource.com/tools.
Der Haupt-Issues-Tracker für das Tools-Repository befindet sich unter https://go.dev/issues. Stellen Sie Ihrem Problem „x/tools/(Ihr Unterverzeichnis):“ in der Betreffzeile voran, damit es leicht zu finden ist.
Dieses Repository verwendet Prettier zum Formatieren von JS- und CSS-Dateien.
Die verwendete prettier
-Version ist 1.18.2.
Es wird empfohlen, dass der gesamte JS- und CSS-Code dies durchläuft, bevor eine Änderung übermittelt wird. Es handelt sich jedoch nicht um eine strenge Anforderung, die von CI durchgesetzt wird.