Releases: 1c-syntax/bsl-language-server
Releases · 1c-syntax/bsl-language-server
v0.18.0
Общие изменения
- Поддержка 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
](https://1c-syntax.github.io/bsl-language-server/javadoc/com/github/_1c_syntax/bsl/languageserver/context/DocumentC...
v0.18.0-rc.2
Исправление поиска ссылок на модулях с именем Module.bsl, но не общих…
v0.18.0-rc.1
fixup tests
v0.18.0-alpha.2
Merge pull request #1567 from artbear/str-template-1235
v0.18.0-alpha.1
Исправлен англ регэксп для Формат
v0.17.1
- Исправлено ложное срабатывание диагностики
RedundantAccessToObject
на обращении к ЭтотОбъект по индексу
v0.17.0
Общие изменения
- Поддержка Java 15.
- Добавлены диагностики:
- Экспортные методы в модулях команд и общих команд (
CommandModuleExportMethods
); - Исходящий параметр функции (
FunctionOutParameter
); - Конфликт имен методов с методами глобального контекста (
GlobalContextMethodCollision8312
); - Смешивание латинских и кириллических символов в одном идентификаторе (
LatinAndCyrillicSymbolInWord
); - Магические даты (
MagicDate
); - Отсутствует обработчик подписки на событие (
MissingEventSubscriptionHandler
); - Отсутствует описание параметров метода (
MissingParameterDescription
); - Отсутствует описание возвращаемого значения функции (
MissingReturnedValueDescription
); - Поддержка обычного приложения (
OrdinaryAppSupport
); - Избыточное обращение к объекту (
RedundantAccessToObject
); - Избыточное использование "Ссылка" в запросе (
RefOveruse
);
- Экспортные методы в модулях команд и общих команд (
- Изменены диагностики:
CodeOutOfRegion
- добавлен параметрcheckUnknownModuleType
, отвечающий за работу диагностики на неизвестных типах модулей (по умолчанию выключен);NestedFunctionInParameters
- время на исправление замечания уменьшено до 2 минут;UnusedLocalMethod
- добавлен тегUnused
;UnusedParameters
- добавлен тегUnused
;UsingModalWindows
:- добавлен тег
Unused;
- добавлен параметр
forceModalityMode
, отвечающий за включение игнорирования установленного в конфигурации режима модальности.
- добавлен тег
Typo
: - в параметреuserWordsToIgnore
добавлена возможность указания исключений с пробелами
- Исправлено позиционирование срабатывания диагностик на метаданные (такие как, например, корректность именования модуля). Диагностики больше не вешаются на пустой диапазон, а находят первый "значимый" участок кода.
- Расширена конфигурация BSL Language Server - в настройку
diagnostics
добавлено свойствоordinaryAppSupport
- флаг поддержки обычного приложения. Диагностики будут требовать учитывать особенности обычного приложения. По умолчанию включен. - Добавлены новые
codeAction
, позволяющие отключить срабатывание диагностики в строке, выделенном блоке или файле. - Добавлены операции сворачивания блоков:
- комментарий в запросе
- пакет запроса
- В информацию о рассчитанных диагностиках документа добавлена информация об имеющихся тегах (см. https://microsoft.github.io/language-server-protocol/specifications/specification-current/#diagnostic). Клиенты могут использовать эту информацию для дополнительного выделения мест срабатывания диагностик. Например, VSCode зачеркивает места срабатывания deprecated-диагностик и затеняет места срабатывания unused-диагностик.
- Для квик-фиксов, исправляющих ровно одно замечание, добавлена установка свойства
isPreferred
(см. https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_codeAction). - Исправлена не работавшая фильтрация по запрошенному типу codeAction в свойстве
only
. - В уведомлении
textDocument/publishDiagnostics
добавлена передача версии (version
) документа. - В уведомлении
textDocument/publishDiagnostics
в списке передаваемых диагностик теперь указываются и их теги. - В ответ на запрос
initialize
добавлен параметрserverInfo
- информация о сервере (имя и версия) - В ответе на запрос
initialize
добавлено уточнение по поддерживаемому режиму синхронизации текстовых документов, поддержки методовwillSave
/willSaveWaitUntil
, необходимости отправки методовdidOpen
/didClose
, а так же настройки для методаdidSave
(параметрtextDocumentSync
) - Исправлена и расширена документация.
- Для запуска BSL Language Server в режиме
format
добавлена возможность указывать форматируемый файл, а не только каталог. Ключ указания пути к файлу/каталогу изменен на--src
. Вариант--srcDir
оставлен для совместимости и в будущем будет удален. - Улучшены процедуры поиска запроса в строке.
- Исправлена ошибка форматирования, приводившая к добавлению пробела после унарного минуса.
- Обновление значимых зависимостей:
Изменения для разработчиков
- Работа с
codeLens
вCodeLensProvider
переведена на модель несколькихsupplier
. Каждый новыйcodeLens
должен реализовать интерфейсCodeLensSupplier
. - Работа с
foldingRange
вFoldingProvider
переведена на модель несколькихsupplier
. Каждый новыйfoldingRange
должен реализовать интерфейсFoldingRangeSupplier
. MethodDescription
теперь содержит детальную информацию об описании метода. Доступны дополнительные секции:- назначение метода;
- примеры использования;
- варианты вызова;
- список описаний параметров метода (с поддержкой иерархии параметров для сложны типов вида
Массив
,Структура
и т. д.); - список описаний возвращаемых значений;
- текст гиперссылки (
см. ДругойМодуль.ДругойМетод
).
- В
ParameterDefinition
добавлен Range с определением параметра. - В
DocumentContext
добавлена работа с версиями контента и кэширование части данных. Перестройка данных контекста происходит только в том случае, если версия нового контента отличается от версии сохраненного контента или контент отсутствует. - Добавлен новый тег
DiagnosticTag.UNUSED
, который следует использовать для диагностик, срабатывающих на неиспользуемый код. - В
параметры запроса
textDocument/x-diagnostics
добавлен необязательныйRange
. При его передаче запрос вернет диагностики, попадающие в указанный диапазон. - В ответ на запрос
textDocument/x-diagnostics
теперь возвращается Diagnostics
v0.17.0-RC5
Fix up
v0.17.0-RC4
Merge pull request #1478 from 1c-syntax/fix/issue1452
v0.17.0-RC3
mdclasses bump