Js-beautify: 使用 switch-case 时出现奇怪的缩进

创建于 2010-08-02  ·  11评论  ·  资料来源: beautify-web/js-beautify

switch (v) { case 1: break; case 2: break; case 3: break; default: break; }

……变成……

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

也许这是故意的,但我希望case缩进 1 级(基于设置)。

最有用的评论

恕我直言,这真的没有意义。 Crockford 省略额外缩进的理由如下:“每个 case 都与 switch 对齐。 这避免了过度缩进。” 奥利?

不过我明白你的意思。 如果它是设计使然,并且您喜欢这种方式,那就让它保持原样吧!

所有11条评论

这是设计使然,根据 Crockford 约定http://javascript.crockford.com/code.html ,所以 - 不是错误。

恕我直言,这真的没有意义。 Crockford 省略额外缩进的理由如下:“每个 case 都与 switch 对齐。 这避免了过度缩进。” 奥利?

不过我明白你的意思。 如果它是设计使然,并且您喜欢这种方式,那就让它保持原样吧!

switch (foo) {
    case something:
        break;
}
 ^^^^^^^ huge ugly empty space

...并且真正的代码突然被推开 2 个缩进,这通常比将 switch/case 视为未缩进的特殊情况要丑陋得多。

显然,这一切都在旁观者的眼中。

我不同意 Crockford 的观点,他认为要确定 switch 语句的实际结尾非常困难。 按照他的推理,为什么要缩进任何控制结构? 它们都产生缩进惩罚。

我认为这会更好,如果恰好在 800x600 分辨率下工作:

switch (v) {
    case 1:
    // code goes here
    break;

    default:
    // code goes here
    break;
}

希望有一个选择; 要么是“正常”的方式(就像我一生都看过 switch 语句),要么是我上面演示的方式; 除了默认值之外的任何内容。 如果您个人不同意或不认为需要补丁,您是否愿意接受补丁?

太棒了,非常感谢。

我们可以为此选择吗? 也许只是将它添加到 jslint 快乐?

讨厌在 switch 语句中添加草率的空格。

@drewhjava随意打开一个错误引用这个请求这个选项

这个问题好像没有解决?

我仍然得到丑陋的开关美化。 这不是固定的吗?

例如

switch (v) {
case 1:
    break;
case 2:
    break;
case 3:
    break;
default:
    break;
}

嗯。 我在 jsbeautifier.org 中添加了一个“jslint-happy”复选框。

完美,谢谢:)

这个缩进问题与 Windows 和 OSX 上的相同代码不同。 例如https://github.com/gpujs/gpu.js ,当我运行yarn make时,它会使用以下脚本美化./src文件夹: https ://github.com/

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