Создание Language Server для скриптового ЯП

Изучая инструменты для AngelScript заметил, что этот ЯП обделен поддержкой в редакторах/IDE.

Одним из вариантов является написание language server.

LSP сейчас поддерживают многие - vim, vscode, qt-creator, etc

Как подобные плагины работают и с чего начать написание подобной утилиты?

Есть ли библиотеки, реализующие LSP?
Какие библиотеки реализуют JSON-RPC (LSP на этом протоколе основан)?

UPD0:
Больше интересует framework/библиотека для создания language-server.
Либо "reference project" для простого языка программирования.


Ответы (1 шт):

Автор решения: Kostya Ivanenko

Работают они на клиент-серверной архитектуре. В транспортом может быть любой протокол TCP, Unix domain socket и т.д. Для начала работы сервер должен быть запущен, удаленно или локально зависит от реализации. Клиентская часть обычно уже реализована в составе IDE. И далее отправляются запросы от клиента серверу при редактировании текста. В общих чертах так. А то что касательно реализации для AngelScript https://github.com/asumagic/ls3p. Здесь человек написал свой lsp для редактирования скриптов AngelScript игрового движка.

→ Ссылка