使用 eslint 强制缩进属性?

Enforcing indentation of properties with eslint?

ESLint 有 dot-location 规则,可以决定你是否喜欢

object.
property

object
.property

点破时(我更喜欢后者)。

但是,我找不到规则来确保点与对象具有相同的缩进。特别是,我想为承诺链强制执行这种风格:

makePromiseSomehow()
.then(foo => bar(foo))
.catch(err => argh(err))

而不是

makePromiseSomehow().then(foo => bar(foo))
    .catch(err => argh(err))

因此,.then.catch 在各自的行中,缩进与链启动器相同。

任何实现此目标的指示?

eslint 尚不可用。但是我们有很多未解决的问题来处理这种情况。欢迎发送关于该项目的 PR。

缩进规则的 MemberExpression 选项规定了多行 属性 链的缩进,并将承诺链视为这样,因此将该选项设置为 0 允许并要求 .then 和 . 的缩进为 0。捕获相对于链中第一个元素的元素。