-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Новое правило - Обращение к отсутствующему методу общего модуля MissingCommonModuleMethod - ГОТОВО #2827
Новое правило - Обращение к отсутствующему методу общего модуля MissingCommonModuleMethod - ГОТОВО #2827
Conversation
Блин, а зачем так сложно-то? Ты по сути повторил работу референс индекс филлера. Хрен с ним с апи, давай просто заинжектим символьный репозиторий и ты попробуешь разрезолвить все mdoRef и их методы. |
а я не понял почему только общие модули? |
модули менеджера еще можно. для остального нужен тайп резолвер |
Еще раз проверю работу реф.индекса для общих модулей и модулей менеджеров.
|
вместо работы с аст-деревом
Запушил исправления правила, но найден баг #2832 Перевел в WIP, пока баг не будет решен |
|
Даже после вливания исправительного ПР #2833 это правило не проходит тесты! проблему я зафиксировал в https://t.me/bsl_language_server/98986 Предложение - проверку приватности символа лучше не закрывать внутри реф.индекса, а отдать наружу для клиента пусть клиенты решают моему правилу без этого фичу с ошибочным приватным вызовом не решить ( |
исключил срабатывание на внутренних вызовах внутри общих модулей
Kudos, SonarCloud Quality Gate passed! |
@theshadowco @nixel2007 правило готово. примите его, если нет возражений. |
...om/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCommonModuleMethodDiagnostic.java
Outdated
Show resolved
Hide resolved
...om/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCommonModuleMethodDiagnostic.java
Outdated
Show resolved
Hide resolved
locationRepository.getSymbolOccurrencesByLocationUri(documentContext.getUri()) | ||
.filter(symbolOccurrence -> symbolOccurrence.getOccurrenceType() == OccurrenceType.REFERENCE) | ||
.filter(symbolOccurrence -> symbolOccurrence.getSymbol().getSymbolKind() == SymbolKind.Method) | ||
// TODO какие еще типы модулей поддержать? модули менеджеров - путаница с платформенными методами, без контекста не решить |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@artbear, не плохо было бы повесить issue на TODO и сразу его писать сюда.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
пока решаю так
- сделал отдельный ишуз [MOD] MissingCommonModuleMethod - поддержка модулей менеджеров, но без контекста платформенные метода метаданных будут ошибками #2926
- когда какие-то реализации с контекстом будут сделаны, можно доработать правило
- буквально одно условие добавить и уточнить показ сообщений в замечание
а текущее правило будет только проверять только общие модули
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@artbear а номер задачи в TODO можешь еще написать?)
...om/github/_1c_syntax/bsl/languageserver/diagnostics/MissingCommonModuleMethodDiagnostic.java
Outdated
Show resolved
Hide resolved
.../_1c_syntax/bsl/languageserver/diagnostics/MissingCommonModuleMethodDiagnostic_ru.properties
Outdated
Show resolved
Hide resolved
...ithub/_1c_syntax/bsl/languageserver/diagnostics/MissingCommonModuleMethodDiagnosticTest.java
Outdated
Show resolved
Hide resolved
@artbear, я немного отписался в ревью, посмотри, пожалуйста. |
исправил замечания из ПР
Kudos, SonarCloud Quality Gate passed! |
После исправлений проверил правило через Sarif на 3х конфигурациях - БСП, самописка на БСП, большая КА 2.5 с доработками работает верно. |
@nixel2007, @asosnoviy у вас остались вопросы к ПР? |
@nixel2007 вливаем? |
Описание
Связанные задачи
Closes #995
Чеклист
Общие
gradlew precommit
)Для диагностик
Дополнительно