Общие изменения
- Добавлена обработка запросов
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
), приводящая к падению приложения; - Исправлено падение сервера, если путь к файлу содержит квадратные скобки (
[
и]
); - Обновление значимых зависимостей:
Изменения для разработчиков
- 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
больше не будут приводить к конфликтам и шуму в измененных файлах репозитория.