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

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

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

Post by Skirda » Mon 17 Jan, 2011 14:48

А давай те переименуем 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: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Mon 17 Jan, 2011 15:04

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

Это предложение "в кассу"-таки, надеюсь. Если все-таки планируется сделать что-то типа предлагаемого plugin.exec(), то не надо тратить время на callplugin. Если не планируется... ну тогда "не в кассу", забудьте.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Mon 17 Jan, 2011 15:14

правильно я понимаю, что если префикс у плагина "tmp", то callplugin("tmp","строка") или tmp("строка")?
We are the Borg. You will be assimilated.
So Say We All!

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Mon 17 Jan, 2011 15:17

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

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Mon 17 Jan, 2011 15:18

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

Code: Select all

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

Code: Select all

callplugin("tmp:")

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

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

Post by John Doe » Mon 17 Jan, 2011 15:20

Max Rusov wrote:По поводу совместимости вообще и callplugin в частности. Мне кажется, что FAR2 уже довольно давно относительно стабилен в плане API и ломать сейчас - уже нельзя. Поздно.
Ломать сейчас самое время, пока все плагинописатели активизировались.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Mon 17 Jan, 2011 15:23

Блин, зачем ломать - строить надо! Нет ни одной задачи, которую нельзя было бы решить не сохраняя совместимость. Вы что хотите построить "идеальную" систему? Не получится - уверяю. _Всегда_ есть швы.

User avatar
DrKnS
Posts: 5157
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 190 times

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

Post by DrKnS » Mon 17 Jan, 2011 15:26

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

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Mon 17 Jan, 2011 15:29

DrKnS

Надумано. Макросы от сырости не заводятся, если написал такой макрос - должен понимать, зачем ты это делаешь, и сможет ли плагин это понять.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Mon 17 Jan, 2011 15:35

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

Конечно, нужны будут новые префиксы, которые предназначены для специальных команд (или новые ключи/параметры самих команд), потому что возможностей станет куда больше. Это очевидно, я не думал, что надо пояснять.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Mon 17 Jan, 2011 16:43

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

Про 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: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Mon 17 Jan, 2011 16:49

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

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Mon 17 Jan, 2011 16:54

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

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Mon 17 Jan, 2011 16:59

NightRoman, я не понимаю, чем не устраивают 2 варианта?
Тем, что ни одного из них нет, сорри. Наличие любого одного из них меня устроило бы. Но пока их нет, переименования полу-полезной фичи, тем более breaking, мне непонятны, любой из вариантов ее покрывает как бык овцу, вот и надо один из них сделать сначала. Потом уж можно подумать, как быть со старым callplugin, почему бы нет.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Mon 17 Jan, 2011 18:40

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

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

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

Post by Skirda » Mon 17 Jan, 2011 18:51

NightRoman wrote:1) с префиксами подход давным давно отработан морально и понятен всем - плугописателям и юзерам
про вызов из редактора тебе выше описали.
NightRoman wrote:2) подход отработан и технически, под него уже есть готовая инфраструктура в Фаре, осталось просто заюзать
callplugin уже умеет делать callplugin(0x5774654E,"net:127.0.0.1"), другое дело, что плагины не умеют.
NightRoman wrote:3) в плане парсинга макросов -- накладные расходы стремительно приближаются к нулю в сравнении с альтернативным подходом
не спорю, что "2+2" - это быстро.
NightRoman wrote:4) дополнительный бонус: *некоторые* команды безо всяких изменений готовы и для макросов, и для комстроки, и для юзер меню.
callplugin?
NightRoman wrote:вот и надо один из них сделать сначала. Потом уж можно подумать, как быть со старым callplugin, почему бы нет.
Вот меня в callplugin устраивает все (т.к. я его почти не юзаю), прочее - не видел внятных репортов с грамотным описанием (без воды) о неработоспособности этой функции.

Мы совершенно про разные вещи толкуем: ты про вызов "всего" плагина, я про вызов "конкретного маленького" функционала плагина (эту часть ты либо не понял, либо не видишь ее применения).
Да, оба функционала могут жить вместе.
Рисуй на мантис внятные репорта по callplugin - будем разбираться.

В остальном демократия - это зло и я оставляю себе на откуп второй механизм, а уж там не взыщите - разборки по ходу развития событий с рядом итераций перелопачивания АПИ.
We are the Borg. You will be assimilated.
So Say We All!

Locked

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