ReSharper 2018.2ヘルプ

コンテキスト・アクション

Alt+Enter
ReSharper_AltEnter

コンテキストアクションとは、ヘルパーをエディタで使用できるコード変換のことです: コンテキスト・アクションは、クイック・フィックスとは対照的に、問題の解決やコードの改善を目的としたものではなく、アクセス修飾子の変更、NULLをチェックするコードの生成、 'foreach'を 'for'等

ReSharperは、サポートされているすべての言語で何百ものコンテキストアクションを提供します。完全なリストはReSharperオプションのコード編集 | コンテキスト・アクションページとコンテキストアクション参照にあります。

コンテキストアクションの適用

現在のキャレット位置でコンテキストアクションが利用可能になるとすぐに、ReSharperは対応するアクションインジケータ ThemedIcon ContextAction Screen Gray をキャレットの左側に表示します。しかし、ReSharperは現在のキャレットの位置に対していくつかの文脈上利用可能な機能を提供することがあります。この場合、優先順位が最も高いアクションに対応するアクションインジケータが表示され、他のすべてのアクションは、アクションインジケータをクリックしてアクションリストを展開するか、または Alt+Enter を押すことによってのみ表示されます。アクションリストの一番下に:

Action list

ほとんどの場合、コンテキストアクションはただちに適用されます。ただし、アクションの中には、コードをどの程度正確に変換するかを選択するためのユーザー操作が必要なものもあります。このような場合、ホットスポットセッションがエディタに配備され、提案された値の1つを選択するか、アクティブな入力位置に独自の値を入力できます。

例:'foreach'を介してコレクションを反復するコンテキストアクションを適用すると、次のようになります。

Coding Assistance Context Actions foreach 01

foreach ステートメントを作成した後、ホットスポットセッションを使用すると、生成されたステートメントの編集可能なパラメーターを補完させることができます。

Coding Assistance Context Actions foreach 02

ホットスポットセッションを完了するには:

  • ReSharperが現在のパラメータの値を示唆している場合は、 UpDown の矢印キーを使用して推奨値のリストをナビゲートするか、目的の値を入力してください。

  • Tab または Enter を押して値を受け入れ、次のパラメータの入力位置に移動します。これが最後のパラメータである場合、ホットスポットセッションは完了し、キャレットはセッション用に定義された終了位置に移動します。

  • Shift+Tab を押すと、入力フォーカスが前のパラメータの入力位置に移動します。

  • Esc を押してホットスポットセッションを終了します。この場合、すべてのセッションパラメータはデフォルト値で初期化されます。

コンテキストアクションの設定

デフォルトでは、ほとんどのコンテキストアクションが有効になっていますが、役に立たないと思われるアクションは簡単に無効にすることができます。

特定のコンテキストアクションを有効または無効にするには

  1. メインメニューでReSharper | オプションを選択します。

  2. 特定のコンテキストアクションを見つけるには、オプションダイアログの検索ボックスを使用します。
    または、コード編集 | コンテキスト・アクションページを開き、無効にするコンテキストアクションを探します。

  3. コンテキストアクションの横にあるチェックボックスをオフにして無効にします。

  4. 保存をクリックして変更を適用し、ReSharperに保存先を選択させるか、次へ保存ドロップダウンリストを使用して特定の設定レイヤーに変更を保存します。詳細は、resharper設定の管理と共有を参照してください。

より広い範囲でコンテキストアクションを適用する

コンテキストアクションの中には、現在のファイル、現在のプロジェクト、またはソリューション全体で、より広い範囲の類似したコード項目を自動的に検索および変更できるものがあります。これらのコンテキストアクションは、スコープの修正と同じように機能します。例:すべてのタイプを現在のファイルから新しい一致するファイルに移動できます:

Applying context action in a wider scope

広い範囲に適用できるコンテキストアクションの完全なリストは次のとおりです。

C#

  • 別のアクセサを追加する

  • switch セクション・ステートメントにブロック波括弧を追加する

  • 引数に名前を追加する

  • 式の本文メンバーを文の本文に変換する

  • 整数リテラルをバイナリ形式に変換する

  • 整数リテラルを16進形式に変換する

  • 整数リテラルを10進形式に変換する

  • 文字列補間を 'string.Format'呼び出しに変換する

  • 型、静的メンバーまたは名前空間への参照を完全修飾する

  • 整数リテラルに桁区切りを挿入する

  • 実数リテラルに桁区切りを挿入する

  • ジェネリックメソッド呼び出し型引数を挿入する

  • 拡張メソッドを静的メソッドとして呼び出す

  • 属性を単一のセクションに結合する

  • 順次検査をヌル伝播式にマージする

  • 名前を一致させるためにタイプを別のファイルに移動する

  • static usingディレクティブを使用してインポートされた静的メンバーを修飾します。

  • #region、#endregion指令を削除する(#regionブロックの追加と削除を参照)

  • 引数名を除去する

  • 数値リテラルから桁区切り記号を削除する

  • 余分な括弧を削除する(コードの構文スタイル: オプションの括弧を参照)

  • 「?:」をヌル伝播式で置き換える

  • 配列初期化子を式で置き換える

  • 明示的な型指定を 'var'に置き換える

  • ヌル伝播式を '?:'条件演算子で置き換えます

  • 別々の分解解除宣言を1つの宣言式に置き換える

  • 'var'を明示的な型宣言で置き換える

  • enumメンバー値を指定する

  • 属性を別々のセクションに分割する

  • ヌル伝播式を順次チェックに分割する

  • 明示的破棄宣言を使用する

  • 暗黙の破棄宣言を使用する

  • 分解解除宣言で別の宣言式を使用する

TypeScript

  • 名前を一致させるためにタイプを別のファイルに移動する

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

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

最終更新日: 2018年11月5日

関連事項