ReSharper 2018.2ヘルプ

コードのクリーンアップ

ReSharper | 編集 | クリーンアップコード
Ctrl+Alt+F
ReSharper_CleanupCode

ReSharperを使用すると、バルクモードで書式設定およびその他のコードスタイルの設定を適用して、プロジェクト内またはソリューション全体の1つまたは複数のファイルでコードスタイルの違反を即座に排除できます。

コードクリーンアッププロファイル

コードクリーンアップには、必要に応じてさまざまなケースで適用するさまざまな構成(プロファイル)を設定できます。デフォルトのプロファイルは2つあります。

これらのプロファイルはほとんどの場合役に立ちますが、設定することはできません。 クリーンアップタスクのカスタムセットでコードクリーンアップを実行する場合は、カスタムプロファイルを作成し、そこで必要なタスクのセットを指定する必要があります。

新しいカスタムクリーンアッププロファイルを作成するには

  1. メインメニューでReSharper | オプションを選択します。

  2. コードクリーンアップの設定ページコード編集 | コードのクリーンアップに移動します。

  3. 左側の既存のプロファイルの1つを選択し、ページの上部にある複製をクリックします。 ReSharperは、元のプロファイルと同じ一連のタスクで新しいクリーンアッププロファイルを作成します。

  4. プロファイルのリストで新しく作成したプロファイルを選択します。

  5. ページの上部にある構成をクリックします。

  6. 選択したプロファイルのタスクが右側で編集可能になります。必要に応じて設定します。

  7. 変更を保存する前に他のプロファイルを作成または編集する場合は、ページの上部にある終了をクリックして、現在のプロファイルの変更を一時的に覚えておいてください。

  8. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存ドロップダウンリストを使用して特定の設定レイヤーに変更を保存します。詳細は、resharper設定の管理と共有を参照してください。

新しく作成されたクリーンアップ・プロファイルは、実行中のコードクリーンアップの場合にコードクリーンアップダイアログで使用できます。このプロファイルをサイレントクリーンアップに使用するように設定することもできます。

コードクリーンアップの実行

ReSharper | 編集 | クリーンアップコード
Ctrl+Alt+F
ReSharper_CleanupCode

ReSharperは、任意に選択したコードブロック、現在のファイルのすべてのコード、ディレクトリ内のすべてのファイル、現在のプロジェクト、または現在のソリューションにコードクリーンアップを適用できます。右のクリーンアッププロファイルを選択して、正しいクリーンアップタスクを選択してください。

選択またはファイル全体をクリーンアップするには

  1. コードをクリーンアップするスコープを選択します。
    • エディタで選択して、選択範囲内のコードをクリーンアップします。

    • ファイル内の任意の位置にキャレットを設定して、ファイル内のコードをクリーンアップします。

    • ソリューション・エクスプローラーの1つまたは複数の項目を選択して、これらの項目およびその子項目の下にあるファイルのコードをクリーンアップします。

  2. 以下のいずれか 1 つを実行します
    • Ctrl+Alt+F を押すか、メインメニューからReSharper | 編集 | クリーンアップコードを選択してください。

    • テキストエディタの任意の場所を右クリックするか、選択項目を右クリックし、コンテキストメニューでクリーンアップコードを選択します。

  3. 開いているコードクリーンアップダイアログで、左側のクリーンアッププロファイルを選択します。右側の領域を使用して、選択したプロファイルに含まれるタスクを確認します。

  4. 使用可能なプロファイルが1つもない場合は、既存のプロファイルの1つを選択し、コピー新しいカスタムプロファイルを作成するをクリックします。
    このダイアログでクリーンアッププロファイルを作成または変更すると、変更はスマートセーブロジックを使用して保存されることに注意してください。変更を共有設定レイヤーに保存する必要がある場合は、ReSharperオプションのコード編集 | コードのクリーンアップページで変更を加え、次へ保存をクリックして、希望の設定レイヤーを選択します。

  5. 選択したスコープのコードを消去するには、実行をクリックします。

個々のファイルだけでなく、ディレクトリ、プロジェクト、またはソリューション全体の複数のファイルもクリーンアップできます。これを行うには、ソリューション・エクスプローラーからコードクリーンアップを実行する必要があります。

