True Template — использование текстовых шаблонов при написании кода

Здесь можно обсудить ваш любимый плагин.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Latest post of the previous page:

Вот похоже в чем замес - когда я обрабатываю нажатие символа '{' в ProcessEditorInputW() и начинаю выполнять более сложную логику с раскрытием скобок и нажатием клавиши ввода через ECTL_PROCESSINPUT (с.м. код выше), то Far похоже начинает все выполнять как будто Shift еще зажат. Потому что если то же самое делать для символа '[' (для его ввода Shift не зажимается), то все работает отлично. Теперь бы понять, можно ли это обойти в плагине или без фикса в ядре Far не обойтись?
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Так и есть. Вот нацарапал примерчик, когда при перехвате ввода символа '{' мы пытаемся нажать в редакторе Enter, а получается ShiftEnter и вместо перехода на новую строку получаем вставку в текущую позицию имени редактируемого файла:

Code: Select all

intptr_t WINAPI ProcessEditorInputW(const struct ProcessEditorInputInfo *Info)
{
	if
	(
		(Info->Rec.EventType != KEY_EVENT && Info->Rec.EventType != 0x8001) ||
		Info->Rec.Event.KeyEvent.bKeyDown == 0
	) return (PROCESS_EVENT);

	if ((Info->Rec.EventType == KEY_EVENT) && (Info->Rec.Event.KeyEvent.uChar.UnicodeChar == L'{'))
	{
		INPUT_RECORD	tr;
		tr.EventType = KEY_EVENT;
		tr.Event.KeyEvent.bKeyDown = true;
		tr.Event.KeyEvent.wRepeatCount = 1;
		tr.Event.KeyEvent.wVirtualKeyCode = VK_RETURN;
		tr.Event.KeyEvent.wVirtualScanCode = 0;
		tr.Event.KeyEvent.uChar.UnicodeChar = 0;
		tr.Event.KeyEvent.dwControlKeyState = 0;
		::Info.EditorControl (-1, ECTL_PROCESSINPUT, 0, &tr);		
		return IGNORE_EVENT;
	}
	return (PROCESS_EVENT);
}
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Желающие могут ознакомится и потестить альфу True Template под Far 3.0.x (x86/x64). Но учтите, без фикса http://bugs.farmanager.com/view.php?id=2620 автораскрытие шаблонов в редакторе глючит!
Attachments
TrueTemplate.3.0.1.0.zip
(454.17 KiB) Downloaded 182 times
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Какая там сейчас процедура заливки на Plugring?
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

Re: True Template

Post by Игорь Юдинцев »

Минимальную поддерживаемую версию FAR надо бы поправить.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Подправлю. Пока худо-бедно работает в Far 3.0.3835. Выравнивание С++ скобок '{' и '}' глючит и русский тескст в автораскрывающихся шаблонах тоже. Поэтому прикрутил опцию "Отключить авто шаблоны в редакторе". Пока не переедем на новый движок RegExp будут такие артефакты.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Логика с секциями Ident и Brackets это полная жопа. Пока я вижу два шага к её исправлению:

1) Выкинуть старый и глючный CRegExp и заюзать встроенный в Far RegExpControl. Надеюсь его функциональности хватит.
2) Разобраться что делает магия Ident и Brackets и переписать все это наконец по-человечески.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: True Template

Post by Alexey Samlyukov »

>Какая там сейчас процедура заливки на Plugring?
все описано.
прав добавил.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Спасибо! Плагин обновил и на плагринге.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Выложил на гитхаб - https://github.com/chronoxor/TrueTemplate
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: True Template

Post by Wave »

У меня из-за сабжа при открытии файлов вылетает фар. Сначала грохается колорер, потом по нарастающей.
4040x86+3.0.1.0
Пользуюсь ФАРом больше 20 лет © собирательный.
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

Re: True Template

Post by Игорь Юдинцев »

Wave wrote:У меня из-за сабжа при открытии файлов вылетает фар. Сначала грохается колорер, потом по нарастающей.
4040x86+3.0.1.0
А такой вариант?
Attachments
true-tpl.dll.x86.zip
(96.31 KiB) Downloaded 144 times
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: True Template

Post by tstr »

А такой вариант?
Падает

Тут о этом писал:
http://forum.farmanager.com/viewtopic.p ... 32#p121499
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: True Template

Post by Wave »

Либо падает, либо виснет при открытии с панелями и табличкой

Code: Select all

╔══════════ FarColorer ═══════════╗ 
║ Перезагрузка библиотеки схем... ║ 
╚═════════════════════════════════╝ 
P.s. Хотя нет, дождался, упало.
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
4ekucT
Posts: 507
Joined: Tue 05 Apr, 2005 23:44
Location: Беларусь, Минск

Re: True Template

Post by 4ekucT »

Wave wrote:У меня из-за сабжа при открытии файлов вылетает фар. Сначала грохается колорер, потом по нарастающей.
4040x86+3.0.1.0
Попробуй обновить плагин до 3.0.1.3
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Re: True Template

Post by Wave »

Немного запутался. Мне казалось, что архив был последний скачаный с плагринга. Сейчас смотрю, у меня два бэкапа, 3.0.1.2 и 3.0.1.3.
Только что с плагринга скачал уже точно 3.0.1.3, для чистоты эксперимента.
Открываю файл, получаю

Code: Select all

 Исключение:  Нарушение доступа (чтение из 0x00000096)            
 Адрес:       0x04A815D5                                          
 Функция:     ProcessEditorInputW                                 
 Модуль:      Shells\FAR\Plugins\Editor\FarColorer\bin\colorer.dll
за ним

Code: Select all

 Исключение:  Переполнение стека         
 Адрес:       0x04B6C394                 
 Функция:                                
 Модуль:      D:\TOOLS\Shells\FAR\Far.exe
и всё. Хотя в прошлый раз ещё и гуевый месседжбокс появлялся.

P.s. Пробовал и выгружать колорер, не выгружая тру темплейт — летели другие редакторные плагины и утягивали за собой ФАР.
Пользуюсь ФАРом больше 20 лет © собирательный.
Post Reply

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