ステートメントの補完
このコマンドは、必要な構文要素(括弧、中括弧、セミコロンなど)を挿入し、次のステートメントの入力を開始できる位置に移動します。
ステートメント補完
ステートメントのコアを入力します(例については以下のシナリオを参照)。
Control+Shift+Enter を押すか、メインメニューから
を選択します。または、Control+Shift+A を押して、ポップアップにコマンド名を入力し、そこで選択することもできます。
このコマンドは、括弧の自動クローズ、セミコロンの追加、if
、while
、for
ステートメントの補完など、さまざまなシナリオで役立ちます。
例: 新しいメソッドを宣言するたびに、ステートメント補完はメソッドのパラメーターを指定した後に便利です:
この時点で、メソッド本体の記述を開始するには、通常次のようにしなければなりません。
括弧がない場合は挿入してください。
Enter を押します。
開口部波括弧を挿入します。
もう一度 Enter を押してください。
ReSharper を使用すると、Control+Shift+Enter を押すだけで、閉じ括弧と両方の中括弧が自動的に挿入され、メソッド本体の記述を続行できる場所にキャレットが配置されます。
同様の方法で、ステートメント補完は次の言語構成で動作します。
型と型のメンバー : クラス、インターフェース、構造体、列挙型、デリゲート、フィールド、イベント、メソッドの宣言。
ステートメント :
if
、while
、do
、switch
、using
、lock
、continue
、break
、return
ステートメント。case
およびdefault
節。単一行ステートメントからブロックステートメントへの変換。式 : 呼び出し、要素アクセス、文字列 / 文字リテラル。オブジェクト、メンバー、コレクションアイテムの初期化子。匿名型と暗黙的に型指定された配列を作成する式。
以下に、異なる文脈で完全な文コマンドを適用する例をいくつか見てみましょう。
ユースケース | ステートメント補完より前 | ステートメント補完の後 |
---|---|---|
クラス宣言 |
public class Foo/*caret*/
|
public class Foo
{
/*caret*/
}
|
デリゲート宣言 |
delegate void ChangeHandler(object sender/*caret*/
|
internal delegate void ChangeHandler(object sender);
/*caret*/
|
ネストされたメソッドの呼び出し |
myVar.DoSomething(foo.Bar(value/*caret*/
|
myVar.DoSomething(foo.Bar(value));
/*caret*/
|
|
if(myVar != null/*caret*/
|
if(myVar != null)
{
/*caret*/
}
|
|
switch (position)
{
case Position.Last/*caret*/
}
|
switch (position)
{
case Position.Last:
/*caret*/
}
|
単一行ステートメントのブロックへの変換 (ケース A) |
if(myVar != null)
position = Position.Last;/*caret*/
|
if(myVar != null)
{
position = Position.Last;
/*caret*/
}
|
単一行ステートメントのブロックへの変換 (ケース B) |
if(myVar != null)
/*caret*/position = Position.Last;
|
if(myVar != null)
{
/*caret*/
position = Position.Last;
}
|
要素アクセス式 |
var myValues = new Value[10/*caret*/
|
var myValues = new Value[10];
/*caret*/
|
この機能は、次の言語とテクノロジーでサポートされています。
ここで説明する手順と例では、C# の機能の使用について説明します。他の言語の詳細については、言語別 ReSharper セクションの対応するトピックを参照してください。
関連ページ:
さまざまな言語の ReSharper 機能
以下の表は、各 ReSharper 機能がサポートされている言語 / テクノロジーを説明しています。これらは言語固有の機能のみをリストし、プロジェクト依存関係ダイアグラム、名前空間の調整リファクタリング、スタックトレースエクスプローラーなどのプロジェクト / ソリューションスコープの多くの機能を含まず、最近のファイルを表示します。コード解析:コードインスペクション
ASP.NET MVC 特有の機能
ReSharper には、一般的な ASP.NET 機能に加えて、ASP.NET MVC での作業をより簡単にサポートする特殊機能があります。構文のハイライト:ASP.NET MVC メソッド呼び出しとパラメーターの特別な構文のハイライト: コード補完:文字列リテラルでアクションとコントローラーを参照するための専用コード補完: ナビゲーションと検索:さまざまなナビゲーション機能がアクションとコントローラーでも機能します。コード生成:使用箇所から新しいコントローラーとアクションを作成する: 最終...
言語による ReSharper: MSBuild
MSBuild は、アプリケーションを構築するために広く使用されているプラットフォームです。特定の XML タグを使用して、プロジェクトの構築方法や実行方法を定義できます。ReSharper を使用すると、より速く行うことができます。コード検査:あらかじめ定義された要素またはその属性の名前を誤って入力した場合、ReSharper はそのような不一致についてハイライト表示します。まだ定義されていないプロパティを参照しようとすると、ReSharper はそのようなケースも検出します。MSBuild...
言語による ReSharper: Google プロトコルバッファ (Protobuf)
ReSharper は、Google プロトコルバッファ(Protobuf)バージョン 2.x および 3.0 の .proto ファイルで IDE サポートを提供します。ReSharper は、.proto ファイルの言語構文をハイライトし、エラーを検出してハイライトします。基本コード補完と他のタイピング支援機能はエディターで利用可能です。型と値の宣言に行き、それらの使用箇所を検索し、他のナビゲーション機能を楽しむことができます。Protobuf コードを再フォーマットしてシンボルの名前を変更するこ...
言語 JSON による ReSharper
JSON および JSON スキーマのサポートは、現在、構文のハイライト(古い Visual Studio バージョンを含む)のような基本的なものから、コードのフォーマットや再配置(たとえば、オブジェクトのプロパティや任意の選択を移動できる)、コードインスペクションおよびクイックフィックスなどのより高度な機能にまでおよびます。スキーマ、パス、正規表現、パッケージを認識するコード補完も同様です。JSON 値ヘルパー:ReSharper では、JSON プロパティの一部を特定の値タイプ(正規表現、...
構文のハイライト
ReSharper は、デフォルトの Visual Studio のシンボルのハイライトを拡張します。さらに、フィールド、ローカル変数、型、その他の識別子を設定可能な色でハイライトします。例: ReSharper の構文ハイライトにより、コード内のローカル変数とフィールドを簡単に区別することができます。デフォルトの色で C# の ReSharper 構文のハイライトは次のようになります。ReSharper 構文のハイライトの切り替えメインメニューからを選択するか、Alt+R O を押してから、左側...