Здесь выкладываются готовые к использованию макросы и скрипты.
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:35
Latest post of the previous page:
Имена меню надо смотреть в lum-файлах: они указываются в конце.
Пример из
Rh_Scripts\LuaEUM\config\EQuoting.lum
:
Code: Select all
local Data = {
Menu = {
text = L.LuaScripts,
Items = { mQuoting, },
},
["Quoting"] = mQuoting,
} ---
Last edited by
Aidar on Tue 19 May, 2015 10:52, edited 1 time in total.
Aidar
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:38
John Doe wrote: Aidar wrote: В качестве примера можно использовать LumFLS
Боюсь, этот пример невозможно применить, не углубляясь в дебри внутренней реализации Rh_Scripts, где слишком всё взаимосвязано, и на разных уровнях.
Могу помочь с заготовкой, в принципе, она у всех примерно одинаковая.
Останется потом просто писать (или использовать) lum-скрипты и "прицеплять" их к нужным типам файлов.
Aidar
John Doe
Бюрократ
Posts: 13861 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 19 May, 2015 10:44
Aidar wrote: Проблема в том, что передаваемый аргумент не доходит до самого скрипта.
Доходит, если поместить его в таблицу:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A",
"file",[[C:\APPs\Far3\Profile\Plugins\lf4ed\scripts\Rh_Scripts\LuaEUM\LuaEUM.lua]],
{"Quoting"}
)
John Doe
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:46
Вот так - через команды LF4Ed у меня заработало:
- в
_usermenu.lua
:
Code: Select all
AddCommand("luaeum_q", ScriptsPath.."LuaEUM\\LuaEUM", "Quoting")
- в макросе:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum_q")
только синтаксис может быть другой (у меня старые версии FAR и плагинов).
Aidar
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:47
John Doe wrote: ...Доходит, если поместить его в таблицу...
Да, так тоже работает. Спасибо.
Aidar
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:50
Вот так проще:
- в
_usermenu.lua
:
Code: Select all
AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
- в макросе:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting")
Aidar
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 10:53
Shmuel wrote: В LF4Ed есть такая фича - "команды". Если прописать отдельные операции в _usermenu.lua как команды, то их можно будет вызывать напрямую как из комстроки, так и посредством Plugin.Call/SyncCall.
Да, так получилось. постараюсь включить команды в новую версию. Спасибо.
Aidar
John Doe
Бюрократ
Posts: 13861 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 19 May, 2015 10:55
Aidar wrote: Вот так проще:
Спасибо.
А нет ли возможности пойти ещё дальше, и вызвать сразу подменю? (например "Quote text")
John Doe
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 11:11
John Doe wrote: ...А нет ли возможности пойти ещё дальше, и вызвать сразу подменю? (например "Quote text")
Допишите:
- в
EQuoting.lum
:
Code: Select all
["Quoting.Enquote"] = mEnquote,
["Quoting.Dequote"] = mDequote,
после строки
- в макрос:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting.Enquote")
P.S. Запятую ещё надо добавить после mQuoting.
Aidar
Shmuel
Posts: 6840 Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times
Post
by Shmuel » Tue 19 May, 2015 11:21
Aidar wrote:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting.Enquote")
Это будет работать только с позапрошлой версией плагина (или ещё более старыми).
Shmuel
John Doe
Бюрократ
Posts: 13861 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 19 May, 2015 11:28
Исправил для новой версии плагина так:
Запускаю так:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "command", "luaeum", "Quoting.Enquote")
В результате на экране меню:
Code: Select all
╔════════ Menu (lua) ════════╗
║ Quote text ► ║
║ Dequote text ► ║
╚══ Enter,BS,Esc,S+F1,^+F1 ══╝
Т.е. не сработало...
John Doe
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 11:35
Наверное, в новой версии должно быть так:
Code: Select all
Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "command", "luaeum", {"Quoting.Enquote"})
Или я непонятно объяснил насчёт
EQuoting.lum
.
Aidar
John Doe
Бюрократ
Posts: 13861 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 19 May, 2015 11:41
Aidar wrote: {"Quoting.Enquote"}
Это я сразу проверил, но не работает...
Aidar wrote: Или я непонятно объяснил насчёт EQuoting.lum.
Предельно понятно
Code: Select all
---------------------------------------- Data
local Data = {
Menu = {
text = L.LuaScripts,
Items = { mQuoting, },
},
["Quoting"] = mQuoting,
["Quoting.Enquote"] = mEnquote,
["Quoting.Dequote"] = mDequote,
} ---
return Data
--------------------------------------------------------------------------------
John Doe
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 11:45
Может быть, вместо
Code: Select all
AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
надо писать
Code: Select all
AddCommand("luaeum", "scripts.Rh_Scripts.LuaEUM.LuaEUM")
?
Aidar
John Doe
Бюрократ
Posts: 13861 Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:
Post
by John Doe » Tue 19 May, 2015 11:47
Ошибка была у меня в _usermenu.lua, вот так нормально: AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
Т.е. вызов Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "command", "luaeum", "Quoting.Enquote")
работает, извините за ложную тревогу.
John Doe
Aidar
Posts: 541 Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:
Post
by Aidar » Tue 19 May, 2015 11:50
Ясно.
Чтобы выяснить, доходит ли аргумент до скрипта, можно добавить в
LuaEUM.lua
строку
после
Code: Select all
local Scope = { BaseName = BaseName, args = args }
Aidar