github 1c-syntax/bsl-language-server v0.19.0

latest releases: v0.24.0-rc.1, v0.23.1, v0.23.1-rc.1...
3 years ago

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

  • Добавлена обработка запросов textDocument/documentColor и textDocument/colorPresentation для отображения представления цвета. Обрабатываются обращения к системному перечислению WebЦвета и создание цвета с помощью конструктора Новый Цвет;
  • Добавлена обработка запроса textDocument/selectionRange для формирования дерева областей выделения от текущей позиции (команда Expand Selection в VSCode);
  • Линзы когнитивной сложности и цикломатической сложности теперь показывают текст на языке сервера (параметр language конфигурационного файла);
  • Добавлен репортер в формат SARIF;
  • Удален репортер в Generic coverage, метрика covlocData объявлена устаревшей. При необходимости получения данных по строкам к покрытию используйте другие инструменты, например Coverage41C;
  • Добавлены диагностики:
    • Все возможные пути выполнения функции должны содержать оператор Возврат (AllFunctionPathMustHaveReturn);
    • Назначение псевдонимов выбранным полям в запросе (AssignAliasFieldsInQuery);
    • Флажок «Устанавливать права для новых объектов» должен быть установлен только у роли ПолныеПрава (SetPermissionsForNewObjects);
    • После вызова асинхронного метода есть строки кода (CodeAfterAsyncCall);
  • Изменены диагностики:
    • Typo - английский словарь больше не ругается на кириллицу и наоборот;
    • IdenticalExpressions - диагностика переписана на новый движок "дерева выражений", повышена точность срабатывания диагностики с учетом вариативности и приоритетов операций, добавлен параметр popularDivisors для отсекания срабатываний на популярных делителях 60 и 1024;
    • MissingTemporaryFileDeletion - исправлено падение при вызове функции от результата вызова функции, исправлены избыточные (не)срабатывания диагностики при частичном совпадении искомого имени метода с созданием/удалением временного файла, добавлена поддержка методов удаления файла, находящихся в общих модулях;
    • AssignAliasFieldsInQuery - исправлены падения при разрывах запроса в области описания выбираемых полей;
    • IncorrectUseOfStrTemplate - исправлены ложные срабатывания при сложном экранировании шаблонных переменных через двойные знаки процента или скобки, исправлены ложные несрабатывания при передаче параметров в виде отсутствующего значения;
    • IncorrectLineBreak - исправлены ложные срабатывания на комментариях и внутри строк;
    • SelectTopWithoutOrderBy - исправлено срабатывание диагностики на конструкцию ВЫБРАТЬ ПЕРВОЕ 0, исправлено падение диагностики при разрыве запроса;
    • CreateQueryInCycle - исправлено падение диагностики при наличии ошибок в синтаксисе описания цикла;
    • UsingHardcodeNetworkAddress - добавлен параметр searchPopularVersionExclusion для исключения срабатывания диагностики на популярные конструкции, не являющиеся адресами. По умолчанию игнорируются строки, начинающиеся на 1, 2, 3, 8.3 и 11;
    • LatinAndCyrillicSymbolInWord - добавлен параметр allowTrailingPartsInAnotherLanguage, разрешающий началу или концу идентификатора быть написанным на другом языке;
    • UsageWriteLogEvent - исправлено ложное срабатывание диагностики вне блока Исключение;
    • CachedPublic - исправлено ложное срабатывание диагностики на пустой области;
    • IncorrectUseLikeInQuery - важность понижена до major;
    • UsingLikeInQuery - важность понижена до major;
    • VirtualTableCallWithoutParameters - важность понижена до major;
    • MagicDate - исправлена ошибка, которая не позволяла убрать из разрешенных дат в параметре authorizedDates даты, установленные по умолчанию;
    • MagicNumber - исправлена ошибка, которая не позволяла убрать из разрешенных чисел в параметре authorizedNumbers числа, установленные по умолчанию;
  • Исправлена ошибка позиционирования некоторых диагностик, опиравшихся на построчный перебор файла;
  • Исправлена ошибка разбора исходного кода, если один из параметров метода имеет имя Ждать;
  • Исправлена ошибка чтения параметров диагностик, имеющих тип "число с плавающей точкой" (float), приводящая к падению приложения;
  • Исправлено падение сервера, если путь к файлу содержит квадратные скобки ([ и ]);
  • Обновление значимых зависимостей:
    • встроенный словарь Language Tool обновлен до версии 5.4;
    • Spring Boot обновлен до версии 2.5.4;
    • MDClasses обновлен до версии 0.9.2;
    • BSL Parser обновлен до версии 0.19.4;

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

  • BSL Language Server теперь публикуется в Maven Central. Снапшоты develop-ветки доступны в Sonatype Snapshot Repository. Версионируемый javadoc доступен на javadoc.io;
  • javadoc теперь содержит кросс-ссылки на объекты mdclasses и antrl4;
  • Добавлен механизм Expression Tree для построения дерева выражений с учетом приоритетов операций. См. пакет com.github._1c_syntax.bsl.languageserver.utils.expressiontree;
  • Добавлен механизм Control Flow Graph для построения графа потока управления в блоке кода (CodeBlockContext). См. пакет com.github._1c_syntax.bsl.languageserver.cfg;
  • Добавлен метод DocumentContext::getScriptVariantLocale, возвращающий вариант встроенного языка текущего файла. Интерфейс класса Resources расширен методами, принимающими Locale
  • Изменения базовых настроек проекта, хранящихся в каталоге .idea больше не будут приводить к конфликтам и шуму в измененных файлах репозитория.

Don't miss a new bsl-language-server release

NewReleases is sending notifications on new releases.