Eclipse Mars 格式错误

formatting error with Eclipse Mars

我正在使用 Eclipse Mars 编写我的 Java 代码。当我使用 Ctrl-/ 对某些行进行注释,然后应用 Ctrl-Shift-F 对其进行格式化,然后取消对这些行的注释时,结果是 两行 代码,而不仅仅是原来的:

System.out.printf("%s => Cowz Testing: testing Add a Representative\n", new Date());

相反,我希望 new Date()); 位于第一行的末尾。

编辑:重现我的错误的正确步骤顺序已在 Jonah Graham 的回答中得到完美描述。

试试这个 Window > 首选项 > Java > 代码风格 > 格式化程序 单击编辑 Select 换行选项卡 取消选中强制拆分,即使行短于最大行宽 (...)

(我看不出你遇到的错误,但我看到了类似的东西。)

从这样的代码开始:

    public static void main(String[] args) {
        System.out.printf("%s => Cowz Testing: testing Add a Representative\n", new Date());
    }

然后,注释掉 printf 行,现在它看起来像这样:

    public static void main(String[] args) {
//       System.out.printf("%s => Cowz Testing: testing Add a Representative\n", new Date());
    }

应用格式,你得到的结果是这样的:

    public static void main(String[] args) {
        // System.out.printf("%s => Cowz Testing: testing Add a
        // Representative\n", new Date());
    }

取消注释代码,你有一个错误,因为字符串没有终止:

    public static void main(String[] args) {
        System.out.printf("%s => Cowz Testing: testing Add a
        Representative\n", new Date());
    }

如果以上描述了您的问题,那么我建议在您的代码风格中禁用 Enable line comment formatting

怎么做

  1. Window 菜单,select Preferences
  2. Select Java / Code Style / Formatter
  3. Edit...
  4. Comments 选项卡中,取消选中 Enable line comment formatting(参见屏幕截图)

  1. 如果您正在编辑内置配置文件,请提供一个新名称
  2. 按两次确定

现在当您注释掉代码时,在您格式化代码时它不会编辑注释的内容。

您仍然可以使用 /* */ 评论来重排评论,即 "real" 评论,而不是暂时注释掉代码。

最后,我建议您将代码风格应用到您的项目以及您的工作区,以确保您的整个团队共享一种代码风格。

我注意到 Eclipse Mars 在格式设置方面存在其他错误,例如在使用制表符进行缩进时。在此 bug 中解释了一种解决方法,包括将缩进策略设置为仅空格,将相同的值设置为制表符大小和缩进大小,然后切换回仅制表符。