Переименовать callplugin

Здесь обсуждается всё, что касается макросов.
Locked
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Переименовать callplugin

Post by Skirda »

А давай те переименуем callplugin в plugin.call() :oops:
А дальше можно добавлять что-то типа plugin.exist() (это вместо F11 $if (menu.select("имя плагина") > 0)...) и пр.

ы?
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 »

Skirda
Может, его все-таки лучше заменить на вызов плагина по префиксу, что я все предлагаю и предлагаю, и все согласны, что это было бы полезно, а? Тогда нужда в полу-полезном callplugin отпадает, а макросы получают куда более гибкий механизм с возможностью заслать комстроку в плагин.

Это предложение "в кассу"-таки, надеюсь. Если все-таки планируется сделать что-то типа предлагаемого plugin.exec(), то не надо тратить время на callplugin. Если не планируется... ну тогда "не в кассу", забудьте.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

правильно я понимаю, что если префикс у плагина "tmp", то callplugin("tmp","строка") или tmp("строка")?
We are the Borg. You will be assimilated.
So Say We All!
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Переименовать callplugin

Post by Max Rusov »

По поводу совместимости вообще и callplugin в частности. Мне кажется, что FAR2 уже довольно давно относительно стабилен в плане API и ломать сейчас - уже нельзя. Поздно. В первую очередь, это, конечно, относится к топику http://forum.farmanager.com/viewtopic.php?f=8&t=5067, но и в макросах - нежелательно. Надо поддерживать совместимость снизу вверх. Нет ничего страшного, если добавить Plugin.Call и оставить 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 »

Skirda wrote:правильно я понимаю, что если префикс у плагина "tmp", то callplugin("tmp","строка") или tmp("строка")?
Правильно или нет - вопрос подхода. По моей задумке неправильно. Вызов должен быть 100% такой же, как из комстроки Фара -- хотим команду из комстроки вызываем или юзер меню, хотим -- из макроса. То есть в твоем примере:

Code: Select all

callplugin("tmp: строка")
Если тупо без параметра, то все равно как из комстроки:

Code: Select all

callplugin("tmp:")
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Переименовать callplugin

Post by John Doe »

Max Rusov wrote:По поводу совместимости вообще и callplugin в частности. Мне кажется, что FAR2 уже довольно давно относительно стабилен в плане API и ломать сейчас - уже нельзя. Поздно.
Ломать сейчас самое время, пока все плагинописатели активизировались.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Переименовать callplugin

Post by Max Rusov »

Блин, зачем ломать - строить надо! Нет ни одной задачи, которую нельзя было бы решить не сохраняя совместимость. Вы что хотите построить "идеальную" систему? Не получится - уверяю. _Всегда_ есть швы.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Переименовать callplugin

Post by DrKnS »

NightRoman wrote:Вызов должен быть 100% такой же, как из комстроки Фара -- хотим команду из комстроки вызываем или юзер меню, хотим -- из макроса.
Ага.
Плагин уверен, что в момент вызова по префиксу активны панели (ибо всегда так было), а ты из-под него табуретку вышибаешь, вызывая, например, из редактора.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Переименовать callplugin

Post by Max Rusov »

DrKnS

Надумано. Макросы от сырости не заводятся, если написал такой макрос - должен понимать, зачем ты это делаешь, и сможет ли плагин это понять.
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 »

DrKnS wrote:Ага. Плагин уверен, что в момент вызова по префиксу активны панели (ибо всегда так было), а ты из-под него табуретку вышибаешь, вызывая, например, из редактора.
О ужос. А из Фара можно удалить все нужные файлы на диске. Фар в этом не виноват.

Конечно, нужны будут новые префиксы, которые предназначены для специальных команд (или новые ключи/параметры самих команд), потому что возможностей станет куда больше. Это очевидно, я не думал, что надо пояснять.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

Немного не в тему, но все же...

Про callplugin:
callplugin вызывает OpenPlugin со всеми вытекающими. Нужно корректно отследить флаг OPEN_FROMMACRO и правильно отловить строку - т.е. это готово (если есть проблемы - описывает на мантисе, или тыкаем носом). При этом плагин, поймавший строку, должен сам что-то с этой строкой сделать.

Про новый ProcessMacroFuncW:
ProcessMacroFuncW это чистое АПИ; в макросах, визуально, он не виден (мы не можем в макросах написать ProcessMacroFuncW(блаблабла)), но видно то, что плагин предоставляет, например, "math.sin(1.23)".
Если компилятор "распознал" math.sin, то исполнятор вызовет ProcessMacroFuncW нужного плагина с теми параметрами, которые заявлены (в данном случае плагин получит в рыло значение типа double), т.е. парсить ему, плагину, уже нишиша не надо.

NightRoman, я не понимаю, чем не устраивают 2 варианта? Почему такой упор на префиксы? Разжуй нормально (из предыдущих объяснений я нихрена не понял).
We are the Borg. You will be assimilated.
So Say We All!
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Переименовать callplugin

Post by Max Rusov »

Skirda wrote:callplugin вызывает OpenPlugin со всеми вытекающими. Нужно корректно отследить флаг OPEN_FROMMACRO и правильно отловить строку - т.е. это готово
Может я туплю, но сейчас строку, вроде, передать нельзя - только число.
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 »

Skirda
1) с префиксами подход давным давно отработан морально и понятен всем - плугописателям и юзерам
2) подход отработан и технически, под него уже есть готовая инфраструктура в Фаре, осталось просто заюзать
3) в плане парсинга макросов -- накладные расходы стремительно приближаются к нулю в сравнении с альтернативным подходом
4) дополнительный бонус: *некоторые* команды безо всяких изменений готовы и для макросов, и для комстроки, и для юзер меню.
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 »

NightRoman, я не понимаю, чем не устраивают 2 варианта?
Тем, что ни одного из них нет, сорри. Наличие любого одного из них меня устроило бы. Но пока их нет, переименования полу-полезной фичи, тем более breaking, мне непонятны, любой из вариантов ее покрывает как бык овцу, вот и надо один из них сделать сначала. Потом уж можно подумать, как быть со старым callplugin, почему бы нет.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: Переименовать callplugin

Post by Skirda »

Max Rusov wrote:Может я туплю, но сейчас строку, вроде, передать нельзя - только число.
можно, только про флаг OPEN_FROMMACRO не забываем
We are the Borg. You will be assimilated.
So Say We All!
Locked

Return to “Обсуждение макросов”