Создание шаблонов
В качестве примера для создания шаблона можно использовать существующие, которые находятся в папке templates относительно рабочей папки. Файлы шаблонов представляют собой файлы с расширением *.ipt.
В файле template.ini описываются существующие шаблоны и параметры их отображения в дереве шаблонов при создании нового проекта. Для каждого шаблона указываются следующие параметры:
file | – | путь к файлу шаблона; |
group | – | путь к папке, в которой этот шаблон будет отображаться в дереве шаблонов; |
display_name | – | отображаемое имя шаблона; |
param_prompt | – | необходимость указания дополнительных параметров при создании проекта на основе этого шаблона: 1 – да, 0 – нет. Параметры определяются внутри файла *.ipt. |
В файлах шаблонов для генерации исходного кода используются специальные директивы, начинающиеся с символа #:
#comment | – | комментарий в самом шаблоне, который не попадает в результирующий файл. |
#param | – | строковый параметр, значение которого указывается при создании проекта, задается следующим образом: #param <имя переменной>: "<имя, отображаемое при создании проекта>"[: readonly] = "<значение по умолчанию>". Необязательный флаг readonly позволяет задать неизменяемый в мастере проекта параметр. По умолчанию параметры доступны для изменения пользователем. |
#option | – | опция, значение которой устанавливается при создании проекта, используется следующий синтаксис: #option <имя переменной>: "<имя, отображаемое при создании проекта>"[: readonly] = on/off. Необязательный флаг readonly позволяет задать неизменяемую в мастере проекта опцию. По умолчанию опции доступны для изменения пользователем. |
#file | – | при помощи данной директивы можно указать дополнительные файлы проекта: #file <имя переменной>:"<путь к файлу *.ipt>" = "<имя файла>"[: open][: optional]. Необязательный флаг open указывает, что данный исходный файл будет открыт в окне текстового редактора. Необязательный флаг optional указывает, что данный файл будет создан, но в проект не добавлен. Это позволяет создавать вспомогательные файлы, например .ibpini для инициализации входных параметров. |
#module | – | при помощи данной директивы можно указать использование модулей в проекте: #module <имя модуля или *>: on/off. При указании * действие директивы распространияется на все модули. |
#capabilities | – | при помощи данной директивы можно выбрать для использования в проекте только те модули, которые поддерживают указанные возможности: #capabilities = "<значение>". Действие этой директивы комбинируется с действием директивы #module. В значении указывается список возможностей. Подробнее о возможностях и требованиях к подключаемым модулям см. здесь. |
#runtime | – | при помощи данной директивы можно включить поддержку типов времени выполнения: #runtime on/off. |
#command | – | при помощи данной директивы можно задать дополнительную команду компиляции: #command [: before/after]: "<команда>". Необязательный параметр before или after определяет фазу выполнения команды - до или после компиляции соответственно. |
#compatibility | – | при помощи данной директивы можно указать опции совместимости для нового проекта.
По умолчанию для новых проектов все опции совместимости выключены.
Список необходимых опций указывается строкой, где буквы отвечают за отдельные опции: #compatibility = "<список опций>". Соответствие букв (все латинские) опциям совместимости следующее: |
#ifdef/#else/#endif | – | позволяют установить различные варианты генерируемого текста в зависимости от указанных значений опций. |
##filegroup | – | папка, в которую будут помещен файл в окне проекта. Аналогично в шаблоне могут быть заданы другие директивы компилятора. Директивы компилятора игнорируются, когда файл подключается с помощью директивы #file с флагом optional и не добавляется в проект. |
Внутри символов $ устанавливаются подстановки. В качестве подстановок могут использоваться параметры, опции, а также некоторые специальные значения:
$TITLE$ | – | отображаемое название программы. |
$DATE$ | – | дата. |
$PROJECT$ | – | имя файла проекта. |
Сверху определяется параметры шаблона. Это будут отдельные текстовые поля на страничке визарда, которые можно поменять в процессе создания проекта. Есть еще опции - параметры логического типа. Есть директива file, в которой указывается файл шаблона и как будет для них строится имя и надо ли их открывать. Внутри долларов устанавливаются подстановки.