ReSharper 2024.2 ヘルプ

コードのクリーンアップ

ReSharper を使用すると、フォーマットやその他のコードスタイル設定を一括モードで適用して、1 つ以上のファイル、プロジェクト、ソリューション全体でコードスタイル違反を即座に排除できます。

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

コードのクリーンアップには、ニーズに応じてさまざまな場合に適用できるさまざまな設定(プロファイル)があります。提供時の状態で使用可能な 3 つのデフォルトプロファイルがあります。

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

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

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押します。

  2. クリーンアッププロファイル設定ページに移動します: コード編集 | コードのクリーンアップ | プロファイル

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

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

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

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

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

  8. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

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

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

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

選択範囲またはファイルをクリーンアップする

  1. コードをクリーンアップするスコープを選択します。

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

    • ファイル内のコードをクリーンアップするには、ファイル内の任意の場所にキャレットを置きます。

  2. 選択範囲をクリーンアップする場合は、Alt+Enter を押して再フォーマットとクリーンアップ | [cleanup profile] を選択します。

    または、以下の手順に従うこともできます。これは、選択とファイルの両方で機能します。

  3. 以下のいずれか 1 つを実行します:

    • Control+Alt+F を押すか、メインメニューから ReSharper | 編集 | コードのクリーンアップ…を選択します。

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

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

  5. 使用可能なプロファイルがどれも適切でない場合は、既存のプロファイルの 1 つを選択し、複製をクリックして新しいカスタムプロファイルを作成します。

    このダイアログでクリーンアッププロファイルを作成または変更すると、変更内容はスマート保存ロジックを使用して保存されることに注意してください。変更を共有設定レイヤーに保存する必要がある場合は、ReSharper オプションのコード編集 | コードのクリーンアップページで変更を行い、保存先をクリックして、目的の設定レイヤーを選択します。

    ReSharper. Code Cleanup dialog
  6. 実行をクリックして、選択したスコープのコードをクリーンアップします。

  7. デフォルトでは、エディターで開かれたファイルはクリーンアップ後に自動的に保存されません。クリーンアップ後の自動保存を有効にするには、ReSharper オプション Alt+R, Oコード編集 | コードのクリーンアップ | 一般ページで「ファイル全体にクリーンアップを適用した後で保存する」を選択します。

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

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

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

  2. 以下のいずれか 1 つを実行します:

    • Control+Alt+F を押すか、メインメニューから ReSharper | 編集 | コードのクリーンアップ…を選択します。

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

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

  4. 実行をクリックして、選択したスコープのコードをクリーンアップします。

変更をファイルに保存するたびにコードクリーンアップを実行して、編集内容が常にコードスタイルに準拠していることを確認できます。

変更の保存時にコードクリーンアップを自動的に実行する

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押します。

  2. クリーンアッププロファイル設定ページに移動します: コード編集 | コードのクリーンアップ | プロファイル

  3. 保存時に適用するコードクリーンアッププロファイルを選択し、デフォルトに設定をクリックします(デフォルトのプロファイルはサイレントクリーンアップにも使用されます)。

  4. コード編集 | コードのクリーンアップ | 一般オプションページに移動し、ファイルの保存時にクリーンアップを自動的に実行するを選択します。

    オプションで、ファイルマスクによって特定のファイルへの自動クリーンアップを制限できます。ファイルの変更された部分のみを選択して、変更によって影響を受けるコードにクリーンアップが適用され、ファイル内の残りのコードが変更されないようにすることもできます。

  5. ダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

  6. 次回編集を終了してファイル (Ctrl+S) またはすべてのファイル (Ctrl+Shift+S) を保存すると、ReSharper は選択したプロファイルを使用して影響を受けるファイルをクリーンアップします。デフォルトのクリーンアッププロファイルが選択されていない場合、ReSharper はプロファイルの 1 つを選択するよう求めます。

最近開いたまたは変更したファイルでコードのクリーンアップを実行することもできます。

