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

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

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

Post by John Doe » Sun 17 Sep, 2017 15:09

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

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

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

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

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Sun 24 Sep, 2017 19:01

Latest post of the previous page:

Он не должен быть в scripts

User avatar
sToLp
Posts: 815
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 79 times
Been thanked: 6 times

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

Post by sToLp » Sun 24 Sep, 2017 19:09

John Doe wrote:
Sun 24 Sep, 2017 19:01
Он не должен быть в scripts
Спасибо! Ошибка исчезла.

У Вас написано:
John Doe wrote:
Sun 24 Sep, 2017 16:45
Если положить в
Наверное лучше бы написать "Скрипт нужно положить в ..."

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Sun 24 Sep, 2017 19:11

Да, надо в справке описать, что в scripts нельзя.
Впрочем, у меня ряд утилит может работать как из scripts, так и из комстроки
Last edited by John Doe on Sun 24 Sep, 2017 19:12, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Sun 24 Sep, 2017 19:26

dump.lua

Code: Select all

if ... then
  local f = assert(loadstring("return "..(...)))
  print(require"moon".dump(f()))
end
Запускать как dump <arg>, где аргументом любое глобальное значение, например _G или far.
Или выражение, например {a=1,b=2,3,4}, math.sinus(1)

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Sun 24 Sep, 2017 20:23

Script utils v1.2
  • Используются переменные PATH и PATHEXT, устанавливаются автоматически (настраивается)
  • Рекомендуется использование из командной строки по ассоциации.
    Таким образом можно не указывать префикс и расширение файла

User avatar
NightRoman
Posts: 5899
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Wed 27 Sep, 2017 19:10

John Doe wrote:
Mon 18 Sep, 2017 13:43
А в нашем PowerShellFar есть такое?
Был в отпуске, поздновато отвечаю. Есть вызов диалога команды PowerShell из почти любого места, в том числе из редактора. И АПИ есть через префикс вызывать любые команды. То есть, наверное, да.

gotar
Posts: 304
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

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

Post by gotar » Wed 27 Sep, 2017 21:57

John Doe wrote:• Скрипту предоставляется функция "print" аналогичная стандартной (Lua),
но дополнительно перекодирующая текст из utf8 в oem.
Функция выводит текст в буфер под панелями (активируется автоматически,
соответственно нет необходимости в ручном вызове GetUserScreen/SetUserScreen)
А нельзя ли эту функцию выделить в отдельный файл, назвать по другому, например cprint, чтобы ее можно было использовать в своих скриптах.
Last edited by gotar on Thu 28 Sep, 2017 06:26, edited 1 time in total.

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Thu 28 Sep, 2017 07:23

NightRoman wrote:
Wed 27 Sep, 2017 19:10
Есть вызов диалога команды PowerShell из почти любого места, в том числе из редактора. И АПИ есть через префикс вызывать любые команды. То есть, наверное, да.
Интересует, предусмотрены ли какое-то специальное АПИ для редактора, или же всё возлагается на вызываемый скрипт.
Для примера возьмём такую задачу, как переформатировать текущий абзац.
1.Это может быть целиком работа одного скрипта: а)выбрать строки, относящиеся к абзацу, б)преобразовать их, и в)вставить обратно.
2.Либо это может быть работа 3х разных скриптов, и в командной строке мы как-то объединяем их вызов
3.Альтернативно, можно предоставлять вызываемому скрипту какое-то АПИ.

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Thu 28 Sep, 2017 07:30

gotar wrote:
Wed 27 Sep, 2017 21:57
А нельзя ли эту функцию выделить в отдельный файл, назвать по другому, например cprint, чтобы ее можно было использовать в своих скриптах.
1. У меня имя "print" ни с чем ни конфликтует.
Для "вставки" текста в элементы интерфейса фара есть mf.print (или можно _G.print).
2. Чтобы использовать в своих скриптах, скопируйте исходный текст в _macroinit.lua, или создайте модуль.

И я бы тоже предпочёл иметь подобную функцию из коробки, в luafar.

User avatar
NightRoman
Posts: 5899
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

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

Post by NightRoman » Thu 28 Sep, 2017 10:32

John Doe wrote:
Thu 28 Sep, 2017 07:23
Интересует, предусмотрены ли какое-то специальное АПИ для редактора, или же всё возлагается на вызываемый скрипт.
Не уверен, что значит специальное. Для скриптов АПИ тот же, что и для всех FarNet модулей.
Скрипт, который вы в качестве примера привели, вот:
https://github.com/nightroman/FarNet/bl ... ction-.ps1
Специальный там АПИ или нет, решите сами.

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Thu 28 Sep, 2017 14:39

Думаю над тем, стоит ли поиск скриптов редактора ограничить одной определённой папкой.
Либо с именем, начинающимся на "editor."...

User avatar
John Doe
Бюрократ
Posts: 11789
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 26 times
Been thanked: 126 times

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

Post by John Doe » Tue 05 Dec, 2017 17:14

Изначально скрипт планировался весьма простым, но вот уже в фоне несколько раз переписываю его.
Следующая версия поменяет имя на "Lua shell".
Lua shell
=========

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

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

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

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

Post Reply

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