ReSharper 2020.3 ヘルプ

後置テンプレート

後置テンプレートは後ろにジャンプすることなくすでにタイプした式を変換できます - ちょうど式の後にドットをタイプしそして補完リストからテンプレートを選んでください。

後置テンプレートを適用する

後置テンプレートの最も簡単な例の 1 つは、ブール式を否定することです。ブール式をタイプしただけで、比較ロジックを逆にする必要があることに気が付いたとします。通常、キャレットを元の位置に戻し、==!= に、または !=!= に変更してから、元の場所に戻ってください。ReSharper では、.not の入力を続けて Enter を押すことができます。

コーディングを高速化するために使用できるより多くの後置テンプレートがあります。例:現在の式を ifwhilelockusing でラップしたり、現在の式の前に returnyield returnawait を追加したり、コレクションを反復したり、switch ステートメントを生成したり、式を特定の型にキャストしたり、式のフィールドやプロパティを導入したりできます。

後置テンプレートは、入力ルーチンを変更することさえできます。以下の CheckInput メソッドを考えて、null チェック節をどのように入力するかを想像してください。

private void CheckInput(string input) { if (input == null) { throw new ArgumentNullException("The input is null"); } // do something with 'input' }

後置テンプレートを使ってそれをどうやってやることができるかを見てみましょう。

メソッド本体にキャレットがあるとすぐに、input の入力をすぐに開始することができます。これは、これを確認したいからです。 input があるときは、null の式をチェックするための後置テンプレートである .null を続けて入力してください:

Applying postfix template for null-check

これにより、inputnull が比較され、その比較が if ステートメントでラップされ、入力を継続できる位置にキャレットが設定されます。

Applying postfix template for null-check

今度は、throw と入力する代わりに、例外クラス名を入力して .throw テンプレートを呼び出してください。

Applying postfix template for null-check

このテンプレートを適用すると、完全な throw ステートメントと、引数を入力する場所にキャレットが表示されます。

Applying postfix template for null-check

頻繁に使用される言語構造を手動で入力するのではなく、多くの場合、テンプレートショートカットの最初の文字を 2 文字だけ入力して、適切にフォーマットされ、すべてのものを適切な形で入力することができます。

後置テンプレートを適用する

  1. 現在の式の後にドットを入力し、目的のテンプレートの補完リストを確認します。

  2. 適用しようとしているテンプレートのショートカットを知っているなら、それをタイプし始めましょう - これは提案のリストを縮小するでしょう。

  3. 現在の状況によっては、いくつかの後置テンプレートが補完リストに含まれていないかもしれません。目的のテンプレートが表示されていなくても使用したい場合は、Control+Space2 回押してすべてのテンプレートを補完リストに表示します。

  4. 候補リストで目的のテンプレートが選択されるとすぐに Enter を押します。

  5. テンプレートに編集可能なパラメーターがある場合(つまり、ユーザー入力が必要な場合)、ReSharper はエディターにホットスポットセッションをデプロイし、最初のパラメーターに入力位置を設定します。次に、次のことを実行できます。
    • If ReSharper suggests some values for the current parameter, use UpDown arrow keys to navigate through the list of suggested values, or just type in a desired value.

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

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

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

後置テンプレートを構成する

後置テンプレートはデフォルトで有効になっています。次の場合に補完リストに表示されます。

  • ReSharper IntelliSense は、ReSharper オプション(Alt+R, O)の環境 | IntelliSense | 一般ページで有効になっています。

  • 後置テンプレートを表示するは、ReSharper オプション(Alt+R, O)のコード編集 | 後置テンプレートページで選択されます。

特定の接尾辞テンプレートを無効にするには、ReSharper オプション(Alt+R, O)のコード編集 | 後置テンプレートページで対応するチェックボックスをオフにします。

補完リストでテンプレートを非表示にしたり、逆に他のすべてのアイテムを非表示にしたりするには、完了フィルターを使用します。

後置テンプレートのリスト

ショートカット 説明
.arg 呼び出しによる式の囲み Method(expr)
.await' タスク ' タイプの表現を待ちます await expr
.cast キャストで表現を囲む ((SomeType) expr)
.else ブール式を 'false' にチェックします。if (!expr)
.field 表現の場を紹介する _field = expr;
.for コレクションをインデックスで繰り返し処理する for (var i = 0; i < xs.Length; i++)
.foreach 列挙可能なコレクションを繰り返し処理する foreach (var x in expr)
.forr インデックスを逆にしてコレクションを反復処理する for (var i = xs.Length-1; i >= 0; i--)
.if ブール式を 'true' にチェックします。if (expr)
.lock ロックブロックで表現を囲む lock (expr)
.new 型のインスタンス化式を生成する new SomeType()
.not ブール式を否定します !expr
.notnull 式が null でないことをチェックします if (expr != null)
.null 式を null にチェックします if (expr == null)
.par 現在の式を括弧で囲みます (expr)
.parse 文字列をある型の値として解析します int.Parse(expr)
.prop 表現のための特性を導入する Property = expr;
.return 現在の関数から式を返す return expr;
.sel エディターで式を選択します |selected + expression|
.switchswitch 文を生成する switch (expr)
.throw' 例外 ' 型の式をスローします throw expr;
.to 現在の式を変数に代入する lvalue = expr;
.tryparse 文字列をある型の値として解析します int.TryParse(expr, out value)
.typeoftypeof() 式で型の使用をラップします typeof(TExpr)
.using ステートメントを使用してリソースをラップする using (expr)
.var 式の変数を導入する var x = expr;
.while ブールステートメントが ' 真 ' である間、反復する while (expr)
.yield イテレータメソッドの値を返します yield return expr;
ショートカット 説明
.else ブール式を 'false' にチェックします。if (!expr)
.forof 反復可能なオブジェクトを反復処理する for (let x of expr)
.if ブール式を 'true' にチェックします。if (expr)
.notnull 式が null でないことをチェックします if (expr !== null)
.notundefined 式が未定義であることをチェックします if (expr !== undefined)
.null 式を null にチェックします if (expr === null)
.return 現在の関数から式を返す return expr;
.undefined 定義されていない式をチェックします if (expr === undefined)
.var 式の変数を導入する var x = expr;
ショートカット 説明
.else ブール式を 'false' にチェックします。if (!expr)
.forof 反復可能なオブジェクトを反復処理する for (let x of expr)
.if ブール式を 'true' にチェックします。if (expr)
.instanceof 式のインスタンスをチェックする if (x instanceof Class)
.notnull 式が null でないことをチェックします if (expr !== null)
.notundefined 式が未定義であることをチェックします if (expr !== undefined)
.null 式を null にチェックします if (expr === null)
.return 現在の関数から式を返す return expr;
.typeof 式のタイプをチェックする if (typeof x === 'string')
.undefined 定義されていない式をチェックします if (expr === undefined)
.var 式の変数を導入する let x = expr;
ショートカット 説明
.beg..end 範囲からイテレータを生成する sort(range.begin(), range.end())
.cbeg..cend 範囲からイテレータを生成する is_sorted(range.cbegin(), range.cend())
.const_castconst_cast で式を囲む const_cast<SomeType &>(expr)
.do ブール式が ' 偽 ' になるまで反復する do { } while (expr);
.dynamic_castdynamic_cast で表現を囲む dynamic_cast<SomeType &>(expr)
.else ブール式を 'false' にチェックします。if (!expr)
.foreach 範囲を反復する for (auto && x : range)
.forwardForwards 関数パラメーター std::forward<Arg>(arg)
.if ブール式を 'true' にチェックします。if (expr)
.make_shared オブジェクトを構築し、std::shared_ptr にラップします。std::make_shared<SomeType>()
.make_unique オブジェクトを構築し、std::unique_ptr にラップします。std::make_unique<SomeType>()
.new 型のインスタンス化式を生成する new SomeType()
.reinterpret_castreinterpret_cast で式を囲む reinterpret_cast<SomeType &>(expr)
.return 現在の関数から式を返す return expr;
.safe_castsafe_cast で式を囲む (C++/CLI)safe_cast<SomeType>(expr)
.static_caststatic_cast で式を囲む static_cast<SomeType>(expr)
.switch 積分 / 列挙型よりもスイッチを生成する switch (expr)
.var 式の変数を導入する auto x = expr;
.while ブール式が真である間、反復する while (expr)

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

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 not available in Visual Basic .NETFeature is available in C++Feature is not available in HTMLFeature is not available in ASP.NETFeature is not available in RazorFeature is available in JavaScriptFeature is available in TypeScriptFeature is not available in CSSFeature is not available in XMLFeature is not available in XAMLFeature is not available in Resource filesFeature is not available in build script filesFeature is not available in ProtobufFeature is not available in JSON

関連ページ:

ソーステンプレート

伝統的に、テンプレートやスニペットはあなたのソースコードの外で保存され管理されています。通常テンプレートを使用すると、普遍的な定型コードをすばやく作成できるため、これは理にかなっています。これらの目的のために、ReSharper は多くの定義済みライブテンプレート、サラウンドテンプレート、ファイルテ...

ダブル補完

すべての ReSharper の補完ショートカットは、複数回連続して押すことができます。この場合、ReSharper はさらに補完リストに提案を加えます。新しい提案は緑色の縦線でマークされているため、簡単に見つけることができます。必要に応じて、ReSharper オプション(Alt+R, O)のペー...

コード補完でのフィルターの使用

ReSharper を使用すると、シンボルの種類、アクセス修飾子などを使用して補完候補をフィルター処理できます。コード補完が呼び出されるたびに適用されたフィルターのセットを変更したり、フィルターの状態を保持することを選択したりできます。デフォルトでは、ReSharper は完了のポップアップの下部に...

ASP.NETMVC 固有の機能

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

言語による ReSharper: MS ビルド

MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。ビルドスクリプトファイルで ReSharper 機能を無効にするに...

言語による ReSharper: Google プロトコルバッファ (プロトブフ)

ReSharper は、Google プロトコルバッファ(Protobuf)バージョン 2.x および 3.0 の.protoファイルで IDE サポートを提供します。.proto ファイルの ReSharper 機能を無効にするには、ReSharper オプション(Alt+R, O)のページでプロ...