最近変更されたファイルをクリーンアップする

  1. ReSharper | 編集 | 最近のファイルをクリーンアップのサブメニューを展開します。

  2. 開いているすべてのファイルに対してクリーンアップを実行するか、最近変更したすべてのファイルに対してクリーンアップを実行するかを選択します。

    クリーンアップ ... アクションではクリーンアッププロファイルを選択するように求められ、サイレントクリーンアップ ... アクションでは ReSharper オプション Alt+R, Oコード編集 | コードのクリーンアップ | プロファイルページで選択されたデフォルトのクリーンアッププロファイルが使用されます。

  3. 最近変更されたファイルをクリーンアップすることを選択した場合、ReSharper は、選択したクリーンアッププロファイルを、過去 7 日間に編集されたソリューション内のすべてのファイルに適用します。

    コード編集 | コードのクリーンアップ | 一般オプションページで、変更が最近のものと見なされる日数を変更できます。

    ファイルの変更された部分のみを選択して、変更によって影響を受けるコードにクリーンアップが適用され、ファイル内の残りのコードが変更されないようにすることもできます。

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

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

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

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押します。

  2. クリーンアッププロファイル設定ページに移動します: コード編集 | コードのクリーンアップ | プロファイル

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

  4. オプションダイアログで保存をクリックして変更を適用し、ReSharper に変更を保存する場所を選択させるか、保存先セレクターからこのレイヤーを選択して特定の設定レイヤーに変更を保存します。詳細については、「resharper 設定の管理と共有」を参照してください。

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

  1. 以下のいずれか 1 つを実行します:

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

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

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

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

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

コードの整形

C#

コードの整形

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

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

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

ReSharper は、次のようなプレーンコメントを再フォーマットしないことに注意してください。

// A plain single-line comment

または

/* A plain multi-line comment */

C++

コードの整形

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

Visual Basic

コードの整形

ReSharper オプションのコード編集 | Visual Basic | スタイルのフォーマットページで構成できる設定に従ってコードを再フォーマットします。詳細については、「フォーマットルールを適用する」を参照してください。

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

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

ReSharper は、次のようなプレーンコメントを再フォーマットしないことに注意してください。

// A plain single-line comment

または

/* A plain multi-line comment */

XML

コードの整形

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

HTML

コードの整形

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

CSS

コードの整形

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

Javascript/Typescript

コードの整形

ReSharper オプションのコード編集 | Javascript/Typescript | スタイルのフォーマットページで構成できる設定に従ってコードを再フォーマットします。詳細については、「フォーマットルールを適用する」を参照してください。

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

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

ReSharper は、次のようなプレーンコメントを再フォーマットしないことに注意してください。

// A plain single-line comment

または

/* A plain multi-line comment */

構文スタイル

C#

'var' スタイルを適用

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

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

型修飾子のルールを適用します - internal 修飾子を明示的に使用するかどうか。このルールは、ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで構成できます。詳細については、コードの構文スタイル: 修飾子を参照してください。

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

型メンバー修飾子のルールを適用します (private 修飾子を明示的に使用するかどうか)。このルールは、ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで構成できます。詳細については、コードの構文スタイル: 修飾子を参照してください。

修飾子の並べ替え

型 / メンバー修飾子の優先順序を適用します。このルールは、ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで構成できます。詳細については、コードの構文スタイル: 修飾子を参照してください。

引数スタイルを適用する (名前付き vs. 位置)

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

冗長なカッコを除去

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

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

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

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

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

属性の括弧を追加 / 削除します

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

コードボディスタイルを適用する (式本体とブロック本体)

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されているように、型メンバーの本体 (式本体またはブロック本体) の設定を適用します。詳細については、コード構文スタイル: タイプメンバーのボディを参照してください。

末尾のコンマを配置する

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されているように、複数の項目および類似の構造 (オブジェクト、配列、コレクション初期化子、列挙型、switch 式) を含む宣言の末尾のコンマの設定を適用します。詳細については、コードの構文スタイル: 末尾のコンマを参照してください。

オブジェクト作成スタイルを適用します(「new()」と「新しい T()」)

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されているように、C# 9.0 以降でターゲット型 new 演算子を使用するための設定を適用します。詳細については、コードの構文スタイル: オブジェクトの作成(「new()」と「新しい T()」)を参照してください。

デフォルト値スタイルを適用します('default' vs'default(T) ')

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されているように、デフォルト値式でオプションの型指定を使用するための設定を適用します。詳細については、コードの構文スタイル: デフォルト値の式('default' と 'default(T)')を参照してください。

名前空間を配置する (ファイルスコープとブロックスコープ)

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されている単一の名前空間を含むファイルでファイルスコープの名前空間宣言を使用するための設定を適用します。詳細については、コード構文スタイル: ファイルスコープの名前空間を参照してください。

