使Eclipse的Java代码格式化程序忽略块注释
有没有办法让Eclipse的内置Java代码格式化程序忽略注释? 每当我运行它,它变成这样:
/* * PSEUDOCODE * Read in user's string/paragraph * * Three cases are possible * Case 1: foobar * do case 1 things * Case 2: fred hacker * do case 2 things * Case 3: cowboyneal * do case 3 things * * In all cases, do some other thing */
进入这个:
/* * PSEUDOCODE Read in user's string/paragraph * * Three cases are possible Case 1: foobar do case 1 things Case 2: fred * hacker do case 2 things Case 3: cowboyneal do case 3 things * * In all cases, do some other thing */
我已经玩过Windows>首选项> Java>代码样式>格式化程序设置,但找不到保留注释格式。 我正在使用Eclipse 3.4.0。
使用Java格式化程序( Windows > Preferences > Java > Code Style > Formatter
),您可以创build一个新的格式程序configuration文件。
在评论标签(在eclipse3.5中),你可以确保在“ Javadoc comment settings
”中取消选中“ Format HTML tags
”。
检查“ General settings
”部分中的“ Never join lines
”。
那么你的评论应该写成:
/** * PSEUDOCODE * Read in user's string/paragraph * * Three cases are possible: * <dl> * <dt>Case 1: foobar</dt> * <dd> do case 1 things</dd> * <dt>Case 2: fred hacker</dt> * <dd> do case 2 things</dd> * <dt>Case 3: cowboyneal</dt> * <dd> do case 3 things</dd> * </dl> * In all cases, do some other thing */
注:我已经做了一个Javadoc的评论,而不是一个简单的评论,因为我相信对它的许多文字的评论可能会更好地放在方法的前面。 另外,Javadoc部分有更多的格式参数可供使用。
如果它位于方法的前面(true Javadoc),那么HTML标记<dl>
, <dt>
和<dd>
将有助于在Javadoc视图中正确显示它。
还有另外一个解决scheme可以用来抑制特定块注释的格式。 在块注释开始处使用/*-
(注意连字符),如果格式化文件的其余部分,格式不会受到影响。
/ * - *这是一个非常特殊的块注释 *格式,我想缩进(1)忽略。 * *一个 *两个 *三 * /
来源: http : //www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350
我刚刚从同事那里得知,Eclipse提供了特殊的格式化标签,可用于此:
// @formatter:off /* * ╔════════╦═══════╦══════════╗ * ║ Month ║ Sales ║ Position ║ * ╠════════╬═══════╬══════════╣ * ║ June ║ 44k ║ 2nd ║ * ║ July ║ 39k ║ 2nd ║ * ║ August ║ 49k ║ 4th ║ * ╚════════╩═══════╩══════════╝ * * This comment shouldn't be formatted, and will now be ignored by the formatter. */ // @formatter:on
请注意,您可能需要通过首选项菜单→Java>代码样式>格式化程序手动启用此function,单击编辑 ,select关/开标签选项卡并选中启用关/开标签 ( 源 )。
对于string@formatter:off的快速Google将我带到了另一个SO回答中 ,该回答在禁用代码块格式化程序的环境中提到了此function。 我已经确认它适用于行注释,“正常”块注释和Javadoc块注释。
另一种可能性是在Javadoc中使用HTML的<pre>
/** * <pre> * this * is * kept * as * is * </pre> */
至less这是我倾向于将我的ASCII艺术embedded源代码注释:)
用<pre> </pre>
标签环绕特定文本。
在Eclipse 3.4:Preferences,Java-> Code Style-> Formatter中,然后编辑profile,comments标签。 有一些选项可以控制注释格式。
答案只在Eclipse中testing:
- 接受的答案的问题(Java格式(Windows>首选项> Java>代码样式>格式化程序),您可以创build一个新的格式化程序configuration文件),您影响代码中的每个javadoc。 也许这是不可取的代码的其他部分必须格式化。
- / *解决scheme的问题在于,它只适用于“常规”块注释,而不是Javadoc注释(正如Pops指出的那样)
我的build议只是简单地使用html标签。 例如,你可以在p标签中打包文本,以便在呈现的html中看到额外的换行符。 下面是你的例子看起来像(我添加了一些更多的文字和情况1使用p ):
/** * PSEUDOCODE<br> * * Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy * eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam * voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet * clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit * amet. <br> * * Three cases are possible:<br> * * Case 1: foobar<br> * <p> * Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy * eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam * voluptua. At vero eos et accusam et justo duo dolores et ea rebum. * </p> * * Case 2: fred hacker do case 2 things<br> * * Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy * eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam * voluptua. At vero eos et accusam et justo duo dolores et ea rebum.<br> * */
如果你想在eclipse中禁止格式化,你总是可以把不想被expression的内容包装到<pre>UNFORMATTED CONTENT</pre>
标签中。 Javadoc格式化程序将检测到该标记 ,并将该标记之间的所有内容保留为未格式化。
优点:
- 其余的Javadoc仍然被格式化
- 由于预标签,Javadoc的html输出也将是“无格式”
缺点:
- 没有看到一个
这是语言依赖。
例如,如果使用JavaScript,您将转到“窗口 – >首选项 – > Javascript – >代码样式 – >格式化程序”,然后编辑格式化程序选项。
编辑 (反映OP问题的变化
要编辑Java代码格式,请转到“窗口 – >首选项 – > Java – >代码样式 – >格式化程序”
在面板的顶部,你会看到
活动档案:
Eclipse [内置]
从那里你有一个button,右侧,“编辑”,下面两个,“新…”和“导入…”。 我会build议编辑现有的configuration文件。
在编辑configuration文件对话框中,顶部有一系列选项卡。 最后一个标签是“评论”。 要完全禁用注释格式,请取消选中“启用Javadoc注释格式”,“启用块注释格式”,“启用行注释格式”和“启用标题注释格式”。
一个解决方法是添加pre标签的意见,你不想eclipse格式
/** * <pre> * this part * is * out of * format * * </pre> */