Создание Language Server для скриптового ЯП
Изучая инструменты для AngelScript заметил, что этот ЯП обделен поддержкой в редакторах/IDE.
Одним из вариантов является написание language server.
LSP сейчас поддерживают многие - vim, vscode, qt-creator, etc
Как подобные плагины работают и с чего начать написание подобной утилиты?
Есть ли библиотеки, реализующие LSP?
Какие библиотеки реализуют JSON-RPC (LSP на этом протоколе основан)?
UPD0:
Больше интересует framework/библиотека для создания language-server.
Либо "reference project" для простого языка программирования.
Ответы (1 шт):
Работают они на клиент-серверной архитектуре. В транспортом может быть любой протокол TCP, Unix domain socket и т.д. Для начала работы сервер должен быть запущен, удаленно или локально зависит от реализации. Клиентская часть обычно уже реализована в составе IDE. И далее отправляются запросы от клиента серверу при редактировании текста. В общих чертах так. А то что касательно реализации для AngelScript https://github.com/asumagic/ls3p. Здесь человек написал свой lsp для редактирования скриптов AngelScript игрового движка.