Gopls: Поддержка Go *.s ассемблерных файлов
Gopls имеет примитивную поддержку операций LSP в Go ассемблерных файлах.
Go ассемблерные файлы имеют расширение имени файла .s. Клиентам LSP необходимо настроить распознавание файлов с расширением .s как Go ассемблерных файлов, поскольку это расширение также используется для ассемблерных файлов в других языках. Хорошей эвристикой является то, что если файл с именем *.s принадлежит директории, содержащей хотя бы один файл *.go, то файл .s является Go ассемблерным, и соответствующий сервер языка — gopls.
В настоящее время поддерживаются только запросы Definition (textDocument/definition). Например, запрос Definition для символа sigpanic в этом файле в GOROOT/src/runtime/asm.s:
<code class="language-asm"> JMP ·sigpanic<ABIInternal>(SB) </code>
возвращает местоположение объявления функции в GOROOT/src/runtime/signal_unix.go:
<code class="language-go">//go:linkname sigpanic
func sigpanic() {
</code>
См. также задачу https://go.dev/issue/71754, которая отслеживает развитие функций LSP в Go ассемблерных файлах.
Исходные файлы для этой документации можно найти в golang.org/x/tools/gopls/doc.