ReSharper 2021.1 ヘルプ

コード要素の並べ替え

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 は上下に指示します

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

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

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

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

関連ページ:

ファイル構造ウィンドウ

ReSharper では、ファイル構造ウィンドウを使用して現在のドキュメントの構造をナビゲートできます。これにより、大きなファイルでのナビゲーションが大幅に簡略化されます。ウィンドウはエディターと同期しています。別のエディタータブに切り替えると、ウィンドウに対応するファイルの構造が表示されます。ファイルを簡単にナビゲートするために、プリプロセッサーディレクティブはデフォルトで非表示になっています。ファイル構造ウィンドウから、さらに多くのアクションにアクセスできます。利用可能なコマンドを確認するに...

選択の拡張 / 縮小 | ReSharper

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

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

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

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

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

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

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

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

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