ネイティブ・イメージのコード・スタイル
コードの品質を確保し、すべてのコントリビュータが同じ標準に従うように、時間の経過とともに成長し、有用であることが証明されたルールセットを確立しました。ルールには議論の余地が残されています。
ソース・コードのフォーマット
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/<project name>/.checkstyle.exclude
ファイルを使用すると、ディレクトリの粒度で特定のコード・ファイルをcheckstyleから除外できます。このような除外ファイルには、行ごとに1つのディレクトリをプロジェクト・ルートに対する相対パスで指定する必要があります。gitではこのファイルはデフォルトで無視されるため、git add
を使用して明示的に追加する必要があります。
Checkstyle XMLファイルを追加または削除する変更セットをプルすると、IDEで不適切なスタイルの警告またはエラーが表示されることがあります。これは、mx ideinit
を実行し、影響を受けるプロジェクトをクリーンアップすることで解決されます。
IDE統合
IDEプラグインは、スタイル・ルールに準拠するために役立ちます。次にいくつかの例を示します:
- Eclipse Checkstyleプラグイン: EclipseでCheckstyle違反を報告します。これにより、
mx checkstyle
を手動で実行する必要がなくなります。 - IntelliJ Eclipseコード・フォーマッタ: Eclipse IntelliJルールに従ってIntelliJのソース・ファイルをフォーマットします。このプラグインは、
mx ideinit
によって自動的に構成されます。 - IntelliJの保存アクション: ファイルを保存する前に自動的にフォーマットします。
さらなる提案は、IDE統合に関するドキュメントを参照してください。