尝试使长列表项左对齐时,linter规则是什么?

时间:2019-01-18 01:27:19

标签: python lint

坏:

my_result = MyObject.my_method(first_parameter, second_parameter,
                               MyOtherObject.other_method(first, second))
  • 非常快达到线路长度限制,尤其是当嵌套的呼叫/列表存在时。
  • 如果重命名,则必须更改第二行的缩进。
  • 必须为每个新参数添加一堆缩进。
  • 通常不与默认缩进的倍数对齐。
  • 查找第N个参数的速度较慢,因为我必须垂直和水平扫描。

好:

my_result = MyObject.my_method(
    first_parameter,
    second_parameter,
    MyOtherObject.other_method(first, second),
)
  • 与上面的代码相比,扫描起来稍微容易一些,因为第一个参数与方法名称之间的距离更大。
  • 更容易找到第N个参数。
  • 尾随逗号表示添加新参数时的差异只是一行。

换句话说:

  • 仅当 all 个参数与方法调用位于同一行时,才将多个参数放在同一行。
  • 尝试使差异的差异最小化。

此模式有名称吗?

(用例是,我想找到一个短毛绒将对此进行检查,但首先我需要知道它的名字。)

1 个答案:

答案 0 :(得分:1)

关于皮棉格式化程序,您可以看一下Black(不是非常可定制的,但提示是在其名称中的:-)。

Black README your left-alignment is referred to as "vertical whitespace"中。在yapf README it is controlled by CONTINUATION_ALIGN_STYLE中。

我怀疑每个linter / formatter对于这种缩进类型都有自己的名称,当包装一行并围绕使一行“变坏”并需要重排的规则编程规则时,缩进将非常复杂。