Асинхронность макросов, запущенных из CtrlG

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

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

Простейший пример
Выделить несколько файлов
CtrlG
lm:post Keys("F7")
Enter

Ожидается, что диалог создания папки появится для каждого выделенного файла, однако это не так.
Диалог появится один раз.

В связи с этим 2 вопроса:

1. Насколько эта ситуация сейчас в фаре учитывается?
В том плане, не упадёт ли фар от таких "злоупотреблений"

2. Можно ли сделать так, чтобы макросы выполнялись синхронно, т.е. чтобы фар ждал возврата управления, после чего продолжал бы "Apply to" дальше?

Update
http://bugs.farmanager.com/view.php?id=2685
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Асинхронность макросов, запущенных из CtrlG

Post by zg »

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

Re: Асинхронность макросов, запущенных из CtrlG

Post by zg »

но вообще конкретно у luamacro возможность выполнить макрос синхронно есть уже сейчас.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

Code: Select all

shmuel 07.04.2015 00:27:31 +0200 - build 502

1. M#2685: Выполнять заданные в командной строке lua: скрипты синхронно.
macroapi_manual.ru.chm wrote:Работа с командной строки

Примечание 2:
Вместо префиксов lua: и moon: могут использоваться соответственно префиксы luas: и moons:. В этом случае макрос не создаётся, а производится немедленное (“синхронное”) исполнение кода. Если код завершается нормально, то величина CmdLine.Result содержит таблицу с массивом возвращённых величин, а поле n этой таблицы – количество этих величин. В случае прерывания кода по ошибке, значение CmdLine.Result равно nil.
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Асинхронность макросов, запущенных из CtrlG

Post by gotar »

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

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

Переменной плохая идея, а вот ключом было бы имхо действительно лучше.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Асинхронность макросов, запущенных из CtrlG

Post by Shmuel »

John Doe wrote: Переменной плохая идея, а вот ключом было бы имхо действительно лучше.
Это интересно. Есть ещё сторонники ключей?
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Асинхронность макросов, запущенных из CtrlG

Post by zg »

я не сторонник.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

Мне прежде всего не нравится что имена новых префиксов "неговорящие", тогда как имя ключа можно сделать понятным.

Ну и само размножение префиксов ради функций, ненужных большинству пользователей.
Честно говоря, я пока не придумал сценарий, где понадобилась бы синхронность в её текущей реализации.
(из обсуждения на багтрекере следует что для моих задач надо завести ещё два отдельных тикета).
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Асинхронность макросов, запущенных из CtrlG

Post by Shmuel »

John Doe wrote: Честно говоря, я пока не придумал сценарий, где понадобилась бы синхронность в её текущей реализации.
Если возможностей всего плагинового API + большей части макросного API недостаточно, чтобы придумать сценарий (для того же user menu), то я молчу.
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:

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

Shmuel wrote: И в чём проблема?
Никаких проблем, оформлю тикеты в ближайшее время.
Shmuel wrote: Если возможностей всего плагинового API + большей части макросного API недостаточно, чтобы придумать сценарий (для того же user menu), то я молчу.
Я немного о другом: допустим в пользовательском меню (и "применить команду") будут внесены изменения, позволяющие выполнять макросы последовательно без ограничений на функции.
Останутся ли нужны тогда luas: и moons:?
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Асинхронность макросов, запущенных из CtrlG

Post by zg »

John Doe wrote:Мне прежде всего не нравится что имена новых префиксов "неговорящие", тогда как имя ключа можно сделать понятным.
сейчас есть префикс+ код. добавляя ключи, мы добавляем новый язык с изначально стихийным развитием, который надо поддерживать, править баги и т.д. вы будете это делать?
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:

Асинхронность макросов, запущенных из CtrlG

Post by John Doe »

zg wrote:сейчас есть префикс+ код. добавляя ключи, мы добавляем новый язык с изначально стихийным развитием, который надо поддерживать,[...]
Сейчас не только код: не забывайте @ и =
В любом случае решать не мне, да и вопрос не настолько принципиальный.
zg wrote:вы теперь недовольны.
Какой лупой вы это рассмотрели?
zg wrote:ок. все старые и новые виши от вас будут закрываться.
Ага, вы меня ещё недавно на форуме забанить грозились. Вперёд.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Асинхронность макросов, запущенных из CtrlG

Post by Shmuel »

John Doe wrote:допустим в пользовательском меню (и "применить команду") будут внесены изменения, позволяющие выполнять макросы последовательно без ограничений на функции.
Останутся ли нужны тогда luas: и moons:?
Их необходимость в этом случае сильно уменьшится. Но давайте сначала доживём до реализации "допустим", а там видно будет.
gotar
Posts: 420
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Асинхронность макросов, запущенных из CtrlG

Post by gotar »

Когда я писал о переменной, я как раз думал, что большенству пользователей при вызове lua из командной строки нужены функции и переменные lua-макросов и синхронный режим работы, поэтому хотелось бы, что бы префикс lua: мог бы использоваться и для синхронного режима. Однако по умолчанию должен использоваться асинхронный режим в целях совместимости. Если Вам не нравится переменная можно добавить параметр в initlua.ini ( может быть перепутал имя файла). Или оставить все как есть.
Post Reply

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