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

ファイル フォーマット情報ウィンドウ では、現在のファイルに影響するすべての .clang-format および _clang-format ファイルを参照して調査できます:

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