Текстовые шаблоны — Text Templates

Анонсы новых плагинов. Обсуждение плагинов ведется ниже.
Post Reply
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Текстовые шаблоны — Text Templates

Post by Marty »

Плагин позволяет упростить ввод повторяющихся фрагментов текста,
с возможностью использования макроподстановок (параметров) в теле
шаблона (code snippets).

Дополнительные возможности плагина:

Коментирование кода : Закоментировать выделенное
Раскоментировать выделенное
Выделить закоментированное

Управление отступами : Увеличить отступ
Уменьшить отступ
Увеличить отступ (1 пр)
Уменьшить отступ (1 пр)

Выделение блоков : Выделить блок строк (вверх)
Выделить блок строк (вниз)
Выделить блок кода
Выделить блок кода и заголовок

При использовании .reg файлов, поставляемых в архиве, все возможности
доступны "в одно нажатие".


Текстовые шаблоны
------------------
При использовании параметров в теле шаблона можно использовать
предопределенные имена параметров или задавать их произвольно.
В последнем случае при обработке шаблона будет произведен запрос
на ввод значений параметров с клавиатуры.
При вставке шаблона позиция курсора после вставки определяется
символом '@' в теле шаблона (при необходимости вставки символа
'@' его следует продублировать).

Плагин может работать в двух основных режимах:
1) в режиме ввода имени шаблона в отдельном поле ввода;
2) в режиме ввода имени шаблона в редактируемом файле с
последующей заменой имени шаблона на его тело.

При вводе имени шаблона в поле ввода могут использоваться
два режима:
1) режим немедленного завершения ввода и вставки шаблона,
если плагин может однозначно идентифицировать шаблон по
вводимому имени (по начальным символам);
2) режим автодополнения введенного текста, если плагин может
однозначно идентифицировать шаблон по вводимому имени (по
начальным символам). В данном режиме для вставки тела шаблона
требуется подтвердить ввод нажатием клавиши [Enter].

Плагин позволяет использовать пользовательские настройки для
отдельных каталогов.


Дополнительные возможности плагина
-----------------------------------
Коментирование кода
--------------------
Закоментировать выделенное - закоментировать выделенный фрагмент кода
Раскоментировать выделенное - убрать коментарий с выделенного фрагмента
Выделить закоментированное - выделить закоментированный фрагмент кода

Символы и строки, определяющие начало и конец коментария, задаются для
каждого типа файлов отдельно.

Управление отступами
---------------------
Увеличить отступ - уменьшает или увеличивает отступ
Уменьшить отступ выделенного блока или текущей строки

При увеличении отступа используются настройки редактора -
"Пробелы вместо табуляции" и "Размер табуляции". При уменьшении
отступа происходит автоматическое определение типа отступа (tab или пробелы).

Увеличить отступ (1 пр) - уменьшает или увеличивает отступ
Уменьшить отступ (1 пр) выделенного блока или текущей строки
на 1 пробел

Выделение блоков
-----------------
Выделить блок строк (вверх) - выделяет блок строк. Блок строк ограничен
Выделить блок строк (вниз) сверху и снизу пустой строкой - строкой,
содержащей только пробельные символы или
символы табуляции.

Выделение блоков строк работает инкрементально в соответствующем направлении.
Если нет предыдущего выделения, то выделяется блок, в котором стоит курсор или
блок, расположенный не дальше, чем 3 строки от курсора в соответствующем
направлении.

Выделить блок кода - выделяет блок кода
Выделить блок кода и заголовок - выделяет блок кода и заголовок блока

Выделение блоков кода производиться инкрементально - если какой-либо блок
уже выделен, то повторный вызов выделит объемлющий блок.


http://plugring.farmanager.com/plugin.php?pid=729

Обсуждение здесь: http://forum.farmanager.com/viewtopic.php?t=994
Last edited by Marty on Fri 13 Apr, 2007 11:22, edited 8 times in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Text Templates. Версия 0.8

Post by Marty »

Версия 0.8
В архив с программой добавлены файлы File_id.diz и Descript.ion
с кратким описанием архива.

