Фирма «1С» выложила на GitHub исходный код фреймворка для Eclipse, используемого в IDE «1С:Исполнителя»
Фирма «1С» выложила на GitHub исходный код фреймворка для Eclipse, используемого в IDE «1С:Исполнителя»

Фреймворк LXTK предоставляет гибкие интерфейсы для интеграции в Eclipse IDE языковых серверов, соответствующих спецификации Language Server Protocol (LSP). Предназначен для реализации плагинов по поддержке различных языков в Eclipse.
Проект построен на основе Eclipse LSP4J без использования Eclipse LSP4E, обеспечивая большее количество возможностей по взаимодействию с LSP-серверами.
В состав репозитория входят примеры исходного кода плагинов Eclipse по поддержке основных функций стандартных языковых серверов TypeScript и JSON, а также простейшего языкового сервера для работы с файлами, имеющими расширение .proto.
Что это значит?
С помощью фреймворка LXTK можно подключить к Eclipse свой языковой сервер, соответствующий спецификации Language Server Protocol – например, Gherkin – и реализовать автодополнение, проверку правильности написания, быстрые исправления и т.д. Преимущество такого подхода в том, что функциональность, реализованная на стороне сервера, может быть переиспользована в различных средах разработки, поддерживающих технологию LSP.
Языковой сервер взаимодействует со средой разработки через JSON-RPC.
Источник: microsoft.github.io
Особенности
Текущая версия LXTK обеспечивает на стороне клиента поддержку следующих функций LSP:
- Completion – автодополнение при написании текста по Ctrl+пробел;
- Code Action – быстрые исправления и рефакторинг;
- Code Lens – информационные гиперссылки между строками документа, запускающие определенные действия в заданном контексте;
- Hover – подсказка при наведении курсора;
- Signature Help – подсказка по параметрам методов;
- Диагностики;
- Форматирование документа и выделенного диапазона;
- Document Symbol – структура типов, свойств и методов документа;
- Find Reference – поиск мест использования;
- Folding Range – настройка сворачивания языковых конструкций;
- Go to Declaration – переход к объявлению;
- Go to Definition – переход к определению;
- Go to Implementation – переход к реализации;
- Go to Type Definition – переход к определению типа;
- Rename – переименование методов и свойств;
- Document Highlight – подсветка мест использования в документе;
- Workspace Edit – рефакторинг в пределах рабочей области;
- Workspace Folders – получение данных о папках рабочей области;
- Workspace Symbols – список типов, свойств и методов, соответствующих запросу, в целом по рабочей области.
На данный момент фреймворк поддерживает только те функции, которые представлены в спецификациях LSP версии ниже 3.15.
Архитектура LXTK
Архитектурно, фреймворк состоит из двух основных слоев: LXTK Core Framework и LXTK Integration for Eclipse (LX4E).
- LXTK Core Framework (org.lxtk) реализован на основе LSP4J и предоставляет базовую инфраструктуру для создания LSP-клиентов на Java (например, LSP-клиентов для Eclipse, IntelliJ и т.д.).
- LXTK Integration for Eclipse (LX4E) содержит базовую часть (org.lxtk.lx4e) и клиентскую часть с пользовательским интерфейсом (org.lxtk.lx4e.ui) для Eclipse, использующие сервисы Core Framework. Облегчает интеграцию языковых серверов в IDE Eclipse.
Примеры применения
В состав проекта LXTK входят три примера плагинов для Eclipse, демонстрирующих основные возможности использования фреймворка для поддержки языков:
- TypeScript – org.lxtk.lx4e.examples.typescript;
- JSON – org.lxtk.lx4e.examples.json;
- и условного proto-языка – org.lxtk.lx4e.examples.proto.
Подсветка кода и структура документа на базе LSP для JSON-файлов
Провайдер диагностик и автодополнения для proto-файлов
В отдельном репозитории организации LXTK приведен пример исходного кода простейшего языкового сервера на Node.js, который реализует основные возможности по работе с протоколом LSP и может быть использован в качества шаблона при тестировании.
У проекта есть документация Javadocs с описанием API, предоставляемого LXTK Core Framework и LX4E.
Источник: https://infostart.ru/journal/news/mir-1s/firma-1s-vylozhila-na-github-iskhodnyy-kod-freymvorka-dlya-eclipse-ispolzuemogo-v-ide-1s-ispolnitelya_1367974/
См. также
Фирма «1С» выпустила универсальное рабочее место кассира для типовых конфигураций
03.03.2021 1702 ЕленаЧерепнева 4
Подводим итоги митапа по современным подходам при сборе требований и составлении ТЗ
01.03.2021 1885 vikad 0
Готово расписание митапа «DevOps в 1С: Инструменты автоматизации рутины в 1С-разработке»
26.02.2021 5121 kbazzh 2
Готово расписание онлайн-митапа «Сбор требований и составление ТЗ: современные подходы в управлении проектами»
18.02.2021 4472 eselyanina 0
22 марта стартует шестой поток онлайн-курса «Технология выполнения проектов ERP-класса – процессный подход»
16.02.2021 2919 dklimchuk 0