Здесь обсуждается всё, что касается макросов.
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Mon 16 Jul, 2012 13:44
Проект Spring (обсуждение ) влился в стабильную версию Far Manager 3.0. Code: Select all
zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
Code: Select all
shmuel 25.04.2014 21:32:52 +0200 - build 3878
1. Поддержка MoonScript в API плагинов
changelog — список изменений в плагине LuaMacro .
Таким образом, в макросах сейчас доступны:
См. также:
John Doe
eugene1287
Posts: 41 Joined: Sat 02 Oct, 2010 00:25
Post
by eugene1287 » Fri 25 Apr, 2014 12:20
Latest post of the previous page:
как определить что элемент панели - папка?
eugene1287
eugene1287
Posts: 41 Joined: Sat 02 Oct, 2010 00:25
Post
by eugene1287 » Fri 25 Apr, 2014 12:24
Конечно, win.GetFileAttr. Но как с этим работать?
eugene1287
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Fri 25 Apr, 2014 12:26
Нет, вам нужно искать среди функций panel.*
Или используйте Macro API, это ещё проще в использовании, см. FarEncyclopedia.ru.chm
Кстати в первом сообщении темы тоже есть полезная информация
John Doe
Shmuel
Posts: 6834 Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times
Post
by Shmuel » Fri 25 Apr, 2014 12:41
eugene1287 wrote: Конечно, win.GetFileAttr. Но как с этим работать?
А разве из описания не понятно? Что именно не понятно?
Shmuel
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Fri 25 Apr, 2014 12:44
А как оно может быть понятно, если функция выбрана не та, что требуется
John Doe
eugene1287
Posts: 41 Joined: Sat 02 Oct, 2010 00:25
Post
by eugene1287 » Fri 25 Apr, 2014 12:48
непонятно, как из строки получить bool
panel.GetCurrentPanelItem? то же FileAttributes:string.
panel.fattr(panelType, panel.GetCurrentPanelItem(...).FileName) ?
eugene1287
Shmuel
Posts: 6834 Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times
Post
by Shmuel » Fri 25 Apr, 2014 12:49
John Doe wrote: А как оно может быть понятно, если функция выбрана не та, что требуется
Какая функция требуется - невозможно понять без контекста.
win.GetFileAttr - вполне подходящая функция во многих контекстах.
Shmuel
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Fri 25 Apr, 2014 12:49
Контекст был, работа с панелью
eugen1287
Macro API вам будет проще.
John Doe
Shmuel
Posts: 6834 Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times
Post
by Shmuel » Fri 25 Apr, 2014 12:50
if attr:find"d" then far.Message"it is directory" end
Shmuel
eugene1287
Posts: 41 Joined: Sat 02 Oct, 2010 00:25
Post
by eugene1287 » Fri 25 Apr, 2014 13:36
Спасибо, теперь понятно!
Macro API, как я понимаю, только с текущим файлом может работать.
eugene1287
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Fri 25 Apr, 2014 14:19
eugene1287 wrote: Macro API, как я понимаю, только с текущим файлом может работать.
Это не так.
Впрочем неважно, раз у вас всё получилось с плагиновым апи.
John Doe
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Mon 28 Apr, 2014 13:47
А зачем у нас band, bnot, bor, bxor, lshift, rshift дублируются в 3х местах?
Предлагаю удалить из таблицы mf.*
John Doe
John Doe
Бюрократ
Posts: 13853 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 13 May, 2014 09:17
При использовании Plugin.Call/SyncCall есть проблема, если вызываемый плагин пытается открыть панель.
Например
RESearch :
lua:Plugin.Call("F250C12A-78E2-4ABC-A784-3FDD3156E415","Search")
- после завершения поиска ничего не происходит.
lua:Plugin.SyncCall("F250C12A-78E2-4ABC-A784-3FDD3156E415","Search")
- после завершения поиска LuaMacro падает:
Code: Select all
╔════════════════════════ Exception occurred ════════════════════════╗
║ Exception: Illegal instruction ║
║ Address: 0x02C98898 ║
║ Function: OpenW ║
║ Module: ar30b3895.x86.20140509\Plugins\LuaMacro\LuaMacro.dll ║
╟────────────────────────────────────────────────────────────────────╢
║ { Unload plugin } [ Debug ] ║
╚════════════════════════════════════════════════════════════════════╝
Или старый
FTP :
lua:=Plugin.Call"00000000-0000-0000-4661-724674700000"
Code: Select all
╔════════════════════════ Exception occurred ════════════════════════╗
║ Exception: Access violation (read from 0x0000003C) ║
║ Address: 0x00000032 ║
║ Function: OpenW ║
║ Module: ar30b3895.x86.20140509\Plugins\LuaMacro\LuaMacro.dll ║
╟────────────────────────────────────────────────────────────────────╢
║ { Unload plugin } [ Debug ] ║
╚════════════════════════════════════════════════════════════════════╝
John Doe
Shmuel
Posts: 6834 Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times
Post
by Shmuel » Tue 13 May, 2014 09:24
RESearch или FTP не должны этого делать, будучи вызваны посредством Plugin.Call.
Согласно API, возвращаемое значение, отличное от 0, 1, -1 может быть интерпретировано как указатель на массив возвращаемых значений, а вовсе не как хэндл панели.
Shmuel