null チェックパターンのスタイルをアレンジ

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで指定されているように、型テストの 'is' 演算子 (not null または { } を使用) を使用して式の null をチェックする推奨方法を適用します。詳細については、コードの構文スタイル: null チェックパターンを参照してください。

修飾子の配置

型メンバーを修飾するためのルールを適用します。ルールは、ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで構成できます。詳細については、コードの構文スタイル: オプションのメンバー限定子を参照してください。

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

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

C/C++

単一ステートメントの中括弧を追加 / 削除します

if ステートメントの単一のネストされたステートメントとさまざまな種類のループステートメントを囲む中括弧の設定を適用します。ルールは、ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで構成できます。

「自動」スタイルを適用する

ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで指定されているように、変数型で auto 指定子を使用するための設定を適用します。

関数宣言スタイルを適用する (通常のリターンタイプとトレーリングリターンタイプ)

ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで指定されているように、関数宣言に末尾または通常の戻り値の型の推奨スタイルを適用します。

ネストされた名前空間スタイルを適用する

ネストされた名前空間に C++17 構文を強制するルールを適用します。これにより、より簡潔な方法で複数レベルの名前空間を宣言できます。このルールは、ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで構成できます。

型エイリアススタイルを適用する (typedef と type エイリアス)

ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで指定されているように、型シノニムを定義するための推奨方法を適用します。

cv 修飾子を配置します

cv 修飾子の優先順序を適用します。つまり、const キーワードを、それが適用されるタイプの前に配置するか後に配置するか、および const 修飾子と volatile 修飾子のどちらを最初に配置するかを指定します。ルールは、ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで設定できます。

include ディレクティブにスラッシュを配置します (スラッシュとバックスラッシュ)

ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで指定されているように、#include ディレクティブのパス区切り文字の推奨スタイルを適用します。

関数のオーバーライドに指定子(「仮想」および / または「オーバーライド」)を配置します

オーバーライド関数に推奨されるスタイルを適用します。オーバーライド関数とデストラクタに必要な指定子を指定します。ルールは、ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで構成できます。

インクルードディレクティブの並べ替え

#include ディレクティブの並べ替えと再グループ化のルールを適用します。必要な順序は、ReSharper オプション Alt+R, Oコード編集 | C++ | #include の順序ページで設定できます。詳細については、インクルードのソートを参照してください。

メンバー初期化子をソート

ReSharper オプション Alt+R, Oコード編集 | C++ | 構文スタイルページで指定されているコンストラクター初期化子リストに従って、メンバー初期化子の順序を適用します。

XAML

空のタグを折りたたむ

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

HTML

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

優先される引用符スタイルを適用します: 一重引用符 ' または二重引用符 " これは、ReSharper オプション Alt+R, Oコード編集 | HTML | 構文スタイルページで構成可能です。

Javascript/Typescript

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

優先される引用符スタイルを適用します: 一重引用符 ' または二重引用符 " これは、ReSharper オプション Alt+R, Oコード編集 | Javascript/Typescript | 構文スタイルページで設定できます。詳細については、引用スタイルを参照してください。

ステートメント終了の適用

JavaScript、TypeScript、JSON のステートメントの最後にオプションのセミコロン ; を追加します。

TypeScript 固有

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

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

必要に応じて明示的な「任意の」型アノテーションを追加する

このオプションを使用すると、ReSharper オプション Alt+R, Oコード編集 | TypeScript | 構文スタイルページで構成可能な設定に従って、明示的な「any」アノテーションを型に追加できます。

型アノテーションの存在をコードスタイルと同期させる

このオプションを使用すると、ReSharper オプション Alt+R, Oコード編集 | TypeScript | 構文スタイルページで構成可能な設定に従って、明示的 / 暗黙的な型指定を強制できます。

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

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

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

置換

var bar = <string> foo;

with

var bar = foo as string;

これは JSX 構文のあいまいさを避けるために推奨される方法です。

インポートの最適化

C#

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

  • 未使用の名前空間インポートディレクティブを削除します

    ReSharper オプション Alt+R, Oコード編集 | C# | 名前空間のインポートページで設定できるルールを実装することにより

  • コード編集 | C# | 構文スタイルおよびコード編集 | タイプインポートオプションのページで指定されているように、タイプをインポートするときに名前空間のインポートディレクティブと完全修飾名を配置するための環境設定を適用します。

  • 名前空間のインポートディレクティブを並べ替えます。すべての System.* 名前空間が最初に配置され、ドットの後の 2 番目の単語でアルファベット順に並べ替えられます。次に、他のすべての名前空間がアルファベット順に表示されます。

