Microsoft, Red Hat и Codenvy возглавили инициативу по развитию нового протокола, позволяющего интегрировать различные языки программирования с разными средами разработки и редакторами кода.

Спецификация, получившая название Language Server Protocol, позволяет предоставлять сервисы, повышающие удобство программирования, в различных редакторах кода и средах разработки. Обмен данными по LSP осуществляется в формате JSON. Протокол используется для связи между клиентскими инструментами и языковыми серверами, реализующими, к примеру, такие функции, как автозавершение кода, быстрый переход к определению сущности, поиск всех упоминаний элемента и т. д. Языковыми серверами разработчики протокола называют программные средства, реализующие функции работы с кодом.

LSP создан, чтобы изменить ситуацию в мире инструментов разработки. Большинство языков программирования оптимизировано для использования с единственным набором инструментов, что ограничивает поставщиков языка в возможности охвата более широкой аудитории разработчиков, полагают в Codenvy.

Универсальный протокол в идеале должен дать разработчику возможность из предпочтительного для него инструментария обращаться к функциям повышения удобства программирования при использовании любого языка. LSP в числе прочего позволяет в выбранной среде разработки или редакторе организовать доступ к синтаксическим анализаторам, средствам наглядного выделения конструкций и механизмам рефакторизации кода.

LSP создан, чтобы изменить ситуацию в мире инструментов разработки

Как сообщил Тайлер Джуэл, глава Codenvy, на сегодня в LSP поддерживаются следующие языки и технологии: Си, C++, C#, Java, RAML, TypeScript, JSON, CSS и Haxe. В дальнейшем к ним планируется добавить Python, Ruby и другие. «Чтобы донести наши идеи до создателей других языков, нам придется поработать», — отметил Джуэл.

Спецификацию единого протокола для языковых серверов в Microsoft подготовили по результатам проекта интеграции инструментария OmniSharp и серверов TypeScript с редактором исходного кода Visual Studio Code. А в Codenvy поддержку протокола обеспечили в Eclipse Che, сервере пространств разработки и облачной среде программирования.

Гарри Мауэр, старший директор по программам для разработчиков Red Hat, отметил, что LSP способствует созданию языков, которые будет проще подключать к уже существующим инструментам разработчика. В Red Hat планируют обеспечить в протоколе поддержку Java.

По словам Джуэла, стимулами для развития LSP стали переход на микросервисы и тенденция разрабатывать бизнес-логику на самых разных языках. До этого в компаниях вроде Microsoft и Red Hat привязывали разработчиков к определенному языку, для которого предоставляли проприетарные инструменты.

Для поддержки Language Server Protocol нужен либо сторонний реестр, либо встроенный в среду разработки языковой сервер.