ReSharper 2020.3 ヘルプ

コンテキストアクション

Alt+Enter
ReSharper_AltEnter

コンテキストアクションは、エディターで直接利用できるコード変換ヘルパーです。クイックフィックスとは対照的に、コンテキストアクションは問題の解決やコードの改善を目的としているためはなく、アクセス修飾子の変更、null をチェックするコードの生成、'foreach' の 'for' への変換などの小さな変更を素早く導入できます。

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

コンテキストアクションを適用する

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

Action list

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

例: 'foreach' コンテキストアクションを介して Iterate コレクションを適用するとどうなりますか?

Coding assistance context actions foreach 01

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

Coding assistance context actions foreach 02

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

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

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

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

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

コンテキストアクションを構成する

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

  1. メインメニューから ReSharper | オプションを選択するか、Alt+R O を押します。

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

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

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

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

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

Applying context action in a wider scope

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

C#

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

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

  • 分解パターンコンポーネント名を追加

  • 引数に名前を追加する

  • タプルコンポーネント名を追加

  • 明示的な実装から明示的な実装への変換

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

  • 'if' ステートメントを 'switch' 式に変換する

  • 'if' 文を 'switch' 文に変換する

  • 暗黙的インターフェースから明示的インターフェースへの変換を変換する

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

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

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

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

  • switch 式を条件付きに変換しますか?: 式

  • メンバー値チェック式を再帰パターンに変換します

  • 位置パラメーターの明示的なプロパティ宣言を作成します

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

  • メンバーアクセスをオブジェクトパターンに含める

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

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

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

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

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

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

  • シーケンシャルパターンチェックを複雑なパターンマッチングにマージする

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

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

  • #region、#endregion ディレクティブを削除 (#region ブロックの追加と削除を参照してください)

  • 引数名を除去する

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

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

  • タプルコンポーネント名を削除

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

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

  • 自動プロパティをプロパティおよびバッキングフィールドに置き換える

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

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

  • 個別の宣言宣言を単一の宣言に置き換える

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

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

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

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

  • 再帰パターンをいくつかの連続したチェックに分割します

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

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

  • 分解宣言 / パターンで別々の宣言を使用する

  • 文字列補間を使用する

TypeScript

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

VB.NET

  • 文字列補間を使用する

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

Language: C#Language: VB.NETLanguage: C++Language: HTMLLanguage: ASP.NETLanguage: RazorLanguage: JavaScriptLanguage: TypeScriptLanguage: CSSLanguage: XMLLanguage: XAMLLanguage: ResxLanguage: Build ScriptsLanguage: ProtobufLanguage: JSON
Feature is available in C#Feature is available in Visual Basic .NETContext actions in C++Feature is available in HTMLFeature is available in ASP.NETFeature is available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is available in CSSFeature is available in XMLFeature is available in XAMLFeature is available in Resource filesFeature is available in build script filesFeature is not available in ProtobufFeature is available in JSON

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

関連ページ:

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

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

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

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものには、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされるすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)...

ReSharper 設定の管理と共有

ReSharper は、階層化された設定のメカニズムを使用して環境設定を保存するため、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。例:記号のア...

スコープの修正

ほとんどのクイックフィックスは、キャレットで現在の課題を修正できますが、中には (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など)、現在のファイル、現在のプロジェクト、またはソリューション全体など、より大きな範囲で課題を自動的に見つけて修正できる...

#region ブロックの追加と削除

ReSharper は、コード内のブロックを迅速に追加、移動、削除できます。型と型メンバーを自動的に並べ替えるときに、リージョンを追加および削除することもできます。エディターでリージョンを管理する :エディターの右に、現在の選択範囲をリージョンですばやく囲むことができます。ReSharper は、お...

ASP.NETMVC 固有の機能

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト :ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト:コード補完 :文字列リテラルでアクションとコントローラーを...