詳細は、コードの構文スタイル: 名前空間のインポートを参照してください。

領域で 'using' ディレクティブを利用する

このチェックボックスが選択されている場合、すべてのネームスペースインポートディレクティブをラップするための新しい領域がクリーンアップ中に作成されます。

領域名

名前空間インポートディレクティブをラップする領域の名前を指定することを許可します。

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

ReSharper オプション Alt+R, Oコード編集 | C# | 構文スタイルページで設定された設定に従って、名前空間をインポートすることで、可能な場合は完全修飾名を短い名前に置き換えます。

Visual Basic

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

  • 未使用の名前空間インポートディレクティブを削除します

    ReSharper オプション Alt+R, Oコード編集 | Visual Basic | 名前空間のインポートページで設定できるルールを実装することにより

  • コード編集 | Visual Basic | 構文スタイルおよびコード編集 | タイプインポートオプションのページで指定されているように、タイプをインポートするときに名前空間のインポートディレクティブと完全修飾名を配置するための環境設定を適用します。

  • 名前空間のインポートディレクティブを並べ替えます。すべての System.* 名前空間が最初に配置され、ドットの後の 2 番目の単語でアルファベット順に並べ替えられます。次に、他のすべての名前空間がアルファベット順に表示されます。

詳細は、コードの構文スタイル: 名前空間のインポートを参照してください。

領域で 'using' ディレクティブを利用する

このチェックボックスが選択されている場合、すべてのネームスペースインポートディレクティブをラップするための新しい領域がクリーンアップ中に作成されます。

領域名

名前空間インポートディレクティブをラップする領域の名前を指定することを許可します。

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

ReSharper オプション Alt+R, Oコード編集 | Visual Basic | 構文スタイルページで設定された設定に従って、名前空間をインポートすることで、可能な場合は完全修飾名を短い名前に置き換えます。

XAML

冗長なネームスペースエイリアスを削除する

クリーンアップのスコープ内のすべての冗長な名前空間エイリアスを削除します。冗長エイリアスもコードインスペクションで検出され、クイックフィックスで削除できます。

TypeScript 固有

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

このオプションを使用すると、ReSharper オプション Alt+R, Oコード編集 | TypeScript | 構文スタイルページで構成可能な設定に従って、冗長な「import」ステートメントまたは完全修飾名を削除できます。

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

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

ASP.NET

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

未使用の @Register ディレクティブを削除します。

コードの再配置

C#

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

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

CSS

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

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

冗長性を取り除き、最適化を適用する

C#

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

ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページでは、ほとんどの言語のコードの冗長性カテゴリで、ReSharper はコードインスペクションが関連付けられているケースを数十件リストします。これらの中には特別な注意が必要なケースもあり、バッチモードで処理することはできませんが、クリーンアッププロファイルでコードの冗長性を削除するを選択すると、そのほとんどは自動的に修正されます。

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

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

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

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

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

コンストラクター / イニシャライザーから初期化され、書き込みの使用がない自動プロパティの冗長な set アクセサーを削除します。

デフォルトでは、ReSharper は、関連付けられたコンパイラーに基づいて C# バージョンを自動的に検出します。ただし、プロジェクトのターゲット C# バージョンを明示的に指定できます。ソリューションエクスプローラーでプロジェクトを右クリックし、コンテキストメニューからプロジェクト項目のプロパティを編集するを選択して、C# 言語レベルセレクターを使用します。

ソリューション内のすべてのプロジェクトに C# バージョンを設定するには、ここで説明するように、ソリューションディレクトリの Directory.Build.props ファイルでそれを指定します。

C/C++

必須の 'typename' および 'template' キーワードを追加してください

欠落していた typename および template キーワードを追加します。

宣言と代入を結合する

ローカル変数が読み取られる前にすべてのパスで再割り当てされる場合の宣言と割り当てを結合します。

ローカル変数を const にする

不変にできるローカルスコープ内のオブジェクトに const を追加します。

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

含まれているオブジェクトの状態を変更しないメンバー関数に const を追加します。

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

メンバー関数を static にします。

冗長なキャストの除去

冗長なキャスト式を削除します。

冗長な 'else' キーワードの除去

コンテキスト内で冗長な else キーワードを削除します。