Добавлена поддержка масок в расширениях файлов.
В атрибуте 'extention' поддерживается задание маски имени файла.
Символ '*' обозначает любое число любых символов, символ '?' - однократное
вхождение любого символа. Символ '*' можно использовать как в конце, так
и в середине маски (последняя ситуация не тестировалась исчерпывающе и может
содержать ошибки в реализации). Ниже приведено несколько тестовых случаев,
на которых проверялась корректность сравнения по маске:

+ .c*p equals to .cxxp
+ .in*mat* equals to .information
+ .in*mat* equals to .inmat
- .in*mat* not equal to .infwat
+ .in*?at* equals to .infwat
- .cpp not equal to .cxx
- .c?? not equal to .hpp
+ .c?? equals to .cpp
+ .c?? equals to .cxx
- .c* not equal to .hpp
+ .c* equals to .cpp
+ .c* equals to .cxx
+ .c* equals to .c
Last edited by Marty on Tue 14 Aug, 2007 11:07, edited 2 times in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Post by Marty »

Версия 0.9
Изменен алгоритм поиска файла с пользовательскими настройками.
Раньше поиск файла 'texttp-custom-info.xml' производился только в
том каталоге, где расположен редактируемый файл.
Теперь поиск файла 'texttp-custom-info.xml' производиться сначала в том же
каталоге, где находится и редактируемый файл, затем во всех каталогах
выше, вплоть до корневого каталога. Поиск прекращается, когда файл
найден в одном из этих каталогов.

Далее по мелочам.

Добавлены шорткаты i1pack-i8pack, ipoppack, вставляющие
#include <pshpack1.h>
...
#include <pshpack8.h>
#include <poppack.h>

Это совсем к данному плагину не относиться, но пусть будет тут.

В архив с программой добавлен файл CharCase.reg.
Он создает клавиатурные макросы для изменения регистра символов.
Сочетания клавиш соответствуют аналогичным в среде Visual Studio.
Ctrl+Shift+U - UPPERCASE
Ctrl+U - lowercase
Ctrl+Alt+U - Each Word Begins With Uppercase Char (в студии такого шортката нет)
Для корректной работы макросов необходим плагин "EditCase", в меню плагинов (F11)
ему должна быть назначена горячая клавиша 'c'.
Last edited by Marty on Tue 14 Aug, 2007 11:07, edited 2 times in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Версия 0.901. Значительное расширение функциональности!

Post by Marty »

Версия 0.901
Пре-релиз. Не реализованы функции "Раскоментировать выделенное",
"Выделить закоментированное", см. далее.

!!! Значительное расширение функциональности !!!

Дополнительные возможности плагина:

Коментирование кода : Закоментировать выделенное
Раскоментировать выделенное
Выделить закоментированное

Управление отступами : Увеличить отступ
Уменьшить отступ
Увеличить отступ (1 пр)
Уменьшить отступ (1 пр)

Выделение блоков : Выделить блок строк (вверх)
Выделить блок строк (вниз)
Выделить блок кода
Выделить блок кода и заголовок

При использовании .reg файлов, поставляемых в архиве, все возможности
доступны "в одно нажатие".

Добавлен файл 'comment.reg' с горячими клавишами для автокоментирования,
управления отступами и блоками.


В файл AltW-hotkey.reg добавлен шорткат Alt+Ц для вызова плагина при
включенной русской раскладке.

Добавлен файл 'hotkeys-ru.rtf' с описанием горячих клавиш, которые
регистрируются файлами 'AltW-hotkey.reg', 'comment.reg', 'CharCase.reg'.
Можно распечатать и повесить рядом с моником.

Введены некоторые проверки для конфигурационных файлов.
Часть атрибутов сделана обязательными - их отсутствие вызовет ошибку
загрузки конфигурационного файла.
Обязятельные атрибуты:
тэг file-type - type, extention
тэг template - name
тэг comment - file-type
тэг shortcut - name, file-type

