Skip to content

Releases: 1c-syntax/bsl-language-server

v0.27.1

07 Jan 16:04
27c65ae

Choose a tag to compare

Исправления выявленных ошибок

  • Исправлено падение расчёта конфигурации при отсутствии в ролях поля с ограничениями доступа by @theshadowco
  • Исправлены NullPointerException в DeletingCollectionItemDiagnostic при неполном теле цикла или отсутствующем итераторе by @Copilot in #3738 and #3743
  • Исправлена NullPointerException в UseLessForEachDiagnostic при неполном теле цикла by @Copilot in #3741
  • Расширено логирование исключений при построении контекста документа by @nixel2007 in #3744

Full Changelog: v0.27.0...v0.27.1

v0.27.0

04 Jan 08:55
d952df6

Choose a tag to compare

Общие изменения

  • Во всплывающую подсказку добавлена информация о виде переменной и ее области видимости;
  • Добавлена семантическая подсветка для имен общих модулей и конструкторов классов после ключевого слова Новый;
  • Добавлена поддержка семантической подсветки шаблонных переменных в функциях вида СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку;

Исправлены общие ошибки

  • Исправлено состояние гонки при открытии проекта и наполнении контекста, приводившее к многочисленным NullPointerException;
  • Исправлена ошибка, приводившая к двойной работе по наполнению внутренних кэшей при наполнении контекста;
  • Убран ненужный вызов уведомления textDocument/publishDiagnostics, если клиент поддерживает pull-модель получения диагностик;
  • Исправлен NullPointerException при наборе тернарного оператора;
  • Исправлено определение окружения для ошибок, отправляемых в Sentry.

v0.26.0

29 Dec 09:00
dc407da

Choose a tag to compare

Общие изменения

  • Добавлена семантическая подсветка для описаний методов и переменных;
  • Добавлена семантическая подсветка для строк, используемых в функциях СтрШаблон и НСтр;
  • Добавлена поддержка запросов textDocument/semanticTokens/full/delta и textDocument/semanticTokens/range ;
  • Существенно ускорено получение результатов работы семантической подсветки;
  • Оптимизация расчета контекста проекта, хранения и мест использования символов (методов, переменных и т.д.);
  • Добавлен пустой ответ на запрос textDocument/implementation для упрощения использования BSL Language Server в средах, которые ошибочно шлют этот запрос с клиента без проверки поддерживаемости;

Full Changelog: v0.25.2...v0.26.0

v0.26.0-rc.1

28 Dec 14:33
116269d

Choose a tag to compare

v0.26.0-rc.1 Pre-release
Pre-release

What's Changed

  • Updates for file docs/contributing/EnvironmentSetting.md in en by @transifex-integration[bot] in #3663
  • Updates for file docs/diagnostics/ForbiddenMetadataName.md in en by @transifex-integration[bot] in #3667
  • Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #3670
  • Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #3669
  • Bump org.sonarqube from 7.2.0.6526 to 7.2.1.6560 by @dependabot[bot] in #3668
  • Updates for file docs/features/ConfigurationFile.md in en by @transifex-integration[bot] in #3664
  • Updates for file docs/contributing/StyleGuide.md in en by @transifex-integration[bot] in #3665
  • Updates for file docs/contributing/DiagnosticStructure.md in en by @transifex-integration[bot] in #3666
  • Mark parameter usages with SemanticTokenTypes.Parameter by @Copilot in #3674
  • Update utils dependency version to 0.6.7 by @nixel2007 in #3675
  • Update io.github.1c-syntax utils version to 0.6.8 by @nixel2007 in #3676
  • Enable auto-merge for Dependabot by @nixel2007 in #3680
  • Fix NPE in IdenticalExpressionsDiagnostic when ctx.children is null by @Copilot in #3679
  • Добавлена линза для отладки тестов by @sfaqer in #3682
  • Bump dependabot/fetch-metadata from 2.3.0 to 2.4.0 by @dependabot[bot] in #3683
  • Bump org.sonarqube from 7.2.1.6560 to 7.2.2.6593 by @dependabot[bot] in #3684
  • Bump org.springframework.boot from 3.5.8 to 3.5.9 by @dependabot[bot] in #3685
  • Add SDBL (query language) semantic token highlighting with AST-based analysis by @Copilot in #3673
  • Add BSL doc syntax highlighting for method/variable descriptions by @Copilot in #3690
  • Add empty response for textDocument/implementation request by @Copilot in #3699
  • Add LSP cancellation support in BSLTextDocumentService by @Copilot in #3700
  • Bump dawidd6/action-download-artifact from 11 to 12 by @dependabot[bot] in #3701
  • Fix semantic token highlighting for multi-type parameters in BSL documentation by @Copilot in #3703
  • Add semantic highlighting for NStr and StrTemplate functions by @Copilot in #3697
  • Optimize incremental text document synchronization by @Copilot in #3704
  • Support textDocument/semanticTokens/full/delta by @Copilot in #3696
  • Fix inline text insertion handling in semantic token delta calculation by @Copilot in #3707
  • Оптимизация хранения семантических токенов, фикс расчёта дельт by @nixel2007 in #3706

Full Changelog: v0.25.0-rc.3...v0.26.0-rc.1

v0.25.2

19 Dec 12:02
cdad5ad

Choose a tag to compare

Исправления и улучшения

  • Исправлена NPE в диагностике IdenticalExpressionsDiagnostic by @Copilot in #3679
  • Добавлена линза для отладки тестов by @sfaqer in #3682
  • Добавлена подсветка языка запросов внутри строк by @Copilot in #3673

Full Changelog: v0.25.1...v0.25.2

v0.25.1

18 Dec 12:07
5b740cf

Choose a tag to compare

Исправления и улучшения

  • Исправлена ошибка наполнения контекста при наличии в рабочем каталоге файла с процентом в имени
  • Добавлена подсветка мест использования параметров и переменных

Full Changelog: v0.25.0...v0.25.1

v0.25.0

15 Dec 16:10
7fc84f5

Choose a tag to compare

Общие изменения

  • Добавлено слияние контекста расширений и основной конфигурации. Поиск ссылок, переходы к определению и прочие механизмы языкового сервера теперь корректно работают при переходах из основной конфигурации в расширение и обратно;
  • В процедуру чтения метаданных добавлено чтение стандартных реквизитов, что должно снизить шум от диагностик языка запросов;
  • Расширена реализация Language Server Protocol:
    • поддержана инкрементальная модель синхронизации содержимого документов в запросе textDocument/didChange - меньший объем передаваемых данных между клиентом и сервером при редактировани файлов;
    • добавлена обработка запросов textDocument/diagnostic - асинхронный запрос диагностик с клиента, когда клиент считает нужным обновить диагностики, вместо принудительной отправки диагностик с сервера (textDocument/publishDiagnostics). Старый режим отправки диагностик отключается, если клиент поддерживается запрос диагностик с клиента;
    • добавлена обработка запросов textDocument/semanticTokens/full - теперь языковой сервер помогает семантически разукрашивать текст в редакторе на основе имеющегося у него контекста проекта;
    • добавлена обработка запросов workspace/didChangeWatchedFiles - теперь изменения файлов вне редактора будут приводить к обновлению состояния в контексте языкового сервера, например, git checkout или создание/изменение файлов через консоль;
    • добавлена обработка запросов workspace/diagnostic/refresh - изменение конфигурации языкового сервера будет отправлять на клиента запрос обновления диагностик;
  • Поставляемые дистрибутивы теперь имеют базовое ограничение в 4 GB RAM;
  • В конфигурационный файл добавлены:
    • diagnostics -> minimumLSPDiagnosticLevel - позволяет задать минимальный уровень серьезности LSP диагностик для запуска. Диагностики с уровнем серьезности ниже указанного не будут запускаться;
    • diagnostics -> overrideMinimumLSPDiagnosticLevel - позволяет задать минимальный уровень серьезности для LSP диагностик. Если уровень диагностики ниже указанного, он будет повышен до указанного;
    • diagnostics -> metadata - коллекция (соответствие) переопределений метаданных диагностик. Элементами коллекции являются json-объекты, где ключом объекта являтеся ключ диагностики, а значением - json-объект с переопределяемыми параметрами диагностики. Можно переопределить: type, severity, scope, modules, minutesToFix, activatedByDefault, compatibilityMode, tags, canLocateOnProject, extraMinForComplexity и lspSeverity;
    • references -> commonModuleAccessors - cписок паттернов "Модуль.Метод" для методов, возвращающих ссылку на общий модуль (например, `ОбщегоНазначения.ОбщийМодуль("ИмяМодуля");
    • capabilities - коллекция для переопределения параметров инициализации языкового сервера;
  • Все запросы к документу (диагностики, всплывающая подсказка и проч) теперь дожидаются применения очереди изменений к документу (didChange) перед началом отработки. Это должно снизить количество ошибок, возникающих из-за рассинхронизации данных между различными компонентами сервера и контекстом документа;
  • Расширение поддержки OneScript - добавлена поддержка аннотаций как значений параметров аннотаций;
  • Добавлено определение обращений к общим модулям через конструкцию вида МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");. Для таких обращений теперь работает поиск ссылок, информация о наведении и другие операции, поддерживаемые для обычных обращений к методам через УправлениеДоступом;
  • Добавлена всплывающая подсказка при наведении на имя общего модуля;
  • Оптимизация хранения внутренних структур данных для снижения потребления оперативной памяти;
  • Расчет контекста конфигурации теперь происходит после получения уведомления initialized, а не во время ответа на initialize;

Новые диагностики

Изменения существующих диагностик

  • Typo - добавлено кэширование результатов проверки орфографии на диске. Кэш создается в каталоге пользователя, хранится в разрезе пути к проверяемому проекту, и содержит до 125.000 значений или 3 МБ на проект. Возможен перенос кэша для использования на CI, подробнее - см. документацию;
  • MagicDate - даты, используемые в качестве ключей или значений структур и соответствий больше не считаются магическими;
  • MagicNumber - числа, используемые в качестве ключей или значений структур и соответствий больше не считаются магическими;
  • TransferringParametersBetweenClientAndServer - добавлена возможность указания список имен параметров, которые игнорируются диагностикой, т.к. явно используются в форме для клиентского кэширования значений;
  • AllFunctionPathMustHaveReturnDiagnostic - добавлен учет условий препроцессора;
  • ExternalAppStartingDiagnostic - тип диагностики изменен на SecurityHotspot;
  • LineLengthDiagnostic - добавлен параметр excludeTrailingComments, позволяющий подавить срабатывания диагностики на строках с концевыми комментариями;
  • MissingSpaceDiagnostic - исправлены падения при наличии знаков пунктуации в начале или конце модуля;
  • QueryToMissingMetadataDiagnostic - добавлена поддержка кубов и измерений кубов при обращении к Внешним Источникам Данных;
  • UnreachableCodeDiagnostic - добавлена проверка блоков кода в теле модуля;
  • Множественные уточнения документации к диагностикам;

Исправленные общие ошибки

  • Исправлены выявленные ошибки в построителях ControlFlowGraph и ExpressionTree, приводившие к различным падениям при наборе текста;
  • Исправлена взаимоблокировка, возникающая при активном взаимодействии с документом в редакторе, приводившая к полной остановке получения ответов по документу от языкового сервера;
  • Исправлена ошибка, когда трейс-лог мог не включаться до пересохранения конфигурационного файла при работающем языковом сервере;
  • Исправлена ошибка не србатывания игнорирования дианостик в файле, содержащем только комментарии;
  • Исправлена невозможность переопределения параметров логирования или spring через аргументы командной строки;
  • Исправлена ошибка, которая могла приводить к зависанию процесса языкового сервера при выводе сообщения в момент закрытия контекста приложения;

Обновление значимых зависимостей

  • Spring Boot: 3.4.4 -> 3.5.8
  • Language Tool: 6.5 -> 6.7
  • BSL Parser: 0.26.0 -> 0.29.0
  • MDClasses: 0.15.0 -> 0.17.0

Изменения для разработчиков

  • Сборка дистрибутивов и релизных jar-файлов переведена на JDK 25;
  • Тестирование производится под версиями JDK 17, 21 и 25;
  • Оптимизированы сборочные линии в pull-request - теперь дублирующиея события on push не выполняются, если для этой ветки существует pull-request;
  • В аннотацию DiagnosticMetadata добавлено свойство lspSeverity, позволяющее переопределить рассчитываему серьезность диагностики по LSP на предоставленное значение;
  • Проект переведен на использование jspecify для обеспечения null-безопасности;
  • Расширено покрытие классов javadoc'ами;
  • Починена автоконфигурация Sentry из соответствующего стартера;
  • В связи с развитием форка 1c-syntax/antlr и перенесом большей части доработок в ядро antlr, класс BSLParserRuleContext заменен на ParserRuleContext;
  • Добавлено событие ServerContextDocumentRemovedEvent;
  • Добавлен метод [DocumentContext#getMdoRef](https://1c-syntax.github.io/bsl-language-server/javadoc...
Read more

v0.25.0-rc.3

13 Dec 10:11
af962f9

Choose a tag to compare

v0.25.0-rc.3 Pre-release
Pre-release

What's Changed

  • Disable Sentry logging in scope configuration by @nixel2007 in #3660
  • Отключение расчета геолокации по IP на стороне Sentry клиента by @nixel2007 in #3661
  • Исправление замечаний к коду. Продолжение 25.12.12. Часть 2 by @theshadowco in #3659

Full Changelog: v0.25.0-rc.2...v0.25.0-rc.3

v0.25.0-rc.2

12 Dec 07:56
f11c721

Choose a tag to compare

v0.25.0-rc.2 Pre-release
Pre-release

What's Changed

  • Обновление версии mdclasses by @theshadowco in #3654
  • Исправления ошибок, рефакторинг QueryToMissingMetadataDiagnostic by @ovcharenko-di in #3655
  • fix/rc.1-fixes by @nixel2007 in #3656
  • Исправление замечаний к коду, рефакторинг by @theshadowco in #3657
  • Исправление замечаний к коду. Продолжение 25.12.12 by @theshadowco in #3658

Full Changelog: v0.25.0-rc.1...v0.25.0-rc.2

v0.25.0-rc.1

09 Dec 18:53
9cddaae

Choose a tag to compare

v0.25.0-rc.1 Pre-release
Pre-release

What's Changed

  • Update RewriteMethodParameter.md by @sagittarius-s in #3638
  • test ReturnOutsideLoop by @nixel2007 in #3625
  • feat(diagnostic): добавлена диагностика небезопасного использования метода НайтиПоКоду() by @johnnyshut in #3627
  • DRAFT Разбор запросов к внешним источникам данных (bsl-parser), новые тесты в bsl-language-server by @ovcharenko-di in #2959
  • Feauture/logical or in join query section by @Levon444 in #3471
  • Feauture/query nested fields by dot by @Levon444 in #3470
  • semanticTokens by @nixel2007 in #3510
  • Update Java version to 25 in CI configurations and dependencies + change sync model back to Full by default by @nixel2007 in #3641
  • Updates for file docs/diagnostics/LogicalOrInJoinQuerySection.md in en by @transifex-integration[bot] in #3640
  • Перенести запуск populateContext из обработки initialize в initialized by @Copilot in #3642
  • Обновить bsl-parser до версии 0.28.0 by @Copilot in #3643
  • Bump org.springframework.boot from 3.5.7 to 3.5.8 by @dependabot[bot] in #3644
  • Add cachedValueNames parameter to TransferringParametersBetweenClientAndServer diagnostic by @Copilot in #3591
  • Update bsl-parser dependency to version 0.29.0 by @nixel2007 in #3651
  • Улучшение диагностики QueryToMissingMetadataDiagnostic by @ovcharenko-di in #3650
  • Support reference tracking for common module methods by @Copilot in #3581

New Contributors

Full Changelog: v0.25.0-ra.12...v0.25.0-rc.1