Skip to content

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

v0.8.0

22 Jun 12:23
e2aa8d8
Compare
Choose a tag to compare
  • Добавлена команда --version, выводящая версию продукта
  • В конфигурацию добавлено свойство traceLog - путь к файлу для логирования всех входящих и исходящих запросов между BSL Language Server и Language Client из используемой IDE
  • Добавлен обработчик textDocument/documentSymbol - запрос "символов" документа. Выводятся процедуры, функции и переменные, объявленные через Перем (в т.ч. внутри процедур и функций)
  • В провайдер сворачивания областей добавлен поиск последовательных инструкций #Использовать (для OneScript)
  • Добавлены новые диагностики:
    • Управляющие конструкции не должны быть вложены слишком глубоко
    • Ошибка разбора исходного кода
    • Приведение к числу в попытке
    • Бесполезный перебор коллекции
  • Добавлен обработчик textDocument/codeAction - действия в открытом документе. В качестве начальных действий представлены "быстрые исправления" (quick fixes) для диагностик:
    • CanonicalSpellingKeywords
    • EmptyStatement
    • SemicolonPresence
  • Исправлены падения провайдера сворачивания областей при редактировании файла
  • Исправлен выброс ошибок при редактировании файлов в диагностиках EmptyCodeBlock, FunctionShouldHaveReturn, SemicolonPresence
  • Если диагностика OneStatementPerLine срабатывает несколько раз на одной строчке, то информация о соседних срабатываниях добавляется в "связанные места" (related locations) вместо отдельных замечаний
  • Убран вывод в stdout ошибок разбора парсера
  • Исправлены NullPointerException при запуске анализатора как библиотеки в других продуктах
  • При закрытии документа (textDocument/didClose) на клиент отправляется пустой список диагностик
  • Обновлены зависимости

v0.7.0

27 May 12:44
Compare
Choose a tag to compare
  • Добавлен обработчик textDocument/foldingRange - расчет сворачиваемых областей. Доступно сворачивание многострочных комментариев, инструкций препроцессору #Если ... #КонецЕсли, #Область ... #КонецОбласти, процедур и функций, блочных конструкций Если/Пока и т.п.
  • Исправлена ошибка дублирования комментария в начале файла при выполнении форматирования документа

v0.6.1

23 May 09:05
Compare
Choose a tag to compare
  • Поле metrics для класса FileInfo сделано необязательным. Добавлена возможность сериализации/десериализации отсутствующего значения поля

v0.6.0

20 May 10:32
Compare
Choose a tag to compare
  • Добавлен подсчет метрик:
    • количество процедур
    • количество функций
    • количество выражений
    • количество строк
    • количество строк кода
  • Изменен формат репортера json - в вывод добавлена информация о метриках
  • Добавлен сборщик информации о методах
  • Добавлены новые диагностики:
    • Ограничение на использование устаревшего метода "Сообщить"
    • Ограничение на использование конструкторов с параметрами при объявлении структуры
    • Ограничение на количество значений свойств, передваваемых в конструктор структуры
    • Использование НайтиПоНаименованию и НайтиПоКоду
    • Использование служебных тегов
  • Добавлено разграничение диагностик по области применения - all, bsl, os
  • Обновлены ссылки на стандарты ИТС в описании диагностик

v0.5.0

17 Apr 08:23
Compare
Choose a tag to compare
  • Добавлена возможность конфигурации запускаемых диагностик с помощью конфигурационного файла. Для передачи используется ключ запуска --configuration. Подробнее см. документацию.
  • Удален ключ запуска --diagnosticLanguage. Вместо него для указания языка диагностик используется конфигурационный файл
  • Добавлены возможности конфигурирования диагностик:
    • LineLength
    • MethodSize
    • NumberOfOptionalParams
    • NumberOfParams
  • Добавлены диагностики:
    • IfElseDuplicatedCodeBlock - Повторяющиеся блоки кода в синтаксической конструкции Если...Тогда...ИначеЕсли...
    • ProcedureReturnsValue - Процедура не может возвращать значение
  • Добавлен внешний API для получения метаданных диагностик
  • Добавлен перевод сайта и описаний диагностик на английский язык
  • Обновлена версия BSL Parser

v0.4.0

26 Feb 19:01
Compare
Choose a tag to compare
  • Добавлена возможность указания каталога, куда сохраняются файлы репортеров в режиме analyze. Параметр --outputDir ./out
  • Добавлены диагностики:
    • Каноническое написание ключевых слов
    • Повторяющиеся условия в синтаксической конструкции Если...Тогда...ИначеЕсли...
    • Ограничение на количество не обязательных параметров метода
    • Ограничение на количество параметров метода
    • Порядок параметров метода
    • Присвоение переменной самой себе
    • Работа с параметром «Отказ»
    • Использование буквы "ё" в текстах модулей
  • Добавлена возможность форматирования документа и выбранного диапазона
  • Добавлен вывод результатов анализа в формате Generic Issue
  • Обновлена зависимость от BSL Parser

v0.3.0

15 Feb 07:27
2cc4714
Compare
Choose a tag to compare
  • Добавлен репортер в формат JUnit.xml
  • Добавлены диагостики:
    • Пустой оператор
    • Использование синтаксической конструкции Если...Тогда...ИначеЕсли...
    • Вложенный тернарный оператор
    • Использование буквы "ё" в текстах модулей
  • Исправлена проблема парсинга одиночного CR (символ "возврат каретки")
  • Отключены пока нереализованные возможности (completion и hover)
  • Диагностика на пустой блок кода больше не срабатывает на процедурах
  • Диагностика на длину строки больше не срабатывает в многострочных строках
  • Уточнено позиционирование диагностики на наличие точки с запятой
  • Диагностика на количество операторов в одной строке больше не срабатывает на пустой оператор
  • Обновлена зависимость от BSL Parser

v0.2.1

30 Jan 10:50
9cb73d2
Compare
Choose a tag to compare
  • Обновлена зависимость bsl-parser
  • Исправлен разбор конструкции For Each...

v0.2.0

25 Jan 14:42
Compare
Choose a tag to compare
  • Добавлены новые диагностики:
    • Ограничение на размер метода
    • Выражение должно заканчиваться “;”
    • Неизвестный символ препроцессора
    • Пустой блок кода
    • Одно выражение в одной строке
  • Добавлен прогресс-бар в режиме анализа файлов
  • При обработке запроса exit происходит остановка language-server, как того требует LSP
  • Обновление LSP4J до 0.6.0
  • Исправление проблем асинхронной работы анализатора при большом количестве анализируемых файлов
  • Исправлено позиционирование диагностик, позиционирующихся на несколько токенов
  • Смена идентификатора пакета
  • Глубокий рефакторинг, тесты и покрытие
  • Расширено README, добавлена инструкция по написанию диагностик, запущен сайт https://1c-syntax.github.io/bsl-language-server/

v0.1.3

16 Jan 19:57
Compare
Choose a tag to compare
Передача ключей в диагностику