原生映像程式碼風格
為了確保程式碼的品質,並使所有貢獻者遵循相同的標準,我們制定了一套規則,這些規則隨著時間的推移而不斷發展,並證明是有用的。請注意,這些規則是可以討論的!
原始程式碼格式化 #
使用 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 規則集,可以在 mx.substratevm/suite.py
中變更專案的 checkstyle
屬性值來指定(預設情況下,該屬性引用 com.oracle.svm.core
)。可以使用檔案 src/<專案名稱>/.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 整合的文件。