使用 Prettier JS 时保留 then() catch() 格式

May*_*lor 7 javascript format formatting visual-studio-code prettier

我刚开始使用PrettierJS插件VSCode,我正在寻找一种方式来保护我的服务电话(以及随后的承诺),我的代码格式。

我知道您可以//prettier-ignore在代码块之前添加注释以保留代码模式,但由于我在整个应用程序中都这样做,我不想在任何地方添加该注释行。

现在,我的代码块如下所示:

       return this.thingService.addThing(newThing)
            .then(wonFunction)
            .catch(lostFunction);
Run Code Online (Sandbox Code Playgroud)

但是当我执行 Prettier format 命令时,我得到了这个:

    return this.accessData.addRight(newRight).then(wonAddAccessRight).catch(lostAddAccessRight);
Run Code Online (Sandbox Code Playgroud)

我想要一种在不使用//prettier-ignore注释的情况下保护我的代码块不被更改的方法。

Luc*_*cas 6

Prettier 现在会在单独的行中自动断开 3 个或更多函数的链(我正在编写的当前版本是 1.9.1),因此格式与 OP 要求的格式略有不同:

return this.accessData
  .addRight(newRight)
  .then(wonAddAccessRight)
  .catch(lostAddAccessRight);
Run Code Online (Sandbox Code Playgroud)

但是如果你想在只有 2 个函数的情况下强制它中断,有一个 hack 是添加注释,Prettier 会自动中断它:

return promise // force break
  .then(didResolve)
  .catch(didReject);
Run Code Online (Sandbox Code Playgroud)

  • 丑陋,为什么不是官方修复而不是评论黑客我想知道 (3认同)