Написание шаблона кода для Eclipse PDT с context = php_new_file_context - PullRequest
2 голосов
/ 01 апреля 2011

У меня есть базовый класс, который я расширяю довольно часто.Я подумал, что было бы неплохо добавить шаблон расширения в качестве выбора при создании нового файла.Я пошел в Eclipse-> Настройки-> PHP-> Стиль кода-> Шаблоны кода и решил скопировать и изменить «Простой файл php».Я экспортировал этот шаблон и открыл его.Это выглядит так:

<?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, проблематична.Но я не могу найти никаких ссылок на правильное создание шаблона.Либо мой гугл-фу не работает, либо я пытаюсь сделать что-то, чего не должен делать;Я не знаю.

Идеи?

1 Ответ

4 голосов
/ 13 июня 2011

Проблема, с которой вы столкнулись, заключается в том, что в имени переменной в третьей строке шаблона есть пробел ${enter description}, и это не разрешено затмением, но эти переменные не будут учитываться при автозаполнении.

Несмотря на то, что он не позволит вам импортировать их, потому что эта функция больше не поддерживается, как указано в их багтрекер .Вы можете использовать текущую систему шаблонов, которая позволит вам добавлять переменные для автозаполнения.Чтобы использовать его, вам нужно перейти на PHP > Editor > Templates.Затем вы создадите новый шаблон с тем именем, которое вам нужно, и, когда вы начнете печатать его в новом php-файле, выберите его из автозаполнения.

...