Общие изменения
- Добавлена возможность игнорирования диагностик в тексте модуля. Для игнорирования используются тэги "BSLLS-выкл", аналогичные "АПК-выкл", с возможностью указания ключа игнорируемой диагностики. Подробная информация - https://1c-syntax.github.io/bsl-language-server/features/DiagnosticIgnorance.html
- В cli добавлена команда массового форматирования файлов (--format)
- Добавлены диагностики:
- Нарушение правил работы с транзакциями для метода 'НачатьТранзакцию' (BeginTransactionBeforeTryCatch)
- Закомментированный фрагмент кода (CommentedCode)
- Нарушение правил работы с транзакциями для метода 'ЗафиксироватьТранзакцию' (CommitTransactionOutsideTryCatch)
- Пропущены пробелы слева или справа от операторов + - * / = % < > <> <= >=, а так же справа от , и ; (MissingSpace.md)
- Вставка коллекции в саму себя (SelfInsertion)
- Недостижимый код (UnreachableCode)
- Хранение путей к файлам и ip-адресов в коде (UsingHardcodePath)
- Хранение конфиденциальной информации в коде (UsingHardcodeSecretInformation)
- Использование модальных окон (UsingModalWindows)
- Использование объектов недоступных в Unix системах (UsingObjectNotAvailableUnix)
- Использование синхронных вызовов (UsingSynchronousCalls)
- Использование устаревшего свойства "ЭтаФорма" (UsingThisForm)
- Изменены следующие диагностики:
- SpaceAtStartComment дополнительно игнорирует комментарии, начинающиеся с //©
- Для диагностики EmptyCodeBlock добавлена настройка, позволяющая считать комментарии внутри блока кода за код
- Уточнено позиционирование диагностики SeveralCompilerDirectives
- Расширена документация по диагностикам:
- Пустой блок кода (EmptyCodeBlock)
- Добавлен quick-fix (быстрое исправление) для диагностик:
- Пропущены пробелы слева или справа от операторов + - * / = % < > <> <= >=, а так же справа от , и ; (MissingSpace)
- Использование устаревшего свойства "ЭтаФорма" (UsingThisFormDiagnostic)
- В вывод репортера json добавлена информация об анализируемом каталоге
- Вывод репортера junit приведен к современному виду
- Исправлено случайное падение прогресс-бара в некоторых windows-терминалах
- Исправлено возможное падение при чтении конфигурационного файла с неполным списком свойств диагностик
- Исправлено падение при расчете символов документа в момент набора ключевого слова Процедура/Функция
- Исправлено падение при форматировании пустого файла
- Поддержка работы режима analyze на java11+
Значимые внутренние изменения
- Версия lsp4j обновлена до 0.8.1
- Данные в DocumentContext теперь рассчитываются только при необходимости, пре первом запросе
- Full qualified package name проекта изменен на com.github._1c_syntax.bsl.languageserver, groupId изменен на com.github.1c-syntax
- Расширена документация разработчика. Добавлена gradle-задача для быстрого создания новой диагностики