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

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

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

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

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

    • 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 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の対応するトピックを参照してください。

最終更新日: 2019年7月16日

関連事項

関連ページ:

ファイル構造ウィンドウ

ReSharper | Windows | ファイル構造ReSharperでは、ファイル構造ウィンドウを使って現在のドキュメントの構造をナビゲートすることができます。これは大きなファイルでのナビゲーションを非常に簡単にします。ウィンドウはエディターと同期しています。別のエディタータブに切り替えると、...

選択の拡張/縮小

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

包含宣言の選択

ReSharper_SelectContainingDeclaration選択範囲の拡張コマンドでは、単語、文またはコードブロックを正確に選択することができますが、キャレットが存在する現在のメンバーまたはタイプ全体を選択するだけでよい場合もあります。ReSharperは1回のキーストロークでこれを行...

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

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

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

ReSharper | リファクタリング | シグネチャーの変更…このリファクタリングは、メソッド、コンストラクター、プロパティー、およびインデクサのシグネチャーに対して行うことができるいくつかの異なる変更を組み合わせています。ReSharperは、宣言のシグネチャーの変更に加えて、現在のソリューシ...

コードの課題のクイックフィックス

ReSharperを使用すると、設計時に検出されたほとんどのコード課題を即座に修復できます。強調表示されたコードの課題で を押して、課題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。このトピックの内容:クイックフィックスの適用、Visual Stud...