Враппер, позволяющий использовать некоторые плагины от Far2 в Far3. Скачать
1. Распаковать содержимое архива в папку %FARHOME%.
2. Скопировать Loader.dll (или Loader64.dll для Far3 x64) в папку с плагином от Far2 (например, где лежит colorer.dll).
3. опционально, переименовать исходный плагин (например calcU.dll -> calcU.dl_)
4. опционально, переименовать Loader.dll (Loader64.dll) в более наглядное имя (например colorer3.dll)
5. опционально, cоздать ini-файл рядом с враппером. Имя должно совпадать с самим файлом враппера. Примеры ini-файлов прилагаются. Если ini-файл отсутствует - враппер сам его создаст и сформирует GUID-ы. Внимание. При формировании ini-файла вручную обязательно создавать уникальные GUID-ы для каждого ini файла!
С некоторыми плагинами, которые ориентируются на содержимое истории фара (которая хранилась в реестре) имеем проблему. Пример: AltF7, ищем файлы содержащие текст, открываем найденный в редакторе, пытаемся найти этот текст, например, плагином EditFind - и опа... Плагин не видит в реестре требуемой строки (она ведь в SQLite).
Обойти проблему можно воспользовавшись плагином DlgHistory, который при закрытии диалога AltF7 обновляет значение реестра HKCU\Software\Far Manager\SavedDialogHistory\SearchText\Lines.
Плагин написан для Far3, но по очевидным причинам использует Far2 api, поэтому:
1. Распаковать архив в папку %FARHOME%\Plugins\DlgHistory
2. Скопировать туда же Loader.dll (Loader64.dll для Far3 x64) из дистрибутива Far3Wrapper
Настройки плагинов хранятся по-прежнему в реестре, в ветке HKCU\Software\Far Manager\Plugins (в отличие от родных плагинов Far 3, которые используют базы SQLite)
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 07:40
by Shmuel
Здорово, конечно, только может быть рановато, поскольку API Фара продолжает изменяться.
P.S. Поставил arclite 1.4.10 с этим враппером, работает.
P.S.2 Работают ShiftF1, ShiftF2, ShiftF3 и Enter на архиве. Но не вызывается меню плагина.
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 10:16
by Yegor
Хочется верить, что основные плагинописатели все-таки перепишут свои плагины под Far 3. А как временное решение - пойдет!
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 11:17
by Max Rusov
Тяжеловат что-то. Нельзя его на 2 компоненты разбить - одна в корне, с основным кодом, а та, что копируется в каталог плагина - только с экспортами? Там максимум ~10K останентся...
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 12:54
by Kerberos464
PlugMenu появился в списке плагинов, но не работает (жму Enter на нём - ничего не происходит).
Really Quick Player даже не появляется в списке плагинов.
TorrentView заработал нормально.
другие плагины [пока] не проверял.
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 13:05
by Max Rusov
Ну, PlugMenu точно работать не будет, Wrapper тут не при чем. PlugMenu юзает недокументированные структуры кэша плагинов, которые в Far 3 теперь вообще не в реестре, т.ч. его надо переписывать.
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 23:33
by Maximus5
версия 1.2
- не вызывалось меню плагина
- не загружался rqp
на счет "тяжеловат" - не вижу смысла экономить килобайты для временного, надеюсь , решения
Re: Far2->Far3 wrapper
Posted: Mon 02 May, 2011 23:57
by DrKnS
Maximus5
А может ты и анси-враппер себе заберёшь? :)
Re: Far2->Far3 wrapper
Posted: Tue 03 May, 2011 00:11
by Maximus5
Посмотреть надо, как этот жить будет.
Re: Far2->Far3 wrapper
Posted: Tue 03 May, 2011 13:36
by Kerberos464
не уверен, что есть смысл об этом писать, тем более тут, но всё же..
AltHistory - не работает (фар падает при запуске).
BCopy - не работает (фар падает при выборе любого пункта в плагине).
Colorer - подсветка не работает, хотя, например, "Select pair" работает нормально. а также, фар падает при попытке изменить что-либо в диалоге настроек Colorer'а.
Edit case, стандартный плагин для редактора - работает.
MediaInfo - не работает (не появляется в списке плагинов вру, плагин в списке появился, но при его выборе ничего не происходит).
грустно как-то... уважаемые плагинописатели, когда выйдет фар3, пишите нативные плагины для него. пишите, пожалуйста.
add. проверялось это всё на win7 sp1 x64, far 3.0.2019 и 2020 x86, все плагины последних версий.
Re: Far2->Far3 wrapper
Posted: Tue 03 May, 2011 15:05
by HaRT
Kerberos464 wrote:AltHistory - не работает (фар падает при запуске)
Возможно ли сделать, чтобы не падало, не знаю, но работать оно всё равно не будет, т.к. использует то, что Фар хранил свои истории в реестре.
Или Фар 3 их так же хранит?
Re: Far2->Far3 wrapper
Posted: Tue 03 May, 2011 22:30
by Maximus5
ver 1.3
[%] Работает расцветка в редакторе (другие 'редакторные' функции)
[%] Исправлено падение при закрытии некоторых диалогов
[%] Добавлена обработка DI_COMBOBOX & DI_LISTBOX
Re: Far2->Far3 wrapper
Posted: Tue 03 May, 2011 23:06
by Maximus5
допилен для Far3 build 2019
Re: Far2->Far3 wrapper
Posted: Wed 04 May, 2011 09:31
by Kerberos464
спасибо!
тестим дальше:
Colorer и MediaInfo заработали, также заработал File Version.
AltHistory теперь не валит фар при старте, но он (фар) падает при попытке открыть любой файл по F4. и в списке плагинов AltHistory не появляется.
Background Copy частично заработал - копирование проходит нормально, но в процессе показывается такой вот пустой диалог:
причём, он не пропадает и при окончании копирования (нужно нажать "ок"). при входе в Background copy -> Info, фар зависает, выйти можно только крестиком.
DialogTools - в меню плагинов появляется только Change Case, при выборе его фар падает (по F11 там должно быть много пунктов, в far3wrap.ini прописал девять пунктов PluginMenuGUID1..PluginMenuGUID9). также фар падает при наличии этого плагина, при попытке редактирования любого файла.
DlgSelect - никак себя не проявляет, т.е. не работает.
add. забыл версии указать: win7 sp1 x64, far 3.0.2021/2024 x86, far3wrapper 1.3, все плагины последних версий, тесты плагинов проводил по-одному.
Re: Far2->Far3 wrapper
Posted: Sun 08 May, 2011 17:33
by Maximus5
ver 1.4.2025
[%] Исправлен ACTL_GETFARVERSION (падал AltHistory)
[%] Работает OpenW(OPEN_DIALOG), aka DialogTools
[%] Работает ProcessDialogEventW, aka DlgSelect
[%] Работает ACTL_GETWINDOWINFO
[%] Исправлен DM_GETDLGITEM