#анонс
Продолжу свой дев-бложик о разработке BSL Language Server.
Недавно увидел свет самый "весенний" релиз BSL Language Server версии 0.16, с чейнджлогом которой можно ознакомиться вот тут.
"Весенний" он сразу по двум причинам. Во-первых, мы переехали на Spring Framework в качестве платформы для построения приложения. Это позволило довести до ума систему dependency injection, реорганизовать работу приложения на основе ioc-контейнера и развязать некоторое некрасивые и сильносвязанные куски системы - например, большому рефакторингу подвергся механизм диагностик, причём это уже вторая переделка этого механизма :)
Так же система событий и подписчиков на пару с развязыванием компонентов друг от друга позволила относительно просто реализовать автоматическое обновление настроек BSL LS при изменении конфигурационного файла. Да, больше не надо перезапускать VSC при изменении .bsl-language-server.json, сам bsl ls теперь отслеживает его изменения и перечитывает конфиг.
Вторая причина "весеннего" статуса релиза заключается в том, что работы по переезду на спринг были начаты ещё весной, в апреле! Такой вот получился долгострой :)
Но изменения в ядре - это не единственная фишка релиза. Мы наконец-то научились анализировать запросы! На базе уже знакомого ANTLR4 были написаны лексер и парсер запросов, добавившиеся в проект BSL Parser, а в инфраструктуру BSL LS добавлено вычленение и анализ текстов запросов в модулях. И даже есть первые три диагностики по запросам.
Помимо диагностик, парсер запросов позволил добавить в SonarQube подсветку запросов (см. скрин). И в целом подсветочка стала чуть краше.
В заключение добавлю, что поддержка запроса на получение символов рабочей области, которую мы пилили на стриме Веселого1с, тоже добралась до релиза и теперь доступна в редакторах, поддерживающих LSP.
На этом пока все, всем причастным - огромное спасибо! stay tuned!
Post #128
1.6K