冗長な精巧な型指定子を削除します

新しいクラスの宣言に使用されない場合、またはよりローカルな非型宣言によって隠された以前に宣言された構造体を参照するために使用されていない場合、冗長な詳細型指定子を削除します。

冗長なラムダパラメーターリストを削除する

パラメーターのないラムダ内の冗長な () を削除します。

冗長メンバー初期化子を削除する

対応するデフォルトのメンバー初期化子を複製するコンストラクター内のメンバー初期化子を削除します。

冗長なカッコを除去

コンテキスト内で冗長な括弧を削除します。

重複修飾子を削除する

コンテキスト内で冗長な修飾子を削除します。

余分な指定子を削除する

コンテキスト内で冗長な指定子を削除します。

冗長なステートメントの除去

コンテキスト内で冗長なステートメントを削除します。

冗長なテンプレート引数を削除する

C++17 クラステンプレート引数推論ルールに従って言語によって推論できる冗長なテンプレート引数を削除します。

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

コンテキスト内で冗長な typename および template キーワードを削除します。

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

決して実行されない不要なコードを削除します。

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

使用されていない #include ディレクティブを削除します。

未使用のラムダキャプチャーを削除する

ローカル変数がラムダによってキャプチャーされたがラムダ本体内で使用されていない場合、未使用のキャプチャーを削除します。

C スタイルおよび機能スタイルのキャストを静的キャストに置き換えます

C スタイルのキャスト、reinterpret_cast、関数型のキャストを static_cast に置き換えます。

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

ブール値コンテキストで整数定数を true/false に置き換えます。

if ステートメントを定数条件で 'if constexpr' に置き換えます

条件がコンパイル時の定数式の場合、if ステートメントを if constexpr に置き換えます。

接尾辞演算子を接頭辞バリアントで置き換える

後置演算子をその接頭辞のバリアントに置き換えます。

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

スマートポインターコンストラクターを標準 (make_unique/make_shared) または Unreal 固有 (MakeShared/MakeUnique) のスマートポインター作成関数に置き換えます。

可能であれば、throw 式を rethrow に置き換えてください。

throw 式を更新して、catch ブロックで処理できない例外をキャッチしたときに再スローします。

型トレイトを対応するテンプレートエイリアスまたは変数テンプレートに置き換えます

C++14 エイリアステンプレートを使用して C++11 タイプのトレイト式を短縮します。

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

ポインターコンテキストでゼロ定数を nullptr に置き換えます。

'tie(..)' を構造化バインディング宣言に置き換えます

構造化バインディング宣言を持つタプルまたはペアをアンパックするための std::tie() または boost::tie() を置き換えます。

可能な場合は、連想コンテナーに「contains」を使用します

find または count を C++20 contains 関数に置き換えます。

remove-erase イディオムの代わりに、「std::erase」/「std::eraseif」を使用します

古い消去削除イディオムを、STL コンテナーから要素を消去するための C++20 std::erase または std::erase_if ライブラリ関数に置き換えます。

Visual Basic

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

ReSharper オプション Alt+R, Oコードインスペクション | インスペクション重大度ページでは、ほとんどの言語のコードの冗長性カテゴリで、ReSharper はコードインスペクションが関連付けられているケースを数十件リストします。これらの中には特別な注意が必要なケースもあり、バッチモードで処理することはできませんが、クリーンアッププロファイルでコードの冗長性を削除するを選択すると、そのほとんどは自動的に修正されます。

XAML

冗長な「フリーズ」属性を削除します

コンテキストで冗長な Freeze 属性を削除します。

冗長な修飾子属性を削除します

コンテキストで冗長な modifiers 属性を削除します。

冗長な名前属性を削除します

コンテキストで冗長な name 属性を削除します。

冗長リソースを削除

使用されていないリソース参照を削除します

冗長な空のコレクションプロパティ setter を削除します

冗長接続プロパティ setter を削除

attached プロパティの未使用の setter を削除します。

冗長なスタイルプロパティ setter を削除します

style プロパティの未使用の setter を削除します。

禁止されている名前の属性を削除する

コンテキストで許可されていない name 属性を削除します。

冗長な定義を削除する

コンテキスト内で冗長である場合、定義を削除します。

冗長な UpdateSourceTrigger 属性を削除します

コンテキストで冗長な UpdateSourceTrigger 属性を削除します。

冗長モード属性を削除します

