Latest post of the previous page:
Вот похоже в чем замес - когда я обрабатываю нажатие символа '{' в ProcessEditorInputW() и начинаю выполнять более сложную логику с раскрытием скобок и нажатием клавиши ввода через ECTL_PROCESSINPUT (с.м. код выше), то Far похоже начинает все выполнять как будто Shift еще зажат. Потому что если то же самое делать для символа '[' (для его ввода Shift не зажимается), то все работает отлично. Теперь бы понять, можно ли это обойти в плагине или без фикса в ядре Far не обойтись?True Template — использование текстовых шаблонов при написании кода
Re: True Template
Так и есть. Вот нацарапал примерчик, когда при перехвате ввода символа '{' мы пытаемся нажать в редакторе 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);
}
Re: True Template
Желающие могут ознакомится и потестить альфу 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 191 times
-
- Posts: 726
- Joined: Sun 03 Apr, 2005 22:00
- Location: Казань
- Been thanked: 2 times
Re: True Template
Подправлю. Пока худо-бедно работает в Far 3.0.3835. Выравнивание С++ скобок '{' и '}' глючит и русский тескст в автораскрывающихся шаблонах тоже. Поэтому прикрутил опцию "Отключить авто шаблоны в редакторе". Пока не переедем на новый движок RegExp будут такие артефакты.
Re: True Template
Логика с секциями Ident и Brackets это полная жопа. Пока я вижу два шага к её исправлению:
1) Выкинуть старый и глючный CRegExp и заюзать встроенный в Far RegExpControl. Надеюсь его функциональности хватит.
2) Разобраться что делает магия Ident и Brackets и переписать все это наконец по-человечески.
1) Выкинуть старый и глючный CRegExp и заюзать встроенный в Far RegExpControl. Надеюсь его функциональности хватит.
2) Разобраться что делает магия Ident и Brackets и переписать все это наконец по-человечески.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
-
- Posts: 726
- Joined: Sun 03 Apr, 2005 22:00
- Location: Казань
- Been thanked: 2 times
Re: True Template
А такой вариант?Wave wrote:У меня из-за сабжа при открытии файлов вылетает фар. Сначала грохается колорер, потом по нарастающей.
4040x86+3.0.1.0
- Attachments
-
- true-tpl.dll.x86.zip
- (96.31 KiB) Downloaded 151 times
Re: True Template
Либо падает, либо виснет при открытии с панелями и табличкой P.s. Хотя нет, дождался, упало.
Code: Select all
╔══════════ FarColorer ═══════════╗
║ Перезагрузка библиотеки схем... ║
╚═════════════════════════════════╝
Пользуюсь ФАРом больше 20 лет © собирательный.
Re: True Template
Попробуй обновить плагин до 3.0.1.3Wave wrote:У меня из-за сабжа при открытии файлов вылетает фар. Сначала грохается колорер, потом по нарастающей.
4040x86+3.0.1.0
Re: True Template
Немного запутался. Мне казалось, что архив был последний скачаный с плагринга. Сейчас смотрю, у меня два бэкапа, 3.0.1.2 и 3.0.1.3.
Только что с плагринга скачал уже точно 3.0.1.3, для чистоты эксперимента.
Открываю файл, получаюза ним и всё. Хотя в прошлый раз ещё и гуевый месседжбокс появлялся.
P.s. Пробовал и выгружать колорер, не выгружая тру темплейт — летели другие редакторные плагины и утягивали за собой ФАР.
Только что с плагринга скачал уже точно 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 лет © собирательный.