Медленный редактор

Здесь можно сообщить о найденных багах в Far.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Latest post of the previous page:

Ну я глубоко не копал, тока посмотрел что на каждый EE_CHANGE вызов какой то функции.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Медленный редактор

Post by Max Rusov »

Если я в EE_READ вызываю ECTL_SUBSCRIBECHANGEEVENT передавая конкретный EditorID (из ProcessEditorEventInfo) то событие EE_CHANGE не приходит. Если в качестве EditorID передавать -1 - приходит. Это косяк, или я туплю где-то?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Ну полюбому лучше передавать всегда -1, это "быстрей".
А если не -1, то в apiEditorControl мы проходимся по всем "окнам" и ищем подходящий - на момент EE_READ который посылается в конструкторе редактора, редактор ещё не добавлен в список окон (это делается в конце конструктора).
Правильно это или нет, трудно сказать, но тут уж точно не случай чтоб передавать что то кроме -1.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Медленный редактор

Post by Max Rusov »

Ok. Просто в примерах везде EditorID... Тогда, наверное, здесь тоже неправильно?...
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Медленный редактор

Post by Shmuel »

t-rex wrote:А если не -1, то в apiEditorControl мы проходимся по всем "окнам" и ищем подходящий - на момент EE_READ который посылается в конструкторе редактора, редактор ещё не добавлен в список окон (это делается в конце конструктора).
Правильно это или нет, трудно сказать, но тут уж точно не случай чтоб передавать что то кроме -1.
Ну в этом случае editor.SubscribeChangeEvent в LuaMacro не будет работать из EE_READ, ибо:

-- Если обработчик передаёт полученный EditorID из параметров - не сработает, как ты отметил.
-- Если обработчик передаёт -1, то ф-ция editor.SubscribeChangeEvent вызывает editor.GetInfo, который в EE_READ тоже не сработает.

IMHO, EE_READ надо посылать плагинам после добавления нового редактора в список окон.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Max Rusov wrote:Ok. Просто в примерах везде EditorID... Тогда, наверное, здесь тоже неправильно?...
thanks, поправил в airbrush тоже.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Shmuel wrote:то ф-ция editor.SubscribeChangeEvent вызывает editor.GetInfo, который в EE_READ тоже не сработает.
Э, с чего ты такое взял? В коде никакого такого запрета на вызов GetInfo внутри EE_READ нету.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Медленный редактор

Post by Shmuel »

t-rex wrote:
Shmuel wrote:то ф-ция editor.SubscribeChangeEvent вызывает editor.GetInfo, который в EE_READ тоже не сработает.
Э, с чего ты такое взял? В коде никакого такого запрета на вызов GetInfo внутри EE_READ нету.
Запрета нету, а возвращает nil.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Медленный редактор

Post by Shmuel »

Точнее, возвращает nil, если передать EditorID из параметров. Если передать -1, то нормально.

Так что просто надо будет указать в доках, что из EE_READ нельзя вызывать SubscribeChangeEvent с полученным EditorID, а только с -1 или nil.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Ну это мы уже как бы знаем.

Вообще задавать EditoId не -1 не рекомендуется вне зависимости от этой "странности".
Его стоит задавать только когда надо "общаться" с не активным редактором.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

xarx, проверь плиз ещё раз на 3375 и новом EditFind. :)
В этом билде идёт ещё и colorer который тоже подписывается на EE_CHANGE, будет интересно посмотреть на цифры.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Медленный редактор

Post by Shmuel »

t-rex wrote:Вообще задавать EditoId не -1 не рекомендуется вне зависимости от этой "странности".
Его стоит задавать только когда надо "общаться" с не активным редактором.
Это уже шаманством попахивает.
"Не рекомендуется" - это нехорошо. Должно быть "можно" или "нельзя".
Если "нельзя", то перед вызовами ECTL_XXX плагин/скрипт должен будет предварительно обязательно выяснять активный ли данный редактор.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Не шаманством, а просто тупо потому что вызов с -1 "быстрей" чем EditorId ибо не приходится искать окно (имплементация конечно кривая, но что есть пока что).
Тоже самое как раньше было с -1 для текущей строки в редакторе.

Скрипт/плагин и так прекрасно знает с активным или не активным редактором он общается.
OpenW или Event может прийти только для активного редактора (кроме EE_CHANGE, но в нём все ровно незя вызывать EditorControl, так что как бы пофиг).
Т.е. не -1 нужен только в осознанном намерении "общаться" с не активным редактором - что вообще довольно редкая нужда - даже не могу сходу дать пример где такое может понадобиться.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Медленный редактор

Post by Max Rusov »

t-rex wrote:xarx, проверь плиз ещё раз на 3375 и новом EditFind. :)
Я проверял, в EdtFind отписывание ничего не дает, в нем EE_CHANGE очень "дешевый".
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: Медленный редактор

Post by t-rex »

Мне больше влияние колорера интересно в общем.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Медленный редактор

Post by Max Rusov »

Так Colorer то не отпишется?...
Post Reply

Return to “Глюки и баги”