ReSharper 2018.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は関数のすべての用途の引数を確実に変更するシグネチャーの変更リファクタリングを提案します。

    • プロパティーのセッターとゲッターの上下

  • ステートメント
    • 左辺と右辺の代入文の一部

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

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

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

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

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

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

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

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

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

    • 問合せ式の上下の節

  • その他の要素
    • ジェネリック型/メソッド宣言の型パラメータ

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

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

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

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

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

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

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

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

Language: C#

Language: VB.NET

Language: C++

Language: HTML

Language: ASP.NET

Language: Razor

Language: JavaScript

Language: TypeScript

Language: CSS

Language: XML

Language: XAML

Language: Resx

Language: Build Scripts

Language: Protobuf

Language: JSON

Feature is available

Feature is available

Feature is not available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is available

Feature is not available

Feature is available

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

最終更新日: 2019年3月12日

関連事項