ReSharper 2019.3ヘルプ

C++のコードスタイル支援

ReSharperはあなたのコードをきちんときれいに保つための多くの機能を提供します。ReSharperの他の機能の大部分と密接に連携しているため、特定のコードスタイルに従ってコードを生成したり既存のコードベースを変更したりできます。命名標準、フォーマット規則、およびその他のさまざまな小さな要素を含むコードスタイルは、非常に詳細なレベルに構成してチーム全体で共有できます。

他の言語と同様に、スコープを修正またはコードのクリーンアップを使用して、1つのコマンドですべてのC++コードスタイル設定を目的の範囲に適用できます。

コード書式設定ルールの管理と適用

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。

多数のReSharperコードフォーマットルールには、デフォルトのVisual Studioフォーマットオプションと多数のベストプラクティスを考慮に入れたデフォルト設定があります。フォーマット規則の詳細をすべて設定し、コードに規則を適用することができます。ReSharperがコード補完とコード生成機能で新しいコードを生成して、コードテンプレートを適用して、リファクタリングを実行するとき、これらの規則は適用されます。フォーマットルールは、現在の選択範囲、現在のファイル、またはソリューション全体に至るまでのより大きな範囲の既存のコードにも適用できます。

ReSharperは共有設定のメカニズムを使用してフォーマット設定を保存します。コード編集 | C++ | スタイルの書式設定グループのオプションページでフォーマットルールを設定できます。フォーマット設定EditorConfig / クラン形式ファイルに保存して共有することもできます。

オプションページを掘り下げる代わりに、コードブロックを選択して Alt+Enter を押し、フォーマット | 構成を選択してこのブロックに適用可能な書式設定ルールを設定し、このブロック内の変更を確認することもできます。

個々のフォーマット設定を調整するもう1つの方法は、選択したブロック、現在のファイル、一連のファイル、1つ以上のプロジェクト、またはソリューション全体など、既存のコードサンプルからフォーマット規則を学習することです。ReSharperは選択されたサンプルを分析し、あなたの現在の設定と異なるフォーマット規則をリストします。その後、検出されたルールを確認し、必要に応じて変更して必要なものに保存することができます。
詳しくは、既存のコードからのフォーマット規則の使用を参照してください。

ネーミングスタイル

ReSharperは、コード内のシンボルの命名スタイルを定義、制御、および適用できます。命名スタイルは一連のルールとして実装され、各ルールは一連の制約を持つ特定の識別子を対象としています。各ルールには、接尾辞、接頭辞、複合語の大文字化などを定義する1つ以上の関連スタイルを設定できます。

ReSharperがコード補完とコード生成機能で新しいコードを生成して、コードテンプレートを適用して、リファクタリングを実行するとき、これらの規則は考慮に入れられます。ReSharperは、命名規則の違反を検出して修正するのにも役立ちます。必要に応じて、命名規則の自動チェックを設定または無効にすることができます。

ReSharperオプション(Alt+R,,O)のコード編集 | C++ | ネーミングスタイルページで、ルールセットを定義済みの命名スタイルスキーム(STL、Google、LLVM、CamelCase、Microsoft)のいずれかにリセットできます。これらのスキームをそのまま使用するか、事前定義されたルールセットに基づいて独自のルールセットを構成できます

命名ルールセットをカスタマイズする

  1. メインメニューでReSharper | オプションを選択するか、Alt+R,,Oを押し、次に左側のコード編集 | C++ | ネーミングスタイルを選択します。

  2. ページの右上隅にあるスキームにリセットセレクターを使用して、ルールセットの基礎となる命名スタイル体系を選択します。

  3. 命名規則が設定されている識別子とその他の項目のリストが表示されます。

  4. アイテムのルールを変更するには、それを選択して編集 ThemedIcon EditorOptionsPage Screen Gray をクリックするか、単にダブルクリックします。リストにない項目にルールを追加するには、追加 ThemedIcon AddedParameter Screen Gray をクリックします。

  5. 開いたダイアログで、新規または変更したルールを設定できます。

    ReSharper: Configuring a C++ naming rule

  6. ダイアログの左側で、ルールの説明を指定できます。これは、ルールが適用される識別子の種類を理解できます。左側の他のコントロールでは、種類、指定子、およびアクセシビリティによって、ルールの適用範囲を特定の識別子に制限できます。
    指定子はトライステートチェックボックスで設定されていることに注意してください。ティックはこの指定子のみを意味し、クリアはこの指定子を伴わないことを意味し、正方形はこの指定子の有無を意味します。上の図は、public static 機能に適用される規則を示しています。

  7. ダイアログの右側で、ルールのスタイルを設定できます。少なくとも1つのスタイルが必要です。この規則に他のスタイルを許可したい場合は、追加 ThemedIcon AddedParameter Screen Gray をクリックしてください。単一の規則に複数のスタイルがある場合、対応するシンボル名がこれらのスタイルの少なくとも1つに一致すると、ReSharperはコードスタイル違反を検出しません。それ以外の場合、ReSharperはコードスタイル違反を検出し、デフォルトスタイル(リストの最初のスタイル)に従ってシンボルの名前を変更することを提案します。デフォルトのスタイルを変更するには、上へ移動 ThemedIcon Up Screen Gray ボタンと下へ移動 ThemedIcon Down Screen Gray ボタンを使用します。

  8. 特定のスタイルを設定するには、リストでスタイルを選択し、接頭辞、接尾辞を設定して、命名スタイルを選択します。

  9. 不要なスタイルを削除するには、リスト内でスタイルを選択し、除去 ThemedIcon Delete Screen Gray をクリックします。

  10. 必要に応じて、ReSharperが他のコードスタイルの違反を検出できるように、このルールに関連するコードスタイルの違反の検出を無効にすることができます。そうするには、インスペクションを使用可能にするチェックボックスをオフにします。

  11. 設定をクリックして、ルール設定の編集ダイアログを閉じます。

  12. ネーミングスタイル設定ページに戻ったら、上へ移動ThemedIcon Up Screen Gray 、および下へ移動 ThemedIcon Down Screen Gray ボタンを使用してルールの優先順位を変更します - 複数のルールが特定の識別子の種類に一致する場合は、リストの上位にあるルールが適用されます。つまり、制限が多いルールは制限が少ないルールよりも上位に配置する必要があります。例:関数パブリック静的関数の両方の規則が public static 関数に適用されるため、パブリック静的関数規則はリストの上位に配置されます。

    ReSharper: Naming style settings for C++

  13. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存リストを使用して特定の設定レイヤーに変更を保存します。詳細については、再シャーパー設定の管理と共有を参照してください。

