ReSharper 2021.1 ヘルプ

コンテキストアクション

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 式を条件付きに変換しますか? : 式

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

  • Converts not null check into object pattern check

  • Create explicit array creation from 'params' parameter arguments

  • Create explicit constructor declaration for primary constructor

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

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

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

  • インライン一時変数

  • Inlines variable into condition expression using this variable

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

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

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

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

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

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

  • Merge sequential null/pattern checks into single pattern check

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

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

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

  • 引数名を除去する

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

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

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

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

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

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

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

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

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

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

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

  • Split 'and' patterns into multiple 'is' expressions or guard expression

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

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

  • Split 'or' patterns into multiple 'is' expressions or 'switch' cases

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

  • To named property patterns

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

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

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

  • 文字列補間を使用する

TypeScript

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

VB.NET

  • 文字列補間を使用する

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

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

関連ページ:

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

ReSharper を使用すると、設計時に検出されたほとんどのコード問題を即座に修復できます。ハイライトされたコードの問題でを押して、問題を解決したり最適以下のコードを改善したりするための適切な方法を選択するのと同じくらい簡単です。クイックフィックスを適用する:クイックフィックスは、ハイライトされたコードの問題の左側にアクションインジケーターとして視覚的に表示されます。これらのインジケーターは、コードの問題でキャレットを設定すると表示されます。次の指標は、迅速な修正を意味します。 — 重大度エ...

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

ReSharper が Visual Studio テキストエディターに追加する最も注目すべきものの中には、アクションインジケータとアクションリストがあります。これらは、ReSharper でサポートされているすべてのファイル(C#、VB.NET、XML、CSS、JavaScript、ASP.NET など)に表示され、使用可能なアクションについて通知し、適用できます。アクションインジケータ:アクションインジケータは、設定に応じて、アクションバーの左マージンやテキストエディターの本文に表示される...

ReSharper 設定の管理と共有 | ReSharper

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

スコープの修正

ほとんどのクイックフィックスは、キャレットで現在の問題を修正できますが、中には (たとえば、未使用のディレクティブを削除する、フィールドを読み取り専用にする、冗長なキャストの除去など)、現在のファイル、現在のプロジェクト、またはソリューション全体など、より大きな範囲で問題を自動的に見つけて修正できるものもあります。範囲内の修正を適用する:このような修正は、アクションリストの横に表示される小さな矢印で識別できます。範囲内の修正を適用する ReSharper のインスペクションによってハイライトされ...

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

ReSharper は、コード内のブロックを迅速に追加、移動、削除できます。エディターでリージョンを管理する:エディターの右に、現在の選択範囲をリージョンですばやく囲むことができます。ReSharper は、およびディレクティブを追加し、リージョン名を入力できる位置にキャレットを設定します。コード要素を移動する機能を使用して、リージョンをさまざまな方法で移動することもできます。ディレクティブとディレクティブを上下に移動して、領域に隣接する要素が含まれるようにしたり、要素を領域から除外したりでき...

ASP.NET MVC 特有の機能 | ReSharper

ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...