ReSharper 2024.3 ヘルプ

コード要素を再配置する

ReSharper を使用すると、コード内の式、ステートメント、型メンバー、その他の要素をすばやく並べ替えることができます。

使い方

コードを並べ替えるには、Ctrl+Shift+Alt を移動したいコードエレメントまたは選択項目の上に押します。要素を移動することが理にかなっている場合、ReSharper は可能な移動オプションを持つツールチップを表示します。

選択せずにこのコマンドを呼び出すと、ReSharper は可動要素を自動的に選択します。ときどき 2 つの選択が行われることがあります。この場合、1 つの選択は青でハイライトされ、もう 1 つの選択は黄でハイライトされます。例: 関数のパラメーターに対してこのコマンドを呼び出すと、ReSharper は次の 2 つの選択を行います。パラメーター自体は、他のパラメーターに対して左右に移動できます。また、関数全体を他の型のメンバーに対して上下に移動できます:

Rearranging code: selecting movable elements

上へ移動および下へ移動コマンドは非常に単純です。特定のスコープ内の要素を、このスコープ内の他の要素と比較して上下に移動できます。例: ファイル内の型、型内の型メンバー、型メンバー内または複合ステートメント内のステートメントなどを上下に移動できます。

現在の要素がスコープの最初または最後にある場合、ReSharper では上 / 下コマンドを使用してそれ以上移動することはできません。

左に移動および右に移動コマンドは、2 つの目的を果たします。

  • 通常は 1 行で記述される要素を再配置します。例: 左右の属性、関数パラメーター、式のオペランド、割り当てステートメントの一部などを移動できます。左 / 右コマンドは、これらの要素が複数行で記述されている場合でも適用されます。

  • ステートメントを複合ステートメントまたはその直後のリージョン内に移動する(右に移動する)か、ステートメントを複合ステートメントまたはリージョン外に移動します(左に移動する)。

ReSharper は無効な移動を許可しないようにしますが、ロジックまたはコードのコンパイルのいずれかを解除できる場合があります。ReSharper には、タイプを外部スコープに移動リファクタリングシグネチャーの変更リファクタリングなど、コードを安全に再配置するのに役立つ多くのリファクタリングが用意されていることに注意してください。コード要素を移動した後にコードが壊れた場合は、Alt+Enter を押して、使用可能なクイックフィックスを確認してください。ほとんどの場合、アクションリストには適切なリファクタリング権限があります。

適用事例

