该存储库提供了golang.org/x/tools
模块,其中包含主要用于 Go 程序静态分析的各种工具和包,下面列出了其中一些。使用上面的“Go 参考”链接获取有关任何软件包的更多信息。
它还包含golang.org/x/tools/gopls
模块,其根包是 Go 的语言服务器协议(LSP)服务器。 LSP 服务器分析项目的源代码并响应来自各种编辑器(例如 VSCode 和 Vim)的请求,使它们能够支持类似 IDE 的功能。
选定的命令:
cmd/goimports
像go fmt
一样格式化 Go 程序,并在编辑文件后额外插入文件所需的任何包的导入语句。cmd/callgraph
打印 Go 程序的调用图。cmd/digraph
是用于以文本表示法操作有向图的实用程序。cmd/stringer
生成“enum”类型的声明(包括String
方法)。cmd/toolstash
是一个用于简化 Go 工具链多个版本的使用的实用程序。这些命令可以通过以下命令获取
go install golang.org/x/tools/cmd/goimports@latest
精选套餐:
go/ssa
为 Go 程序提供静态单赋值形式(SSA)中间表示(IR),类似于典型的编译器,供分析工具使用。
go/packages
提供了一个简单的接口,用于从源代码加载、解析和类型检查完整的 Go 程序。
go/analysis
提供了一个用于 Go 程序的模块化静态分析的框架。
go/callgraph
使用具有不同权衡的各种算法提供 Go 程序的调用图。
go/ast/inspector
提供了一种遍历 Go 解析树的优化方法,以便在分析工具中使用。
go/cfg
为 Go 函数提供了一个简单的控制流图(CFG)。
go/gcexportdata
和go/gccgoexportdata
读取和写入包含标准和gccgo
编译器使用的类型信息的二进制文件。
go/types/objectpath
为go/types
API 中的命名实体(“对象”)提供了稳定的命名方案。
许多其他软件包提供了更多深奥的功能。
该存储库使用 Gerrit 进行代码更改。要了解如何提交更改,请参阅 https://go.dev/doc/contribute。
git 存储库是 https://go.googlesource.com/tools。
工具存储库的主要问题跟踪器位于 https://go.dev/issues。在主题行中添加“x/tools/(your subdir):”前缀,这样就很容易找到。
该存储库使用 prettier 来格式化 JS 和 CSS 文件。
使用的prettier
版本是1.18.2。
建议在提交更改之前运行所有 JS 和 CSS 代码。然而,这并不是 CI 强制执行的严格要求。