[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

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.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

John Doe wrote:
Aidar wrote:В качестве примера можно использовать LumFLS
Боюсь, этот пример невозможно применить, не углубляясь в дебри внутренней реализации Rh_Scripts, где слишком всё взаимосвязано, и на разных уровнях.
Могу помочь с заготовкой, в принципе, она у всех примерно одинаковая.
Останется потом просто писать (или использовать) lum-скрипты и "прицеплять" их к нужным типам файлов.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe »

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"}
)
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Вот так - через команды 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 и плагинов).
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

John Doe wrote:...Доходит, если поместить его в таблицу...
Да, так тоже работает. Спасибо.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Вот так проще:
- в _usermenu.lua:

Code: Select all

AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
- в макросе:

Code: Select all

Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting")
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Shmuel wrote:В LF4Ed есть такая фича - "команды". Если прописать отдельные операции в _usermenu.lua как команды, то их можно будет вызывать напрямую как из комстроки, так и посредством Plugin.Call/SyncCall.
Да, так получилось. постараюсь включить команды в новую версию. Спасибо.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe »

Aidar wrote: Вот так проще:
Спасибо.
А нет ли возможности пойти ещё дальше, и вызвать сразу подменю? (например "Quote text")
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

John Doe wrote:...А нет ли возможности пойти ещё дальше, и вызвать сразу подменю? (например "Quote text")
Допишите:
- в EQuoting.lum:

Code: Select all

  ["Quoting.Enquote"] = mEnquote,
  ["Quoting.Dequote"] = mDequote,
после строки

Code: Select all

["Quoting"] = mQuoting
- в макрос:

Code: Select all

    Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting.Enquote")
P.S. Запятую ещё надо добавить после mQuoting.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Shmuel »

Aidar wrote:

Code: Select all

    Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "*luaeum", "Quoting.Enquote")
Это будет работать только с позапрошлой версией плагина (или ещё более старыми).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe »

Исправил для новой версии плагина так:
Запускаю так:

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 ══╝
Т.е. не сработало...
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Наверное, в новой версии должно быть так:

Code: Select all

Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "command", "luaeum", {"Quoting.Enquote"})
Или я непонятно объяснил насчёт EQuoting.lum.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe »

Aidar wrote: {"Quoting.Enquote"}
Это я сразу проверил, но не работает...
Aidar wrote: Или я непонятно объяснил насчёт EQuoting.lum.
Предельно понятно
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Может быть, вместо

Code: Select all

AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
надо писать

Code: Select all

AddCommand("luaeum", "scripts.Rh_Scripts.LuaEUM.LuaEUM")
?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by John Doe »

Ошибка была у меня в _usermenu.lua, вот так нормально: AddCommand("luaeum", ScriptsPath.."LuaEUM\\LuaEUM")
Т.е. вызов Plugin.Call("6F332978-08B8-4919-847A-EFBB6154C99A", "command", "luaeum", "Quoting.Enquote") работает, извините за ложную тревогу.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

[lf4ed] Rh_Scripts — пакет скриптов для LuaFAR for Editor

Post by Aidar »

Ясно.

Чтобы выяснить, доходит ли аргумент до скрипта, можно добавить в LuaEUM.lua строку

Code: Select all

logShow(BaseName)
после

Code: Select all

local Scope = { BaseName = BaseName, args = args }
Post Reply

Return to “Полезные макросы и скрипты”