Page 3 of 3

Re: о событиях в редакторе

Posted: Wed 30 Jul, 2014 05:57
by NightRoman

Latest post of the previous page:

Мне было бы проще строить плагин, если бы существовали события редактора, которые гарантированно приходят первыми и последними и только один раз. Пусть в этот момент редакторы и не полноценные (так обстоит дело с ee_close). Если этого не будет, то жить тоже можно, но не проще. Правда, будет совсем непросто, если EE_CLOSE не будет последним или неоднократным, но, надеюсь, до этого не дойдет.

Мой код для событий редактора выглядит так: Editor0::AsProcessEditorEvent в https://code.google.com/p/farnet/source ... ditor0.cpp Привожу его не для того, чтобы что-то доказать, просто пусть будет упомянут. Код уже частично адаптирован к новым условиям и еще, вероятно, будет переделываться.

Да, есть особая ситуация, когда плагин грузится при уже открытых редакторах, то есть в такой ситуации первого события не будет. Но для моего плагина она особая, и это нормально и ожиданно, что уже загруженные редакторы могут быть неполноценно охвачены плагином. Но с остальными штатными ситуациями хотелось бы простоты и определенности с первым и последним событием.

Re: о событиях в редакторе

Posted: Wed 30 Jul, 2014 10:19
by John Doe
zg wrote:для чего нужно действие по EE_READ? без него как раньше, так и сейчас должно всё прекрасно работать.
На мантисе есть запись о том, что EE_GOTFOCUS может не приходить.
В любом случае, я ведь не спорю что код можно адаптировать к любым условиям.
Но вопрос удобства остаётся, присоединяюсь к предыдущему посту NightRoman.
zg wrote:
John Doe wrote:Разница в том, что EE_CHANGE требует подписки и вообще используется намного реже.
неформализуемая разница.
Удобно иметь событие, приходящее первым.
И не страшно, если EE_CHANGE будет единственным исключением.

Или, как уже предлагалось, завести специальное ограниченное событие EE_INIT.

Да, можно оставить как есть, приспособимся и так.

Re: о событиях в редакторе

Posted: Wed 15 Oct, 2014 12:21
by John Doe
EE_READ приходит в редактор один раз. Нет сейчас в фаре такой ситуации, чтобы EE_READ пришло второй раз.
Перезагрузка файла закрывает текущую копию редактора и открывает новую.

VE_READ же может приходить во вьювер сколько угодно раз, при смене файла клавишами +/-
При этом VE_GOTFOCUS не приходит.

Просто наблюдения. Полезно задокументировать.

Re: о событиях в редакторе

Posted: Wed 15 Oct, 2014 12:27
by zg
я уже где-то писал, что на мой взгляд при любой перезагрузке ee_read как раз должен приходить. поэтому невижу смысла документировано не логичное поведение.

о событиях в редакторе

Posted: Mon 03 Nov, 2014 10:31
by John Doe
Сейчас EE_CLOSE может оказаться не последним событием: если при обработке этого события вызвать (например) диалог, то следом придут EE_KILLFOCUS и EE_GOTFOCUS.

Если нельзя сделать событие EE_CLOSE последним, то стоит хотя бы осветить подводные камни в Энциклопедии.