Описание типа файла csrc, ранее включавшее файлы с расширениями
".c,.cpp,.cxx,.c++,.h,.hpp" разделено на два типа c-src с расширениями
".c,.h" и cpp-src с расширениями ".cpp,.cxx,.c++,.hpp".
Стало возможным задавать одинаковый шорткат одновременно для нескольких
типов файлов путем перечисления типов файлов через запятую
(ранее для каждого из типов следовало продублировать строку - описание шортката)
Все описания шорткатов изменены так, чтобы работать для файлов c-src и cpp-src
(все шорткаты должны работать так же, как и раньше, за исключением шорткатов
"//", "/*" и "separator")
Подробнее см. раздел "Шорткаты" в файле "readme.txt".
Last edited by Marty on Tue 14 Aug, 2007 11:07, edited 3 times in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Post by Marty »

Версия 0.902
Реализованы функции "Раскоментировать выделенное", "Выделить закоментированное".

Изменены горячие клавиши для функций коментирования и выделения.
Ctrl+Shift+C - Раскоментировать - Ctrl+Alt+C
Ctrl+Shift+Z - Уменьшить отступ - Ctrl+Alt+Z
Ctrl+Shift+X - Уменьшить отступ (1 пр) - Ctrl+Alt+X

Ctrl+Alt+D - Выделить строки (вверх) - Alt+E
Ctrl+Shift+D - Выделить код и заголовок - Ctrl+E
Старый регистрационный файл переименован в 'old-comment.reg', старые описания
в 'old-hotkeys-ru.rtf'.

Добавлены функции: "Переместиться к началу выделения" (Ctrl+R),
"Переместиться к концу выделения" (Ctrl+F), "Снять выделение" (Ctrl+T).
Last edited by Marty on Tue 14 Aug, 2007 11:06, edited 1 time in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Текстовые шаблоны - Text Templates версия 0.905

Post by Marty »

Версия 0.903 (alpha)

Изменены горячие клавиши.
Ctrl+Z Увеличить отступ -> Tab
Ctrl+Alt+Z Уменьшить отступ -> Shift+Tab
Ctrl+X Увеличить отступ (1 пр) -> Ctrl+Space
Ctrl+Alt+X Уменьшить отступ (1 пр) -> Shift+Space

Новые комбинации помещены в TabSpace.reg. Старые убраны из comment.reg
и помещены в zx.reg. Новые горячие клавиши срабатывают только если в редакторе
выделен фрагмент текста.

Добавлены "inline" шаблоны:
<shortcut name="..." template="inline:TPL TEXT" ... />
вставляет TPL TEXT - не требуется ни внешний файл с шаблоном, ни отдельное
его определение тэгом template.

Поддерживается автокоментирование для следующих типов файлов: c-src, cpp-src,
csharp-src, java-src, js-src, pas-src, perl-src, bat-file, xml, html, asp-net.

!!! Добавлена функция форматирования блоков текста/кода в соответствии с
предопределенными стилями. Документации пока нет, но там все прозрачно.
Реализована возможность написания и подключения своих модулей форматирования
(плагинов третьего уровня). В поставку включены два модуля форматирования -
форматирование простого текста и вызов внешних команд для форматирования.
Включен в поставку заголовочный файл с описанием интерфейса плагинов. Также включены
исходные тексты плагинов.


Версия 0.904 (alpha)

В файл 'comment.reg' добавлена горячая клавиша Ctrl+A (Ctrl+Ф).
Она срабатывает когда в редакторе выделен какой-либо фрагмент и снимает выделение.
Повторное начатие вызывает стандартную функцию "Выделить все".

Исправлена ошибка в функциях "Выделить блок кода/Выделить блок кода и заголовок".
При вызове этих функций последняя строка блока не попадала в выделение.

Реализована функция "Инкрементное выделение". Данная функция производит
последовательное увеличение выделеной части строки. Клавиатурный макрос для этой
функции расположен в файле 'CtrlW-hotkey.reg'.


Версия 0.905
Исправлена ошибка при коментировании произвольного фрагмента - в конец
добавлялся лишний пробел.
Исправлена недоработка - если был выделен коментарий, а курсор не попадал в него,
то коментарий не удалялся.
Сделано руководство по использованию и конфигурированию плагина. Руководство
доступно в двух вариантах - в формате WinHelp и rtf. Rtf версия поставляется в отдельном архиве.
Last edited by Marty on Tue 14 Aug, 2007 11:06, edited 2 times in total.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Post by Marty »

