Clang 形式の使用
C++ ファイルでは、JetBrains Rider は Clang-Format で定義されたフォーマットスタイルをサポートします。 デフォルトでは、Clang-Format 構成ファイルは、フォーマットスタイル設定のソースとして自動的に使用されます。
Clang-Format とは何か、JetBrains Rider はどのようにそれをサポートしているか?
Clang-Format は、広く使用されている C++ コードフォーマッタです。 YAML 形式のファイル ( .clang-format または _clang-format という名前) でコードスタイルオプションを定義するオプションを提供し、これらのファイルは多くの場合、すべてのコードスタイルルールを保持するプロジェクトの一部になります。
Clang-Format スタイルのオプションの完全なリストと構成ファイルの例を確認するには、 Clang フォーマットのドキュメント(英語)を確認してください。
JetBrains Rider で Clang-format を利用する方法は 2 つあります:
プロジェクトのコードスタイルが Clang-Format ファイルで設定されている場合、JetBrains Rider のコードフォーマットエンジンは元のスタイルに加えて、 これらのスタイルのほとんどを C++ ファイルのフォーマットに利用できます。 競合がある場合、 .clang-format ファイルの設定は *.DotSettings の設定を上書きすることに注意してください。
デフォルトの LLVM スタイルのフォーマットを好み、コードフォーマッターとして clang-format を使用したい場合は、JetBrains Rider 設定 Ctrl+Alt+S の ページの C++ フォーマットエンジン で Clang 形式 を選択し、オプションでカスタム Clang-format 実行可能ファイルを指定できます。 この場合、 .clang-format 構成ファイルは自動的に読み取られます。
ソリューションの Clang-Format
デフォルトでは、ReSharper C++ フォーマッターエンジンを選択した場合でも、JetBrains Rider は Clang-Format プロパティを考慮し、JetBrains Rider 設定 および EditorConfig スタイル で定義された環境設定をオーバーライドします。 JetBrains Rider でコードフォーマットとコード構文について Clang-Format スタイルを無視したい場合は、JetBrains Rider 設定 の ページで該当するチェックボックスをオフにしてください。
Clang-Format サポートが有効化され、現在のファイルに影響を与える .clang-format または _clang-format ファイルが存在する場合、JetBrains Rider はどの Clang-Format スタイルが適用されているかと、それらの設定がどこから来ているかを把握しやすくなります:
C++ 用の JetBrains Rider フォーマットオプションページでは、ページ上のいずれかの環境設定が現在のファイルの Clang-Format スタイルによってオーバーライドされている場合、黄色の警告が表示され、オーバーライドされた各環境設定も黄色でハイライトされます。 例えば:

コードスタイル構成ダイアログ では、現在のファイルに影響を与えるすべての .clang-format および _clang-format ファイルを確認・調査できます:

コードスタイル設定を Clang 形式にエクスポート
Clang-Format でコードスタイル設定を共有する場合は、JetBrains Rider ですでに設定されているスタイルを .clang-format ファイルにエクスポートすることをおすすめします。
Ctrl+Alt+S を押すか、メニューから (Windows および Linux) または (macOS) を選択し、左側の を選択します。
現在のスタイルを .clang-format に書き込む をクリックします。 これにより、 .clang 形式にエクスポート ダイアログが開きます。
デフォルトでは、JetBrains Rider は現在のソリューションのルートディレクトリに新しい .clang-format ファイルとして設定を書き込みます。 1 つ以上の .clang-format ファイルが存在する場合、JetBrains Rider はディレクトリ階層で最も近いファイルを使用して設定を保存します。 必要に応じて、ダイアログの上部にあるパスセレクターを使用して宛先ファイルを変更できます。
より詳細な設定については、 追加オプションを表示する を展開して以下のオプションを選択することができます。
- BasedOnStyle
対応するオプションを設定し、 すべてのオプションにデフォルトで使用するスタイルを定義します。
- 選択された基本スタイルに一致するオプションを非表示
BasedOnStyle で選択されたベーススタイルに定義されている値と同じ値を持つオプションはエクスポートされません。
- Cpp 設定のエクスポート
C++ コードに影響する Clang-Format オプションのエクスポート可否を定義します。
指定した場所に既存の .clang-format ファイルがある場合、そこに存在するプロパティの値と JetBrains Rider が保存しようとしている値の間で競合する可能性があります。 このようなプロパティは赤で表示され、保存を続行すると、競合は新しく生成されたプロパティに優先して解決されます。
エクスポート をクリックします。 JetBrains Rider は指定した場所に .clang-format ファイルを作成または更新します。
また、フォーマットルールの コンテキスト構成後に、フォーマットスタイルを Clang-Format に保存することもできます。
サポートされているクラン形式オプション
|
|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|