1c-syntax / bsl-language-server

Реализация Language Server Protocol для языка 1C (BSL)
https://1c-syntax.github.io/bsl-language-server
Other
299 stars 105 forks source link

[FP] Проверка на область "ПрограммныйИнтерфейс" в расширяемом модуле. #2769

Open agibalovsa opened 2 years ago

agibalovsa commented 2 years ago

Диагностика

Общий модуль должен иметь хотя бы один экспортный метод, а также область "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс".

Версия

sonar-communitybsl-plugin-nightly-20220520

Описание ложного срабатывания диагностики

Был расширен общий модуль. Расширяемые процедуры были помещены в соответствующие области. В результате чего в возникло сообщение Общий модуль должен иметь хотя бы один экспортный метод, а также область "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс".

Пример кода

...

Скриншоты

image

image

image

Дополнительная информация

Мне кажется, что в случае расширенных модулей, наличие областей "ПрограммныйИнтерфейс" или "СлужебныйПрограммныйИнтерфейс" нужно проверять и в основном модуле и в расширенном. Или не выполнять данную проверку для расширенных модулей совсем, т.к. по идее она должна была успешноп пройти для основного модуля.

asosnoviy commented 2 years ago

https://github.com/1c-syntax/bsl-language-server/issues/1339

asosnoviy commented 2 years ago

Вроде как мы уже понимаем, что модуль заимствованный и можем игнорить какие то диагностики. Надо апнуть тему со скоупом.

nixel2007 commented 2 years ago

@zeegin есть какие-то рекомендации по использованию или неиспользованию ключевого слова Экспорт в переопределяемых в расширении экспортных процедурах?

Я все ещё склоняюсь к необходимости написания, но не могу найти подтверждения.

agibalovsa commented 2 years ago

В данном случае ключевое слово "Экспорт" на ошибку не влияет. Проверке не нравится, что в расширенном модуле вообще нет области "ПргораммныйИнтерфейс". Дело в том, что мы расширяем в приведенном примере процедуру из службеных функций. Програмного интерфейса и не должно быть.

nixel2007 commented 2 years ago

Либо СПИ. А для них нужен хоть один экспортный метод. Так что диагностика орёт вполне обосновано

nixel2007 commented 2 years ago

А, тут расширение не экспортной... Понял...

zeegin commented 2 years ago

@zeegin есть какие-то рекомендации по использованию или неиспользованию ключевого слова Экспорт в переопределяемых в расширении экспортных процедурах?

Я все ещё склоняюсь к необходимости написания, но не могу найти подтверждения.

Я не помню чтоб такое было.