Переименовать callplugin
Переименовать callplugin
А давай те переименуем callplugin в plugin.call()
А дальше можно добавлять что-то типа plugin.exist() (это вместо F11 $if (menu.select("имя плагина") > 0)...) и пр.
ы?
А дальше можно добавлять что-то типа plugin.exist() (это вместо F11 $if (menu.select("имя плагина") > 0)...) и пр.
ы?
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Переименовать callplugin
Skirda
Может, его все-таки лучше заменить на вызов плагина по префиксу, что я все предлагаю и предлагаю, и все согласны, что это было бы полезно, а? Тогда нужда в полу-полезном callplugin отпадает, а макросы получают куда более гибкий механизм с возможностью заслать комстроку в плагин.
Это предложение "в кассу"-таки, надеюсь. Если все-таки планируется сделать что-то типа предлагаемого plugin.exec(), то не надо тратить время на callplugin. Если не планируется... ну тогда "не в кассу", забудьте.
Может, его все-таки лучше заменить на вызов плагина по префиксу, что я все предлагаю и предлагаю, и все согласны, что это было бы полезно, а? Тогда нужда в полу-полезном callplugin отпадает, а макросы получают куда более гибкий механизм с возможностью заслать комстроку в плагин.
Это предложение "в кассу"-таки, надеюсь. Если все-таки планируется сделать что-то типа предлагаемого plugin.exec(), то не надо тратить время на callplugin. Если не планируется... ну тогда "не в кассу", забудьте.
Re: Переименовать callplugin
правильно я понимаю, что если префикс у плагина "tmp", то callplugin("tmp","строка") или tmp("строка")?
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Переименовать callplugin
По поводу совместимости вообще и callplugin в частности. Мне кажется, что FAR2 уже довольно давно относительно стабилен в плане API и ломать сейчас - уже нельзя. Поздно. В первую очередь, это, конечно, относится к топику http://forum.farmanager.com/viewtopic.php?f=8&t=5067, но и в макросах - нежелательно. Надо поддерживать совместимость снизу вверх. Нет ничего страшного, если добавить Plugin.Call и оставить CallPlugin в качестве синонима.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Переименовать callplugin
Правильно или нет - вопрос подхода. По моей задумке неправильно. Вызов должен быть 100% такой же, как из комстроки Фара -- хотим команду из комстроки вызываем или юзер меню, хотим -- из макроса. То есть в твоем примере:Skirda wrote:правильно я понимаю, что если префикс у плагина "tmp", то callplugin("tmp","строка") или tmp("строка")?
Code: Select all
callplugin("tmp: строка")
Code: Select all
callplugin("tmp:")
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: Переименовать callplugin
Ломать сейчас самое время, пока все плагинописатели активизировались.Max Rusov wrote:По поводу совместимости вообще и callplugin в частности. Мне кажется, что FAR2 уже довольно давно относительно стабилен в плане API и ломать сейчас - уже нельзя. Поздно.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Переименовать callplugin
Блин, зачем ломать - строить надо! Нет ни одной задачи, которую нельзя было бы решить не сохраняя совместимость. Вы что хотите построить "идеальную" систему? Не получится - уверяю. _Всегда_ есть швы.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: Переименовать callplugin
Ага.NightRoman wrote:Вызов должен быть 100% такой же, как из комстроки Фара -- хотим команду из комстроки вызываем или юзер меню, хотим -- из макроса.
Плагин уверен, что в момент вызова по префиксу активны панели (ибо всегда так было), а ты из-под него табуретку вышибаешь, вызывая, например, из редактора.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Переименовать callplugin
DrKnS
Надумано. Макросы от сырости не заводятся, если написал такой макрос - должен понимать, зачем ты это делаешь, и сможет ли плагин это понять.
Надумано. Макросы от сырости не заводятся, если написал такой макрос - должен понимать, зачем ты это делаешь, и сможет ли плагин это понять.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Переименовать callplugin
О ужос. А из Фара можно удалить все нужные файлы на диске. Фар в этом не виноват.DrKnS wrote:Ага. Плагин уверен, что в момент вызова по префиксу активны панели (ибо всегда так было), а ты из-под него табуретку вышибаешь, вызывая, например, из редактора.
Конечно, нужны будут новые префиксы, которые предназначены для специальных команд (или новые ключи/параметры самих команд), потому что возможностей станет куда больше. Это очевидно, я не думал, что надо пояснять.
Re: Переименовать callplugin
Немного не в тему, но все же...
Про callplugin:
callplugin вызывает OpenPlugin со всеми вытекающими. Нужно корректно отследить флаг OPEN_FROMMACRO и правильно отловить строку - т.е. это готово (если есть проблемы - описывает на мантисе, или тыкаем носом). При этом плагин, поймавший строку, должен сам что-то с этой строкой сделать.
Про новый ProcessMacroFuncW:
ProcessMacroFuncW это чистое АПИ; в макросах, визуально, он не виден (мы не можем в макросах написать ProcessMacroFuncW(блаблабла)), но видно то, что плагин предоставляет, например, "math.sin(1.23)".
Если компилятор "распознал" math.sin, то исполнятор вызовет ProcessMacroFuncW нужного плагина с теми параметрами, которые заявлены (в данном случае плагин получит в рыло значение типа double), т.е. парсить ему, плагину, уже нишиша не надо.
NightRoman, я не понимаю, чем не устраивают 2 варианта? Почему такой упор на префиксы? Разжуй нормально (из предыдущих объяснений я нихрена не понял).
Про 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!
So Say We All!
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Переименовать callplugin
Может я туплю, но сейчас строку, вроде, передать нельзя - только число.Skirda wrote:callplugin вызывает OpenPlugin со всеми вытекающими. Нужно корректно отследить флаг OPEN_FROMMACRO и правильно отловить строку - т.е. это готово
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Переименовать callplugin
Skirda
1) с префиксами подход давным давно отработан морально и понятен всем - плугописателям и юзерам
2) подход отработан и технически, под него уже есть готовая инфраструктура в Фаре, осталось просто заюзать
3) в плане парсинга макросов -- накладные расходы стремительно приближаются к нулю в сравнении с альтернативным подходом
4) дополнительный бонус: *некоторые* команды безо всяких изменений готовы и для макросов, и для комстроки, и для юзер меню.
1) с префиксами подход давным давно отработан морально и понятен всем - плугописателям и юзерам
2) подход отработан и технически, под него уже есть готовая инфраструктура в Фаре, осталось просто заюзать
3) в плане парсинга макросов -- накладные расходы стремительно приближаются к нулю в сравнении с альтернативным подходом
4) дополнительный бонус: *некоторые* команды безо всяких изменений готовы и для макросов, и для комстроки, и для юзер меню.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Переименовать callplugin
Тем, что ни одного из них нет, сорри. Наличие любого одного из них меня устроило бы. Но пока их нет, переименования полу-полезной фичи, тем более breaking, мне непонятны, любой из вариантов ее покрывает как бык овцу, вот и надо один из них сделать сначала. Потом уж можно подумать, как быть со старым callplugin, почему бы нет.NightRoman, я не понимаю, чем не устраивают 2 варианта?
Re: Переименовать callplugin
можно, только про флаг OPEN_FROMMACRO не забываемMax Rusov wrote:Может я туплю, но сейчас строку, вроде, передать нельзя - только число.
We are the Borg. You will be assimilated.
So Say We All!
So Say We All!