bsl-language-server icon indicating copy to clipboard operation
bsl-language-server copied to clipboard

[MOD] Инициализация параметров методов и конструкторов вызовом вложенных методов (NestedFunctionInParameters) (уровень параметров, длина вложенного метода).

Open agibalovsa opened this issue 2 years ago • 5 comments

Диагностика

NestedFunctionInParameters Инициализация параметров методов и конструкторов вызовом вложенных методов

Описание предлагаемых изменений

  1. Предлагаю добавить в Параметры диагностики уровень инициализации параметров, до которого диагностика считается корректной. Пример:
  • НСтр("ru = 'Тест'; en = 'Test'", ОбщегоНазначения.КодОсновногоЯзыка()) - это первый уровень вложенности, считаем, что это не ошибка.
  1. Также предлагаю анализировать длину вложенных конструкций, которые вкладываются в параметры, т.е. если длина метода или, даже, строковой константы больше определенного значения, то считаем. что конструкция плохочитабельная. Пример:
  • СтрШаблон(ШаблонСообщения, РегистрСведений.ПользователиИнформационнойБазы.ПолучитьИмяПользователя(ИдентификаторПользователя)); Здесь выдаем ошибку, т.к. вложенный метод оооочень длинный.
  • ОбщегоНазначения.СообщитьПользователю("Оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооочень длиное сообщение); Здесь также выдаем ошибку, т.к. строковая константа мешает понять где начало метода, а где конец.

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

Излагаю мысли, которые пришли в глову. т.к. вижу, что часто проверка срабатывает там, где и так все понятно. И разбивание конструкций на части только портит целостность. image

agibalovsa avatar May 25 '22 17:05 agibalovsa

Плз указывай код диагностики в ишузе. тогда проще искать дубли и смотреть код.

asosnoviy avatar May 26 '22 11:05 asosnoviy

Плз указывай код диагностики в ишузе. тогда проще искать дубли и смотреть код.

ага, идеально указать код диагностики сразу в названии ишуза!

artbear avatar May 26 '22 13:05 artbear

Хорошо, извиняюсь )

agibalovsa avatar May 26 '22 13:05 agibalovsa

image

А что тут является кодом диагностики?

agibalovsa avatar May 26 '22 13:05 agibalovsa

То что в скобках и в правом верхнем углу, NestedFunctionInparameters

asosnoviy avatar May 26 '22 14:05 asosnoviy