Releases: 1c-syntax/bsl-language-server
Releases · 1c-syntax/bsl-language-server
v0.20.0-ra.2
What's Changed
- Скорректировал диагностику для исключения обычных форм by @theshadowco in #1865
- 2 Правила "Неверно задан обработчик метода http-сервиса" и "Неверно задан обработчик операции web-сервиса" by @artbear in #1792
- [Запросы] Неточное использование полей из таблиц левых\правых соединений, без проверки на NULL или приведения через ЕстьNULL by @artbear in #1650
- Диагностика "Отсутствует удаление данных из временного хранилища после использования" by @artbear in #1578
- Снижение фона от строк с запросами by @theshadowco in #1868
Full Changelog: v0.20.0-ra.1...v0.20.0-ra.2
v0.20.0-ra.1
What's Changed
- Гиперссылка в местоположении символа, ведущая на файл и номер строки by @nixel2007 in #1833
- Bump org.springframework.boot from 2.5.4 to 2.5.5 by @dependabot in #1835
- Bump me.qoomon.git-versioning from 5.1.0 to 5.1.1 by @dependabot in #1840
- Модификация диагностики LineLengthDiagnostic by @theshadowco in #1842
- Поддержка запросов codeLens/resolve и workspace/codelens/refresh, рефакторинг by @nixel2007 in #1768
- NestedFunctionInParametersDiagnostic mod by @asosnoviy in #1845
- MOD SpaceAtStartCommentDiagnostic by @theshadowco in #1846
- Переезд на новую версию парсера запросов by @theshadowco in #1841
- Новая диагностика - кривой запрос by @theshadowco in #1847
- Диагностика: Запрещенное имя методанных by @theshadowco in #1850
- Feature/modd metadata object name length by @theshadowco in #1852
- same metadata object and child names by @theshadowco in #1851
- Правило - "Путь к данным" не заполнен у полей формы by @artbear in #1831
- Новая диагностика - Серверный экспортный метод формы by @theshadowco in #1849
- Новая диагностика: Повторное использование строковых литералов by @theshadowco in #1854
- Рефакторинг. getFirstSignificantTokenRange by @theshadowco in #1855
- Диагностика поиска запрещенных слов by @Golovanoff in #1836
- Bump cirrus-actions/rebase from 1.4 to 1.5 by @dependabot in #1856
- fix deleteConfig watcher #1860 by @asosnoviy in #1861
- Правило "Неверное обращение к метаданным в запросе" by @artbear in #1823
- Обновил версию парсера by @theshadowco in #1858
- Возможность управлять порогом срабатывания линзы by @nixel2007 in #1857
- Рефакторинг хранения ссылок в индексе by @nixel2007 in #1746
- Поиск глобального конфигурационного файла by @asosnoviy in #1848
New Contributors
- @Golovanoff made their first contribution in #1836
Full Changelog: v0.19.1...v0.20.0-ra.1
v0.19.1
v0.19.0
Общие изменения
- Добавлена обработка запросов
textDocument/documentColorиtextDocument/colorPresentationдля отображения представления цвета. Обрабатываются обращения к системному перечислениюWebЦветаи создание цвета с помощью конструктораНовый Цвет; - Добавлена обработка запроса
textDocument/selectionRangeдля формирования дерева областей выделения от текущей позиции (командаExpand SelectionвVSCode); - Линзы когнитивной сложности и цикломатической сложности теперь показывают текст на языке сервера (параметр
languageконфигурационного файла); - Добавлен репортер в формат SARIF;
- Удален репортер в
Generic coverage, метрикаcovlocDataобъявлена устаревшей. При необходимости получения данных по строкам к покрытию используйте другие инструменты, напримерCoverage41C; - Добавлены диагностики:
- Все возможные пути выполнения функции должны содержать оператор Возврат (
AllFunctionPathMustHaveReturn); - Назначение псевдонимов выбранным полям в запросе (
AssignAliasFieldsInQuery); - Флажок «Устанавливать права для новых объектов» должен быть установлен только у роли ПолныеПрава (
SetPermissionsForNewObjects); - После вызова асинхронного метода есть строки кода (
CodeAfterAsyncCall);
- Все возможные пути выполнения функции должны содержать оператор Возврат (
- Изменены диагностики:
Typo- английский словарь больше не ругается на кириллицу и наоборот;IdenticalExpressions- диагностика переписана на новый движок "дерева выражений", повышена точность срабатывания диагностики с учетом вариативности и приоритетов операций, добавлен параметрpopularDivisorsдля отсекания срабатываний на популярных делителях60и1024;MissingTemporaryFileDeletion- исправлено падение при вызове функции от результата вызова функции, исправлены избыточные (не)срабатывания диагностики при частичном совпадении искомого имени метода с созданием/удалением временного файла, добавлена поддержка методов удаления файла, находящихся в общих модулях;AssignAliasFieldsInQuery- исправлены падения при разрывах запроса в области описания выбираемых полей;IncorrectUseOfStrTemplate- исправлены ложные срабатывания при сложном экранировании шаблонных переменных через двойные знаки процента или скобки, исправлены ложные несрабатывания при передаче параметров в виде отсутствующего значения;IncorrectLineBreak- исправлены ложные срабатывания на комментариях и внутри строк;SelectTopWithoutOrderBy- исправлено срабатывание диагностики на конструкциюВЫБРАТЬ ПЕРВОЕ 0, исправлено падение диагностики при разрыве запроса;CreateQueryInCycle- исправлено падение диагностики при наличии ошибок в синтаксисе описания цикла;UsingHardcodeNetworkAddress- добавлен параметрsearchPopularVersionExclusionдля исключения срабатывания диагностики на популярные конструкции, не являющиеся адресами. По умолчанию игнорируются строки, начинающиеся на1,2,3,8.3и11;LatinAndCyrillicSymbolInWord- добавлен параметрallowTrailingPartsInAnotherLanguage, разрешающий началу или концу идентификатора быть написанным на другом языке;UsageWriteLogEvent- исправлено ложное срабатывание диагностики вне блокаИсключение;CachedPublic- исправлено ложное срабатывание диагностики на пустой области;IncorrectUseLikeInQuery- важность понижена доmajor;UsingLikeInQuery- важность понижена доmajor;VirtualTableCallWithoutParameters- важность понижена доmajor;MagicDate- исправлена ошибка, которая не позволяла убрать из разрешенных дат в параметреauthorizedDatesдаты, установленные по умолчанию;MagicNumber- исправлена ошибка, которая не позволяла убрать из разрешенных чисел в параметреauthorizedNumbersчисла, установленные по умолчанию;
- Исправлена ошибка позиционирования некоторых диагностик, опиравшихся на построчный перебор файла;
- Исправлена ошибка разбора исходного кода, если один из параметров метода имеет имя
Ждать; - Исправлена ошибка чтения параметров диагностик, имеющих тип "число с плавающей точкой" (
float), приводящая к падению приложения; - Исправлено падение сервера, если путь к файлу содержит квадратные скобки (
[и]); - Обновление значимых зависимостей:
Изменения для разработчиков
- BSL Language Server теперь публикуется в Maven Central. Снапшоты develop-ветки доступны в Sonatype Snapshot Repository. Версионируемый javadoc доступен на javadoc.io;
- javadoc теперь содержит кросс-ссылки на объекты mdclasses и antrl4;
- Добавлен механизм
Expression Treeдля построения дерева выражений с учетом приоритетов операций. См. пакетcom.github._1c_syntax.bsl.languageserver.utils.expressiontree; - Добавлен механизм
Control Flow Graphдля построения графа потока управления в блоке кода (CodeBlockContext). См. пакетcom.github._1c_syntax.bsl.languageserver.cfg; - Добавлен метод
DocumentContext::getScriptVariantLocale, возвращающий вариант встроенного языка текущего файла. Интерфейс классаResourcesрасширен методами, принимающимиLocale - Изменения базовых настроек проекта, хранящихся в каталоге
.ideaбольше не будут приводить к конфликтам и шуму в измененных файлах репозитория.
v0.19.0-rc.3
Merge pull request #1812 from 1c-syntax/feature/publishToSonatype
v0.19.0-rc.2
Merge pull request #1799 from 1c-syntax/fix/contentList
v0.19.0-rc.1
Merge pull request #1725 from EvilBeaver/feature/cfg ControlFlowGraph и диагностика с примером
v0.18.1
Общие изменения
- Добавлено отслеживание за смертью процесса, запустившего BSL Language Server в режиме LSP. В случае завершения родительского процесса BSL Language Server будет завершать свою работу через 30 секунд.
- В парсер описания метода добавлена обработка конструкций
Array contains Something. - В парсер описания метода добавлена обработка конструкций для составных типов-коллекций с примитивными типами элементов вида
Массив из Строка. - Изменены диагностики:
IncorrectLineBreak- добавлен параметры диагностики, позволяющие конфигурировать допустимые символы в начале и конце строки, исправлено позиционирование срабатываний диагностики.
- Обновление значимых зависимостей:
- BSL Parser обновлен до версии 0.19.3;
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, но не общих…