使用context = php_new_file_context为Eclipse PDT编写代码模板

时间:2011-04-01 14:45:07

标签: xml eclipse templates eclipse-pdt

我有一个基本课程,我经常延伸。我认为在创建新文件时添加扩展模板作为选择会很好。我去了Eclipse-> Preferences-> PHP-> Code Style-> Code Templates并决定复制和修改“Simple php file”。所以我导出了该模板并将其打开。它看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<templates>
    <template autoinsert="true" context="php_new_file_context"
        deleted="false" description="Simple php file" enabled="true"
        id="org.eclipse.php.ui.editor.templates.php.author" name="New simple PHP file">
    &lt;?php
            ${cursor}
    ?&gt;
    </template>
</templates>

我编辑的文件看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<templates>
    <template autoinsert="true" context="php_new_file_context"
        deleted="false" description="PHP Item subclass file" enabled="true"
        id="org.eclipse.php.ui.editor.templates.php.itemclass" name="Item subclass file">
        &lt;?php
        /**
        * ${enter description}
        * @author: My Name
        * @version: 
        **/
        class ${classname} extends Item {
            const PKEY='${pkey}'; //name of primary key variable
            const TABLE='${table}'; //name of db table

            //db table vars
            $${pkey};
            $${name};

            //history vars


            public static function who() {
                return __CLASS__;
            }

        }
        ?&gt;
    </template>
</templates>

然后我将其保存为item.xml并尝试导入它。导入没有错误,但新模板没有显示在列表中。我唯一能想到的是我为id属性选择的字符串是有问题的。但我找不到任何关于正确创作模板的参考资料。我的google-fu失败了,或者我正在尝试做一些我不应该做的事;我不知道。

想法?

1 个答案:

答案 0 :(得分:4)

你遇到的问题是变量名称中有一个空格,模板的第三行${enter description},这是eclipse不允许的,但这些变量不会被考虑自动填充。

尽管如此,它不会让你导入它们,因为它是一个不再受支持的功能,如stated in their bugtracker。您可以使用当前模板系统,这将允许您将变量添加到自动填充。要使用它,您必须转到PHP > Editor > Templates。然后,您将创建一个新模板,其中包含您想要的名称,当您开始在新的php文件中键入它时,如果您从自动完成中选择它。