可以让 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 允许在新行上链接函数吗?的主要内容,如果未能解决你的问题,请参考以下文章