C++ のコードスタイル支援
ReSharper はあなたのコードをきちんときれいに保つための多くの機能を提供します。ReSharper の他の機能の大部分と密接に連携しているため、特定のコードスタイルに従ってコードを生成したり既存のコードベースを変更したりできます。命名標準、フォーマット規則、その他のさまざまな小さな要素を含むコードスタイルは、非常に詳細なレベルに構成してチーム全体で共有できます。
他の言語と同様に、スコープを修正またはコードのクリーンアップを使用して、1 つのコマンドですべての C++ コードスタイル設定を目的の範囲に適用できます。
ビルトインコードクリーンアッププロファイルには C++ 固有のタスクが含まれていないため、新しいカスタムプロファイルを作成して有効にする必要があります。コードフォーマットルールの管理と適用
コードスタイルの重要な側面は、コードのフォーマット方法、つまり、空白、タブ、改行を使用してコード要素を配置する方法、インデントにタブを使用するかどうかと方法、長い行を折り返すかどうかと方法などです。オン。
ReSharper コードフォーマットルールの広範なセットには、デフォルトの Visual Studio フォーマットオプションと多数のベストプラクティスを考慮したデフォルト構成があります。フォーマットルールのすべての詳細を構成し、コードにルールを適用できます。これらのルールは、ReSharper がコード補完およびコード生成機能を備えた新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに適用されます。フォーマットルールは、現在の選択、現在のファイル、ソリューション全体までのより広い範囲の既存のコードにも適用できます。
ReSharper は、共有設定のメカニズムを使用してフォーマット設定を保存します。 グループのオプションページでフォーマットルールを設定できます。また、EditorConfig および Clang 形式ファイルにフォーマット設定を保存して共有することもできます。
個々のフォーマット設定を微調整する別の方法は、既存のコードサンプルからフォーマットルールを学習することです。これは、選択したブロック、現在のファイル、ファイルのセット、1 つ以上のプロジェクト、ソリューション全体です。ReSharper は、選択したサンプルを分析し、現在の設定とは異なるフォーマットルールを一覧表示します。その後、検出されたルールを確認し、必要に応じて変更し、目的の設定レイヤーまたは .editorconfig または .clang-format 形式の構成ファイルに保存できます。
詳細は、既存のコードから書式ルールを学ぶを参照してください。
ネーミングスタイル
ReSharper は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象としています。各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。
これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレートを適用し、リファクタリングを実行するときに考慮されます。ReSharper は、命名規則の違反を検出して修正するのにも役立ちます。必要に応じて、命名規則の自動チェックを構成または無効にできます。
ReSharper オプション Alt+R, O の ページで、ルールセットを定義済みの命名スタイルスキーム (STL、Google、LLVM、CamelCase、Microsoft) のいずれかにリセットできます。これらのスキームをそのまま使用することも、定義済みのスキームに基づいて独自のルールセットを構成することもできます。
命名ルールセットをカスタマイズする
メインメニューから Alt+R O を押してから、左側の を選択します。
を選択するか、ページの右上隅にあるスキームにリセットセレクターを使用して、ルールセットの基礎となる命名スタイル体系を選択します。
命名規則が設定されている識別子とその他の項目のリストが表示されます。
アイテムのルールを変更するには、それを選択して編集 をクリックするか、単にダブルクリックします。リストにない項目にルールを追加するには、追加 をクリックします。
開いたダイアログで、新規または変更したルールを設定できます。
ダイアログの左側の部分では、ルールの説明を指定できます。これにより、ルールが適用される識別子の種類がわかります。左側の部分にあるその他のコントロールを使用すると、種類、指定子、アクセシビリティによって、特定の識別子へのルールの適用を制限できます。
指定子はトライステートチェックボックスで構成されていることに注意してください。チェックマークはこの指定子がある場合のみを意味し、クリアはこの指定子がない場合のみを意味し、四角はこの指定子がある場合とない場合を意味します。上の図は、
public static
関数に適用されるルールを示しています。ダイアログの右側の部分で、ルールのスタイルを設定できます。少なくとも 1 つのスタイルが必要です。このルールに他のスタイルを許可する場合は、追加 をクリックします。1 つのルールに複数のスタイルがある場合、対応するシンボル名がこれらのスタイルの少なくとも 1 つと一致すると、ReSharper はコードスタイル違反を報告しません。それ以外の場合、ReSharper はコードスタイル違反を検出し、デフォルトスタイル (リストの最初のスタイル) に従ってシンボルの名前を変更することを提案します。デフォルトスタイルを変更するには、上へ移動 ボタンと下へ移動 ボタンを使用します。
特定のスタイルを設定するには、リストでスタイルを選択し、接頭辞、接尾辞を設定して、命名スタイルを選択します。
不要なスタイルを削除するには、リスト内でスタイルを選択し、除去 をクリックします。
必要に応じて、このルールに関連付けられたコードスタイル違反の報告を無効にしながら、ReSharper が他の命名ルール違反を検出できるようにすることができます。これを行うには、インスペクションを有効化するチェックボックスをオフにします。
ルールエディターがオプションダイアログから開かれた場合は、設定をクリックしてルール設定の編集ダイアログを閉じます。
ネーミングスタイル設定ページに戻ったら、上へ移動、、 下へ移動 ボタンを使用してルールの優先順位を変更します - 複数のルールが特定の識別子の種類に一致する場合は、リストの上位にあるルールが適用されます。つまり、制限が多いルールは制限が少ないルールよりも上位に配置する必要があります。例: 関数とパブリック静的関数の両方の規則が
public static
関数に適用されるため、パブリック静的関数規則はリストの上位に配置されます。オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。
UE4 プロジェクトで作業するの場合、ReSharper は、構成できない Unreal Engine コーディング標準(英語)に対応する命名ルールセットを自動的に適用します。つまり、UE4 プロジェクトで作業しているときは、ReSharper オプション Alt+R, O の ページで構成されたルールは無視されます。Unreal Engine コーディング標準の代わりに、構成済みのルールセットを引き続き使用したい場合は、対応するインスペクションを無効にすることができます。
cv 修飾子の配置
ReSharper を使用すると、cv-qualifiers を生成コードに配置できます。ReSharper オプションの ページでは、型指定子の前後に cv 修飾子を置くかどうか、および const
および volatile
修飾子の順序を指定できます。
ディレクティブスタイルを含める
ReSharper オプションの生成コードの include ディレクティブでパス区切り文字としてスラッシュを使用するかバックスラッシュを使用するかを指定できます。ヘッダーファイルで前方宣言を生成するかどうかを指定することもできます。
ページでは、インクルードのソート
ReSharper では、#include
ディレクティブをソートし、既存のグループを再配置し、空白行で区切られた新しいグループを作成できます。
キャレットが #include
ディレクティブ上にある場合、#include ディレクティブを並べ替えるサブメニューには 3 つのコンテキストアクションがあります。
#include ディレクティブを並べ替える | |
---|---|
#include ディレクティブの並べ替えと再グループ化 | このアクションは、すべての |
各 #include グループを個別に並べ替える | このアクションは、各グループ内の |
現在の #include グループのみを並べ替える | このアクションは、キャレットがオンになっているグループをソートします。 |
ReSharper オプション Alt+R, O の ページで順序付けルールを設定できます。
ReSharper は、.clang-format ファイルからのソート設定のインポートをサポートしています。ReSharper オプション Alt+R, O の ページで .clang-format スタイルのコードスタイルフォームを読み取るがチェックされている場合、.clang-format ファイルの IncludeBlocks、IncludeCategories、IncludeIsMainRegex、SortIncludes 設定が、clang 形式と同じ方法で #include
ディレクティブのソートに使用されます。
インクルードの並べ替えは、コードのクリーンアップでも適用できます。
デフォルトのポインタ初期化子のスタイル
0
、nullptr
、NULL
を、ポインター初期化子の優先初期化子として指定できます(例: const char *foo = nullptr
)。ReSharper オプションの ページで設定を変更できます。
ファイルヘッダースタイル
コピーライト表示やその他の識別メッセージにファイルヘッダーを使用するのが一般的です。ReSharper を使用すると、デフォルトのヘッダーテキストを構成し、それをソースファイルに自動的に挿入したり、それを使用して既存のファイルヘッダーを置き換えたりすることができます。
ReSharper オプションまたは .editorconfig ファイル内 でファイルヘッダースタイルを構成し、それをファイルテンプレートで作成された新しいファイルに追加し、コードクリーンアップを使用して既存のファイルにファイルヘッダーを挿入または置換できます。
異なるチームメンバーが作成および編集したファイルが同じヘッダースタイルを持つようにするには、ファイルヘッダー設定をチームと共有します。
関連ページ:
スコープを修正
クイックフィックスのほとんどは、キャレットの現在の問題を修正できますが、一部 (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など) は、現在のファイル、プロジェクト、フォルダー、ソリューション全体など、より広い範囲で問題を自動的に検出して修正することもできます。範囲内の修正を適用する:このような修正は、アクションリストの横に小さな矢印が表示されることで認識できます。範囲内の修正を適用する ReSharper のインスペクションでハイライトされて...
コードのクリーンアップ
ReSharper を使用すると、フォーマットやその他のコードスタイル設定を一括モードで適用して、1 つ以上のファイル、プロジェクト、ソリューション全体でコードスタイル違反を即座に排除できます。コードクリーンアッププロファイル:コードのクリーンアップには、ニーズに応じてさまざまな場合に適用できるさまざまな設定(プロファイル)があります。提供時の状態で使用可能な 3 つのデフォルトプロファイルがあります。コードのフォーマットのみを適用するビルトイン: コードの整形、コードのフォーマットとコードの...
ReSharper 設定の管理と共有
ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例: 記号のアイコンとチーム設定のコード形式を個人設定で保存し、これらの設定を自動的に組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。ReShar...
フォーマットルールを構成する
フォーマットルールは非常に高いレベルの詳細に設定できます。例: 特定の演算子の周囲に空白を配置するか、入れ子になった文をインデントするかを定義できます。オプションでコードフォーマットルールを構成するメインメニューからを選択するか、Alt+R O を押します。ページを使用して、すべての言語で適用されるオプションを確認し、設定します。ページを使用して、言語固有のフォーマットを構成します。これらのページでは、下部にあるプレビュー領域を使用して、ReSharper がコードに特定の設定を適用する方法を表示...
コード補完 (IntelliSense)
ReSharper は、高度な機能を備えた Visual Studio のネイティブコード補完(IntelliSense)を補完し、拡張します。例: あなたの入力に基づいて提案のリストを絞り込み、選択した型と拡張メソッドを自動的にインポートし、メソッド名を補完するときに括弧を追加し、型に応じて変数とフィールド名を提案するなど。ReSharper のコード補完の機能に慣れ親しむために、いくつかの実装の基本があります: デフォルトでは、ReSharper は Visual Studio のネイティブの...
フォーマットルールを適用する
編集および貼り付けられたコードの自動フォーマット:エディターでコードを入力すると、セミコロンを入力するとすぐに ReSharper によって式が再フォーマットされ、閉じ括弧を入力するとすぐにコードブロックが再フォーマットされます必要に応じて、ReSharper オプション Alt+R, O のページでこれらの種類の自動フォーマットを無効にすることができます。ReSharper では、コードを貼り付けるときにフォーマットルールを自動的に適用することもできます。デフォルトでは、貼り付けられたコードは完...