Gopls:支援 Go *.s 彙編檔案

Gopls 為 Go 彙編檔案提供了基本的 LSP 操作支援。

Go 彙編檔案使用 .s 作為副檔名。LSP 客戶端需要配置才能將 .s 檔案識別為 Go 彙編檔案,因為此副檔名也用於其他語言的彙編檔案。一個好的判斷依據是,如果一個名為 *.s 的檔案屬於一個包含至少一個 *.go 檔案的目錄,那麼該 .s 檔案就是 Go 彙編檔案,其對應的語言伺服器就是 gopls。

目前僅支援定義 (textDocument/definition) 請求。例如,在 GOROOT/src/runtime/asm.s 檔案中的 sigpanic 符號上發出定義請求

    JMP ·sigpanic<ABIInternal>(SB)

將返回 GOROOT/src/runtime/signal_go.go 中函式宣告的位置

//go:linkname sigpanic
func sigpanic() {

另請參閱 https://golang.org.tw/issue/71754,該問題跟蹤 Go 彙編檔案中 LSP 功能的開發情況。


本文件的原始碼可以在 golang.org/x/tools/gopls/doc 下找到。