Js-beautify: { "brace_style": "preserve-inline" } 使用多行函数参数无法按预期工作

创建于 2018-10-24  ·  4评论  ·  资料来源: beautify-web/js-beautify

描述

嗨,首先非常感谢你们提供这么棒的图书馆!

当我使用包含对象的多行函数参数时遇到问题:

// This is working OK for me and it is very readable
myFunc('myString',
    myFunc2(),
    andSoOn());

预期产出

但是当我尝试:

// This is working OK for me and it is very readable
myFunc('myString',
    { myProp: true }, // I have just insterted this object
    andSoOn());

实际产量

全部重新格式化为一行...

myFunc('myString', { myProp: true }, andSoOn());

我很确定它与 { "brace_style": "preserve-inline" } 规则有关。

环境

操作系统:Linux Mint
代码编辑器:VSCode

设置

例子:

{
    "editor": {
        "formatOnSave": true
    },
    "brace_style": "collapse,preserve-inline"
}

再次感谢你 ;)

javascript bug

所有4条评论

正是collapse设置将左花括号拉回到上一行。

但可以说preserve-inline应该覆盖它。 困难的部分是美化器无法判断块是否会内联直到它到达它的末尾。 这在目前的设计中很困难。

好的,我已经尝试过配置:

{
    "brace_style": "none,preserve-inline"
}

结果是一样的......而且我认为这只会发生在函数参数上下文中,所有其他情况都可以,希望我有时间检查一下。

嗨,对于那些正在寻找解决方案的人,这里有一个解决方法:

myFunc( //
    { myProp: true }, //
    { myProp: true }, //
    { myProp: true });

当我放空评论时,它不会重新格式化为一行。 至少在 VScode 上。 它不会变得不那么容易理解,并且可以通过搜索和替换( //\n )轻松地在整个项目范围内移除

希望它可以帮助...

@sebRomeo
哎哟。 我很高兴你找到了解决方法,但这是一个痛苦的解决方法。
只是要清楚"none,preserve-inline"应该可以工作,所以我将其更改为错误。

此页面是否有帮助?
0 / 5 - 0 等级