Встроить ИИ в редактор через LSP проще, чем расширением
Расширения для VS Code и других редакторов позволяют добавлять автодополнение, но требуют переписывания под каждый редактор. Расширение для VS Code не работает в Vim, а код для IntelliJ невозможно перенести в Nova.
Language Server Protocol решает эту проблему: один сервер автодополнения общается со всеми редакторами по стандартному протоколу. Разработчик писал серверную часть один раз, а редакторы подключались к нему как клиенты.
Как это работает на практике
Редактор отправляет информацию о курсоре и содержимом файла серверу. Сервер запрашивает у модели автодополнение, обогащив запрос контекстом репозитория. Ответ упаковывается обратно в формат LSP и показывается в редакторе.
Подвох: контекст репозитория нужно собрать оперативно. LSP позволяет серверу запросить имена файлов и их содержимое, но на сбор больших деревьев нужна ловушка кэширования.
Поэтому ИИ-помощники через LSP берут контекст меньший, чем монолитные расширения. Но выигрывают в универсальности: один бинарник работает везде.