在阅读docs for EsLint之后,我使用规则curly设置为警告条件语句中的 * 多行或嵌套 * 行。
"rules": {
"curly":["warn", "multi-or-nest"],
"quotes":"warn"
}
它像预期的那样工作,但是当代码令我满意时,Prettier给了我一个错误,建议条件语句之后的语句应该放在一行上,这不是我想要的(我也不想使用不必要的curlies)。
// Preferred style
if(condition)
doSomething();
if(condition) {
doSomething();
doSomethingElse();
}
// Prettier style
if(condition) doSomeSome();
if(condition) {
doSomething();
doSomethingElse();
}
我已经检查了Prettier的文档,但最接近我所寻找的是bracketSpacing,这根本不是我想要的。据我所知,没有其他关于多行括号的东西。
我怎样才能让Prettier按我的意思行事呢?(第二个问题:除了官方文档,我在哪里可以找到更多关于其他规则的信息?)
注意:一个somewhat similar question前一段时间问没有得到答案,评论建议海报接受的方式漂亮希望它是(即。加强多余的 curl )。在我看来,计算机告诉我喜欢什么,而不是我告诉它我的an some_rc.json 文件是错误的。
我还发现a lengthy discussion证明了自2017年以来就需要这样一个选项,所以我倾向于假设它已经实现了(因为我很难相信设计师只是忽视了愿望)。我说错了吗?
2条答案
按热度按时间idv4meu81#
答案是否定的。正如您链接的问题所指出的:
我们现在已经过了1.0,我们不会再改变像这样的核心打印。对不起,对不起
如果你想在下一行打印代码,你可以添加{}。如果你真的想要这种行为,请随意叉得更漂亮。
但更深层次的问题是,Prettier非常固执己见。我很清楚为什么这个词会让非英语母语的人感到困惑。它看起来确实有点像“别人有很高的评价”,但“固执己见”的意思是“强烈相信自己的观点”,在软件世界中意味着“故意缺乏配置”。
Prettier Option Philosophy页面总结了他们的政策:
由于历史原因,Prettier有几个选择。但我们不会增加更多的.... Prettier不是一个厨房Flume代码格式化程序,它试图以您希望的任何方式打印代码。它是固执己见的。
为什么会这样:
到目前为止,采用Prettier的最大原因是停止所有正在进行的关于风格的争论。
这对许多球队来说都是一个有价值的目标。Go语言有一个著名的
gofmt
,它根本不带任何选项。几乎每个人都在每个文件上使用它,所以无论你在哪个团队,Go代码的格式总是完全相同的。你不能争论制表符或空格或 curl 放置或其他任何东西。Go看起来就像gofmt
说的那样,即使在某些情况下它有点奇怪。回去工作了:D个不是每支球队都会喜欢漂亮的选择,这很好。许多团队(几乎可以肯定是 * 大多数 * 团队)不使用它。但是如果你使用它,你注册的不仅仅是一个工具;你是在接受他们的风格选择
pvcm50d12#
我糊涂了!我来到这篇文章,因为我想知道是否有一种方法可以让Prettier允许单行,{}-free if语句。一个动作显然。
我所有的单行如果的被改为3个班轮与{},我觉得超级烦人。但是阅读上面的,单行的单动作的,应该是更漂亮的方式。他们似乎很确定是走更漂亮的路还是走高速公路...但他们改变主意了吗??
我在VS Code中运行Monkey C(Garmin IQ的东西),如果这很重要的话。