True Template

Здесь можно обсудить ваш любимый плагин.
maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Post by maxdrfl »

Latest post of the previous page:

предложение (прошу прощение если повторю кого-нибудь):
при навигации, предлагать создавать файл, если он не существует.
- Возможно + диалог запроса расширения.

User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Post by 4ekucT »

Выложил багфикс версию

User avatar
DJ-Andrey-sXe
Posts: 50
Joined: Wed 21 Sep, 2005 10:33
Location: Тольятти
Contact:

Post by DJ-Andrey-sXe »

Ссылка? (зачеркнуто) Пардон, все нашел.
P.s. А почему бы не приклеить ссылку на анонсы в эту тему в первое сообщение?

User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Post by 4ekucT »

В анонсах.

User avatar
Tim Sobolev
Posts: 705
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 2 times

Post by Tim Sobolev »

Кое-что еще пофикшено, тестим...

Volodya
Posts: 239
Joined: Thu 31 Mar, 2005 19:41
Has thanked: 2 times

Post by Volodya »

Хотелось бы иметь в To код \u для вставки имени текущего пользователя (аналог @@USER_NAME@@).

User avatar
Tim Sobolev
Posts: 705
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time
Been thanked: 2 times

Post by Tim Sobolev »

Volodya
В следующей сборке скорее всего будет

jk
Posts: 4
Joined: Tue 04 Dec, 2007 16:51

Post by jk »

Помогите, плиз.

Хочу запользовать этот плагин для индентации и кое-какого форматирования (идентация по 4 пробела при длине таба в 8 пробелов), чистка концов строк (пробелы в конце) и т.д.

Задачка: когда нажимаешь два ентера при включеной автоиндентации получаются две пустые строки из одних пробелов (или табуляций), которые были вставлены автоматически для индентации (это фар так себя сам ведет, независимо от плугина). Хочется, чтобы при нажатии Энтера в строке, состоящей только из пробелов, курсор переходил на следующуюю строчку с сохранением индентации, но предыдуцая сторочка становилась пустой (только перевод строки, без лишних пробелов).

Беру файлик "true-source-c++-base.xml" и вставляю туда строчку:

Code: Select all

<Expand Pattern="[\t ]+" Key="Enter" At="[\t ]+\p" To="\{ShiftHome}\{CtrlDel}\r" />
При срабатывании фар падает. Видимо, хвостовая рекурсия переполнила стек. Хотя ее быть не должно, т.к. согласно документации:
\n - Enter
\r - Enter (с учетом Smart Indent)
\r исполняет только правила индентации, к которым Expand по идее не относится.
Если меняю строчку на :

Code: Select all

<Expand Pattern="[\t ]+" Key="Enter" At="[\t ]+\p" To="\{ShiftHome}\{CtrlDel}\n" />
Оно нифига не удаляет и оставляет мне выделенный блок.

Помогло вот это:

Code: Select all

<Expand Pattern="[\t ]+" Key="Enter" At="[\t ]+\p" To="\{ShiftHome}\{CtrlDel}\{Enter}" />
Работает как надо.

Но появилась другая проблема. Перестала работать хитрая индентация. Точнее, те ее действия, которые должны происходить по нажатию "Enter". Скажем, Enter после "{" делает обычную индентацию, без дополнительного отступа (я вырубил "автораскрывание" скобок, и вообще все автораскрывание, оставил только индентацию).

Как заставить работать этот макрос с сохранением Smart Indent?

jk
Posts: 4
Joined: Tue 04 Dec, 2007 16:51

Post by jk »

Не работают два привила Expand назначенные на одну кнопку:

Code: Select all

  <Expand Key="Tab" At="[\t]*  \p" To="\b\b\t" />
  <Expand Key="Tab" At="[\t]*\p" To="  " />
Работает только первое.

Не работает Expand по вводу табуляции:

Code: Select all

  <Expand Pattern="\t" Imm="\t" At=".*\p" To="zzz" />

jk
Posts: 4
Joined: Tue 04 Dec, 2007 16:51

Post by jk »

(Тихо сам с собой)
Залез в исходники, сделал поддержку нескольких правил на одной кнопке. Наконец-то получил "Fake half tabs" из Midnignt Commander'а (индентация в 4 пробела с сохранением стандартной табуляции). Плюс автоиндентация и уменьшение индентации по BackSpace.

