Page 6 of 17

Posted: Wed 21 Sep, 2005 09:13
by Onanymous

Latest post of the previous page:

ну например прежнее

Code: Select all

<Expand  Pattern="\\frac"   Imm="c"    At=".*\p.*" 		To="\\frac{\0}{\1}"/>
не работает, приходится писать так

Code: Select all

<Expand  Pattern="\\frac"   Imm="c"    At=".*\p.*" 	To="\?''e'1'?\?''e?\\frac{\0}{\1}"/>
а если Ё там не будет то соответсвующая строка просто неактивна и ничего туда ввести нельзя...

Posted: Wed 21 Sep, 2005 10:16
by 4ekucT
Все правильно без 'ё' мы имеем элемент управления 'статическое поле'
Нынче поддерживаются:

Code: Select all

  1) Статический текст
     Формат - \?'Static text'?
  2) Чекбокс (+ элемент выбран, - элемент не выбран)
     Формат - \?'Name'x'On value'+'Off value'?
  3) Комбобокс (+ элемент активен, - элемент не активен; активным может быть только 1 элемент)
     Формат - \?'Name:'c-'Item 1'+'Item item 2'-'Item item 3'?
  4) Выпадающее меню (+ элемент активен, - элемент не активен; активным может быть только 1 элемент)
     Формат - \?'Name:'d-'Item 1 name':'Item 1: On value':'Item 1: Off value'+'Item 2 name':'Item 2: On value':'Item 2: Off value'-'Item 2 name':'Item 2: On value':'Item 2: Off value'?
  5) Поле ввода
     Формат - \?'Name:'e'init value'?
  6) Фиксированное поле ввода (после начального значения указывается фиксированная длинна поля)
     Формат - \?'Name:'f'AB':'2'?
  7) Листбокс (+ элемент активен, - элемент не активен; активным может быть только 1 элемент)
     Формат - \?'Name:'l-'Item 1 name':'Item 1: On value':'Item 1: Off value'+'Item 2 name':'Item 2: On value':'Item 2: Off value'-'Item 2 name':'Item 2: On value':'Item 2: Off value'?
  8) Группа радио элементов (+ элемент активен, - элемент не активен; активным может быть только 1 элемент)
     Формат - \?'Name:'r-'Item 1 name':'Item 1: On value':'Item 1: Off value'+'Item 2 name':'Item 2: On value':'Item 2: Off value'-'Item 2 name':'Item 2: On value':'Item 2: Off value'?
Вроде как правильно так

Code: Select all

<Expand  Pattern="\\frac"   Imm="c"    At=".*\p.*"    To="\?''e'1'?\?''e''?\\frac{\0}{\1}"/>
Эта 'ё' как ты называешь определяет что элемент управления есть поле вовода - editor. И оно работает так

Code: Select all

\?'name'e'init value'?

Posted: Wed 21 Sep, 2005 12:30
by Onanymous
Ага... Ого!!! извиняйте, пойду почитаю true-tpl.txt

Posted: Fri 23 Sep, 2005 12:07
by Centaur
Бага репорт, однако.

Version:
FAR 1.70 beta 5 build 1634
TrueTemplate 2.00

Summary:
Использование \l при отсутствии выделенного блока приводит к падению плагина.

To reproduce:
  • В файл true-text-txt.xml из стандартной поставки добавляем правило:

    Code: Select all

    <Expand Key="CtrlB" At="&AnyWhere;" To="*\l*" />
  • Создаём новый файл 1.txt
  • Нажимаем клавишу Ctrl+B
Expected behavior:
в позицию курсора вставляется текст "**"

Observed behavior:
в позицию курсора вставляется текст "*", после чего вываливается сообщение:
Plugin call error
Exception occurred:
"Attempt to read from the inaccessible address 0x34"
Exception address: 0x7C901010 in module:
C:\...s\Editor\TrueTemplate\true-tpl.dll
Workaround:
«а вы так не делайте!»

Proposed solution:

Code: Select all