Версия 0.906
Изменен способ описания типов файлов (тэг file-types/file-type). Ранее тип файла задавался
только расширением. Теперь атрибут extention убран, вместо него введен атрибут mask и
дополнительный атрибут use-path (true|false), который определяет, будет ли в сравнении с маской
участвовать полный путь и имя файла, или только имя файла без пути.
Добавлена возможность изменения настроек редактора (expand tabs to spaces,
tab size, auto indent, cursor beol) для каждого типа файла отдельно (функция может быть
несовместима с плагином ESC).
Добавлена возможность получения доступа к внутренним функиям TextTP (TTP API).
Добавлена возможность отслеживания изменений содержимого открытых в редакторе файлов и
переоткрытие этих файлов сразу после обнаружения модификации.

Содержание руководства:
Благодарности 3
Использованные сторонние разработки 3
Требования к программному окружению 3
1 Возможности плагина 3
1.1 Вставка шаблонов 3
1.2 Комментирование кода и работа с блоками текста 4
1.3 Форматирование блоков текста/кода 4
1.4 Индивидуальные настройки редактора 4
1.5 Слежение за временем модификации файла 5
2 Отличия от аналогов 5
2.1 Отличия от True Template 5
2.2 Отличия от External Filter 5
2.3 Отличия от ESC 6
2.4 Прочие возможности 6
3 Использование плагина 6
3.1 Слежение за модификацией редактируемого файла и переоткрытие файла 6
3.2 Выделение блока строк 6
3.3 Выделение блока кода 8
3.4 Выделение блока кода и заголовка 9
3.5 Инкрементное выделение в строке 10
3.6 Комментирование кода 11
3.7 Форматирование текста 13
3.8 Форматирование кода 14
4 Настройка плагина 18
4.1 Пользовательские конфигурационные файлы 18
4.2 Конфигурация плагина 19
4.3 Типы файлов 20
4.4 Шаблоны 21
4.5 Переменные в теле шаблона 22
4.6 Шорткаты 23
4.7 Стандартные шорткаты 24
4.8 Комментирование кода 24
4.9 Выделение блоков текста/кода 28
4.10 Инкрементальное выделение 29
4.11 Индивидуальные настройки редактора 30
4.12 Форматирование текста/кода 31
4.12.1 Плагин simple-text-format 33
4.12.2 Плагин external-formatter 34
5 TextTemplates API 34
5.1 ttpapiCreateObject 35
5.2 Интерфейс ITtpApiUnknown 35
5.3 Интерфейс IPluginVersionInfo 36
5.4 Интерфейс ITtpConfig 37
5.5 Интерфейс ITtpApi 37
5.6 ttpapi::findPlugin 38
5.7 ttpapi::getFileType 39
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

TextTP - minor update

Post by Marty »

Обновление minor - добавил макросы $_С_INC_GUARD_$ и $_с_inc_file_$. Данные макросы детектят положение файла в файловой системе, если файл находится в подкаталоге 'include', 'inc', 'h' или 'source', 'src', то:
1) файл "include/marty/someh.h"
_С_INC_GUARD_: MARTY_SOMEH_H
_с_inc_file_ : <marty/some.h>
2) файл "src/marty/someh.h"
_С_INC_GUARD_: SRC_MARTY_SOMEH_H
_с_inc_file_ : "src/marty/some.h"
3) файл "someother/path/to/file/marty/someh.h"
_С_INC_GUARD_: SOMEH_H
_с_inc_file_ : "some.h"

Соответственно, обновился шаблон cheader.h - теперь он такой

Code: Select all

#ifndef $_С_INC_GUARD_$
#define $_С_INC_GUARD_$

/* add this lines to your scr
#ifndef $_С_INC_GUARD_$
    #include $_с_inc_file_$
#endif
*/

#endif /* $_FILE_NAME_$_$_FILE_EXT_$ */
Post Reply

Return to “Анонсы новых плагинов”