複数のファイル、プロジェクト、またはソリューション全体をクリーンアップするには

  1. ソリューション・エクスプローラーで1つまたは複数の項目(ファイル、ディレクトリ、プロジェクト、またはソリューション)を選択します。

  2. 以下のいずれか 1 つを実行します
    • Ctrl+Alt+F を押すか、メインメニューからReSharper | 編集 | クリーンアップコードを選択してください。

    • 選択範囲を右クリックし、コンテキストメニューでクリーンアップコードを選択します。

  3. 上記のようにクリーンアップ・プロファイルを選択します。

  4. 選択したスコープのコードを消去するには、実行をクリックします。

サイレントクリーンアップ

ReSharper | 編集 | サイレントクリーンアップコード
Ctrl+Shift+Alt+F
ReSharper_SilentCleanupCode

また、コードクリーンアップダイアログを表示せずにサイレントモードでコードクリーンアップを実行することもできます。この場合、プロファイルを明示的に選択できないため、サイレントコードのクリーンアップに使用するクリーンアッププロファイルを割り当てる必要があります。

サイレントコードクリーンアップ用のプロファイルを割り当てるには

  1. メインメニューでReSharper | オプションを選択します。

  2. コードクリーンアップの設定ページコード編集 | コードのクリーンアップに移動します。

  3. 左側のクリーンアッププロファイルを選択し、オプションページの上部にあるデフォルトとして設定をクリックします。

  4. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存ドロップダウンリストを使用して特定の設定レイヤーに変更を保存します。詳細は、resharper設定の管理と共有を参照してください。

サイレントモードでコードクリーンアップを実行するには

  1. 以下のいずれか 1 つを実行します
    • 特定のコードファイルでサイレントコードクリーンアップを実行するには、テキストエディタで開くか、ソリューション・エクスプローラーで選択します。

    • ファイルセット(ディレクトリ、プロジェクト、またはソリューション)にサイレントコードクリーンアップを適用するには、ソリューション・エクスプローラーで対応する項目を選択します。

  2. Ctrl+Shift+Alt+F を押すか、メインメニューからReSharper | 編集 | サイレントクリーンアップコードを選択してください。または、 Ctrl+Shift+Aを押して、ポップアップでコマンド名を入力してから、コマンド名を選択することもできます。

利用可能なコードクリーンアップタスク

以下の表は、使用可能なクリーンアップタスクをリストしています。これらのタスクの一部だけを実行するためにクリーンアップが必要な場合は、そのためにカスタムクリーンアッププロファイルを作成するを実行できます。

クリーンアップタスク

説明

C#

ファイルレイアウトを適用する

ReSharperオプションのコード編集 | C# | ファイルレイアウトページで設定可能なルールに従って、ファイル内のタイプメンバーを並べ替えます。詳細は、ファイルとタイプのレイアウトを参照してください。

ファイルヘッダを更新する

ReSharperオプションのコード編集 | ファイルヘッダテキストページで設定できるファイルヘッダーコメントを挿入または更新します。詳細は、ファイルヘッダースタイルを参照してください。

コード・スタイル

型には明示的または暗黙的な修飾子の定義を使用する

internal 修飾子を明示的に使用しないかどうかにかかわらず、型修飾子の規則を適用します。このルールはReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: 修飾子を参照してください。

型メンバーに明示的または暗黙的な修飾子定義を使用する

private 修飾子を明示的に使用しないかどうかにかかわらず、型メンバー修飾子のルールを適用します。このルールはReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: 修飾子を参照してください。

ソート修飾子

type / member修飾子の優先順位を適用します。このルールはReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: 修飾子を参照してください。

引数のスタイルを適用する(named | 位置)

特定のタイプのパラメータの名前付き/定位置引数の設定を適用します。設定はReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: 名前付き/位置引数を参照してください。

冗長なカッコを除去

ReSharperオプションのコード編集 | C# | コード・スタイルページで指定された場合に、冗長オプション括弧を削除します。詳細は、コードの構文スタイル: オプションの括弧を参照してください。

オペレーションの優先順位を明示的に指定する括弧を追加する

オプションの括弧を追加して、ReSharperオプションのコード編集 | C# | コード・スタイルページで指定された場合の操作の優先順位を明確にします。詳細は、コードの構文スタイル: オプションの括弧を参照してください。

シングルステートメントの周りに波括弧を追加/削除する

