如何让eclipse自动格式忽略一段代码?

时间:2008-12-09 12:41:23

标签: eclipse

我记得有一种方法可以在eclipse(特殊注释或注释?)中标记一段代码,这使得autoformatter忽略了该部分。或者我可能会匆匆忙忙......

主要用于当我有包裹在几行上的字符串并且我不希望autoformatter重新排列它时。

7 个答案:

答案 0 :(得分:59)

自从eclipse 3.5(或3.6)以来,这是可能的: - 转到项目属性 - Java代码样式 - 格式化程序 - 编辑... - 选择标记为“关/开标签”的选项卡, - 在源代码的注释中包含标记,例如

/* @formatter:on */

答案 1 :(得分:9)

您可以在这些特殊注释之间包装您不希望自动格式化的代码:

normal code

/* @formatter:off */
strangely laid out code
/* @formatter:on */

normal code

这是一个基本的用法示例,它使json字符串(稍微)更具可读性:

public class SomeTest {

    @Test
    public void can_deserialize_json() {
        /* @formatter:off */
        String json = "" +
        "{" +
        "   \"id\" : 123," +
        "   \"address1\" : blah," +
        "   \"shippingInfo\" : {" +
        "      \"trackingUrl\" : null," +
        "      \"price\" : 350" +
        "   }," +
        "   \"errorMessage\" : null" +
        "}";
        /* @formatter:on */
        MyClass.deserializeJson(json);
    }
}

答案 2 :(得分:2)

我只知道评论的答案:

Eclipse非常聪明,只能重新格式化生成的JavaDoc不会改变的注释(即空白无关紧要):

/**
 * foo <i>
 * bar </i>
 * 
 * <pre>
 *   foo
 * bar
 * </pre>
 */

将重新格式化为

/**
 * foo <i> bar </i>
 * 
 * <pre>
 *   foo
 * bar
 * </pre>
 */

请注意<pre>标记的内容未重新格式化。

对于长字符串文字,我建议它们可能表明你应该将其中的一部分外化。

答案 3 :(得分:1)

我不确定您所指的确切功能,但您可以更改表达式的换行策略,这可能会帮助您解决字符串问题。参见:

Window-&gt; Preferences-&gt; Java-&gt; Code Style-&gt; Formatter

点击“修改...”按钮

点击“换行”标签

在树中,选择“表达式” - >“分配”,然后更改窗口底部的缩进策略。

当然在格式化程序中有无数其他选项,你可能会发现许多其他选项也很有用,比如在哪里放括号,或者如何缩进控件块。

答案 4 :(得分:1)

我刚发现这个问题,因为我对此功能的缺乏感到恼火。

小搜索显示了这个问题和以下答案: Stop eclipse from line wrapping?

  

Eclipse 3.5支持这一点。 (它在几天前发布了候选版本,所以值得一试)

祝你好运! :)

答案 5 :(得分:1)

我偶然发现了这一点,因为我很想看到Eclipse中的部分着色。想象一下,您可以简单地为代码中的部分提供一些背景颜色。难道不会让它更容易接近,尤其是当你在凌晨4点褪色时? :)

答案 6 :(得分:0)

您可以标记要格式化的代码,并在此部分中单击鼠标右键选择格式。这是一个“白名单”解决方案,也许它会有所帮助......