Да, именно так. И я не побоюсь этого громкого названия поста. :) Речь, наконец-то, пойдет о создании Live Templates, о которых я говорил несколько ранее. Давно хотел написать обзор по этому поводу, но все руки не доходили.
Итак. LiveTemplates представляют собой обычный XML файл следующей структуры:
<?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>
Это общий скелет шаблона, который генерируется средой по умолчанию и который подойдет для нашего сегодняшнего примера. Разберем его подробнее.
Собственно шаблон начинается с тега <template name="" invoke="manual">. В атрибуте name указывается произвольное имя шабна, а в атрибуте invoke указывается режим запуска данного шаблона. Данный атрибут может принимать следующие значения: manual и auto.
Далее идет тег краткого описания шаблона, и указания автора.
Ну и далее – наиболее интересный тег – code. Атрибут language может принимать следующие значения: CSharp, Delphi, HTML, IDE, XML. Стоит так же отметить, что приведенный выше скелет шаблона создается также с использованием шаблона с названием code template template, что говорит о большой гибкости LiveTemplates.
Во вложенном теге CDATA собственно и размещается сам код шаблона.
Теперь, когда разобрались со структурой шаблона, попробуем создать шаблон который будет автоматически исправлять опечатку в операторе присваивания, которая иногда может вывести из себя :). Я имею ввиду опечатку в виде оператора ;= вместо необходимого :=.
Установим атрибут имени шаблона в «;=», а атрибут invoke в auto поскольку нам необходимо чтобы шаблон применялся автоматически. Далее установим значения тегов description и autor по своему усмотрению и перейдем к коду самого шаблона.
В атрибуте language следует написать Delphi, поскольку именно для этого языка мы создаем шаблон. Так же следует добавить еще один атрибут, отсутствующий в скелете по умолчанию – delimeter раный значению «|», который определяет разделитель шаблона, а в CDATA следует написать следующее: <![CDATA[:= |end|]]>, где |end| указывает положение курсора после применения шаблона. Осталось только сохранить шаблон в специальной папке, чтобы IDE могла их найти. По умолчанию эта папка находится c:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Borland\BDS\4.0\code_templates. Вот и все – ничего сложного, а сколько нервов теперь мы себе сэкономим :).
Полный текст шаблона получившийся у меня выглядит следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<codetemplate xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
version="1.0.0">
<template name=";=" invoke="auto">
<description>
typo fix
</description>
<author>
Valeriy
</author>
<code language="Delphi" delimiter="|">
<![CDATA[:= |end|]]>
</code>
</template>
</codetemplate>
Теперь, если вдруг набрать в редакторе кода ;= то данный оператор автоматически заменится на правильный :=. Это пока все, подробнее о создании более сложных и полезных шаблонов я напишу в следующих своих постах.
Здравствуйте.
ОтветитьУдалитьhttp://s001.radikal.ru/i194/1002/0a/0d7bcb2b47c6.jpg
Пытался создать такой вот шаблончик, чтобы free заменялось на FreeAndNil(); но, не работает %)
И еще, как из среды создавать эти файлы?