Releases: 1c-syntax/bsl-language-server
Releases · 1c-syntax/bsl-language-server
v0.27.1
Исправления выявленных ошибок
- Исправлено падение расчёта конфигурации при отсутствии в ролях поля с ограничениями доступа 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
Общие изменения
- Во всплывающую подсказку добавлена информация о виде переменной и ее области видимости;
- Добавлена семантическая подсветка для имен общих модулей и конструкторов классов после ключевого слова
Новый; - Добавлена поддержка семантической подсветки шаблонных переменных в функциях вида СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку;
Исправлены общие ошибки
- Исправлено состояние гонки при открытии проекта и наполнении контекста, приводившее к многочисленным NullPointerException;
- Исправлена ошибка, приводившая к двойной работе по наполнению внутренних кэшей при наполнении контекста;
- Убран ненужный вызов уведомления
textDocument/publishDiagnostics, если клиент поддерживает pull-модель получения диагностик; - Исправлен NullPointerException при наборе тернарного оператора;
- Исправлено определение окружения для ошибок, отправляемых в Sentry.
v0.26.0
Общие изменения
- Добавлена семантическая подсветка для описаний методов и переменных;
- Добавлена семантическая подсветка для строк, используемых в функциях СтрШаблон и НСтр;
- Добавлена поддержка запросов
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
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
v0.25.1
Исправления и улучшения
- Исправлена ошибка наполнения контекста при наличии в рабочем каталоге файла с процентом в имени
- Добавлена подсветка мест использования параметров и переменных
Full Changelog: v0.25.0...v0.25.1
v0.25.0
Общие изменения
- Добавлено слияние контекста расширений и основной конфигурации. Поиск ссылок, переходы к определению и прочие механизмы языкового сервера теперь корректно работают при переходах из основной конфигурации в расширение и обратно;
- В процедуру чтения метаданных добавлено чтение стандартных реквизитов, что должно снизить шум от диагностик языка запросов;
- Расширена реализация 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;
Новые диагностики
- Логическое 'ИЛИ' в соединениях запроса (LogicalOrInJoinQuerySection);
- Разыменование ссылочных полей запроса через точку (QueryNestedFieldsByDot);
- Серверные вызовы в событиях форм (ServerCallsInFormEvents);
- Небезопасное использование метода НайтиПоКоду() (UnsafeFindByCode);
- Бесполезный тернарный оператор (UselessTernaryOperator);
Изменения существующих диагностик
- 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...
v0.25.0-rc.3
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
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
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
- @sagittarius-s made their first contribution in #3638
- @Levon444 made their first contribution in #3471
Full Changelog: v0.25.0-ra.12...v0.25.0-rc.1