ReSharper 2020.3 ヘルプ

コード要素の並べ替え

ReSharper | 編集 | コードの再配置
Ctrl+Shift+Alt + Up/Down/Left/Right
または
Ctrl+Shift+Alt + H/J/K/L

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

仕組み

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

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

Rearranging code: selecting movable elements

上へ移動および下へ移動コマンドは非常に単純です。これらのコマンドは、特定のスコープ内の要素を、このスコープ内の他の要素に対して相対的に上下に移動できます。例:ファイル内のタイプを上下に移動したり、タイプ内のタイプメンバーを移動したり、タイプメンバーまたは複合ステートメント内のステートメントを移動したりできます。
現在の要素がそのスコープの最初または最後である場合、ReSharper では、up / down コマンドを使用してそれをさらに移動することはできません。

左に移動および右に移動コマンドは、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 は上下に指示します

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

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

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is available in Visual Basic .NETRearrange code in C++Feature is available in HTMLFeature is available in ASP.NETFeature is available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is available in CSSFeature is available in XMLFeature is available in XAMLFeature is available in Resource filesFeature is available in build script filesFeature is not available in ProtobufFeature is available in JSON

C# の機能の使用方法については、こちらの説明と例を参照してください。他言語の詳細については、言語による ReSharper の対応するトピックを参照してください。

関連ページ:

ファイル構造ウィンドウ

ReSharper では、ファイル構造ウィンドウを使用して現在のドキュメントの構造をナビゲートできます。これにより、大きなファイルでのナビゲーションが大幅に簡略化されます。ウィンドウはエディターと同期しています。別のエディタータブに切り替えると、ウィンドウに対応するファイルの構造が表示されます。ファ...

選択の拡張 / 縮小

//選択範囲の拡大コマンドを使用すると、拡張論理ブロックのコードを連続して選択できるため、コード内の任意の式を簡単に選択できるようになります。その場合、その中にキャレットを置き、 を数回押します。このコマンドはメインメニューのでも利用できます。ReSharper は、外側の宣言にジャンプコマンドも提...

タイプを外部スコープのリファクタリングに移動する

このリファクタリングは、ネストされた型を 1 レベル上に移動できます。ネストされたタイプが親タイプのメンバーを使用していても、対応するすべての参照は自動的に更新されます。型を外部スコープに移動する次のいずれかの方法でネストされたタイプを選択します。エディターで、ネストされた型の名前でキャレットを設定...

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

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

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

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものには、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされるすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)...

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

ReSharper は、さまざまなパターンに従って C# ファイルのタイプおよびタイプメンバーを並べ替えることができます。パターンは、ファイル内のアイテムを並べ替えたり、指定された領域でラップしたりするときに評価される多くの条件と制約を記述することができます。ファイルレイアウトの設定は、レイヤーベー...