Native Image 代码风格

为确保代码质量以及所有贡献者遵循相同标准,我们建立了一套规则集,它随着时间推移而发展并被证明是有用的。请注意,这些规则欢迎讨论!

源代码格式化 #

使用 mx ideinit 生成的 IDE 项目配置了严格的格式化规则。在 Eclipse 中,当文件保存时,它会根据这些规则自动格式化。此配置包括特殊注释,可用于放宽特定代码区域的检查。

源代码格式化可以通过特殊注释禁用

//@formatter:off

//@formatter:on

注释重新格式化可以这样禁用

/*-
 *
 */

使用 Checkstyle 进行检查 #

Checkstyle 用于验证是否遵循样式规则。可以通过 mx checkstyle 手动运行它。

默认的 Checkstyle 规则定义在 src/com.oracle.svm.core/.checkstyle_checks.xml 中,并定义了各种特殊注释,包括

//Checkstyle: stop method name check

//Checkstyle: resume method name check

以及其他可禁用检查的类似命令(包括通用的 stopresume 命令)。当然,确保合理使用这些注释是代码审查的事宜。

如果一个项目需要不同的 Checkstyle 规则集,可以在 mx.substratevm/suite.py 中通过更改项目 checkstyle 属性的值来指定(该属性默认引用 com.oracle.svm.core)。特定的代码文件可以通过一个名为 src/<project name>/.checkstyle.exclude 的文件以目录粒度从 Checkstyle 中排除。此类排除文件必须每行包含一个目录,路径相对于项目根目录。该文件必须通过 git add 明确添加,因为 git 默认会忽略它。

当拉取添加或删除 Checkstyle XML 文件的变更集时,IDE 可能会显示不适当的样式警告或错误。这可以通过运行 mx ideinit 并清理受影响的项目来解决。

IDE 集成 #

IDE 插件有助于遵循样式规则。一些示例如下:

有关更多建议,请参阅 IDE 集成文档

联系我们