ReSharperオプションのコード編集 | C# | コード・スタイルページで指定されているように、オプションの波括弧を単一のネストされたステートメントの周りに追加または削除します。詳細は、コードの構文スタイル: 1つのネストされた文に対する波括弧を参照してください。

アライメント属性

ReSharperオプションのコード編集 | C# | コード・スタイルページで指定されている複数の属性のルールを適用します。詳細は、コードの構文スタイル: 複数の属性を参照してください。

'var'キーワードの使用設定を強制する

クリーンアップ中に'var'用のルールを適用します。このルールは、ReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。

コードの冗長性を削除する

ReSharperオプションのコード・インスペクション | インスペクション重大度ページには、ほとんどの言語のコードの冗長性カテゴリに、コードインスペクションが関連付けられた50以上の冗長がリストされています。その中には特別な注意が必要なものもあり、バッチモードで処理することはできません。そのため、クリーンアッププロファイルでコードの冗長性を削除するを選択するたびに自動的に削除できる約30の冗長性を持つコードクリーンアップが残されます。
具体的には、コードクリーンアップ:
  • 除去
    • 冗長な空のコンストラクタ。

    • 列挙型の明示的な整数型指定子。

    • for ステートメントのtrue 指定子。

    • 冗長な型キャスト

    • 引数のない属性の括弧は冗長です。

    • 引数のない基本クラスコンストラクタへの明示的な呼び出し。

    • 冗長なブール比較。

    • 単一の式を持つコレクション初期化子からの冗長な波括弧。

    • 冗長明示的デリゲート作成式。

    • オブジェクト/コレクション初期化子からの空の引数リスト。

    • 冗長な new キーワード。

    • 1つの型が1つの型を持つ型宣言の冗長 partial 修飾子。

    • 冗長な unsafe コンテキストとステートメント。

    • 冗長な object.ToString() 呼び出し(たとえば、文字列との連結または string.Format() 呼び出しの引数として)。

    • 冗長 string.ToCharArray() コール。

    • 引数型の冗長な指定。

    • メソッド本体でパラメータが使用されていない匿名メソッドのシグニチャ。

    • 参照されていないラベル。

    • 冗長フィールド初期化子。

    • 匿名型のプロパティの冗長な明示的な名前。

    • 値の型が暗黙的にnullableに変換可能な冗長なnullable型。

  • 変換
    • Nullable<T> から T?への短縮形のNullable型)。

    • 拡張メソッドが静的メソッドとして呼び出される拡張メソッド呼び出しに対する静的メソッド呼び出し。

    • 配列の型をイニシャライザから推定できるとき、暗黙的に型定義された配列作成式にします。

  • 修正点:
    • 型の静的メンバーに、その型の派生メンバーを介してアクセスする出現箇所が発生します。

可能であれば、自動プロパティを使用する

単純なプロパティと対応するバッキングフィールドを自動プロパティで置き換えます。詳細は、自動プロパティの使用を参照してください。

可能であれば、フィールドを読み取り専用にする

宣言またはコンストラクタで割り当てられ、読み込み用途のみを持つフィールドに 'readonly'キーワードを追加します。詳細は、フィールドを読み取り専用にするを参照してください。

可能であれば、自動プロパティを取得専用にする

コンストラクタ/初期化子から初期化され、書き込み用途がない自動プロパティの冗長 set アクセサを削除します。この作業はC# 6.0でのみ有効です。デフォルトでは、ReSharperは関連するコンパイラに基づいてC#のバージョンを自動的に検出します。ただし、ターゲットC#のバージョンを明示的に指定することはできません。ソリューションエクスプローラでプロジェクトを右クリックし、コンテキストメニューからプロジェクト項目のプロパティを編集するを選択し、C#言語レベルセレクタを使用します。

修飾子の配置

修飾型メンバーの規則を適用します。このルールは、ReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: オプションのメンバー限定子を参照してください。

組み込み型参照を修正する

