Skip to content

Releases: 1c-syntax/bsl-language-server

v0.13.2

28 Jan 13:11
e472db1
Compare
Choose a tag to compare
  • Исправлено формирование области срабатывания для диагностики CodeOutOfRegion

v0.13.1

28 Jan 10:55
3c80423
Compare
Choose a tag to compare
  • Исправлено позиционирование диагностики CodeOutOfRegion

v0.13.0

24 Jan 12:35
8675610
Compare
Choose a tag to compare
  • Добавлена возможность исключать из анализа файлы на поддержке (при наличии конфигурации поставщика). Для этого в конфигурационный файл добавлено свойство computeDiagnosticSkipSupport (перечисление). Подробнее: Конфигурирование
  • Время анализа файла сокращено на ~20%
  • Обновление до Java11
  • Добавлена поставка BSL LS в виде самодостаточного zip-архива для платформ Windows, Linux и MacOS
  • Добавлены метрики модуля:
    • расчет цикломатической сложности
    • количество строк комментариев
  • Добавлены новые диагностики:
  • Доработаны диагностики:
    • UsingServiceTag - фраза // Вставить содержимое обработчика и ее английские аналоги теперь считается служебным тегом и диагностируется как ошибка
    • UnreachableCode - исправлено ложное срабатывание на #Область и #КонецОбласти
    • UsingHardcodeNetworkAddress - исправлены ложные срабатывания на строках, содержащих двоеточия
    • SpaceAtStartComment - больше не срабатывает на строках, считающихся закомментированным кодом
    • CommentedCode - уточнены правила определения кода
    • UnusedLocalMethod - убрано срабатывание на ПриСозданииОбъекта в модулях OneScript
    • TimeoutsInExternalResources - убраны ложные срабатывания на конфигурациях с режимом совместимости 8.3.7 и менее
    • MultilingualStringHasAllDeclaredLanguages - исправлен ряд ложных срабатываний на сложных локализованных строках
    • OneStatementPerLine - добавлен показ дополнительных срабатываний диагностики
    • CommitTransactionOutsideTryCatch - исправлено ложное не-срабатывание в случае, когда ЗафиксироватьТранзакцию является последним оператором в модуле
    • MissingSpace - убрано ложное срабатывание на унарных плюсе и минусе при передаче числового параметра как аргумента метода
    • MagicNumbers - добавлен параметр, разрешающий использование магических чисел как индексов
  • Добавлен quick fix для диагностики:
    • EmptyRegion
  • Добавлен обработчик textDocument/codeLens, отображающий информацию о цикломатической сложности метода
  • Для диагностик добавлена возможность определения необходимости срабатывания на основе типа модуля
  • Добавлен перевод параметров диагностик на английский язык
  • Добавлен новый тэг диагностик - localize - проблемы локализации
  • Добавлен новый тип диагностик - security hotspot - подробнее в документации
  • Исправлено необнаружение метаданных конфигурации в некоторых случаях
  • Форматер больше не съедает имя библиотеки OneScript, начинающейся с цифры
  • json-файл с результатами анализа теперь хранит базовый каталог анализа и относительные пути к файлам
  • В конфигурации BSL LS свойство computeDiagnostics заменено на computeDiagnosticsTrigger
  • Расширена документация
  • Расширена json-схема для конфигурационного файла
  • Конфигурационный файл теперь доступен по короткой ссылке: https://1c-syntax.github.io/bsl-language-server/configuration/schema.json

v0.12.3

25 Nov 08:26
b196254
Compare
Choose a tag to compare
  • Исправлена фильтрация диагностик по режиму совместимости
  • Исправлено игнорирование параметра maxAllowedLevel в диагностике NestedStatements
  • Исправлено ложное срабатывание диагностики MultilingualStringHasAllDeclaredLanguages при использовании двух двойных кавычек вместо одной одинарной

v0.12.2

19 Nov 08:16
Compare
Choose a tag to compare
  • Добавлены недостающие описания диагностик
  • Исправлено падение TimeoutsInExternalResources
  • Исправлено сообщение в DeletingCollectionItem

v0.12.1

18 Nov 05:56
Compare
Choose a tag to compare
  • Исправлено падение UsingCancelParameterDiagnostic

v0.12.0

16 Nov 15:33
f3f7d0d
Compare
Choose a tag to compare