ReSharper では、以下の方法で要素を移動できます。

  • 型と型メンバー。シンボルに XML コメントが含まれている場合、ReSharper はシンボルとともにシンボルを移動します。

    • 現在のファイル内または包含する宣言内での型の上下

    • タイプ内でメンバーを上下にタイプします

    • 左右のベースタイプ

    • 型パラメーター left と right

    • 型制約を上下に型する

    • 左右の属性

    • 関数宣言のパラメーターを並べ替えると、ReSharper は関数のすべての用途の引数を確実に変更するシグネチャーの変更リファクタリングを提案します。

    • プロパティの setter と getter の上下

  • ステートメント

    • 左辺と右辺の代入文の一部

    • 関数内または複合語内のステートメント

    • 複合文からの文(左)、または直後の複合文への文 (右揃え)

    • switch ステートメント内のセクションを上下に切り替えます

    • if-else、try-catch ステートメントの 1 つの節、1 つのスイッチセクションから別のスイッチセクションへのステートメント

    • try-catch ステートメント内の catch 句を上下に移動

    • 複合文の上下を波括弧で閉じる(貪欲な波括弧)終了波括弧を移動するには、波括弧の外側にキャレットを置き、Ctrl+Shift+Alt を押し、上下の矢印を使用して、現在の複合文の後ろにある文を含めるか、最後の文をその外側に移動します。

    • タイプまたは名前空間の波括弧を開くか閉じることは、「貪欲な波括弧」としても機能します。この場合、ネストされた型 / メンバー / ネームスペースがインクルード / 除外されます。

    • 左と右の式のオペランド

    • コレクションの要素と配列の初期化の左右

    • 問合せ式の上下の節

    • 左右の範囲式オペランド(C# 8)

  • その他の要素

    • ジェネリクス型 / メソッド宣言の型パラメーター

    • 左と右のテンプレート文字列の引数

    • 補間された文字列内の値

    • 行と C スタイルのコメントを上下に

    • #region のブロックが上下に移動し、別の #region ブロックの中に入ったり来たりする

    • #region#endregion は上下に指示します

    • キャレットが上下に配置されているテキストファイルの行

    • テキストファイル内での選択

この機能は、次の言語とテクノロジーでサポートされています。

ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語およびフレームワークセクションの対応するトピックを参照してください。

関連ページ:

構造別にファイルを移動する

ファイル構造ウィンドウ:ReSharper では、ファイル構造ウィンドウを使用して現在のドキュメントの構造を移動でき、大きなファイルでのナビゲーションが大幅に簡素化されます。ウィンドウはエディターと同期されます。別のエディタータブに切り替えると、ウィンドウには対応するファイルの構造が表示されます。ファイル構造ウィンドウを開いて使用するを押すか、メインメニューからを選択します。あるいは、を押して、ポップアップでコマンド名を入力して、そこで選択することもできます。現在のドキュメントの内容はツリー

選択の拡張 / 縮小

選択範囲の拡大コマンドを使用すると、拡張論理ブロックのコードを連続して選択できるため、コード内の任意の式を簡単に選択できるようになります。その場合、その中にキャレットを置き、を数回押します。このコマンドはメインメニューのでも利用できます。選択範囲の縮小は正反対です。このコマンドを適用するには、を押すか、メインメニューのを選択します。キャメルハンプ(ReSharper オプションのページのキャメルハンプを使用するチェックボックス)では、選択の拡張 / 縮小コマンドの動作が少し異なります。キャメ...

型を外部スコープに移動リファクタリング

このリファクタリングは、ネストされた型を 1 レベル上に移動できます。ネストされた型が親型のメンバーを使用していても、対応するすべての参照は自動的に更新されます。型を外部スコープに移動する次のいずれかの方法でネストされた型を選択します。エディターで、ネストされた型の名前にキャレットを置きます。ソリューションエクスプローラーでネストされた型を選択します。ファイル構造ウィンドウウィンドウでネストされた型を選択します。クラスビューでネストされた型を選択します。オブジェクトブラウザーでネストされた型を選...

シグネチャーの変更リファクタリング

このリファクタリングは、メソッド、コンストラクター、プロパティ、インデクサーのシグネチャーに加えることができるいくつかの変更を組み合わせたものです。ReSharper は、宣言内のシグネチャーを変更するとともに、現在のソリューションで変更されたシンボルのすべての使用箇所、ベースシンボル、実装、オーバーライドを検出して更新します。適用される変更:このリファクタリングを使用すると、次の変更を行うことができます。名前の変更戻り値の型を変更するパラメーターの名前と型を変更する

アクションインジケーターとアクションリスト

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケーターは、設定に応じて、アクションバー、テキストエディターの左マージンおよび / また...

ファイルとタイプのレイアウトパターンでメンバーを再配置する

ReSharper は、さまざまなパターンに従って C# ファイルのタイプおよびタイプメンバーを並べ替えることができます。パターンは、ファイル内のアイテムを並べ替えたり、指定された領域でラップしたりするときに評価される多くの条件と制約を記述することができます。レイアウトパターンの紹介:さまざまなコンテキストに適用されるように複数のレイアウトパターンを設定できます(たとえば、クラスとインターフェースにさまざまなパターンを設定できます)。パターンには 2 種類あります。ファイルパターン。すべての...