Eclipseエディターテンプレート

エディターテンプレートとは?

Eclipseには、Javaエディター上のコード補完をカスタマイズする機能が備わっています。

コード補完を少し紹介

標準では、ifNull などが登録されています。

e.g. 標準のifnullの補完テンプレート @Java
String sea = ...
ifnu... // control+space, enter
 ↓↓↓
if (sea == null) {
    
}

独自に追加もできます。例えば、DBFluteオリジナルの _ll でLambda表現を補完してみましょう。

e.g. DBFluteオリジナルの_llの補完テンプレート @Java
memberBhv.selectList(_ll) // _ll, control+space, enter
 ↓↓↓
memberBhv.selectList([var] -> {
    [var].[object]
})

ワークスペース設定なので各自設定

ワークスペース設定 (.metadataディレクトリ) になるので、開発者それぞれが設定する必要があります。 (同じPCでも新しいワークスペースを作れば再設定が必要)

標準のテンプレート

知らずに使っているものもあれば、意外に知らずにもったいないことをしてる場合もあります。

ここでは、代表的なものをピックアップしてみます。

@author
JavaDocにて @author を補完、自分の名前が載る
ifNull
近くの変数で if (xxx == null) {} を補完
ifNotNull
近くの変数で if (xxx != null) {} を補完
foreach
近くのリストで for (要素型 変数 : リスト) {} を補完
private_method
privateメソッドをを補完
protected_method
privateメソッドをを補完
public_method
privateメソッドをを補完
test_jupiter
JUnit5用のテストメソッドを補完
sysout
System.out.println() を補完
main
mainメソッドを補完

エディターテンプレートの設定

Preferences の Templates画面

メニューの Preferences の Java - Editor - Templates で設定できます。

Eclipse EditorTemplates Settings Example

New...
新しいテンプレートを登録
Edit...
選択している既存のテンプレートを編集
Remove
選択している既存のテンプレートを削除
Restore Removed
標準のテンプレートで削除されているものを復活させる
Revert to Default
標準のテンプレートの戻す
Import...
xmlに保存されているテンプレートを取り込む
Export...
選択している既存のテンプレートをxmlに保存する

Import時の重複登録に注意

同じ名前のテンプレートを複数登録できます。ゆえに、Import時に既存と同じ名前のテンプレートがxml上にもある場合、二重で登録されることになります。

なので、Export時に既存テンプレートを全選択してxmlを出力している場合は、Importする前に既存のテンプレートをすべて削除してからImportする まるごと入れ替え方式 にすると良いでしょう。

独自に追加したテンプレートだけをExportしている場合は、Importする前に Revert to Default をしてから Import する デフォルト付け足し方式 にすると良いでしょう。

Importのまるごと入れ替え方式

Import対象のxmlに (標準テンプレートも含めて) 全てまるごと保存されている場合はこの方式で。

※LastaFluteプロジェクトやDBFluteハンズオンなどでは、基本的にまるごと入れ替え方式を前提にしています。

まるごと入れ替え方式のやり方

まず、メニューの Preferences の Java - Editor - Templates で設定画面を開きます。

Eclipse EditorTemplates Settings Example

既存のテンプレートを何か一つ選択して、(Macなら)command+A で全選択します(全選択できればやり方は何でもOK)。 そして、全選択した状態で Remove を押すと既存のテンプレートがすべて消えるので、その状態で Import... を押して、ファイル選択ダイアログでimport対象のxmlファイルを選択します。

Eclipse EditorTemplates Settings Import Whole

期待されているテンプレートが設定されたことを確認して Apply すれば完了です。試しに近くのクラスで補完をしてみましょう。

まるごと入れ替え方式の特徴

  • 独自テンプレートの提供元が複数あっても、開発者は気にしなくて良い
  • 標準テンプレートに修正が入っていても、開発者は気にしなくて良い
  • 最新版Eclipseで追加されたテンプレートを追従するときに(管理者の)手作業が必要

Importのデフォルト付け足し方式

Import対象のxmlには標準テンプレートは含まれず一部のテンプレートのみが保存されている場合はこの方式で。

デフォルト付け足し方式のやり方

Revert to default を押してから、Import... を押して、ファイル選択ダイアログでimport対象のxmlファイルを選択します。

デフォルト付け足し方式の場合は、import対象のxmlファイルが複数ある可能性が高いので、ある場合は連続してimportしましょう。 (例えば、DBFluteの補完テンプレートやアプリ独自の補完テンプレートなど)

デフォルト付け足し方式の特徴

  • 最新版Eclipseで追加されたテンプレートを追従が自然にできる
  • 独自テンプレートの提供元が複数ある場合は、開発者が意識して複数のimportをする必要がある
  • 標準テンプレートに修正が入れても消えてしまうので、その場合はこの方式は使えない