--- true-tpl.cpp.bak	Sun Sep 11 06:00:20 2005
+++ true-tpl.cpp	Fri Sep 23 17:03:02 2005
@@ -1350,22 +1350,23 @@
 static void EditorSaveRestore(void)
 {
   int vblock;
   int sellength=0;
   EditorInfo ei;
   Info.EditorControl(ECTL_GETINFO, &ei);
   TEditorPos ep=EditorGetPos();
   char filename[NM];
   lstrcpy(filename,"%TEMP%\\true-template.tmp");
   FSF.ExpandEnvironmentStr(filename, filename, sizeof(filename));
   FILE* file=fopen(filename,"rb");
+  if (!file) return;
   fread(&vblock,1,sizeof(int),file);
   fread(&sellength,1,sizeof(int),file);

Posted: Fri 23 Sep, 2005 13:44
by Centaur
=Tim Sobolev= wrote:вот несколько примеров использования @@DATETIME@@:

@@DATETIME:yyyy/MM/dd hh\:mm\:ss@@ => 2005/09/16 01:12:19
@@DATETIME:dd-MM-yyyy HH\:mm\:ss@@ => 16-09-2005 01:12:19
@@DATETIME:dd MMMM yyyy HH\:mm\:ss@@ => 16 сентября 2005 01:12:19
@@DATETIME:(ddd) dd-MM-yyyy HH\:mm\:ss@@ => (Пт) 16-09-2005 01:12:19
Здраво было бы задокументировать в описании \d и \w, что там ':' тоже надо эскейпить через '\'. А то без копания в исходниках это не интуитивно…

Posted: Fri 23 Sep, 2005 15:25
by 4ekucT
Спасибо за репорт сегодня же все исправим...

Posted: Thu 29 Sep, 2005 12:58
by Smitis
Почему не работает такой макрос:

Code: Select all

<TrueTpl>
<Language  File="*.aaa" ignoreCase="1" Desc="AAA files">
  <Expand  Pattern="aaa" At=End To="qqq\{CtrlHome}QQQ" />
</Language>
</TrueTpl>
Пример написан специально для теста.
Необходимое действие: "aaa" в конце строки заменяем на "qqq". Затем перескакиваем в начало файла и там вставляем "QQQ".
В действительности: вместо "aaa" получаем "qqqQQQ" и курсор в начале текста.
Такое впечатление, что управляющие символы \{key} обрабатываются в конце макроса (т.е. макрос обрабатывается не по порядку)
FAR 1.70 alpha 6 (build 2039)
TrueTemplate 2.00

Posted: Thu 29 Sep, 2005 18:51
by Centaur
А вот ещё псевдофича.

Хотим клавишу, которая в HTML-файл вставит entity reference «<». Естественно, эскейпим &, по правилам XML:

Code: Select all

<Expand Key="Alt," To="<" />
А вот хрен. < разворачивается в < разворачивается в <. Более того, &lt; тоже разворачивается в <.

Обходим фичу, эскейпя l:

Code: Select all

<Expand Key="Alt," To="&\lt;" />
Всё работает.

Теперь хотим клавишу, которая вставит «&nbsp;». Наученные горьким опытом, эскейпим n… эээ, стоп, \n развернётся в перевод строки. Ну ладно, тогда эскейпим что-нибудь ещё.

Code: Select all

<Expand Key="CtrlShiftSpace" To="&n\bsp;" />
Клавиша вставляет «&sp;». Ах да, \b — это же backspace. Как я мог на это попасться.

Code: Select all

<Expand Key="CtrlShiftSpace" To="&nb\sp;" />
Вставляет &nbp;. Ах да, \s — это начало блока. \p — это позиция курсора. Наконец, на \; обретаем искомое.

Code: Select all

<Expand Key="CtrlShiftSpace" To="&nbsp\;" />
Так это я всё к чему? Entities надо разворачивать не до опупения, а один раз. Патч прилагается.

Posted: Sat 01 Oct, 2005 10:11
by Smitis
А пожелания принимаются?
Очень не хватает хранения истории выбранных темплейтов ("Template set selection") для тех файлов, для которых тип менялся в ручную. А то поменял тип, а при следующем открытии все макросы опять не те. Не удобно, когда в файле с определённым расширением содержится не то, что задумывалось по умолчанию.

Posted: Mon 03 Oct, 2005 20:49
by 4ekucT
Smitis wrote:Почему не работает такой макрос:

Code: Select all

<TrueTpl>
<Language  File="*.aaa" ignoreCase="1" Desc="AAA files">
  <Expand  Pattern="aaa" At=End To="qqq\{CtrlHome}QQQ" />
</Language>
</TrueTpl>
Пример написан специально для теста.
Необходимое действие: "aaa" в конце строки заменяем на "qqq". Затем перескакиваем в начало файла и там вставляем "QQQ".
В действительности: вместо "aaa" получаем "qqqQQQ" и курсор в начале текста.
Такое впечатление, что управляющие символы \{key} обрабатываются в конце макроса (т.е. макрос обрабатывается не по порядку)
FAR 1.70 alpha 6 (build 2039)
TrueTemplate 2.00
Подругому никак ибо я делаю - Info.AdvControl(Info.ModuleNumber, ACTL_POSTKEYSEQUENCE, (void*)&ks);
А в спецухе написано

Code: Select all

ACTL_POSTKEYSEQUENCE Передать в FAR последовательность внутренних кодов клавиш.
Param - указатель на структуру KeySequence
Функция возвращает TRUE - клавиши успешно помещены в очередь, FALSE - ошибка.
Последовательность переданных клавиш начнет исполняться тогда, когда FAR получит управление.
Последовательность переданных клавиш начнет исполняться тогда, когда FAR получит управление.

Posted: Mon 10 Oct, 2005 05:45
by Kildor
жутко безобразное поведение плагина (вторая версия):
Работаю, работаю, потом бац, и плагин отключается.
не реагирует ни на что, при начале редактирования файла — окошко „tru tpl — загрузка” — появляется, но и только.
В меню плагинов только самое первое меню есть его — невозможно ни сменить схему, ни отобразить внешнюю команду, ничего.
можно удалить спокойно при этом dll его, он никак не отреагирует.

И так как всё это происходит молча, без какого-либо оповещения, разобраться нельзя…
Через пару дней — зарабатывает вновь., но ещё через денёк — опять умирает.
плагин — поселдий, фар — 2039.

Posted: Mon 10 Oct, 2005 09:24
by 4ekucT
Хммм такое поведение пока ни у кого не наблюдалось больше. Постарайся понять изза чего это, так что бы я смог это почторить у себя... Тогда полечим.

Posted: Mon 10 Oct, 2005 10:46
by Kildor
4ekucT
Так…
убил все шаблоны, оставил только
<?xml version="1.0" encoding="windows-1251"?>
<TrueTpl>
<!-- Шаблоны по умолчанию -->
<Include File="templates\true-default.xml"/>
</TrueTpl>
true-beautifiers.xml
true-compilers.xml
true-default.xml
true-defines.xml
true-global.xml
файлы стандартны
Вставляются только разделители, и то, только через F11 T Enter
(нет ни кавычек, ни скобок.)
А ещё странное поведение
редактирую
C:\Program Files\Far\FarEng.lng
F11 T T
экран делится на две части, в нижней — появляется содержимое файла C:\Program Files\CVSNT\\Copying

во всех остальных просмотренных файлах — F11 T T не показывает ничего.
PS: Может у тебя аська/жаббер есть?

Posted: Mon 10 Oct, 2005 19:17
by 4ekucT
Kildor wrote:4ekucT
Так…
убил все шаблоны, оставил только
<?xml version="1.0" encoding="windows-1251"?>
<TrueTpl>
<!-- Шаблоны по умолчанию -->
<Include File="templates\true-default.xml"/>
</TrueTpl>
true-beautifiers.xml
true-compilers.xml
true-default.xml
true-defines.xml
true-global.xml
файлы стандартны
Вставляются только разделители, и то, только через F11 T Enter
(нет ни кавычек, ни скобок.)
Не повторилось. Есть и скобки и кавычки.
А ещё странное поведение
редактирую
C:\Program Files\Far\FarEng.lng
F11 T T
экран делится на две части, в нижней — появляется содержимое файла C:\Program Files\CVSNT\\Copying

во всех остальных просмотренных файлах — F11 T T не показывает ничего.
Не повторилось.
PS: Может у тебя аська/жаббер есть?
АСЯ - 674333
ЖАБЕР - 4ekucT

Posted: Tue 11 Oct, 2005 04:11
by Kildor
4ekucT
Incorrect or damaged c:\...ugins\TrueTemplate\true-tpl-rus.lng
Message 39 not found
True-tpl-rus.lng — файл от 18.09, 1132 байт.
Создаю файл 1.cpp, предлагается на выбор несколько шаблонов, после выбора — выдаётся этот диалог.
Если нажимаю ok, то работа продолжается.

Есть у меня подозрение на то, что к глюкам причастен Punto Switcher (версии 2.8.0.0)
Периодически глюки начинаются после автосвича, периодически пропадают после неё.
PS:

Code: Select all

C:\Program Files\Far\FarEng.lng                                 DOS  Строка       1/1984   Кол 1          46  09:16
.Language=English,English

"Evaluation copy, please register."
"Registered to"
"Yes"
"No"
"Ok"

"&Yes"
"&No"
"&Ok"

"Cancel"
"Retry"
"Skip"
"Abort"
"Ignore"
"Delete"
"Split"

"&Cancel"
"&Retry"
C:\Program Files\CVSNT\\Copying                                       DOS  Строка        1/340   Кол 1            9
        GNU GENERAL PUBLIC LICENSE
           Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

          Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
1        2        3        4        5        6        7        8Строка  9Видео   10        11ИстПр   12

Posted: Tue 11 Oct, 2005 08:24
by Centaur
Kildor wrote:А ещё странное поведение
редактирую
C:\Program Files\Far\FarEng.lng
F11 T T
экран делится на две части, в нижней — появляется содержимое файла C:\Program Files\CVSNT\\Copying
Это у тебя Навигация случилась. Фича, надо сказать, весьма своеобразная :)

Posted: Tue 11 Oct, 2005 10:05
by Kildor
ключевое слово тут — „случилась”
Идея мне понравилась, разве что неудобно между ними переключаться, но то как эта фича проявляется — мне не понятно…

PS: Сейчас всё вроде работает, но долго ли это будет продолжаться — не представляю… ;)