Общие изменения
- Поддержка Java 16.
- Добавлена обработка запроса
textDocument/hover
для формирования всплывающей подсказки по методу/переменной под курсором. - Добавлена обработка запроса
textDocument/definition
для перехода к определению символа под курсором. - Добавлена обработка запроса
textDocument/references
для формирования списка ссылок на символ под курсором. - Добавлена обработка запросов
textDocument/prepareCallHierarchy
,callHierarchy/incomingCalls
иcallHierarchy/outgoingCalls
для формирования иерархии вызовов методов. - Ответы на запросы
textDocument/documentSymbol
иworkspace/symbol
теперь возвращают список тегов символа. - Добавлено заполнение свойства
codeDescription
в данных диагностик, в котором хранится ссылка на документацию по диагностике. - Параметры
siteRoot
иuseDevSite
конфигурационного файла перенесены из объектаdocumentLink
в корень конфигурации. - В параметр конфигурационного файла
documentLink
добавлен параметрshowDiagnosticDescription
, отвечающий за отображение старого механизма показа документации по диагностике в видеdocumentLink
. По умолчанию - выключено. - В параметры регистрации "возможностей" (capabilities) сервера добавлена информация о
DocumentSelector
(где применимо). В качестве значения используется фильтр по языку с идентификаторомbsl
. - В параметры регистрации
CodeActionProvider
добавлен фильтр по поддерживаемым типамCodeAction
(CodeActionKind
). В качестве значения используется список изQuickFix
иRefactor
. - В параметры регистрации
DocumentSymbolProvider
добавленlabel
. В качестве значения используется строкаBSL Language Server
. - Добавлены диагностики:
- Общий модуль должен иметь программный интерфейс (
CommonModuleMissingAPI
); - Безумные многострочные литералы (
CrazyMultilineString
); - Использование конструкции "ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ" в запросах (
FullOuterJoinQuery
); - Некорректное использование 'ПОДОБНО' (
IncorrectUseLikeInQuery
); - Неверное использование "СтрШаблон" (
IncorrectUseOfStrTemplate
); - Использование логического "ИЛИ" в секции "ГДЕ" запроса (
LogicalOrInTheWhereSectionOfQuery
); - Многострочный литерал в запросе (
MultilineStringInQuery
); - Использование 'ВЫБРАТЬ ПЕРВЫЕ' без 'УПОРЯДОЧИТЬ ПО' (
SelectTopWithoutOrderBy
); - Неверное использование метода "ЗаписьЖурналаРегистрации" (
UsageWriteLogEvent
); - Использование 'ПОДОБНО' в запросе (
UsingLikeInQuery
); - Обращение к виртуальной таблице без параметров (
VirtualTableCallWithoutParameters
); - Некорректное использование функции ПродолжитьВызов() (
WrongUseFunctionProceedWithCall
); - Неправильный перенос выражения (
IncorrectLineBreak
);
- Общий модуль должен иметь программный интерфейс (
- Изменены диагностики:
Typo
- значительно ускорено время работы диагностики;Typo
- из обработки убраны строки, напоминающие значения для форматной строки;DeprecatedMethodCall
- увеличена надежность срабатывания диагностики;MissingTemporaryFileDeletion
- в параметрsearchDeleteFileMethod
добавлены значенияНачатьУдалениеФайлов
иBeginDeletingFiles
;RedundantAccessToObject
- исправлено ложное срабатывание при обращении из модуля менеджера к переменной с именем, совпадающим с именем метаданного;RefOveruse
- добавлена обработка обращения к ссылке от собственной таблицы, исправлено ложное срабатывание на обращениях с использованием таблиц из внешнего запроса;StyleElementConstructors
- исправлено ложное не-срабатывание, если конструктор цвета вложен в другой конструктор;UnusedLocalMethod
- добавлен параметрattachableMethodPrefixes
, позволяющий указать префиксы имен методов, исключаемых из проверки;UsingHardcodePath
- оптимизация работы;UsingHardcodeSecretInformation
- оптимизация работы;
- Добавлена возможность запуска анализа проекта в режиме замера производительности. Подробнее в документации.
- Добавлена возможность передавать настройки Spring-приложения как аргументы командной строки (например,
--spring.config.location
). - Действие отключения диагностик в файле больше не предлагает выключить диагностики, пришедшие не от BSL Language Server.
- Добавлена обработка ситуации, когда в запрос инициализации сервера в качестве значения
workspaceFolders
приходит значениеnull
. - Исправлен разбор многострочных строк с разрывом инструкцией препроцессору (
#Вставка
и т.п.). - Обновление значимых зависимостей:
- Обновлены сайт и документация.
- Перевод проекта переведен на платформу CrowdIn.
Изменения для разработчиков
groupId
артефактов изменен наio.github.1c-syntax
.- Добавлена подсистема событий. Подробнее в руководстве разработчика.
- Развитие символьного API - разделены понятия символа и символа, объявленного в исходном коде. Введены интерфейсы
SourceDefinedSymbol
,Describable
иExportable
. - Параметры описания метода в
MethodSymbol
теперь содержат описание и значения по умолчанию. - В символьное API добавлено понятие
ModuleSymbol
для хранения данных о документе в виде символа. - Существенно развит механизм хранения описаний методов и переменных. Добавлен интерфейс
SourceDefinedSymbolDescription
. - Добавлен механизм для хранения ссылок на символы и API по работе с ним. См. пакет
references
- Упрощено использование
DocumentContext
в роли prototype bean. - Работа с
documentLink
вDocumentLinkProvider
переведена на модель несколькихsupplier
. Каждый новыйdocumentLink
должен реализовать интерфейсDocumentLinkSupplier
.