C++Builder2009のライブテンプレートを使う

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>

変数の部分は、ツールチップで説明が表示されるようになります。
クラス名の一方を編集すると、もう一方も編集されます。

簡単に編集ができますので、よく使う定型文は登録しておくと便利です。
みんなで共有しても良いかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください