【问题标题】:Eclipse - Formatting Switch StatementEclipse - 格式化 Switch 语句
【发布时间】:2015-05-21 01:01:45
【问题描述】:

目前我有:

    switch (numberString) {
       case "FOUR": number = 4; break;
       case "FIVE": number = 5; break;
    }

这是一个简单的 switch 语句,但如果我使用 Eclipse 的格式键 Ctrl+Shift+F,突然之间,通过拆分大小写、value = 和休息;都在不同的线路上。

有没有办法改变格式化程序以忽略 switch 语句?

【问题讨论】:

    标签: eclipse formatting format switch-statement


    【解决方案1】:

    我正在使用 Eclipse Oxygen 3a,我找到了在 switch case 中缩进 case 语句的设置:

    Preferences > Java > Code Style > Formatter > Edit... > Indent

    检查 'switch' 正文中的语句

    【讨论】:

      【解决方案2】:

      我也为此苦苦挣扎。唯一的选择似乎是使用格式化程序开/关注释标签。

      在格式化程序设置中选择“关闭/打开标签”选项卡并选中“启用关闭/打开标签”。

      然后在你的代码中,在 switch 语句之前添加//@formatter:off,在它之后添加//@formatter:on

      很确定这是目前唯一的解决方法。

      【讨论】:

        【解决方案3】:

        考虑(4 年后)Eclipse 4.12(2019-06),结合Java 12(2019 年 3 月)。

        现在有:

        随着 Java 12 将一些新功能引入到 switch 构造中,格式化程序配置文件对其进行了一些新设置。
        这些设置允许您控制箭头运算符周围的空格(分别用于大小写和默认)以及多值大小写中的逗号周围。

        可以在配置文件编辑器 (Preferences > Java > Code Style > Formatter > Edit...) 的 White space > Control statements > 'switch' 小节下找到这些设置。

        由于 Java 12 引入了将多个 switch case 标签分组为单个 case 表达式的功能,因此提供了一个快速帮助,允许将这些分组标签拆分为单独的 case 语句。

        如您所见,这些 switch 表达式仍然非常紧凑。

        【讨论】:

        • Eclipse 也有Statements within 'switch' body 选项,您也可以检查long standing switch indentation battle。在过去的几年里,我一直在寻找它,所以...谢谢!
        • @Matthieu Je vous en prie。非常感谢那些实现该功能的人。
        • 我删除了我的评论,我刚刚找到了设置。
        • @cbaldan 太好了:您可以编辑此答案以包含上述设置吗?
        • @VonC U 刚刚做了,我添加了一个新答案。
        【解决方案4】:

        Eclipse 的自动格式为每个分号拆分新行。它还将分隔长单行以适应视图窗格,并进行横向滚动 - 添加带有缩进的新行。您的示例语句似乎太短而无法触发,但如果这只是一个示例,那么这就是我的猜测。我还没有找到一种方法来本地化自动格式的效果。 (对于 mac Cmnd+Shift+F)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-15
          • 1970-01-01
          • 1970-01-01
          • 2021-04-11
          相关资源
          最近更新 更多