Не вызывается ProcessEditorEventW(EE_READ)
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Не вызывается ProcessEditorEventW(EE_READ)
Не стал помещать это в тему багов, так как нет полной уверенности, что баг.
Имеется плагин в кэше, экспортирующий ProcessEditorEventW.
При первом заходе в редактор после запуска Фара производится загрузка плагина.
Если в SetStartupInfoW() плагин выведет сообщение (Message или Menu), то ProcessEditorEventW(EE_READ) для этого плагина не вызывается.
При последующих открытиях редактора - вызывается.
Имеется плагин в кэше, экспортирующий ProcessEditorEventW.
При первом заходе в редактор после запуска Фара производится загрузка плагина.
Если в SetStartupInfoW() плагин выведет сообщение (Message или Menu), то ProcessEditorEventW(EE_READ) для этого плагина не вызывается.
При последующих открытиях редактора - вызывается.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Не вызывается ProcessEditorEventW(EE_READ)
Приложен супер-простой плагин для демонстрации явления (длл-ка - от LuaMacro, переименованная).
При первом запуске Фара с этим плагином он ещё не в кэше, поэтому эффект проявляется при втором и последующих запусках Фара.
При первом запуске Фара с этим плагином он ещё не в кэше, поэтому эффект проявляется при втором и последующих запусках Фара.
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Не вызывается ProcessEditorEventW(EE_READ)
оно вызывается. только раньше SetStartupInfoW. luafar такое отсекает.
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Не вызывается ProcessEditorEventW(EE_READ)
вернее SetStartupInfoW вызывается конечно раньше, а вот ProcessEditorEventW вызывается внутри Message, вызванного в SetStartupInfoW. а luafar отсекает вызов экспортов до завершения SetStartupInfoW.zg wrote:оно вызывается. только раньше SetStartupInfoW. luafar такое отсекает.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Не вызывается ProcessEditorEventW(EE_READ)
Сейчас поймал другой сценарий, который затрудняюсь объяснить:
-- Плагин Highlight не выводит никаких сообщений.
-- Плагин LF4Ed выводит сообщение об ошибке при первом заходе пользователя в редактор.
-- У плагина Highlight при этом не вызывается EE_REDRAW (или вызывается только до EE_READ), то-есть редактор открывается неподсвеченный, но стоит двинуть курсор, и подсветка появляется.
Кто виноват в данной ситуации, кто что-то делает "не так" ?
Добавлено: Colorer ведёт себя в этой ситуации в точности как Highlight.
-- Плагин Highlight не выводит никаких сообщений.
-- Плагин LF4Ed выводит сообщение об ошибке при первом заходе пользователя в редактор.
-- У плагина Highlight при этом не вызывается EE_REDRAW (или вызывается только до EE_READ), то-есть редактор открывается неподсвеченный, но стоит двинуть курсор, и подсветка появляется.
Кто виноват в данной ситуации, кто что-то делает "не так" ?
Добавлено: Colorer ведёт себя в этой ситуации в точности как Highlight.
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Не вызывается ProcessEditorEventW(EE_READ)
насколько я помню, колорер тоже всё отсекает до ee_read. airbrush должен красить.Shmuel wrote:Добавлено: Colorer ведёт себя в этой ситуации в точности как Highlight.
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Не вызывается ProcessEditorEventW(EE_READ)
Да поправить-то не проблема, это 1-2 строчки кода. Но может всё-таки лучше поправить в "консерватории" ?
-
- Posts: 6815
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 526 times
Не вызывается ProcessEditorEventW(EE_READ)
Что именно: EE_READ приходит всегда первым.
Как именно: не знаю.
Не то, чтобы это было критично, но это же API плагинов, чем оно проще, тем лучше.
Как именно: не знаю.
Не то, чтобы это было критично, но это же API плагинов, чем оно проще, тем лучше.
- zg
- zero-gravity
- Posts: 6015
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Не вызывается ProcessEditorEventW(EE_READ)
EE_READ приходит первым в первый плагин. раньше, чем первый плагин его обработает, прийти во второй плагин EE_READ не может. при этом в обработчике EE_READ первый плагин ничем не ограничен. в том числе и в плане перерисовки редактора. перерисовка порождает посылку EE_REDRAW всем заинтересованным плагинам. да, можно запретить EE_REDRAW до полного завершения EE_READ. но тогда при вызове message в обработчике EE_READ редактор будет не раскрашенным. сейчас он раскрашен. для меня пока это ничем не обоснованная потеря функциональности.