LuaFAR for Editor

Здесь можно обсудить ваш любимый плагин.
User avatar
zg
zero-gravity
Posts: 5313
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 48 times
Contact:

Re: LuaFAR for Editor

Post by zg » Fri 04 Jul, 2014 11:19

Latest post of the previous page:

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

вообще, количество хаков на квадратный символ в manager.cpp превышает все мыслимые нормы, поэтому я сейчас переписываю оконный менеджер. ввиду сильной завязанности фара в целом на внутренности старого менеджера, происходит это не так быстро, как хотелось бы, но надежда пока есть. так что если это всё не критично, лучше подождать.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Re: LuaFAR for Editor

Post by Shmuel » Fri 04 Jul, 2014 11:40

zg wrote:SetStartupInfoW вызывается синхронно. т.е. если не вызывать фарапи внутри SetStartupInfoW, то никакой другой экспорт не дёрнется. если вызывать, то может дёрнуться. так что нужно смотреть, что конкретно вызывается и тогда уже решать, баг это или нет.
Там вызывается Message, а Фар вызывает ProcessEditorEventW.

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Wed 09 Jul, 2014 17:29

Ещё одно следствие 3968
Установлен пакет lfa_config.
Макросах есть обработчик
  1. local F = far.Flags
  2. Event{ description="test"; group="EditorEvent";
  3.   condition=function(id,Event) return Event==F.EE_CLOSE end;
  4.   action=function(...)
  5.     far.Show(...)
  6.   end
  7. }
Выбираю в панелях файл, жму F4, ShiftF4, ShiftEnter Enter [Reload]
Получаю ошибку

Code: Select all

╔═════════════════════════ Error ═════════════════════════╗
║ Failed to set value "true" for parameter "SavePosition" ║
╟─────────────────────────────────────────────────────────╢
║                         { OK }                          ║
╚═════════════════════════════════════════════════════════╝

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Thu 10 Jul, 2014 10:20

John Doe wrote:Ещё одно следствие 3968
В 3987 уже не воспроизводится

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Wed 20 Aug, 2014 12:09

Far build 4059
Имеется такой обработчик:
  1. Event {
  2.   group="ViewerEvent";
  3.   action=function(id,Event,param)
  4.     viewer.Quit(id)
  5.   end;
  6. }
При нажатии F3 появляется

Code: Select all

╔═════════ AddToMenu ═════════╗
║ Key `' is already allocated ║
╟─────────────────────────────╢
║           { OK }            ║
╚═════════════════════════════╝
После закрытия диалога возникает ошибка:
После закрытия фар падает.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Re: LuaFAR for Editor

Post by Shmuel » Wed 20 Aug, 2014 12:41

Наверное, в Фаре надо искать проблему.

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Wed 20 Aug, 2014 20:06

Shmuel wrote:Наверное, в Фаре надо искать проблему.
По поводу падения написал в соответствующую тему.

Но что насчёт ошибки о которой говорится в диалоге lf4ed?
Подозреваю ситуацию когда вьювер оказывается закрыт тоже надо учесть?
Или это надо сделать не в плагине, а в пакете context?

P.S.
Похоже об этом же я писал на мантис: http://bugs.farmanager.com/view.php?id=2738, но не уверен, что будет исправлено.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Re: LuaFAR for Editor

Post by Shmuel » Wed 20 Aug, 2014 20:37

John Doe wrote:Но что насчёт ошибки о которой говорится в диалоге lf4ed?
Подозреваю ситуацию когда вьювер оказывается закрыт тоже надо учесть?
Или это надо сделать не в плагине, а в пакете context?
Ошибку выдаёт context, значит там и надо начинать разбираться. А падение происходит и без context'а. Разбираться имеет смысл после починки падения.

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Wed 20 Aug, 2014 21:44

Ok, хотя моя версия такова:

В VE_READ lf4ed выдаёт на экран предупреждение о неверном шорткате, и получает управление обратно только после закрытия сообщения.
А за это время другой плагин успевает закрыть вьювер, но lf4ed не в курсе (не обработал VE_CLOSE?) поэтому продолжает как ни в чём ни бывало, и все дальнейщие функции работающие со вьювером возвращают nil.

В результате возникает ошибка, которую и отображает lf4ed. Вот тут стоит разобраться, как не попасть в такую ситуацию.

А то, что после закрытия сообщения фар падает, это другой вопрос, и с предыдущим не связан.

Shmuel
Posts: 5234
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 152 times

Re: LuaFAR for Editor

Post by Shmuel » Wed 20 Aug, 2014 22:08

John Doe wrote:Ok, хотя моя версия такова:[....]
Эта версия абсолютно не соответствует тому, что происходит на самом деле.

P.S. Но вызов плагином в цикле обработчиков событий пакетов действительно не учитывает того, что вьювер или редактор могут быть в процессе закрыты (даже одним из тех же обработчиков). Это надо будет исправить в плагине.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Thu 21 Aug, 2014 05:20

John Doe wrote:...После закрытия диалога возникает ошибка:
После закрытия фар падает.
1. Какая версия LuaFAR context? В версии на GitHub в detectType.lua 361-я строка пустая.
2. В LuaFAR context считается, что первым приходит событие EE_READ/VE_READ, а для других задействованных событий считается, что приходит корректный id редактора/просмотрщика (см. handleType.lua, обработчики editorEvent и viewerEvent).

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Thu 21 Aug, 2014 08:34

1. 3.1.0.0
2. В последних версиях фара уже не так...

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Thu 21 Aug, 2014 09:13

John Doe wrote:1. 3.1.0.0
Ясно. В общем для случая просмотрщика не срабатывает viewer.GetInfo, возвращается nil.
John Doe wrote:2. В последних версиях фара уже не так...
Да, заметил.

Видимо, эту часть пакета надо переделать, как появится время.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Wed 10 Sep, 2014 18:42

Aidar wrote:Видимо, эту часть пакета надо переделать, как появится время.
Добавил проверки и подправил логику работы с ?E_READ.
context_scripts_test.7z
Только для тестирования!
(11.55 KiB) Downloaded 41 times
Сделайте резервную копию каталога context\scripts\ и распакуйте файлы из архива в этот каталог.

P.S. Просьба написать в эту тему или тему LuaFAR context, помогла ли "переделка" пакета.

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Thu 11 Sep, 2014 15:44

Дело в том, что в 4096 проблема уже не воспроизводится и со старым context.
Видимо в фаре подкрутили.

Update
Это с вьювером не воспроизводится, а редактором проблема есть.
Сейчас проверю новый context.

User avatar
John Doe
Бюрократ
Posts: 11419
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

Re: LuaFAR for Editor

Post by John Doe » Thu 11 Sep, 2014 16:15

В новом не падает.
Но когда в фаре починят, то и в старом проблема вероятно уйдёт.

User avatar
Aidar
Posts: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

Re: LuaFAR for Editor

Post by Aidar » Thu 11 Sep, 2014 16:42

Спасибо.
В любом случае изменения сохраню - для надёжности работы пакета.

Post Reply

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