Latest post of the previous page:
Это SynchroEvent (SE_FOLDERCHANGED) via ProcessSynchroEvent().
Latest post of the previous page:
Это SynchroEvent (SE_FOLDERCHANGED) via ProcessSynchroEvent().
Ну, я так и думал. Просто в энциклопедии написано:
Получается, что скриптом такое событие не обработать%FarHome%\Encyclopedia\macroapi_manual.ru.chm wrote: Поле group может иметь одно из следующих значений:
"DialogEvent
", "EditorEvent
", "EditorInput
", "ExitFAR
", "ViewerEvent
", "ConsoleInput
".
export.Process…
отбрасыванием начала. export.ProcessFolderChanged
нету. . Больше всего по смыслу (по имени) подходит PanelEvent, но:Code: Select all
Event { description = "PanelChangeDir";
group = "FolderChanged";
action = function()
far.Message("changed!", nil, "w")
end;
}
На самом деле работает, но в action не передаётся никаких параметров. Это - жаль. Часто требуется предыдущая и новая папки; т.е. надо самому запоминать, куда перешли. Жаль… Или это будет доделываться? Ну и если будет доделываться, то надо также передавать, какая панель сменила папку (активная/пассивная/обе)
CtrlU
) не генерится (Вроде как тоже самое).Представьте, что сменилась пассивная панель. Надо ли загружать макросы (выполнять скрипты, выводить user menu и т.п.)? Вот я и думаю: признак нужен. Битовый хотя бы
Разве при смене директории (например, диска) на пассивной панели это событие приходит? Как я понял из ответов на мои вопросы, событие приходит, когда каким бы то ни было образом сменилась «текущая» директория Фара. Если же я неправ, то да, придётся хранить пути обеих панелей и сравнивать с новыми, хоть это и лишняя работа по сравнению с нормальными параметрами (какая панель, старая директория, новая директория).
By design Выше этот вопрос уже задавался.
Да, есть скрипт от citRiks-а. Он, кстати, передаёт здоровенную таблицу, содержащую новые и старые папки для активной и пассивной панелей, а также признаки - какая изменилась. КМК там есть лишнее, но лучше пусть так. А вот признак, какая панель изменилась - это важно.
Если пути обеих панелей хранить, а в обработчике события спросить у Фара новые и сравнить со старыми, то так и станет понятно, на какой панели путь сменился.
Да. (1) Есть плагин (и скрипт) SameFolder, меняющий папку на пассивной панели, (2) есть скрипт, отражающий на пассивной панели содержимое папки, на которой стоит указатель на активной панели и меняющий папку пассивной панели при перемещении по папкам активной панели, (3) есть мой скрипт - дерево, открывающий на пассивной панели текущую папку (на которой стоит указатель в дереве), и у этого дерева есть режим автоматического отображения папки на пассивной панели. Я проверил для всех перечисленных случаев, кроме (2) - событие генерится.
На самом деле не только неудобно, но и, КМК, нерационально: это инфа есть в той процедуре, что генерит событие. Просто её надо передавать. Пока интерфейс не устоялся…