2014年7月12日土曜日

Android Studio : Live Template の使い方(追加方法、変数の設定方法)

Live Template についての公式ドキュメントはこちら(英語)。よく使うコードなどを登録して簡単に挿入できるようにできます。登録したテンプレートは何もせずともコード入力中にサジェストに出現します。Ctrl + j を押すことで明示的にテンプレート呼び出しを行うこともできます。


Live Template の追加方法


Ctrl + Shift + A で Live Template と入力して設定画面を開きます。
右の方の緑の + ボタンで「Template Group」と「Live Template」を追加可能です。
Template Group は管理用のグループで、Live Template がテンプレートそのものです。

自分は Android 系のテンプレートは Android というグループを作ってその中に Live Template を入れています。このグループが Live Template の保存先のファイルになるので、人と共有するようなものは分けておくとよいと思います。登録した Live Template のグループはドラッグ&ドロップで後で変更可能です。(Windows では <ホームディレクトリ>\.<製品名><バージョン>\config\templates\<グループ名>.xml というファイルに Live Template が保存されます。)

また、Live Template はコードエディタでコードを選択した状態で Save as Live Template を実行(Ctrl + Shift + A で live template と入力すれば見つかります)しても追加することができます。




Live Template で設定できるテキストボックスの意味はそれぞれ以下の通りです。
  • Abbreviation : テンプレートの呼び出し時に使う文字列
  • Description : テンプレート呼び出し時に右側に表示される説明
  • Template Text : 展開されるコード



Template text の下にある Applicable in Java: statement. という箇所は、どのファイル(xml や Javaなど)の、どんな状況でこのテンプレートを有効にするかを選択する箇所です。
スニペットのように使うのであれば Java: statement で問題ありません。

右側のチェックボックスの一番下、Shorten FQ names の FQ とは fully qualified names という意味です。チェックをつけておくと、このテンプレートを展開したときに import に android.util.Log が追加されて、展開された場所では Log.d からコードが始まるようになります。


Live Template 内の変数定義(公式ドキュメントはこちら(英語)


Template Text 内で変数を使う場合、$変数名$ と、$マークで囲みます。
($そのものを文字として使用する場合は $$ と二回重ねて書きます。)
変数名として $END$$SELECTION$ は予め意味が定義されていてそれぞれ以下のようになっています。
  • $END$ : テンプレートが展開された後のカーソル位置
  • $SELECTION$ : "surrount with" タイプのテンプレートで使用され、選択中のテキストを指す
変数を定義している場合、Edit Variable ボタンでデフォルト値を編集できます。
デフォルト値には、テンプレートを展開した位置のクラス名や関数名、行番号を取得して挿入できる Expression という項目と、Expression が空の場合や失敗した場合に使用される Default Value という項目があります。

例えば、上の画像の Log.d を挿入するテンプレートの変数は以下のようにして、Expression で定義されたメソッドを使用して、呼び出した場所のクラス名とメソッド名が自動で入るようにしています。Skip if defined にチェックをしておくと、テンプレートを展開したときに自動で挿入された変数は飛んで、次の入力に移ります。この場合、このテンプレートでは MSG のみ入力することになります。


また、ここで文字列(Expression 以外)をデフォルトに設定する場合は、" (ダブルクオーテーション)で囲む必要があります。" は展開された時には挿入されません。


それでは、良い Android Studio 生活を。

0 件のコメント:

コメントを投稿