Как называется правило линтера при попытке выровнять длинные элементы списка по левому краю? - PullRequest
0 голосов
/ 18 января 2019

Плохо:

my_result = MyObject.my_method(first_parameter, second_parameter,
                               MyOtherObject.other_method(first, second))
  • Очень быстро достигает предела длины строки, особенно при наличии вложенных вызовов / списков.
  • Необходимо изменить отступ строки 2, есливсе переименовывается.
  • Необходимо добавить кучу отступов для каждого нового параметра.
  • Обычно не совпадает с кратным отступом по умолчанию.
  • Медленнее найтиN-й параметр, потому что мне нужно сканировать как по вертикали, так и по горизонтали.

Хорошо:

my_result = MyObject.my_method(
    first_parameter,
    second_parameter,
    MyOtherObject.other_method(first, second),
)
  • Сканирование выполняется немного проще, чем приведенный выше код, поскольку первый параметрболее отделены от имени метода.
  • Легче найти N-й параметр.
  • Завершающая запятая означает, что разность при добавлении нового параметра составляет всего одну строку.

Другими словами:

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

Есть ли имя для этого шаблона?

(Вариант использования: я хотел бы найти линтер, который проверит это,но сначала мне нужно знать, как это называется.)

1 Ответ

0 голосов
/ 18 января 2019

С точки зрения средств форматирования линта, вы можете взглянуть на Черный (не очень настраиваемый, но подсказка есть в его названии: -).

В Черный ЧИТАЙТЕ свойвыравнивание по левому краю называется «вертикальным пробелом» yapf README это управляется CONTINUATION_ALIGN_STYLE .

Я подозреваю, что у каждого linter / formatter есть свое собственное имя для того типа отступа, который он будет делать при переносе строки и программировании правилиз-за того, что делает линию «плохой» и нуждающейся в перемотке, может быть очень сложно.

...