UE4プロジェクトで作業する場合、ReSharperは自動的にUnreal Engineコーディング標準(英語)に対応する命名規則セットを適用しますが、これは構成可能ではありません。つまり、UE4プロジェクトで作業しているときは、コード編集 | C++ | ネーミングスタイル設定ページで設定されたルールは無視されます。Unreal Engineコーディング標準の代わりに設定済みのルールセットを使用したい場合は、対応するインスペクションを無効にすることができます。

ReSharper: Applying UE4 naming conventions

cv修飾子の配置

ReSharperを使用すると、cv-qualifiers生成コードに配置できます。ReSharperオプションのコード編集 | C++ | コード・スタイルページでは、型指定子の前後にcv修飾子を置くかどうか、および const および volatile 修飾子の順序を指定できます。

ディレクティブスタイルを含める

ReSharperオプションのコード編集 | C++ | コード・スタイルページでは、生成コードの includeディレクティブでパス区切り文字としてスラッシュを使用するかバックスラッシュを使用するかを指定できます。ヘッダーファイルで前方宣言を生成するかどうかを指定することもできます。

デフォルトのポインタ初期化子のスタイル

0 , nullptr または NULL をポインター初期化子の優先初期化子として指定できます(例: const char *foo = nullptr)。ReSharperオプションのコード編集 | C++ | コード・スタイルページで設定を変更できます。

ファイルヘッダスタイル

著作権通知やその他の識別メッセージにファイルヘッダーを使用するのが一般的です。ReSharperを使用すると、デフォルトのヘッダーテキストを設定し、ソリューションのコードファイルに自動的に挿入することができます。

ファイルテンプレートを使用してファイルを作成すると、設定したファイルヘッダーが新しいファイルに挿入される可能性があります。そのためには、テンプレートパラメータを追加して、それに 'File header' マクロを関連付ける必要があります。

ファイルヘッダーを既存のファイルに適用したい場合は、コードクリーンアップを使用してそれを実行できます。

最終更新日: 2019年12月12日

関連ページ:

スコープの修正

ほとんどのクイックフィックスは、キャレットで現在の課題を修正できますが、中には (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など)、現在のファイル、現在のプロジェクト、またはソリューション全体など、より大きな範囲で課題を自動的に見つけて修正できる...

コードのクリーンアップ

コマンドラインユーティリティを使用してコードのクリーンアップを実行することもできます。ReSharperを使用すると、フォーマット設定やその他のコードスタイル設定を一括モードで適用して、1つ以上のファイル、プロジェクト、またはソリューション全体のコードスタイル違反を即座に排除できます。一貫性のない名...

ReSharper設定の管理と共有

ReSharperは、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例:記号のアイ...

コードの書式設定ルールの管理と適用

コードスタイルの重要な点は、コードの書式設定方法、つまり、空白と空白行を使用してコードブロックを配置および分離する方法、インデントにタブを使用するかどうか、および使用する方法。多数のReSharperコードフォーマットルールには、デフォルトのVisual Studioフォーマットオプションと多数のベ...

コード生成

ReSharperは、定型コードを生成するさまざまな方法を提供します。例:宣言されていないコードシンボルを使用し、これらのシンボルを用途に基づいて自動的に生成したり、型メンバーを生成したりすることができます。現在のファイルで設計時コードインスペクションが有効になっている場合、ReSharperは足り...

EditorConfigの使用

どのフォーマットスタイルの設定がファイルフォーマット情報ウィンドウの現在のファイルに影響するかを見ることができます。ReSharperは、EditorConfig形式で定義されているコードフォーマットスタイル、コード構文スタイル、およびコードインスペクションの重大度をサポートしています。Matthe...