原生镜像代码风格
为了确保代码质量并使所有贡献者遵循相同的标准,我们建立了一套规则,这些规则随着时间的推移而不断完善,并证明其有用性。请注意,这些规则是可以讨论的!
源代码格式 #
使用 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
以及类似命令用于可以禁用的其他检查(包括一般的 stop
和 resume
命令)。当然,确保合理使用这些注释是代码审查的事项。
如果项目需要不同的 Checkstyle 规则集,则可以通过更改项目 checkstyle
属性的值(默认情况下引用 com.oracle.svm.core
)在 mx.substratevm/suite.py
中指定。可以使用文件 src/<project name>/.checkstyle.exclude
在目录粒度上将特定代码文件从 checkstyle 中排除。此类排除文件必须包含每行一个目录,路径相对于项目根目录。该文件必须使用 git add
显式添加,因为 git 会默认忽略它。
拉取添加或删除 Checkstyle XML 文件的更改集时,IDE 可能显示不合适的样式警告或错误。通过运行 mx ideinit
和清理受影响的项目来解决此问题。
IDE 集成 #
IDE 插件有助于遵守样式规则。以下是一些示例
- Eclipse Checkstyle 插件:在 Eclipse 中报告 Checkstyle 违规,使手动运行
mx checkstyle
变得不必要。 - IntelliJ Eclipse 代码格式化程序:根据 Eclipse IntelliJ 规则在 IntelliJ 中格式化源文件。此插件由
mx ideinit
自动配置。 - IntelliJ 保存操作 用于在保存文件之前自动格式化文件。
有关进一步建议,请参阅 IDE 集成文档。