我如何使eclipse的autoformatter忽略一段代码?

我记得有一种在eclipse(特殊注释或注释?)中标记一段代码的方法,它使自动标记忽略该部分。 或者我可能会破坏这个…

主要用于当我有string包装到几行,我不希望autoformatter重新排列这个。

从Eclipse 3.5(或3.6)开始,这是可能的: – 转到项目属性 – Java代码样式 – 格式化程序 – 编辑… – select标记为“关/开标签”的选项卡, – 在注释中包含标签源代码等

/* @formatter:on */ 

你可以把你不想自动格式化的代码包装在这些特殊的注释之间:

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

下面是一个基本的用法示例,它使得jsonstring(稍微)更具可读性:

 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); } } 

我只知道评论的答案:

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

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

将被重新格式化成

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

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

对于长string文字,我build议他们可能是一个迹象表明你应该将其中的一些外化。

我不确定你指的确切的function,但你可以改变expression式的换行策略,这可能会帮助你解决你的string问题。 看到:

Window-> Preferences-> Java-> Code Style-> Formatter

点击“编辑…”button

点击“换行”标签

在树中,selectExpressions-> Assignments,然后更改窗口底部的缩进策略。

当然,格式化程序里面还有很多其他的选项,你可能会发现其他许多有用的选项也适用于其他规则,比如在哪里放置花括号,如何缩进控制块。

我刚刚发现这个问题,因为我也对这个function缺乏兴趣。

一个小search显示了这个问题和以下答案: 停止线包装的日食?

Eclipse 3.5支持这一点。 (它几天前击中候选人,所以可能值得一试)

祝你好运! 🙂

我偶然发现了这个,因为我很想在Eclipse中看到剖面着色。 想象一下,你可以简单地给你的代码中的部分背景颜色。 难道它不会使它更容易访问,特别是当你在凌晨4点褪色? 🙂

您可以在本节中用鼠标右键标记要格式化和select格式的代码。 这是一个“白名单”解决scheme,也许它帮助…