bsl-language-server
bsl-language-server copied to clipboard
[FP] Проверка на область "ПрограммныйИнтерфейс" в расширяемом модуле.
Диагностика
Общий модуль должен иметь хотя бы один экспортный метод, а также область "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс".
Версия
sonar-communitybsl-plugin-nightly-20220520
Описание ложного срабатывания диагностики
Был расширен общий модуль. Расширяемые процедуры были помещены в соответствующие области. В результате чего в возникло сообщение Общий модуль должен иметь хотя бы один экспортный метод, а также область "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс".
Пример кода
...
Скриншоты
Дополнительная информация
Мне кажется, что в случае расширенных модулей, наличие областей "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс" нужно проверять и в основном модуле и в расширенном. Или не выполнять данную проверку для расширенных модулей совсем, т.к. по идее она должна была успешноп пройти для основного модуля.
https://github.com/1c-syntax/bsl-language-server/issues/1339
Вроде как мы уже понимаем, что модуль заимствованный и можем игнорить какие то диагностики. Надо апнуть тему со скоупом.
@zeegin есть какие-то рекомендации по использованию или неиспользованию ключевого слова Экспорт в переопределяемых в расширении экспортных процедурах?
Я все ещё склоняюсь к необходимости написания, но не могу найти подтверждения.
В данном случае ключевое слово "Экспорт" на ошибку не влияет. Проверке не нравится, что в расширенном модуле вообще нет области "ПргораммныйИнтерфейс". Дело в том, что мы расширяем в приведенном примере процедуру из службеных функций. Програмного интерфейса и не должно быть.
Либо СПИ. А для них нужен хоть один экспортный метод. Так что диагностика орёт вполне обосновано
А, тут расширение не экспортной... Понял...
@zeegin есть какие-то рекомендации по использованию или неиспользованию ключевого слова Экспорт в переопределяемых в расширении экспортных процедурах?
Я все ещё склоняюсь к необходимости написания, но не могу найти подтверждения.
Я не помню чтоб такое было.