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

Здесь обсуждается всё, что касается макросов.
Locked
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

zg wrote:ломать можно по разному. можно так сломать, что за 3 года потом не собрать.
К чему вы клоните?
К тому что callplugin надо выкинуть?
Потому что если нет, то надо сделать его стабильным, в частности решить раз и навсегда проблему с вызовом плагина в момент когда он этого не ожидает.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

John Doe wrote:К чему вы клоните?
я клоню, что предложенная в 1903 идея вполне решает все проблемы. осталось сделать нормальную имплементацию.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Страниц 5-6 назад я об этом заикнулся, но был смят отпором любителей callplugin.
К тому же в 1903 не предполагается никакого другого способа передать плагину параметры.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

Denis wrote:У меня после

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
и потом ESC - вообще trap получился.
Пробуем
We are the Borg. You will be assimilated.
So Say We All!
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

John Doe wrote:Страниц 5-6 назад я об этом заикнулся, но был смят отпором любителей callplugin.
К тому же в 1903 не предполагается никакого другого способа передать плагину параметры.
в 1903 callplugin предлагается переименовать в Plugin.Int. про параметры не понял — куда они денутся?
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

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

Post by Denis »

Skirda wrote:
Denis wrote:У меня после

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
и потом ESC - вообще trap получился.
Пробуем
Не падает.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

zg wrote:в 1903 callplugin предлагается переименовать в Plugin.Int. про параметры не понял — куда они денутся?
Как переименование решит проблему с вызовом плагина где он этого не ожидает?
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

John Doe wrote:
zg wrote:в 1903 callplugin предлагается переименовать в Plugin.Int. про параметры не понял — куда они денутся?
Как переименование решит проблему с вызовом плагина где он этого не ожидает?
Подумалось... Да все просто - пусть плагин сам проверяет окружение + макрописатель должен осознавать последствия от вызова чисто редакторного плагина в... скажем панелях.
Я думаю, что ИИ здесь только навредит, т.к. обязательно в этом случае будут необоснованные крики в сторону ФАР о том, что "я вызываю вызываю вызываю плагин из макроса, а он не появляется" и... каждый раз придется тыкать в какой нибудь очередной пункт ЧаВо...
We are the Borg. You will be assimilated.
So Say We All!
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Для того чтобы ограничить вызов откуда_не_надо ИИ не требуется.
Требуется только явно определить, и попытку "неправильного" вызова расценивать как ошибку, с выводом ворнинга.

P.S.
Не поймёшь вас: то говорите "нафиг вызовы по префиксу, а то начнут вызывать где нипопадя", то наоборот
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
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 »

То же самое я бы сказал и про вызов плагинов по префиксу, если он вдруг будет возможен не только из панелей. Кто вызывает откуда не надо, тот сам и виноват. Мудрить тут можно, конечно, типа защиты от дурака, но пользы много не будет (других капканов хватает).

Пример технологии как бы есть. В Фарнет модули, вызываемые по префиксу, можно вызывать откуда угодно уже давно (через callplugin, конечно, где ядро этот префикс трансформирует в вызов нужного модуля с остатком комстроки). Никто ни разу не пожаловался, мол, "а почему разрешено вызывать из неправильного места?".
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

NightRoman wrote: мол, "а почему разрешено вызывать из неправильного места?".
FarNet может защищён, а иной и упадёт.
Или защиту от дурака трудно реализовать?
Я имею ввиду со стороны фара.
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 »

John Doe wrote:
NightRoman wrote: мол, "а почему разрешено вызывать из неправильного места?".
FarNet может защищён, а иной и упадёт.
Или защиту от дурака трудно реализовать?
Я имею ввиду со стороны фара.
А почему упадет-то, кстати?

Сложно не сложно, а надо реализовать. И предоставить АПИ для защиты. Флаги там всякие. И кешировать их. А плугописателям надо эти флаги пользовать. Если все это взвесить и оно не сложнее, чем просто забить на существующую, но не великую проблему, тогда да, можно и реализовать.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

John Doe wrote:Можно пойти иным путём: обязать каждый плагин проверять контекст самостоятельно.
Но проверять надо.
И даже если он не проверяет, то воркэраунд всегда есть - не надо звать откуда не надо (и испытывать плуг на прочность на свой риск, все равно эти сценарии по нормальному *почти никогда* не будут тестироваться авторами, надо быть реалистами, все-таки).
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Утверждая что составитель макроса "должен думать сам" вы забываете о том, что макросы они как раз для домохозяек.
И даже опытный макросописатель может ошибиться, например вызывая в макросе редакторный плагин, и не ожидая что по какой-то причине редактор не открылся, или же открыт ворнинг/диалог и т.п.

Более того: при отладке это не просто "может" случиться - это гарантированно случается.
Locked

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