Общие изменения

  • Время анализа файлов сокращено от 2 до 9 раз.
  • Существенно (от 2 до 5 раз) сокращен размер неотдаваемой оперативной памяти в режиме анализа.
  • Существенно сокращен размер дистрибутива.
  • Форматтер теперь обрезает незначимые символы справа в комментариях
  • Добавлены диагностики:
    • Использование устаревшего метода "Найти" (DeprecatedFind).
    • Недопустимый символ (InvalidCharacterInFile).
    • Отсутствует удаление временного файла после использования (MissingTemporaryFileDeletion).
    • Есть локализованный текст для всех заявленных в конфигурации языков (MultilingualStringHasAllDeclaredLanguages).
    • Есть локализованный текст для всех заявленных в конфигурации языков (MultilingualStringHasAllDeclaredLanguages).
    • Неэкспортные методы в областях ПрограммныйИнтерфейс и СлужебныйПрограммныйИнтерфейс (NonExportMethodsInApiRegion).
    • Таймауты при работе с внешними ресурсами (TimeoutsInExternalResources).
    • Унарный плюс в конкатенации строк (UnaryPlusInConcatenation).
    • Неиспользуемый локальный метод (UnusedLocalMethod).
    • Хранение ip-адресов в коде (UsingHardcodeNetworkAddress).
  • Изменены следующие диагностики:
    • Определение захардкоженных адресов вынесено из диагностики UsingHardcodePath в UsingHardcodeNetworkAddress.
    • В сообщения диагностик NumberOfParams и NumberOfOptionalParams добавлена информация о требуемом количестве параметров
    • ДиагностикаLineLength больше не срабатывает на последнюю длинную строку текста запроса.
    • Диагностика CommentedCode больше не срабатывает на описаниях методов.
  • Добавлен quick-fix (быстрое исправление) для диагностик:
    • Закомментированный фрагмент кода (CommentedCode)
    • Одно выражение в одной строке (OneStatementPerLine)
  • Частичная поддержка анализа метаданных конфигурации в форматах выгрузки конфигуратора и EDT.
  • В конфигурацию BSL Language Server добавлено свойство configurationRoot для хранения пути к корню конфигурации.
  • В данные метрик добавлена информация о строках для покрытия тестами.
  • Для диагностик добавлены тэги и требуемый режим совместимости конфигурации (где применимо).
  • При анализе конфигураций по умолчанию не срабатывают диагностики, у которых режим совместимости конфигурации выше, чем режим совместимости анализируемой конфигурации.
  • Репортер в GenericIssue теперь использует относительные пути файлов.
  • Для ряда диагностик изменены названия на русском и английском языке.
  • Названия методов в сообщениях диагностик теперь обернуты в кавычки.
  • Исправлены ошибки:
    • Исключение при использовании английского варианта игнорирования диагностик (BSLLS-off).
    • Отсутствие пересчета диагностик при сохранении файла.
    • Ложное срабатывание диагностик OneStatementPerLine, EmptyStatements, SemicolonPresence при ошибке разбора
    • Ложное срабатывание диагностики UsingHardcodeSecretInformation при установке значения заголовка элементу формы с именем "Пароль"
    • Ложное срабатывание диагностики UsingHardcodeSecretInformation при установке паролю значения, состоящего только из символов звездочки (*)
    • Ложное срабатывание диагностики UnreachableCodeDiagnostic при пустом выражении после возврата.
    • Ложное срабатывание диагностики UsingHardcodePath на сложных кодах классификаторов.
    • Ложное срабатывание диагностики NestedConstructorsInStructureDeclaration при использовании пустых конструкторов со скобками.
    • Ложное срабатывание диагностики UsingSynchronousCalls на серверном контексте формы
    • Ложное срабатывание диагностики UsingObjectNotAvailableUnix в некоторых условиях
    • Двойное срабатывание диагностики UsingThisForm.
    • Код языка диагностик не влиял на язык сообщений диагностик в режиме analyze
    • Неверное английское имя диагностики MagicNumbers.
    • Диагностики на корректность работы с транзакциями срабатывали не только на методы глобального контекста.
  • Обновленный дизайн сайта.
  • Информация о диагностиках и репортерах перенесена на отдельные страницы.
  • В документацию по диагностикам добавлены блоки по типу, важности, включенности по умолчанию, времени на исправление, тэгам и применимости диагностики.

Значимые внутренние изменения

  • Дистрибутив теперь содержит английские версии описаний правил.
  • groupId проекта изменен на com.github.1c-syntax.

v0.11.0

14 Oct 11:51
d535c38
Compare
Choose a tag to compare

Общие изменения

  • Добавлена возможность игнорирования диагностик в тексте модуля. Для игнорирования используются тэги "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-задача для быстрого создания новой диагностики

v0.10.2

23 Aug 09:44
4b03fb5
Compare
Choose a tag to compare
  • Поправлен расчет когнитивной сложности логических выражений - отрицание группы без вложенных условий не должно сбрасывать цепочку

v0.10.1

22 Aug 12:24
1cf219f
Compare
Choose a tag to compare
  • Исправлен расчет когнитивной сложности для логических выражений
  • Исправлено "съедание" символа переноса строк при применении "быстрого исправления" SpaceAtStartComment
  • Добавлен перевод сообщений и имени диагностики UsingGoto на русский язык
  • Исправлено форматирование экранированных кавычек внутри многострочных строк