You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BREAKING CHANGE Изменен формат конфигурационного файла. Одно из ключевых отличий - разнесение параметров по типам сервисов. Например, конфигурирование диагностик теперь происходит в diagnostics->parameters, а не в diagnostics. Обновленное описание доступно на сайте и в схеме
Для настройки диагностик добавлено свойство mode, позволяющее полностью отключить диагностики, полностью включить все диагностики, включить все кроме указанных, отключить все кроме указанных
Добавлена обработка запроса textDocument/documentLink - по каждой диагностике теперь доступна всплывающая ссылка на страницу с документацией (например, в VSCode)
В ответ на запрос textDocument/documentSymbol для каждого символа добавлена информация о статусе "устарел"
Гарантированная поддержка JDK14
Обновлен внешний вид интерфейса командной строки. Теперь параметры явно привязаны к командам, доступна справка по каждой команде
Оптимизирована работа парсера bsl-файлов, парсера метаданных конфигурации, общих механизмов BSL Language Server
Добавлен экспорт данных о строках к покрытию в формате GenericCoverage (в виде нового репортера)
Тэги игнорирования диагностик (BSLLS-выкл) теперь нечувствительны к регистру
В команду analyze добавлен параметр --workspaceDir, отвечающий за базовый каталог, относительно которого формируются пути файлов в отчете
В команды добавлен флаг --silent для сокращения количества выводимых в консоль сообщений (в т.ч. прогресс-бар)
Исправлена ошибка сбора информации о методе, приводящая к падению анализа, если имя метода совпадало с ключевым словом
Добавлены диагностики:
Кеширование программного интерфейса (CachedPublic)
Присвоение общему модулю (CommonModuleAssign)
Общий модуль недопустимого типа (CommonModuleInvalidType)
Выполнение произвольного кода на сервере (ExecuteExternalCode)
Выполнение произвольного кода в общем модуле на сервере (ExecuteExternalCodeInCommonModule)
Функция всегда возвращает одно и то же примитивное значение (FunctionReturnsSamePrimitive)
Использование метода РольДоступна (IsInRoleMethodDiagnostic)
Все объявления переменных должны иметь описание (MissingVariablesDescription)
Присвоение значения свойству ЭтотОбъект (ThisObjectAssign)
Небезопасное использование функции БезопасныйРежим() (UnsafeSafeModeMethodCall)
Изменены диагностики:
BeginTransactionBeforeTryCatch - исправлено ложное срабатывание диагностики на методах, содержащих НачатьТранзакцию в имени
CreateQueryInCycle - исправлено ложное срабатывание диагностики на коде вида Для Каждого из РезультатЗапроса.Выгрузить() Цикл
CompilationDirectiveNeedLess - исправлена ссылка на Источник
FunctionNameStartsWithGet - исправлена ссылка на Источник
NonExportMethodsInApiRegion - исправлено ложное не-срабатывание диагностики в области СлужебныйПрограммныйИнтерфейс
MultilingualStringHasAllDeclaredLanguages - исправлено ложное срабатывание диагностики при передачи строки через переменную
ParseError - исправлено неверное позиционирование диагностики, приводящее к остановке анализа в SonarQube, если ошибка вешалась на "конец файла"
Typo - расширен список слов-исключений
UnreachableCode - исправлено ложное срабатывание диагностики на инструкции препроцессору
UsingFindElementByString - исправлено ложное не-срабатывание диагностики при вызове функции, вложенного в вызов функции
UsingModalWindows - теперь включена по умолчанию, работает только на режиме совместимости 8.3.3 и новее
UsingSynchronousCalls - теперь включена по умолчанию, работает только на режиме совместимости 8.3.3 и новее
Оптимизированы диагностики:
EmptyRegion
FunctionShouldHaveReturn
InvalidCharacterInFile
MethodSize
SelfAssign
SelfInsertion
SemicolonPresence
SeveralCompilerDirectives
UsingCancelParameter
UsingServiceTag
Изменения для разработчиков
На сайте добавлены разделы:
javadoc
руководство по стилю
структура диагностики, назначение и содержимое файлов
MethodSymbol теперь содержит информацию о параметрах метода, статусе deprecated
Исправлено определение типа переменной в VariableSymbol
Для построения дополнительного контекста всего сервера при начале работы выполняется дополнительный проход по всем файлам и построение первичных данных (в т.ч. SymbolTree)
Добавлены новые абстрактные диагностики:
AbstractCommonModuleNameDiagnostic - для проверки общего модуля на имя
AbstractExecuteExternalCodeDiagnostic - для проверки выполнения методов Выполнить и Вычислить
AbstractDiagnostic теперь содержит ссылку на DocumentContext в поле по аналогии с другими абстрактными диагностиками
DocumentContext#getTokens теперь возвращает токен EOF
Исправлена обрезка пустых строк в конце контента при вызове DocumentContext#getContentList