Общие изменения
- 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()