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.ac.cn/issue/71754,该问题跟踪 Go 汇编文件中 LSP 功能的开发情况。


本文档的源代码可以在 golang.org/x/tools/gopls/doc 下找到。