ReSharper 2018.1ヘルプ

コード要素の並べ替え

ReSharper | 編集 | コードの再配置
Ctrl+Shift+Alt

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.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is availableFeature is availableFeature is not availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is availableFeature is not availableFeature is available

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

最終変更日: 2018年7月11日

関連事項