Илья Данилкин
@nezorflame
GopherCon Russia 2020
09.08.2020
Language Server Protocol
LSP и Go
GoLand vs VSCode
Демонстрация работы
gopls
01
02
03
04
05
Итоги
06
Секция 01
Language Server Index Format
Подробности в блоге и на https://lsif.dev/
LSP-протокол - интерфейс
Language Server - его реализация
Секция 02
Секция 03
GopherCon Russia 2019:
Go, pls stop breaking my editor
Небольшой бинарник...
...и большая библиотека
Пакет | Описание |
---|---|
gopls | исполняемый файл, плагины и тесты |
internal/lsp | основной пакет для обработки сообщений |
internal/lsp/cache | кэш |
internal/lsp/cmd | обработка командной строки |
internal/lsp/debug | вспомогательные функции для дебага |
internal/lsp/protocol | обработка функций протокола |
internal/lsp/source | реализация фич сервера |
internal/span | управление адресацией файлов в пакете |
internal/memoize | кэш вызова функций |
internal/jsonrpc2 | реализация JSON RPC2 |
Cache
Session
View
Текущий статус, v1.0 milestone (61 issue)
Секция 04
vscode-go - расширение от Microsoft
Feature | GoLand | VSCode |
---|---|---|
Автокомплит | ✅ | ✅ |
Быстрые фиксы | ✅ | ⚠️ |
Рефакторинг | ✅ | ⚠️ |
Документация по наведению | ✅ | ✅ |
Кодогенерация | ✅ | ✅ |
Определение рекурсий | ✅ | ❌ |
Поиск использования | ✅ | ✅ |
Поиск имплементации | ✅ | ⚠️ |
Работа с go.mod-файлом | ⚠️ | ✅ |
Секция 05
Секция 06
Илья Данилкин
@nezorflame
GopherCon Russia 2020
09.08.2020