C++Builder2009で、ライブテンプレートを登録してみました。
とても簡単にできます。
Delphi2009でも同様に使用できると思います。
メニューの「表示」-「テンプレート」でテンプレートウィンドウが表示されます。
テンプレートウィンドウでは、ライブコードテンプレートの作成・編集・削除ができます。
「新規コードテンプレート」ボタンを押し、新しいテンプレートを作成します。
テンプレートのひな形が作られます。
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="" invoke="manual">
<description>
</description>
<author>
</author>
<code language=""><![CDATA[]]>
</code>
</template>
</codetemplate>
codetemplateタグのname属性には、コード補完(CTRL+J)を実行する文字を入力します。
例えば、name属性を「//-」とした場合、「//-」「CTRL+J」と入力すると、
作成したテンプレートが挿入されます。
descriptionタグの値には、概要を入力します。
authorタグの値には、作者の名前を入力します。
これらはあまり重要ではないと思います。
codeタグのlanguage属性は、テンプレートの対象言語を入力します。
C/C++なら「C」になります。
Delphiの場合は「Delphi」になると思います。
<![CDATA[]]>の箇所に、挿入するコードを入力します。
(注意)挿入するコードの中にマルチバイト文字があると、挙動がおかしくなります。
サンプルです。
unique_ptrと入力し(途中まででも可)、CTRL+Jキーを入力すると、
unique_ptrのテンプレートが挿入されます。
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="unique_ptr" invoke="manual">
<description>
unique_ptr
</description>
<author>
山本隆
</author>
<code language="C"><![CDATA[unique_ptr<type> variable(new type());]]>
</code>
</template>
</codetemplate>
まだ不十分ですね。
テンプレートを挿入した後、クラス名や変数名を書き直さなければなりません。
書き直す必要がある部分を、「$変数名$」という形に書き直します。
<code language="C"><![CDATA[unique_ptr<$type$> $variable$(new $type$());]]>
次に、「$変数名$」の情報を登録します。
次のような構文になります。
<point name="変数名">
<hint>
ヒント
</hint>
<text>
初期値
</text>
</point>
例えば、クラス名は、
<point name="type">
<hint>
クラス名
</hint>
<text>
T
</text>
となります。
最終的には、次のようになりました。
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name="unique_ptr" invoke="manual">
<point name="type">
<hint>
クラス名
</hint>
<text>
T
</text>
</point>
<point name="variable">
<hint>
変数名
</hint>
<text>
obj
</text>
</point>
<description>
unique_ptr
</description>
<author>
山本隆
</author>
<code language="C"><![CDATA[unique_ptr<$type$> $variable$(new $type$());]]>
</code>
</template>
</codetemplate>
変数の部分は、ツールチップで説明が表示されるようになります。
クラス名の一方を編集すると、もう一方も編集されます。
簡単に編集ができますので、よく使う定型文は登録しておくと便利です。
みんなで共有しても良いかもしれませんね。