11

我有一个 Java 类,它的部分 javadoc 实际上是作为构建过程的一部分生成的:方法的返回值(静态字符串值)被插入到源文件中,就像$Revision: $标签在某些版本控制软件中的工作方式一样。

虽然这种行为可能值得怀疑,但我使用的框架(WEKA 机器学习库)需要这种信息重复。我希望 Eclipse 的代码格式化程序不要干扰生成的注释。我正在使用 Eclipse Indigo 版本。

我可以使用特殊注释打开/关闭格式化程序//@formatter:on//@formatter:off. 但是,@formatter标签仅在“普通”注释中起作用,在 javadoc 注释中不起作用。显然,它们很容易与 javadoc 标记混淆。这意味着我不能为 javadoc 注释的生成部分关闭格式化程序(例如,自动换行),而让其余部分保持打开状态,因为@formatter指令必须放在 javadoc 注释周围。

是否有一种解决方法可以在 javadoc 注释中切换代码格式?

4

3 回答 3

10

自从有人问/回答了这个问题并帮助我完善了以下答案以来已经有一段时间了,希望它也很有用。我使用这种替代方法是因为我想在 Javadocs 中运行 Javascript。

Eclipse 提供了@formatter:off 和@formatter:on,需要通过Windows->Preferences->java->code style->formatter:::edit button::: tab "off/on tags" 启用。它们可以在任何评论中使用。

围绕文档的东西

// @formatter:off
/**
* javadoc
*/ 
// @formatter:on

但是,当您希望在 javadoc 中关闭格式化程序时,请使用 html 注释中的 @formatter:xxx<!-- xxxxx -->来指示您要执行的操作。使用该<code>...</code>块来确保没有格式化并将代码包含为 javascript。

编辑了示例中的代码语句,因为我希望它可以在 eclipse 和 netbeans 上工作。我找到了 formatter:off 工作,但随后停止了使用不同版本的 eclipse(是的,我使用多个 IDE 版本)。

/** 
* <br><!-- @formatter:off -->
* <code>
* <script type="text/javascript">
* // hash structure for holding variable as name and its text
* var hashText = {};
*  
* // function causes a hyper-link to be created
* function insertLink(varName, text){
*    var link22;
*  
*    hashText[varName] = text;
*  
*    link22 = '<a href="./ConsoleCapture.html#' + varName + '">' + hashText[varName] + '</a>';
*       
*    document.write(link22);
* }
* function insertLinkA(varName){
*    var link22;
*
*    link22 = '<a href="./ConsoleCapture.html#' + varName + '">' + hashText[varName] + '</a>';
*
*    document.write(link22);
* }
*      
* function setLinkPoint(varName, text){
*     hashText[varName] = text;
*      
*     document.write('<a id="' + varName + '"><U>' + hashText[varName] + '</U></a>');
* }
*      
* function setLinkPointA(varName){
*    document.write('<a id="' + varName + '"><U>' + hashText[varName] + '</U></a>');
* }
* </script>
* <code>
* <!-- @formatter:on -->
*
*
*/
于 2014-04-13T12:43:12.403 回答
1

您可以禁用标题的格式设置,但我不相信您可以有选择地禁用非标题 javadoc 注释的格式设置。

于 2012-08-18T13:38:56.280 回答
0

我遇到了同样的问题并改变@formatter:offFORMATTEROFF我的伎俩。

这个想法是避免@在开/关标签中使用。

现在我可以在 javadoc 的一部分周围禁用格式化程序。

于 2020-11-03T11:25:06.500 回答