NetBeans エディタのコードテンプレートを使おう

NetBeans のエディタにはコードテンプレートという機能があります。単純に省略キーからコードを挿入するだけでなく、カスタマイズすることによって必要な変数を代入したり、import を追加したり、ユーザーが後からコードを変更するようにカーソル移動を行ったりすることができます。参考になるドキュメントは以下でしょうか。NetBeans についているオンラインヘルプにも書き方が載っていますので参考にしてみてください。

簡単なコードテンプレートを使ってみる

StringTokenizer st = new StringTokenizer(str, delim);
のコードを stn という省略名で入力できるようにカスタマイズしてみます。「ツール」>「オプション」でオプションダイアログを開き「エディタ」の「コードテンプレート」で追加します。

NetBeans Code Template

実際にエディタで入力してみます。stn と入力して、

NetBeans Code Template

Tab キーを押します。以下のように展開されました。

NetBeans Code Template

これだけでもまぁまぁ便利なのですが、いくつか問題がありますね。ここからカスタマイズしていきましょう。

導入された変数名を変更する - ${}

この例では st, str, delim は固定になっています。この編集をすぐに編集できるように入力時にカーソルが移動できるようにしてみましょう。テンプレートを ${stn}, ${str}, ${delim} を使って変更します。

StringTokenizer ${st} = new StringTokenizer(${str}, ${delim});
するとどうでしょうか、入力直後は st が選択されます。

NetBeans Code Template

ここで何か入力するとそのまま置き換わります。

NetBeans Code Template

リターンキーを押すと次の str にカーソルは移動します。ここでも同様に変更できます。

NetBeans Code Template

デフォルトの値は default="デフォルト値"として定義できます。

新規変数を導入する - newVarName

stn を使って2回 StringTokenizer を入力してみます。変数 st を変更しないとすでに定義してあると言われてしまいます。st を新しい変数にしたいですよね。

NetBeans Code Template

この場合は newVarName を使います。
StringTokenizer ${st newVarName} = new StringTokenizer(${str}, ${delim});
すでに stringTokenizer は使われているので新しい変数 stringTokenizer1 が導入されたことがわかります。

NetBeans Code Template

import 文を追加する - type="型"
import java.util.StringTokenizer;
があらかじめ定義されていればエラーは起きませんが、以下のように定義されていないとエラーになります。エディタヒント(電球アイコン) からインポートを追加、またエディタのコンテキストメニューから「インポートを修正」すればエラーは消えますが、それでは不便ですね。

NetBeans Code Template

なのでここでは type="java.util.StringTokenizer" を導入してみます。
${StringTokenizer type="java.util.StringTokenizer" } ${st newVarName} = new StringTokenizer(${str}, ${delim});
これを導入すると import 文がなければ追加してくれます。これは便利ですね!

編集は必要ないと定義する - editable=false

ただし ${StringTokenizer} を追加したので入力後のカーソルは StringTokenizer に移動してしまいました。StringTokenizer は変更する必要がないので省略したいところです。

NetBeans Code Template

それには editable = false を追加します。
${StringTokenizer type="java.util.StringTokenizer" editable=false} ${st newVarName} = new StringTokenizer(${str}, ${delim});

さてどうでしょうか。${StringTokenizer} はスキップして、${st} に直接カーソルがいくようになりました。

NetBeans Code Template

型にもとづいて変数を導入する - instanceof="型"

str と delim は固定なのですが、もし String 型がコード内にあればそれを代入するようにしてみます。それには instanceof="String" を定義してみます。
${StringTokenizer type="java.util.StringTokenizer" editable="false"} ${st newVarName} = new ${StringTokenizer}(
        ${str default="str" instanceof="String"},
        ${delim default="delim" instanceof="String"});
実際には myStr が2回入ってしまいますが、コード入力の手助けにはなりますね。

NetBeans Code Template

この他にもいろいろな使い方があるようです。是非いろいろ試してみてください。
Comments:

Post a Comment:
Comments are closed for this entry.
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today