понедельник, 20 октября 2008 г.

Упрощаем себе жизнь

Да, именно так. И я не побоюсь этого громкого названия поста. :) Речь, наконец-то, пойдет о создании 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>

Теперь, если вдруг набрать в редакторе кода ;= то данный оператор автоматически заменится на правильный :=. Это пока все, подробнее о создании более сложных и полезных шаблонов я напишу в следующих своих постах.

1 комментарий:

  1. Здравствуйте.

    http://s001.radikal.ru/i194/1002/0a/0d7bcb2b47c6.jpg

    Пытался создать такой вот шаблончик, чтобы free заменялось на FreeAndNil(); но, не работает %)
    И еще, как из среды создавать эти файлы?

    ОтветитьУдалить