TGViewer
Никита Федькин - мысли, заметки, анонсы Никита Федькин - мысли, заметки, анонсы @nixel2007_thoughts · 2.88K subscribers
Post #361 3.03K
Чего долго ждать, устрою #анонс.

Внезапно, даже не дожидаясь 2024-го года, выпущен новый релиз BSL Language Server под номером 0.22.0.

Можно сказать, что это maintainance-релиз, так как новой функциональности вроде как и нет. Зато до релиза дошли три очень важных внутренних изменения.

Во-первых, мы наконец-то переехали на Spring Boot 3.1 и JDK17. Помимо большей лицензионной чистоты (мы больше не нарушаем копирайты Оракл из-за использования “незаконных” аннотаций jsr-305), нам наконец-то доступны фичи вроде switch expressions, instanceOf pattern matching и прочие records. В моем топе, конечно же, вариант быстрого вызова stream.toList() вместо длинного stream.collect(Collectors.toList()). Посмотрели таки во fluent, молодцы :D

Во-вторых, была решена одна из самых старых (около 4 лет) проблем долгого “прогрева” сервера при начале работы, когда рассчитываются метаданные конфигурации, или контекст сервера наполняется файлами. Выражалось это в зависании всплывающей подсказки, задержке в появлении дерева символов документа, да и вообще BSL Language Server вёл себя очень неповоротливо. Как обычно, большинство проблем можно решить банальным чтением документации, а мне на будущее теперь в назидание напоминание, что про опасность долгих параллельных расчётов на общем пуле потоков в каждом втором ответе про многопоточку на StackOverflow пишут не просто так :)

И в-третьих, так называемая проблема логирования. Несколько месяцев назад в плагине для VSCode была обновлена зависимость от vscode-language-client - собственно бридж между самим VSCode и BSL Language Server, который занимается преобразованием запросов к/от сервера в конкретные окошки в редакторе. Среди прочего в этом обновлении было изменение поведения обработки получаемых данных “не по протоколу” - без требуемых заголовков и объектов. И если раньше language-client просто кидал информационное сообщение в отдельный лог, доступный в VSCode, то в новой версии ребята из Microsoft не придумали ничего лучше, чем просто падать с исключением и выключать подключённый лэнг сервер.

А что делает любое уважающее себя джава приложение, когда внутри себя перехватывает ошибку? Правильно, выводит предупреждение в лог… Из-за этого поведения и была большая часть падений BSL Language Server на стартапе, и теперь она решена - если к серверу подключен клиент, то вместо вывода сообщения в обычный выхлоп stdout, сообщение перехватывается и отправляется на клиента.

Чейнджлог как и всегда доступен по ссылочке ниже. Хотя я и так почти все рассказал :)

https://github.com/1c-syntax/bsl-language-server/releases/tag/v0.22.0
Oracle Help Center Java Language Updates Like all expressions, switch expressions evaluate to a single value and can be used in statements. They may contain "case L ->" labels that eliminate the need for break statements to prevent fall through. You can use a yield statement to specify the value…
  • 🔥 36
  • 👍 13
  • ❤ 3
  • 🤔 1
More from @nixel2007_thoughts
  1. Oct 11, 2026Когда устал пилить опенсорс, подобрел и решил открыть свой магазин одежды.
  2. Sep 28, 2026Вторую картинку в посте потерял. Вот так менять/задавать пароль.
  3. Sep 28, 2026Если вы можете прочесть этот пост, то вероятно, ваш телефон находится, кхм-кхм, за границе…
  4. Sep 28, 2026video post
  5. Sep 28, 2026#анонс Полишинеля Я разрываюсь между двумя фразами на анонс, пускай будут обе: 1. Мы строи…
  6. Sep 27, 2026Внимательный разбор телеметрии показал, что основной причиной падений хаба последних дней…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →