Общие изменения
- BREAKING CHANGE По умолчанию процесс расчета диагностик теперь запускается только при сохранении файла. Для возвращения старого поведения (при редактировании файла) используйте конфигурационный файл, свойство
computeDiagnostics
в значенииonType
- Добавлен подсчет метрики "Когнитивная сложность"
- Добавлены диагностики:
- Когнитивная сложность (
CognitiveComplexity
) - Одинаковые выражения слева и справа от 'foo' оператора (
IdenticalExpressions
) - Использование сложных выражений в условии оператора "Если" (
IfConditionComplexity
) - Конструкция "Попытка...Исключение...КонецПопытки" не содержит кода в исключении (
MissingCodeTryCatchEx
) - Нарушение парности использования методов "НачатьТранзакцию()" и "ЗафиксироватьТранзакцию()" / "ОтменитьТранзакцию()" (
PairingBrokenTransaction
) - Ошибочное указание нескольких директив компиляции (
SeveralCompilerDirectives
) - Пробел в начале комментария (
SpaceAtStartComment
) - Использование тернарного оператора (
TernaryOperatorUsage
) - по умолчанию выключена - Оператор "Перейти" не должен использоваться (
UsingGoto
)
- Когнитивная сложность (
- Изменены следующие диагностики:
ExtraCommas
теперь работает всегда, а не только для BSL-файловUsingCancelParameter
- серьезность переведена на уровеньMAJOR
- Добавлен обработчик
textDocument/codeLens
, отображающий информацию о Когнитивной сложности метода - Добавлен quick-fix (быстрое исправление) для диагностики "Пробел в начале комментария"(
SpaceAtStartComment
) - В конфигурационный файл добавлены свойства:
showCognitiveComplexityCodeLens
- Булево - определяет необходимость показа codeLens с Когнитивной сложностью;computeDiagnostics
- Перечисление - определяет триггер для расчета диагностик. Доступные значения - при сохранении файла (по умолчанию), при редактировании файла, никогда.
- Для конфигурационного файла добавлена json-схема. В имеющиеся файлы конфигурации ее можно подключить с помощью свойства:
"$schema": "https://raw.githubusercontent.com/1c-syntax/bsl-language-server/master/src/main/resources/org/github/_1c_syntax/bsl/languageserver/configuration/schema.json"
- Уточнено определение диапазонов начала и конца методов при запросе символов документов
- Исправлено форматирование параметров аннотаций и аннотированных методов и переменных
Значимые внутренние изменения
- Для диагностик в
@DiagnosticMetadata
доступно новое свойствоactivatedByDefault
. Значение по умолчанию -true
- В
DocumentContext
и классы, реализующие интерфейсSymbol
, добавлен метод очистки сохраненных данных ANTLR -void clearASTData()