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

Здесь обсуждается всё, что касается макросов.
Locked
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 »

Latest post of the previous page:

Skirda wrote:ТЗ - замена "F11 хоткей" с доп.параметром "пункт меню плагина" - т.е. цепочку "F11 c 1" превратить в callplugin(sysid,1).
Skirda wrote:Асинхронным callplugin никогда не будет по причинам описанным выше.
Не понял. "F11 c 1" выполняется асинхронно (не тормозит макропоследовательность ), а callplugin - синхронно. Где ж замена?

SUSim
Реальна замена F11 есть, читайте мантис, ссылки выше.


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

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

Post by Skirda »

"mmode(3,1) callplugin(GUID) блаблабла" оно?
We are the Borg. You will be assimilated.
So Say We All!
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 »

Супер, предыдущие 4 страницы можно перечеркнуть. Всё ложь, включая это:

Оказывается mmode(3,1) решает именно проблему "синхронности". Т.е. можно написать так, и последовательность после callplugin выполнится сразу:

Code: Select all

mmode(3,1)  callplugin("C941E865-9C29-485C-99B3-0C710940F2D8")
ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc
Т.е. нет никакой нужды изощрённо передавать её в виде параметра, как в примере из changelog.

Ok, значит начинаем с начала.
  • Раз callplugin задумывается как замена F11, то правильней будет иметь mmode(3,1) включённым по-умолчанию, именно это соответствует поведению при вызове через F11.

    Code: Select all

    macro:post ShiftF4  CtrlY Enter  F11 Menu.Select("Draw lines") Enter ShiftRight ShiftRight ShiftDown ShiftDown ShiftLeft ShiftLeft ShiftUp ShiftUp ShiftRight Esc
  • Вместо mmode(3,) проще и понятнее просто ввести отдельную функцию:
    Т.е. будут 2 отдельные:
    • Plugin.Call()
      Plugin.CallSynchro()
    (Названия любые, я про сам принцип сейчас)
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 »

Теперь про глюки.
На примере плагина Case conversion:

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
После однократного запуска этого отказывают все макросы.

Вероятно проблема в том, что при завершении макроса плагин всё ещё активен.
Стоит добавить в конце Esc, и проблема пропадает:

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6") Esc
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

John Doe wrote:Теперь про глюки.
На примере плагина Case conversion:

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
После однократного запуска этого отказывают все макросы.
Естественно - ты еще в OpenW.
Здесь, собственно, два вопроса/непонятки:
1. плагин ожидает, что его вызовут только из редактора (править плагин на предмет "где я"?, а сколько таких плагинов?)
2. ФАР должен угадать, что вызывает OpenW из правильного места...
We are the Borg. You will be assimilated.
So Say We All!
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 »

Конкретно этот плагин работает и в редакторе, и в панелях. И макросы отваливаются независимо от места вызова.
а сколько таких плагинов?
А что у нас апи разве не каждую неделю ломается?
Я считаю что это необходимо сделать, и об этом же говорилось при обсуждении "запуска плагинов через префикс отовсюду"
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
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

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

Post by Skirda »

починили - в районе 2506 будет.
We are the Borg. You will be assimilated.
So Say We All!
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

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

Post by Denis »

У меня после

Code: Select all

macro:post mmode(3,1) callplugin("ADAC3050-56E8-45FE-9CB1-A737623CC4A6")
и потом ESC - вообще trap получился.

upd.
AltHistory упал
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

John Doe wrote:А что у нас апи разве не каждую неделю ломается?
ломать можно по разному. можно так сломать, что за 3 года потом не собрать.
вообще есть 1903. там на первый взгляд всё ок в плане функциональности. единственно, что PluginManager::CallPluginItem является почти полным копипастом PluginManager::CommandsMenu. поэтому да, пока не в фаре.
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 »

zg wrote:ломать можно по разному. можно так сломать, что за 3 года потом не собрать.
К чему вы клоните?
К тому что callplugin надо выкинуть?
Потому что если нет, то надо сделать его стабильным, в частности решить раз и навсегда проблему с вызовом плагина в момент когда он этого не ожидает.
User avatar
zg
zero-gravity
Posts: 6016
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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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: 6016
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 получился.
Пробуем
Не падает.
Locked

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