Не понятно только где откопали такую кривую библиотечку regexp'ов. Неужели в Colorer'e? Он, вроде не страдал особыми странностями.
1. Дебаг версия падает по переполнению стека при попытке сравнить строку "// <4093 пробела> " с регэкспом /\/\/.*/. Т.к. строка расширяется до 4096 символов автоматически, не приходится надеяться на то, что у пользователя такого не произойдет если в его файлах строки будут короче. Для релиз версии стека еще хватает.
Собственно, глюк заключается в том, что размер стека не должен зависеть от длины строки (стек допуксается использовать только для возвратов на применение правила, а не на входной символ). А тут операция ".*" реализована хвостовой рекурсией а не итерацией. Т.е. стек жрется по уровню на каждый входной символ, а не на два уровня (на выражение "((.)*)" и на подвыражение "(.)"), как положено.
2. При попытке решить проблему 1.) изменил
#define MAX_STR_LEN 4096
на
#define MAX_STR_LEN 1024
После чего плугин начал падать из-за повреждение стека (запись за границу массива. Воистину magic number...

maxdrfl
Posts: 484
Joined: Mon 04 Apr, 2005 14:36
Location: Иркутск

Re: True Template

Post by maxdrfl »

TrueTemplate 2.09

не работает:

Code: Select all

<Navigation Mask="\\include\{(.+)\}" Pos="1" Path="." Suffixes=".tex" Rect="0%,0%,100%,100%" Viewer="0"/>
работает:

Code: Select all

<Navigation Mask="\\include\{(.+)\}" Pos="1" Path="." Rect="0%,0%,100%,100%" Viewer="0"/>

dolzenko
Posts: 452
Joined: Wed 19 Apr, 2006 14:42
Location: Ростов-на-Дону

Re: True Template

Post by dolzenko »

А возможно ли
1. штатными средствами плагина натравить например на текущее выделение замену по регэкспам
2. передать \ч параметры в вызове внешней команды через \o

amigo421
Posts: 11
Joined: Tue 25 Mar, 2008 16:16

вопрос новичка по truetemplate

Post by amigo421 »

Добрый день

пара вопросов:
1. в выпадающем списке походящих под введенную последовательность вариантов (в моем случае - список функций) есть возможность прирутить (или это уже есть и просто неумею пользоваться) быстрый выбор по первым набранным буквам (в некоторых случаях список велик и прокручивать разыскивая "на глаз" долго)?
2. может кто то пробовал написать обработку для *.h файлов для генерации xml с правилами?

Заранее спасибо

d.k.Brazz
Posts: 176
Joined: Wed 07 Sep, 2005 17:02
Location: дети берутся?

Re: True Template

Post by d.k.Brazz »

такой вот баг (заметил случайно):
берем голый фар (Far171.b2449.x86.rar)
устанавливаем TrueTemplate_2_09.7z
создаем файл test.sql
и с самого начала строки вводим знак '-' (минус) 4194 раза
при вводе 4195-го минуса - плагин падает

Code: Select all

╔════════════ Ошибка вызова плагина ════════════╗
║           Исключительная ситуация:            ║
║   "Нарушение доступа (запись в 0x2D3FB8DD)"   ║
║    Адрес исключения - 0x1001EA0F, модуль:     ║
║ C:\Far-Test\Plugins\TrueTemplate\true-tpl.dll ║
╟───────────────────────────────────────────────╢
║            Плагин будет выгружен!             ║
║                  Продолжить                   ║
╚═══════════════════════════════════════════════╝
При дальнейшем вводе минусов падает Colorer (если он установлен)

User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Re: True Template

Post by WARP ItSelf »

d.k.Brazz

Image
Никто не знал, а я...

User avatar
zg
zero-gravity
Posts: 5701
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 134 times
Contact:

Re: True Template

Post by zg »

WARP ItSelf wrote:d.k.Brazz

Image
да с тру темлейт — боян вообще-то, там где-то статические буфера под строки, раньше меньше были, сейчас видимо увеличили.

Post Reply

Return to “Обсуждение плагинов”