Gopls: Goの*.sアセンブリファイルのサポート
Goplsは、GoアセンブリファイルにおけるLSP操作の基本的なサポートを提供します。
Goアセンブリファイルは.sというファイル名拡張子を持ちます。このファイル名拡張子は他の言語のアセンブリファイルにも使用されるため、LSPクライアントは.sファイルをGoアセンブリファイルとして認識するように設定する必要があります。良いヒューリスティックとしては、*.sという名前のファイルが少なくとも1つの*.goファイルを含むディレクトリに属している場合、その.sファイルはGoアセンブリであり、適切な言語サーバーはgoplsであると判断できます。
現在サポートされているのはDefinition (textDocument/definition) リクエストのみです。例えば、GOROOT/src/runtime/asm.sにあるこのファイルのsigpanicシンボルに対するDefinitionリクエストは、
JMP ·sigpanic<ABIInternal>(SB)
GOROOT/src/runtime/signal_unix.goにある関数宣言の場所を返します。
//go:linkname sigpanic
func sigpanic() {
GoアセンブリファイルにおけるLSP機能の開発を追跡するissue https://go.dokyumento.jp/issue/71754も参照してください。
このドキュメントのソースファイルは、golang.org/x/tools/gopls/doc の下にあります。