阻止Eclipse破坏我的注释

26

有没有办法阻止Eclipse破坏我的源文件中的注释?

我的主要问题是防止它进行换行。我已经成功地配置了Eclipse,使其不对任何代码进行换行,但它似乎仍会对注释进行换行。

像这样输入的代码:

public int myVariable = 100; // this variable is a very interesting variable and it does lots of stuff

最终呈现的效果如下:

public int myVariable = 100; // this variable
                             // is a very
                             // interesting
                             // variable and
                             // it does lots
                             // of stuff

虽然我通常反对在代码后添加注释,但问题也有其他有效的解决方式:Eclipse有时会将Javadoc或自动生成的非Javadoc成员注释中的HTML弄乱,导致它们不能正常显示。非常丑陋。 - Joey
@Johannes:关闭所有注释(包括 Javadoc)的代码格式化很容易。 - Jonathan Fingland
我也反对在代码后面加注释,但我们的首席开发人员不这么认为,而且Eclipse混淆代码使得查看文件更改的差异变得非常困难。 - Omar Kooheji
我听说有人反对代码后的注释,但为什么会这样?这是出于宗教信仰吗? - orbfish
3
这只是一种愚蠢的宗教偏好(告诉人们只允许战略性而不是战术性的评论)。如果您有一个非常简短的战术性评论,把它放在行尾是完全有效的。你的另一种选择是在上方添加一个全新的行,这会占用垂直空间。开发人员经常低估浪费垂直空间的影响。我认为,如果整个方法可以在一个屏幕上显示,而不需要垂直滚动,那么阅读起来会更容易。战术性注释可能有助于实现这一点。没有理由从工具箱中删除工具。 - Nate
在Oxygen.1 Eclipse 4.7.1中观察到类似的行为。我启用了一个格式化程序活动配置文件,并且它确实记录更改(一旦我发现您必须在其他地方启用Oomph首选项记录)。但是设置“保留代码和行注释之间的空格”没有效果。我还禁用了“行注释格式”。没有效果。切换“从不合并行”也没有效果。没有项目特定的设置。 - Alan
5个回答

80

8
最佳回应。应该是答案。 - Andrew Mackenzie
太棒了 - 正是我在寻找的! - Joe
不,似乎这不适用于/**注释。有什么建议吗? - King Midas
已更新 Oracle 文档的网址。http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#680 - Will Vanderhoef

16

进入“窗口”菜单 -> 首选项
从左侧列表中选择你感兴趣的编辑器。(例如:Java)
然后应该会有一个名为“代码风格”的子部分,在其下面是“格式化程序”。

接着,您需要创建一个新的格式化程序文件。 (内置的格式化程序文件无法编辑) 在配置文件的最后一个标签页中有关于注释格式的选项。


12
  1. 转到首选项 -> Java -> 代码样式 -> 格式化程序
  2. 在那里编辑配置文件,切换到名为“注释”的最后一个选项卡
  3. 取消选中“启用行注释格式”

Tx...还有一个复选框可以禁用块注释格式化,这正是我想要的... - mike rodent
对我来说,"永不合并行" 是有帮助的。 - George

1

在“窗口” ->“首选项” ->“Java” ->“代码样式” ->“格式化程序”中创建新的格式化程序。单击“编辑”,然后选择“注释”选项卡,取消选中“启用行注释格式”和“启用块注释格式”。


2
这与@Simon Lehmann早在您回答此处之前所做的回答完全相同... -1给你,+1给他。 - cellepo

0

您可以使用<pre></pre>标签来包含代码块,该标签不会将其格式化。

/*
 * <pre class="prettyprint">
 * public class Activity extends ApplicationContext {
 *     protected void onCreate(Bundle savedInstanceState);
 *
 *     protected void onStart();
 *
 *     protected void onRestart();
 *
 *     protected void onResume();
 *
 *     protected void onPause();
 *
 *     protected void onStop();
 *
 *     protected void onDestroy();
 * }
 * </pre>
 */

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接