GetMacroCopy

Здесь обсуждается всё, что касается макросов.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

GetMacroCopy

Post by Shmuel »

gotar
Пока нет времени ответить вам по пунктам.
В своё время начал писать утилиту для работы с макросами, пока она может только показать загруженные макросы и события. Утилита на самой начальной стадии.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Организация Макросов

Post by Max Rusov »

Хотелось бы, чтобы было как в MacroLib:



С переходом на описание макроса по F4.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Организация Макросов

Post by John Doe »

MaxRusov
Имея mf.GetMacroCopy вы легко можете это сделать.
Путь к файлу находится в поле FileName.
Позиция начала определения макроса не хранится, но можно найти по имени.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Организация Макросов

Post by Shmuel »

Прошу иметь в виду, что mf.GetMacroCopy не случайно недокументирована. Это экспериментальная функция, у неё может ещё измениться и название, и сигнатура, и т.п.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Организация Макросов

Post by gotar »

Мне кажется GetMacroCopy очень полезной функцией. Может у Вас в загашнике есть функции доступа к элементам массива LoadedMacros. На первый взгляд, если динамически изменять action или key ничего плохого не произойдет. Изменение в будущем имен или типов параметров экспериментальных функций меня не пугает.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: GetMacroCopy

Post by IgorZ »

Shmuel wrote:gotar
Пока нет времени ответить вам по пунктам.
В своё время начал писать утилиту для работы с макросами, пока она может только показать загруженные макросы и события. Утилита на самой начальной стадии.
Даже на такой стадии уже полезна. Одно замечание. Прекрасно понимаю, что всего лишь черновик, но фиксированная ширина столбцов и заголовки без содержания - зло. Чтобы не ограничиваться критикой, предлагаю такую правку (изменения помечены комментами):
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: GetMacroCopy

Post by John Doe »

Имхо любая критика выложенного наброска тут бессмысленна, т.к. финальная утилита вряд ли будет иметь много с ним общего.
И мне кажется автор даёт нам понять, что свободного времени у него нету, и пишите утилиту сами (вполне справедливо)

Update
Менеджер Lua-скриптов для Fara
Macro Browser alt. — обозреватель макросов
MacroLib — Far Macro Library (умеет работать не только с fml)
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Post by John Doe »

А тем временем в составе LuaMacro появилась утилита mbrowser.lua
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

GetMacroCopy

Post by gotar »

http://forum.farmanager.com/viewtopic.p ... 58#p140358 Что правда, ни Area, ни filemask не используются для построения списка макросов в которых надо искать искать клавишу?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GetMacroCopy

Post by John Doe »

gotar wrote: в которых надо искать искать клавишу
Зависит от того кому надо, и для чего.
LuaMacro при запуске разумеется использует и эти поля, и прочие условия. Подробности в исходниках.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

GetMacroCopy

Post by gotar »

при нажатии каждой клавиши каждый раз заново проверяются эти поля?
Last edited by gotar on Sun 28 Aug, 2016 17:17, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GetMacroCopy

Post by John Doe »

Это детали реализации, в данном случае несущественные.
Если у вас есть конкретная задача, то сформулируйте её наконец.

А если просто любопытно устройство luamacro, то изучайте первоисточник.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

GetMacroCopy

Post by gotar »

К сожалению, о том как происходит взаимодействие Lua и Far я нашел единственный пост http://forum.farmanager.com/viewtopic.p ... 080#p95080. Но там нет ссылок на исходники.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GetMacroCopy

Post by John Doe »

User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

GetMacroCopy

Post by John Doe »

Имея через mf.GetMacroCopy доступ ко всем загруженным макросам можно сделать очень многое.
Однако неоднократно сталкивался с тем, что при работе с этими "сырыми" макросам в разных местах приходится повторно реализовывать логику, уже существующую в LuaMacro.

Приводя к некоему общему знаменателю те потребности, что уже не раз возникали, хотелось бы иметь штатную функцию, по заданной клавише отбирающую подходящие макросы, наподобие mf.eval(...,2), но с расширенными возможностями.
Что конкретно требуется:
- искать макрос, не запуская.
- опционально, возвращать все подходящие макросы, минуя меню конфликта
- опционально, при подборе включать в список макросы и с низким приоритетом (отдельно: те, условия/флаги которых не сработали)
(последнее связано с https://bugs.farmanager.com/view.php?id=3684, но не только)

Назовём её, например, mf.MatchMacro.
Post Reply

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