LuaShell — запуск lua/moon скриптов из командной строки

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaShell — запуск lua/moon скриптов из командной строки

Post by John Doe »

Назначение данной утилиты — реализовать запуск lua/moon/yue скриптов из командной строки
максимально естественным образом, наподобие команд оболочки, и наравне с ними.

Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или где-то в %PATH%).
И по тем же правилам им можно передавать аргументы в командной строке.

Скрипты удобно не только запускать вручную, но и использовать в ассоциациях,
меню пользователя, диалоге “Применить команду” и т.п.

Область действия не ограничена панелями, командная строка доступна в любой области
фара, с автодополнением и историей.

Скриптам: предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам, доступным в %PATH%, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.

Макросам: предоставляется модуль sh для доступа к скриптам (см. API).

Установка

Опции

Использование

Скрипты

Диалог запуска скрипта

Просмотр возвращаемых значений

Повторный запуск скрипта

API, предоставляемый скрипту

Командная строка
Attachments
3rd-party-macros.7z
21/08/2021
(116.24 KiB) Downloaded 293 times
LuaShell-02.7z
20/08/2021
(34.44 KiB) Downloaded 258 times
3rd-party.7z
08/08/2021
(57.77 KiB) Downloaded 250 times
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Script utils — запуск lua/moon скриптов из командной строки

Post by HaRT »

Может, не стоит занимать под эту специализированную задачу столь общий префикс?
Предлагаю run/exec/invoke/spawn или luna/loon/mooa/loona/…
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Script utils — запуск lua/moon скриптов из командной строки

Post by Smitis »

HaRT,
run и exec тоже достаточно общие префиксы. У меня одно время такие были.
Разум когда-нибудь победит.
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by cmd.exe »

sulu идеально по мойму
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Script utils — запуск lua/moon скриптов из командной строки

Post by DrKnS »

cmd.exe wrote: Sun 17 Sep, 2017 23:54sulu
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Script utils — запуск lua/moon скриптов из командной строки

Post by Smitis »

xlua - eXtented/eXecute lua
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

HaRT wrote: Sun 17 Sep, 2017 20:33Может, не стоит занимать под эту специализированную задачу столь общий префикс?
Учитывая сколько всяких новых плагинов появляется каждый день полагаю беспокоиться не о чем, префиксов хватит на всех.

И в любом случае, никто же не захардкодил префикс, наоборот, его настройка вынесена в опции.
2useven10
Posts: 5192
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 309 times

Script utils — запуск lua/moon скриптов из командной строки

Post by 2useven10 »

Smitis wrote: Mon 18 Sep, 2017 08:30xlua
По-моему одна буква лишняя.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

Пример утилиты, которую я использую через util:

filesmenu <mask> <cmd> <path> В папке <path> (по умолчанию ".") рекурсивно ищет файлы подходящие под <mask> (по умолчанию *.exe). Найденные отображает в виде меню, при выборе — запускает в командной строке, предваряя командой <cmd> (если задана). Кроме того, в меню доступны клавиши F3, F4, CtrlPgUp, служащие для вставки префиксов view:, edit:, goto:. Пример использования, через консольные алиасы: ----- chm=util:@filesmenu *.chm "" %FARHOME%\Encyclopedia cc=util:@filesmenu changelog* edit: %FARHOME%\Plugins gg=util:@filesmenu $* ----- chm — список chm-файлов из папки Encyclopedia сс — список changelog* из папки Plugins gg <mask> — список файлов <mask> в текущей папке с подпапками
Attachments
filesmenu.lua
(2.12 KiB) Downloaded 436 times
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

P.S.
Предлагаю в данной теме делиться подобными утилитками.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

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

В простейшим виде для этого ничего особо не надо.
Потом, вероятно, потребуется какое-то апи, обеспечивающее дополнительные удобства.
Продумать, что вообще требуется... На вскидку, неплохо бы предусмотреть объединение команд в цепочки.
Emacs и vim бы глянуть..

А в нашем PowerShellFar есть такое?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

Обновление скрипта в шапке.
v1.1
  • Панели теперь гасятся по мере надобности, при использовании функции print.
    Для запуска lua/moon-скриптов удобно использовать ассоциацию *.lua,*.moon | util:"!\!.!"
  • Символ @ используется для запрета отображения выполняемой команды на экране (полезно для "Применить команду").
    Если не указан, то команда отображается только если скрипт использовал print().
    Символ * используется для того, чтобы отобразить выполняемую команду в любом случае.
  • Символ = позволяет отобразить возвращаемые значения скрипта в виде списка.
    Таблицы можно просматривать (опционально: рекомендуются модули "le" и inspect)
    Если после = в командной строке не указан файл, то отображаются значения, возвращённые последним выполненным скриптом.
  • Опционально, эти значения также сохраняются и в глобальной переменной с указанным именем, по умолчанию LastCmdLineResult.
    Опционально, для просмотра этих значений предусмотрен макрос, по умолчанию назначенный на Ctrl-Shift-L.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

Со следующей версии скрипты будут искаться не в заданной настройками папке, а в PATH, и упростится рекомендованный способ использования (от префикса можно уйти, используя возможности фара).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Script utils — запуск lua/moon скриптов из командной строки

Post by John Doe »

waitkey.lua

Code: Select all

local i = 0
repeat
  local key = mf.waitkey()
  i = i+1
  print(i,key)
until key=="Esc"
Может быть полезно для изучения названий комбинаций клавиш в фаре

Если положить в Macros\Utils, настроить PATHEXT, и добавить ассоциацию, то можно запускать из командной строки просто как "waitkey".

Преимущества перед каким-либо аналогичным макросом:
  • крайняя простота таких примитивных утилит, не нужно организовывать диалоги, и даже (хоть и элементарная) обвязка в Macro {...} не нужна.
  • не приходится занимать клавиши (и помнить комбинации)
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Script utils — запуск lua/moon скриптов из командной строки

Post by sToLp »

John Doe wrote: Sun 24 Sep, 2017 16:45waitkey.lua
У меня установка скрипта вызвала .
Post Reply

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