bsl-language-server
bsl-language-server copied to clipboard
[MOD] Инициализация параметров методов и конструкторов вызовом вложенных методов (NestedFunctionInParameters) (уровень параметров, длина вложенного метода).
Диагностика
NestedFunctionInParameters Инициализация параметров методов и конструкторов вызовом вложенных методов
Описание предлагаемых изменений
- Предлагаю добавить в Параметры диагностики уровень инициализации параметров, до которого диагностика считается корректной. Пример:
- НСтр("ru = 'Тест'; en = 'Test'", ОбщегоНазначения.КодОсновногоЯзыка()) - это первый уровень вложенности, считаем, что это не ошибка.
- Также предлагаю анализировать длину вложенных конструкций, которые вкладываются в параметры, т.е. если длина метода или, даже, строковой константы больше определенного значения, то считаем. что конструкция плохочитабельная. Пример:
- СтрШаблон(ШаблонСообщения, РегистрСведений.ПользователиИнформационнойБазы.ПолучитьИмяПользователя(ИдентификаторПользователя)); Здесь выдаем ошибку, т.к. вложенный метод оооочень длинный.
- ОбщегоНазначения.СообщитьПользователю("Оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооочень длиное сообщение); Здесь также выдаем ошибку, т.к. строковая константа мешает понять где начало метода, а где конец.
Дополнительная информация
Излагаю мысли, которые пришли в глову. т.к. вижу, что часто проверка срабатывает там, где и так все понятно. И разбивание конструкций на части только портит целостность.
Плз указывай код диагностики в ишузе. тогда проще искать дубли и смотреть код.
Плз указывай код диагностики в ишузе. тогда проще искать дубли и смотреть код.
ага, идеально указать код диагностики сразу в названии ишуза!
Хорошо, извиняюсь )
А что тут является кодом диагностики?
То что в скобках и в правом верхнем углу, NestedFunctionInparameters