bsl-language-server
bsl-language-server copied to clipboard
Новое правило - Обращение к отсутствующему методу общего модуля MissingCommonModuleMethod - ГОТОВО
Описание
- реализация правила
- обработка исключений
- проверка на БСП 3.1, БСП 3.0 с доработками и КА 2.5 с доработками
Связанные задачи
Closes #995
Чеклист
Общие
- [x] Ветка PR обновлена из develop
- [x] Отладочные, закомментированные и прочие, не имеющие смысла участки кода удалены
- [x] Изменения покрыты тестами
- [x] Обязательные действия перед коммитом выполнены (запускал команду
gradlew precommit)
Для диагностик
- [x] Описание диагностики заполнено для обоих языков (присутствуют файлы для обоих языков, для русского заполнено все подробно, перевод на английский можно опустить)
Дополнительно
Блин, а зачем так сложно-то? Ты по сути повторил работу референс индекс филлера. Хрен с ним с апи, давай просто заинжектим символьный репозиторий и ты попробуешь разрезолвить все mdoRef и их методы.
а я не понял почему только общие модули?
модули менеджера еще можно. для остального нужен тайп резолвер
Еще раз проверю работу реф.индекса для общих модулей и модулей менеджеров.
- что-то у меня не получилось с ними, использовал почти обычный вариант.
- он не сложный, просто разбор имени и все.
Запушил исправления правила, но найден баг https://github.com/1c-syntax/bsl-language-server/issues/2832
Перевел в WIP, пока баг не будет решен
~После вливания исправительного ПР https://github.com/1c-syntax/bsl-language-server/pull/2833 это правило проходит тесты!~
Даже после вливания исправительного ПР https://github.com/1c-syntax/bsl-language-server/pull/2833 это правило не проходит тесты! т.к. нельзя получить ссылки на приватные методы общих модулей и менеджеров объектов через ReferenceIndex.getReferencesXXX
проблему я зафиксировал в https://t.me/bsl_language_server/98986
Предложение - проверку приватности символа лучше не закрывать внутри реф.индекса, а отдать наружу для клиента например, в класс Reference добавить спец.поле isAccessible
пусть клиенты решают
моему правилу без этого фичу с ошибочным приватным вызовом не решить ( или придется влезать во внутренности реф.индекса и через спринг добывать locationRepository или symbolOccurrenceRepository ведь в них-то инфа хранится ))
@theshadowco @nixel2007 правило готово. примите его, если нет возражений.
@artbear, я немного отписался в ревью, посмотри, пожалуйста.
После исправлений проверил правило через Sarif на 3х конфигурациях - БСП, самописка на БСП, большая КА 2.5 с доработками
работает верно.
@nixel2007, @asosnoviy у вас остались вопросы к ПР?
@nixel2007 вливаем?







