callplugin макро и т.п.

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

callplugin макро и т.п.

Post by t-rex »

Что то смотрю жопа тут, можно вызывать так любой плагин даже если он такого не ожидает - т.е. надо обязательно PF_MACRO.

А также нужна срочно (если ещё нет) какая то макро функа для вызова пункта меню плагина по гуиду этого пункта меню.

чтоб вместо такого ужаса:

Code: Select all

[HKEY_CURRENT_USER\Software\Far Manager\PluginHotkeys\Plugins/Brackets/Brackets.dll]
"Hotkey"="m"

[HKEY_CURRENT_USER\Software\Far Manager\KeyMacros\Editor\CtrlM]
"Sequence"="F11 m y"
"Description"="Brackets matching - Find"
"DisableOutput"=dword:00000001
сделать что то такое:

Code: Select all

[HKEY_CURRENT_USER\Software\Far Manager\KeyMacros\Editor\CtrlM]
"Sequence"="F11 selectpluginmenuitem(A540CD77-CAD0-4E96-ADA0-2BAAC8182237) y"
"Description"="Brackets matching - Find"
"DisableOutput"=dword:00000001
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: callplugin макро и т.п.

Post by Maximus5 »

вообще-то вот это "Sequence"="F11 ..." - уже ужас.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: callplugin макро и т.п.

Post by t-rex »

ну тут я не согласен. это точно определяет место нахождения. в идеале оно конечно может должно было называться openpluginmenu а не F11 но сути это особо не меняет.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: callplugin макро и т.п.

Post by Skirda »

t-rex wrote:Что то смотрю жопа тут, можно вызывать так любой плагин даже если он такого не ожидает - т.е. надо обязательно PF_MACRO.
Нафига?
callplugin вызывает Open (в девичестве OpenPlugin), у нее свои OPENFROM (в т.ч. OPEN_FROMMACRO и OPEN_FROMMACROSTRING)
t-rex wrote:А также нужна срочно (если ещё нет) какая то макро функа для вызова пункта меню плагина по гуиду этого пункта меню.
Это и было изначальное назначение callplugin (гуид или сисид - пофигу) - отойти от привязки к языку при вызове плагина из меню.
We are the Borg. You will be assimilated.
So Say We All!
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: callplugin макро и т.п.

Post by t-rex »

потому что оно даёт вызвать плагин откуда угодно, и плагин этого не подозревает.
например - вызвать drawline из диалога в панелях.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: callplugin макро и т.п.

Post by Maximus5 »

плагинов для callplugin ограниченное количество, можно (и наверное все-таки правильно) и ввести PF_MACRO
Last edited by Maximus5 on Thu 10 Mar, 2011 21:00, edited 1 time in total.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: callplugin макро и т.п.

Post by t-rex »

чтоб callplugin нормально работал, плагинописатель должен все ровно предусмотреть обработку OPEN_FROMMACRO, а раз предусмотрел то может и PF_MACRO добавить. а если не предусмотрел то значит через callplugin это плагин вызыватся и не должен.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: callplugin макро и т.п.

Post by Skirda »

Хмм... видимо надо
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: callplugin макро и т.п.

Post by NightRoman »

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

Введение PF_MACRO просто добавит дополнительную условность. Типа защиты от дурака, что ли. Может, это и неплохо, а может и лишнее. Писатели будут забывать добавлять, пойдут виши, нужны дополнительные итерации и потеря времени. Если же дурак пользователь вызывает редакторный плагин из диалога, то ничего не нужно, разве что на его баг репорт сказать сам дурак.

В целом же добавление флага ничего не изменит. Словом, я бы подумал, а надо оно тогда вообще. Ну типа вот сейчас его нет, а callplugin есть давно. Были ли какие проблемы?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: callplugin макро и т.п.

Post by NightRoman »

Иными словами еще так. Почти любой достойный плагин рано или поздно кто-то захочет позвать из макроса, то есть суть все достойные плагины рано или поздно получают этот флаг. Опять возникает тогда сомнение в нужности флага для путных плагинов, раз он будет у всех. А путные плагины и так и сяк все равно будут работать грамотно, с флагом или без.
User avatar
WARP ItSelf
Самый умный
Posts: 1011
Joined: Tue 15 Mar, 2005 23:19
Contact:

Re: callplugin макро и т.п.

Post by WARP ItSelf »

Эта, а проверить при вызове, что плагин, сволочь такая, не может быть вызван из редактора и наградить пользователя красным сообщением "Подумай над макросом еще раз!"? Неа?

P.S. Про добавление страшной переменной bForce вообще молчу.
Никто не знал, а я...
User avatar
SUSim
Posts: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: callplugin макро и т.п.

Post by SUSim »

а возможно ли вернуть в что нибудь кроме 0 и 1 при %a=callplagin(...)?
если нет, то зачем в писании тогда сказано 0 и другое?
и главное - как с этим в фар3 будет/планируется?
SimSU ··· ·· -- ··· ··-
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: callplugin макро и т.п.

Post by NightRoman »

зачем в писании тогда сказано 0 и другое?
Чтобы проверки осторожно с прицелом на будущее делались типа ==0, !=0, (а не >0, <0, ==1, !=1, ==42 и т.п., о чем в энц не сказано ничего)
Post Reply

Return to “Разработка плагинов”