該儲存庫提供了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 強制執行的嚴格要求。