コンテキストで冗長な Mode 属性を削除します。

冗長スパン属性を削除します

コンテキストで冗長な span 属性を削除します。

Javascript/Typescript

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

let および const は、以下の場合にサポートされています。

  • JavaScript コードで、ターゲット JavaScript 言語レベルが ECMAScript 6 の場合 (ReSharper オプション Alt+R, Oコード編集 | JavaScript | インスペクションページで選択できます)

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

  • TypeScript 1.5 以降。

let/const を可能な限り最も内側のスコープに移動します

function/compound ステートメントの外側で定義された変数を移動します。外側のスコープに他の使用箇所がない場合は、その使用箇所に近づきます。

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

JavaScript コードでは、ターゲットの JavaScript 言語レベルが ECMAScript 6 (ReSharper オプション Alt+R, Oコード編集 | JavaScript | インスペクションページで選択できます) の場合、および TypeScript 1.4 以降の場合、このオプションは文字列連結をテンプレート文字列に変換します。例:

var str1 = "Hello,"; var str2 = "Test: " + str1 + " World1";

変換されます

const str1 = "Hello, "; const str2 = `Test: ${str1} World1`;

TypeScript 固有

重複修飾子を削除する

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

C#

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

ReSharper オプション Alt+R, Oコード編集 | ファイルヘッダーテキストページまたは file_header_template EditorConfig プロパティを使用して構成できるファイルヘッダーコメントを挿入または更新します。詳細については、ファイルヘッダースタイルを参照してください。

C/C++

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

ReSharper オプション Alt+R, Oコード編集 | ファイルヘッダーテキストページまたは file_header_template EditorConfig プロパティを使用して構成できるファイルヘッダーコメントを挿入または更新します。詳細については、ファイルヘッダースタイルを参照してください。

外部クリーンアップツールを実行する

C/C++

Clang-tidy 修正を適用する

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

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

関連ページ:

CleanupCode コマンドラインツール

CleanupCode は無料のクロスプラットフォームコマンドラインツールであり、プロジェクトまたはソリューションでコードのクリーンアップ(フォーマットの修正、構文スタイルの適用、冗長性の削除など)を実行して、コードベースを統一することができます。ソリューションやプロジェクトがなくても、指定した .NET ソースファイルのセットを再フォーマットすることもできます。CleanupCode を実行する ReSharper コマンドラインツールをダウンロードします。ダウンロードボタンの横にあるセレクタを...

ネーミングスタイル

ReSharper は、コード内のシンボルの希望する命名スタイルを定義、制御、適用できます。一連のルールがあり、各ルールは一連の制約を持つ特定の識別子を対象とします (たとえば、ルールは静的プライベート読み取り専用フィールドを対象にすることができます)。各ルールには、複合語、アンダースコア、接尾辞、接頭辞などの大文字化を定義する 1 つ以上の関連スタイルを含めることができます。これらのルールは、ReSharper がコード補完およびコード生成機能を使用して新しいコードを生成し、コードテンプレート...

フォーマットルールを適用する

編集および貼り付けられたコードの自動フォーマット:エディターでコードを入力すると、セミコロンを入力するとすぐに ReSharper によって式が再フォーマットされ、閉じ括弧を入力するとすぐにコードブロックが再フォーマットされます必要に応じて、ReSharper オプション Alt+R, O のページでこれらの種類の自動フォーマットを無効にすることができます。ReSharper では、コードを貼り付けるときにフォーマットルールを自動的に適用することもできます。デフォルトでは、貼り付けられたコードは完...

構文スタイル

コードスタイルの側面の 1 つは、互換性のある言語構文構造を使用する方法です。例: 以下の 2 つのメソッド定義は、コンパイラーの観点からは同じですが、構文構造の選択により、それらは異なって見えます。[Conditional(

ファイルヘッダースタイル

コピーライト表示やその他の識別メッセージにファイルヘッダーを使用するのが一般的です。ReSharper を使用すると、デフォルトのヘッダーテキストを構成し、それをソースファイルに自動的に挿入したり、それを使用して既存のファイルヘッダーを置き換えたりすることができます。ReSharper オプションまたは .editorconfig ファイル内でファイルヘッダースタイルを構成し、それをファイルテンプレートで作成された新しいファイルに追加し、コードクリーンアップを使用して既存のファイルにファイルヘッダー...

ReSharper 設定の管理と共有

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