可以让 Prettier 允许在新行上链接函数吗?

Posted

技术标签:

【中文标题】可以让 Prettier 允许在新行上链接函数吗?【英文标题】:Possible to make Prettier allow chaining functions on new lines? 【发布时间】:2019-05-22 08:23:09 【问题描述】:

我正在编写一些 Firebase 函数。开箱即用,它带有带有 eslint-plugin-promise 的 EsLint(这很棒)。似乎 eslint-plugin-promise 也带来了更漂亮的东西。我不习惯更漂亮,但我在 .prettierrc 文件中配置了一些我喜欢的东西,但我无法弄清楚这个 Promise 链接问题。

我将 Promise 调用链接到新行,但 prettier 迫使我将它们放在一行上。

我的代码:

module.exports = functions.firestore
    .document('thing/thingId')
    .onCreate((snap, context) => 
        // stuff
    );

Prettier 正在重新格式化为:

module.exports = functions.firestore.document('thing/thingId').onCreate((snap, context) => 
    // stuff

在我看来,Prettier 的版本更差。它更难阅读,也更难区分。

知道如何关闭它吗?我刚刚禁用了 Prettier,我不喜欢 Prettier,因为我喜欢 Prettier 所做的大部分工作。

【问题讨论】:

【参考方案1】:

不,我不这么认为,至少不是你想要的那样。 不过,您确实可以选择忽略下一个块。

Prettier 提供了一个逃生舱来忽略代码块或阻止 整个文件都不会被格式化。

You can find more info on this method here

这样

matrix(
1, 0, 0,
0, 1, 0,
0, 0, 1
)

// prettier-ignore
matrix(
1, 0, 0,
0, 1, 0,
0, 0, 1
)

为此的格式(例如)

matrix(1, 0, 0, 0, 1, 0, 0, 0, 1);

// prettier-ignore
matrix(
1, 0, 0,
0, 1, 0,
0, 0, 1
)

【讨论】:

这就是我最终所做的,但它的缺点是 prettier 不再帮助我处理承诺链。 另外它很丑【参考方案2】:

是的,您可以增加printWidth,这样可以让更多的电话适合一条线路。

【讨论】:

这与我想做的相反。为了便于阅读,我将每个调用都放在一行中。 哦,很奇怪,我的默认设置会在多行上格式化代码。也许您已经将 printWidth 设置为更大的值? 我已将 printWidth 从 80 扩展到 120,但这与此问题无关。只要有可用的宽度,prettier 似乎更喜欢将函数调用链接在一行上。【参考方案3】:

Prettier 2 改变了这种行为。

【讨论】:

你能说一下它是如何改变的吗...?这是博客条目:prettier.io/blog/2020/03/21/…

以上是关于可以让 Prettier 允许在新行上链接函数吗?的主要内容,如果未能解决你的问题,请参考以下文章

配置 prettier 以在新行上推送花括号并且不清除空行

在某些列表上链接函数调用

在 pyqtgraph 中的多个图上链接自动缩放

GCC - 在 Ubuntu 上链接 bass.lib

如何在使用 prettier 的类中的方法声明前后添加新行?

在 xcode 4.5.1 上链接库 OpenCV 2.4.2