Среда разработки И++

Создание шаблонов

В качестве примера для создания шаблона можно использовать существующие, которые находятся в папке 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 = "<список опций>".
Соответствие букв (все латинские) опциям совместимости следующее:
CСтарый синтаксис условной операции;
BКраткое обращение к контейнерным полям;
HПоддержка ключевого слова ОБРАБОТЧИК;
IНеявное объявление переменных;
EСТОП как ВЫХОД вне цикла;
RИмя функции как синоним РЕЗУЛЬТАТ;
SРазделитель параметров цикла ';' вместо ',';
FРасширенная совместимость типов ЦЕЛОЕ и ЧИСЛО;
OНеобязательная ';' в объявлении полей.
#ifdef/#else/#endif позволяют установить различные варианты генерируемого текста в зависимости от указанных значений опций.
##filegroup папка, в которую будут помещен файл в окне проекта. Аналогично в шаблоне могут быть заданы другие директивы компилятора. Директивы компилятора игнорируются, когда файл подключается с помощью директивы #file с флагом optional и не добавляется в проект.

Внутри символов $ устанавливаются подстановки. В качестве подстановок могут использоваться параметры, опции, а также некоторые специальные значения:

$TITLE$ отображаемое название программы.
$DATE$ дата.
$PROJECT$ имя файла проекта.

Сверху определяется параметры шаблона. Это будут отдельные текстовые поля на страничке визарда, которые можно поменять в процессе создания проекта. Есть еще опции - параметры логического типа. Есть директива file, в которой указывается файл шаблона и как будет для них строится имя и надо ли их открывать. Внутри долларов устанавливаются подстановки.


См. также: