特殊なコードテンプレート構文
コードテンプレートを使用すると、頻繁に使用する一連の予約語や一般的なコードパターンをすばやく入力できます。たとえば forc と入力して Tab キーを押すと、次のように展開されます。
for (Iterator it = collection.iterator(); it.hasNext();) {Object elem = (Object) it.next();
}
コードテンプレートを作成するときは、コードテンプレートの動作方法をカスタマイズするために使用できる構造体が複数あります。「ツール」メニューの「オプション」ウィンドウで、デフォルトの IDE コードテンプレートを参照できます。たとえば、そこから学習できます。
一般に、コードテンプレートのパラメータはその名前と一連のヒント (オプション) で指定できます。ヒントは、テンプレートの展開時にインフラストラクチャーによってパラメータに割り当てられる値を計算するときの手引きとなります。パラメータ定義の構文は次のとおりです。
${param_name hint=value hint=value ...}
ただし、ブール型のヒントは次のように値の部分なしで記述できます。
${param_name hint} は ${param_name hint=true} に変換
一部のパラメータ名はコードテンプレートのインフラストラクチャーによって予約されています。
- ${cursor} は、コードテンプレート値の編集終了後にキャレットを置く位置を定義します。
- ${selection} は、エディタの選択内容をペーストする位置を定義します。これはユーザーがエディタ内でテキストを選択したときにヒントとして表示される「選択テンプレート」に使用されます。
同様に、一部のヒント名もコードテンプレートのインフラストラクチャーによって予約されています。
- ${param_name default="value"} はパラメータのデフォルト値を定義します。
- ${param_name editable=false} は、ユーザーによるパラメータの編集を無効にするために使用できます。
- ${param_name instanceof="java.util.Collection"} は、パラメータ値を特定の型のインスタンスにする必要があります。
- ${param_name array} は、パラメータ値を配列型 (プリミティブデータ型の配列を含む) にする必要があります。
- ${param_name iterable} は、パラメータ値を配列型または "java.lang.Iterable" のインスタンスにする必要があります。'for-each' サイクルで使用できます。
- ${param type="java.util.Iterator"} は、パラメータ値を特定の型にする必要があります。インフラストラクチャでは、可能な場合は短い名前の反復子を使用し、java.util.Iterator をインポートしようとします。
- ${param_name iterableElementType} は、パラメータ値を反復可能な要素の型にする必要があります。'for-each' サイクルで使用できます。
- ${param_name leftSideType} は、パラメータ値を代入式の左側の型にする必要があります。
- ${param_name rightSideType} は、パラメータ値を代入式の右側の型にする必要があります。
- ${param_name cast} は、必要な場合にパラメータ値が型キャストになることを定義します。
- ${param_name newVarName} は、特定のコンテキストで、パラメータ値が「新しい」未使用の変数名である必要があることを定義します。
著作権と商標について