如何解决@link JavaDoc 在一行和行长之间的Checkstyle 冲突?
How to solve Checkstyle conflict between @link JavaDoc on one line and line length?
考虑以下 JavaDoc:
/**
* Test method for
* {@link MySelectionStyleConfiguration#configureSelectionStyle(org.eclipse.nebula.widgets.nattable.config.IConfigRegistry)}.
*
*/
每当我保存 JUnit5 测试 class 这个注释所属时,{@link }
被重新格式化为在一行,这是正确的,否则 Maven Checkstyle 插件会抛出错误如果我尝试在 link 中引入换行符:(javadoc) SingleLineJavadoc: Javadoc comment at column 78 has parse error. Details: mismatched input '\n' expecting MEMBER while parsing REFERENCE
。 (我还认为 link 在由此呈现的 API 文档中无法正确解析。)
但是,如果我将长 link 行保持原样,Maven Checkstyle 插件将 也 抛出错误:(sizes) LineLength: Line is longer than 100 characters (found 125).
.
有办法解决这个问题吗?
要求:
- 100 个字符的行规则应该保留,但是 JavaDoc 中的长
{@link }
标签(在测试中 class 是最明显的,但也许在其他地方也是如此)应该被免除。
- link 仍应在呈现的 JavaDoc 中解析(即,它应保持有效)。
编辑
我可以省略 link 中的包名称,但我想将它们保留在那里,以便它们只解析一件事,而不是潜在地解析同名的东西。
可以用 "ignorePattern" 属性 的 LineLength 检查 https://checkstyle.sourceforge.io/config_sizes.html#LineLength
在你的情况下,类似于
<module name="LineLength">
<property name="max" value="100"/>
<property name="ignorePattern" value="^ \* \{@link .*$"/>
</module>
会解决问题。
考虑以下 JavaDoc:
/**
* Test method for
* {@link MySelectionStyleConfiguration#configureSelectionStyle(org.eclipse.nebula.widgets.nattable.config.IConfigRegistry)}.
*
*/
每当我保存 JUnit5 测试 class 这个注释所属时,{@link }
被重新格式化为在一行,这是正确的,否则 Maven Checkstyle 插件会抛出错误如果我尝试在 link 中引入换行符:(javadoc) SingleLineJavadoc: Javadoc comment at column 78 has parse error. Details: mismatched input '\n' expecting MEMBER while parsing REFERENCE
。 (我还认为 link 在由此呈现的 API 文档中无法正确解析。)
但是,如果我将长 link 行保持原样,Maven Checkstyle 插件将 也 抛出错误:(sizes) LineLength: Line is longer than 100 characters (found 125).
.
有办法解决这个问题吗?
要求:
- 100 个字符的行规则应该保留,但是 JavaDoc 中的长
{@link }
标签(在测试中 class 是最明显的,但也许在其他地方也是如此)应该被免除。 - link 仍应在呈现的 JavaDoc 中解析(即,它应保持有效)。
编辑
我可以省略 link 中的包名称,但我想将它们保留在那里,以便它们只解析一件事,而不是潜在地解析同名的东西。
可以用 "ignorePattern" 属性 的 LineLength 检查 https://checkstyle.sourceforge.io/config_sizes.html#LineLength
在你的情况下,类似于
<module name="LineLength">
<property name="max" value="100"/>
<property name="ignorePattern" value="^ \* \{@link .*$"/>
</module>
会解决问题。