Page 1 of 1

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Tue 24 Nov, 2015 16:36
by Shmuel
Предлагаемая утилита (макрос) позволяет запускать макросы из редактора, вьювера и т.д. наподобие того, как запускаются макросы с комстроки. Поля диалога Sequence и Parameters можно редактировать в редакторе, нажав на них F4. Они могут быть многострочные.

Code: Select all

Controls:
  Sequence   - either Lua/MoonScript chunk or @<filename>
               if it begins with an '=' then far.Show() is called on it.
  Parameters - comma separated list of Lua/MoonScript expressions
  [x] Reuse environment - use the previous Lua environment for the new run
  [x] Loop this dialog  - call this dialog again after the execution

Preset "global" variables:
  F       = far.Flags
  Message = far.Message
  Show    = far.Show
  WI      = far.AdvControl("ACTL_GETWINDOWINFO") -- window info
  API     = panel.GetPanelInfo(nil,1)            -- active panel info
  PPI     = panel.GetPanelInfo(nil,0)            -- passive panel info
  EI      = editor.GetInfo()                     -- editor info
  VI      = viewer.GetInfo()                     -- viewer info
  Cnt     = automatic counter of runs in the current Lua environment
postmacro_20160719.7z
(2.54 KiB) Downloaded 114 times

PostMacro - интерактивный запуск макросов из любой макрообласти

Posted: Wed 25 Nov, 2015 12:14
by Shmuel
Обновил скрипт и его описание в первом сообщении темы.

PostMacro - интерактивный запуск макросов из любой макрообласти

Posted: Thu 26 Nov, 2015 10:19
by Shmuel
Очередное обновление в первом сообщении темы. Ряд улучшений.

PostMacro - интерактивный запуск макросов из любой макрообласти

Posted: Fri 27 Nov, 2015 07:30
by Shmuel
И ещё одно обновление. На сей раз я уже почти доволен скриптом.

PostMacro - интерактивный запуск макросов из любой макрообласти

Posted: Fri 25 Dec, 2015 15:44
by Shmuel
Скрипт в первом сообщении обновлён. Несколько мелких улучшений.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Tue 19 Jul, 2016 15:06
by Shmuel
Скрипт обновлён. Добавлена поддержка знака = в начале последовательности (по аналогии с комстрокой lua:).

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 14:43
by HaRT
Спасибо за удобный макрос! Частенько им пользуюсь. Пара пожеланий:
1. Чтобы можно было запускать не только непосредственно введённый код, но и уже существующие макросы:
HaRT wrote:
Shmuel wrote: Можно пример привести, где подобная фича была бы удобна?
Сценарий такой: для конкретного файла в редакторе (или группы однотипных файлов) записывается временный макрос, который потом надо применить много раз подряд.
2. Чтобы можно было запускать код из Lua/Moon файлов с диска (подобно тому, как было в плагине PostMacro).

Если идеи нравятся, я готов обсуждать пользовательский интерфейс.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 14:49
by Shmuel
По 2-му пункту вроде реализовано уже (нажмите F1 в диалоге) ? (С плагином не знаком).

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 21:56
by Shmuel
По 1-му пункту:
Запуск существующих макросов не входит в цели данной утилиты. Она по большому счёту является аналогом командной строки LuaMacro, только с той существенной разницей, что работает из любой макрообласти. Ну и некоторые дополнительные удобства. А если нужно просто вызвать на исполнение тот или иной макрос, так это ведь возможно и без данной утилиты, простым нажатием соответствующего кнопкосочетания.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 22:12
by HaRT
Shmuel wrote: простым нажатием соответствующего кнопкосочетания
Некоторые макросы не назначены на кнопкосочетания, но главный мотив — иметь возможность запустить многократное выполнение интересующего макроса, как обсуждается по ссылке на цитату.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 22:46
by Shmuel
HaRT wrote: Некоторые макросы не назначены на кнопкосочетания
И как вы их запускаете?
HaRT wrote: иметь возможность запустить многократное выполнение интересующего макроса
Назначьте на какой-либо несуществующий ключ (если ключа не было), и запускайте из данной утилиты:
for k=1,200 do eval("MyKey",2) end

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 22:55
by HaRT
Shmuel wrote: И как вы их запускаете?
Обычно никак. Когда они надобятся, даю им временные кнопкосочетания, которые потом не сохраняю. Хотелось как раз избежать этих назначений/удалений.
Shmuel wrote: for k=1,200 do eval("MyKey",2) end
Вот как раз всей это писанины и хотелось избежать, имея возможность отдельно выбрать макрос (в т.ч., возможно, в виде файла) и отдельно ввести число повторений, — подобно тому, как это сделано в плагине PostMacro для макросов Фара 1.75.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Thu 08 Dec, 2016 23:17
by Shmuel
HaRT wrote: Вот как раз всей это писанины и хотелось избежать, имея возможность отдельно выбрать макрос (в т.ч., возможно, в виде файла) и отдельно ввести число повторений, — подобно тому, как это сделано в плагине PostMacro для макросов Фара 1.75.
Вот эта вся писанина (вводится за 10 секунд) нужна по моему опыту раз в год. До сих пор ни вы, ни автор в параллельной ветке не привели ни одного примера, зачем это всё надо.

В данной утилите подобная функциональность вряд ли появится (мне не лень раз в год ввести вручную 30 символов). Если для вас эта задача очень важна - никто не запрещает сделать форк данной утилиты.

PostMacro — интерактивный запуск макросов из любой макрообласти

Posted: Fri 09 Dec, 2016 06:12
by zg
вся эта функциональность с повторением n раз - от бедности тех средств. сейчас действительно не очень понятно - зачем оно нужно.