組み込み型名(C#キーワードまたはCLR型名)のルールを適用します。このルールはReSharperオプションのコード編集 | C# | コード・スタイルページで設定できます。詳細は、コードの構文スタイル: 組み込み型参照を参照してください。

'using'ディレクティブを最適化する

次の設定可能なオプションを提供します。
  • 'using'ディレクティブを最適化する
    コード編集 | C# | 名前空間のインポートおよびコード編集 | C# | コード・スタイルオプションページで設定できるルールを実装し、名前空間インポートディレクティブをソートすることによって、未使用の名前空間インポートディレクティブを削除します。すべての System.* 名前空間が先になり、ドットの後の2番目の単語によってアルファベット順にソートされます。他のすべての名前空間はアルファベット順に次に表示されます。詳細については、コードの構文スタイル: 名前空間のインポートを参照してください。

  • 地域で 'using'ディレクティブを利用する
    このチェックボックスをオンにすると、クリーンアップ中にすべての名前空間インポートディレクティブをラップするための新しい領域が作成されます。

  • 領域名
    地域ラッピング名前空間インポートディレクティブの名前を指定できます。

修飾された参照を短くする

名前空間をインポートし、ReSharperオプションのコード編集 | C# | コード・スタイルページで設定された設定を実装することによって、可能な限り短い名前で完全修飾名を置き換えます。

コードの再フォーマット

ReSharperオプションのコード編集 | C# | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

埋め込みXMLドキュメントコメントの再フォーマット

ReSharperオプションのコード編集 | XML文書コメント | スタイルの書式設定ページで設定可能なオプションに従って、XMLドキュメントコメントを再フォーマットします。

ReSharperは次のような単純なコメントを再フォーマットしないことに注意してください:
// A plain single-line comment
または
/* A plain multi-line comment */

ASP.NET

@Registerディレクティブを最適化する

未使用の @Register 指令を削除します。

HTML

コードの再フォーマット

ReSharperオプションのコード編集 | HTML | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

属性値を引用符で正規化する

優先引用符スタイルを適用します。一重引用符( ')または二重引用符( ")は、ReSharperオプションのコード編集 | HTML | コード・スタイルページで設定できます。

JavaScript / TypeScript

ステートメントを終了する

JavaScript文をセミコロンで終了します。

文字列リテラルの前後で引用符を正規化する

一重引用符( ')または二重引用符( ")を使用します。この設定は、ReSharperオプションのコード編集 | TypeScript | コード・スタイルページで設定できます。詳細については、引用スタイルを参照してください。

可能であれば 'var'を 'let' / 'const'に修正してください

let および const は、以下の場合にサポートされています。
  • JavaScriptコードでは、ターゲットのJavaScript言語レベルがECMAScript 6(ReSharperオプションのコード編集 | JavaScript | インスペクションページで選択できます)

  • TypeScript 1.4では、プロジェクトプロパティでターゲットECMAScript 6が選択されている場合。

  • TypeScript 1.5以上。

ブロックスコープ変数を可能な限りの内部スコープに移動する

外部スコープに他の用途がない場合、関数/複合ステートメントなどの外部で定義された変数をその使用箇所に近づけます。

文字列の連結をテンプレート文字列に変換する

JavaScriptコードでは、ターゲットJavaScript言語レベルがECMAScript 6(ReSharperオプションのコード編集 | JavaScript | インスペクションページで選択できます)、TypeScript 1.4以上であれば、このオプションは文字列の連結をテンプレート文字列(英語)に変換します: 例えば:

var str1 = "Hello,"; var str2 = "Test: " + str1 + " World1";
に変換されます
const str1 = "Hello, "; const str2 = `Test: ${str1} World1`;

コードの再フォーマット

ReSharperオプションのコード編集 | JavaScript | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

埋め込みXMLドキュメントコメントの再フォーマット

ReSharperオプションのコード編集 | XML文書コメント | スタイルの書式設定ページで設定可能なオプションに従って、XMLドキュメントコメントを再フォーマットします。

ReSharperは次のような単純なコメントを再フォーマットしないことに注意してください:
// A plain single-line comment
または
/* A plain multi-line comment */

TypeScript特異的

重複修飾子を削除する

冗長タイプ名修飾子を削除するには、このオプションを使用します。

'インポート'ステートメントを最適化する

このオプションを使用して、ReSharperオプションのコード編集 | TypeScript | インスペクションページで設定可能な設定に従って、冗長な「インポート」ステートメントまたは完全修飾名を削除します。

参照コメントを最適化する

冗長参照コメントを削除するには、このオプションを使用します。

「パブリック」プレゼンスをコードスタイルと同期させる

このオプションを使用すると、ReSharperオプションのコード編集 | TypeScript | インスペクションページで設定可能な設定に従って、明示的な「public」修飾子を追加または削除できます。

必要に応じて明示的な「任意の」型注釈を追加する

このオプションを使用すると、ReSharperオプションのコード編集 | TypeScript | インスペクションページで設定可能な設定に従って、タイプに明示的な「任意の」注釈を追加できます。

タイプ注釈の存在をコードスタイルと同期させる

このオプションを使用すると、ReSharperオプションのコード編集 | TypeScript | インスペクションページで設定可能な設定に従って、明示的/暗黙的なタイプを適用できます。

必要に応じて 'require'に相対パススタイルを修正する

require キーワードの相対パスに'require'の相対ファイル参照スタイルコードスタイルプリファレンスを適用します。例: import X = require("file1") または import X = require("./file1")。この環境設定は、ReSharperオプションのコード編集 | TypeScript | インスペクションページで設定できます。

アサーションの代わりに 'as'を使用する

置換

var bar = <string> foo;
次で
var bar = foo as string;
これはJSX構文のあいまいさを避けるために推奨される方法です。

XAML

空のタグを縮小する

タグが空の場合は終了タグを削除します。

XML

コードの再フォーマット

ReSharperオプションのコード編集 | XML | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

C++

コードの冗長性

  • 上書きする関数に 'override'指定子を追加する

  • インクルードファイルパスのスラッシュを修正

  • ブール値のコンテキスト内の定数をブールリテラルに置き換える

  • ポインターコンテキストのゼロ値式をnullptrに置き換える

  • スマートポインタコンストラクタをmake関数に置き換える

  • 冗長な 'else' キーワードを除去

  • 重複修飾子を削除する

  • 重複した文を削除する

  • 重複した 'typename'と 'template'キーワードを削除する

  • メンバ初期化子を初期化の順にソートする

  • 到達不能なコードを削除する

  • 未使用の#includeディレクティブを削除する

  • 可能であれば、メンバ関数を 'const'にする

  • 可能であれば、メンバー関数を静的にする

Clang-tidy修正を適用する

このノードでは、Clang-Tidyチェックに従って適用されるすべての修正または特定の修正を選択できます。

ReSharperオプションのコード・インスペクション | インスペクション重大度ページで対応するインスペクションがオフになっていても、選択したフィックスが適用されます。一度に多数のチェックを有効にする場合は注意してください。コードクリーンアップでは、Clang-Tidyは特定のファイルに対して一度だけ実行されるため、複数の修正が同じコードブロックに接触すると、変更が互いに競合する可能性があります。

コードの再フォーマット

ReSharperオプションのコード編集 | C++ | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

ファイルヘッダを更新する

ReSharperオプションのコード編集 | ファイルヘッダテキストページで設定できるファイルヘッダーコメントを挿入または更新します。詳細は、ファイルヘッダースタイルを参照してください。

Visual Basic .NET

コードの冗長性を削除する

C#言語と同じように冗長コードを削除します。

'import'ディレクティブを最適化する

ReSharperオプションのコード編集| Visual Basic .NET |名前空間のインポートページで設定されたルールを実装する、未使用の名前空間インポートディレクティブを削除します。

修飾された参照を短くする

名前空間をインポートし、ReSharperオプションのコード編集| VB.NET | インスペクションページで設定された設定を実装することによって、可能な限り短い名前で完全修飾名を置き換えます。

コードの再フォーマット

ReSharperオプションのコード編集| VB.NET |コードスタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

埋め込みXMLドキュメントコメントの再フォーマット

ReSharperオプションのコード編集 | XML文書コメント | スタイルの書式設定ページで設定可能なオプションに従って、XMLドキュメントコメントを再フォーマットします。

ReSharperは次のような単純なコメントを再フォーマットしないことに注意してください:
// A plain single-line comment
または
/* A plain multi-line comment */

CSS

アルファベット順のプロパティ

CSSプロパティをアルファベット順に並べ替えます。

コードの再フォーマット

ReSharperオプションのコード編集 | CSS | コード・スタイルページで設定できる設定に従って、コードを再フォーマットします。詳細は、コードの書式設定ルールの管理と適用を参照してください。

最終変更日: 2018年9月24日

関連事項