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