Lua shell — запуск lua/moon скриптов из командной строки
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Lua shell — запуск lua/moon скриптов из командной строки
Назначение данной утилиты — реализовать запуск lua/moon скриптов из командной строки
максимально естественным образом, наподобие команд оболочки, и наравне с ними.
Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или в любом месте PATH).
Область действия не ограничена панелями, командная строка доступна в любой области
фара, с автодополнением и историей: отовсюду можно запустить скрипт, с указанными
аргументами.
Скриптам предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам доступным в PATH, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.
максимально естественным образом, наподобие команд оболочки, и наравне с ними.
Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или в любом месте PATH).
Область действия не ограничена панелями, командная строка доступна в любой области
фара, с автодополнением и историей: отовсюду можно запустить скрипт, с указанными
аргументами.
Скриптам предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам доступным в PATH, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.
Script utils — запуск lua/moon скриптов из командной строки
Спасибо! Ошибка исчезла.
У Вас написано:
Наверное лучше бы написать "Скрипт нужно положить в ..."
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
Да, надо в справке описать, что в scripts нельзя.
Впрочем, у меня ряд утилит может работать как из scripts, так и из комстроки
Впрочем, у меня ряд утилит может работать как из scripts, так и из комстроки
Last edited by John Doe on Sun 24 Sep, 2017 19:12, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
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)
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
Script utils v1.2
- Используются переменные PATH и PATHEXT, устанавливаются автоматически (настраивается)
- Рекомендуется использование из командной строки по ассоциации.
Таким образом можно не указывать префикс и расширение файла
- NightRoman
- Posts: 6034
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 20 times
- Been thanked: 49 times
- Contact:
Script utils — запуск lua/moon скриптов из командной строки
Был в отпуске, поздновато отвечаю. Есть вызов диалога команды PowerShell из почти любого места, в том числе из редактора. И АПИ есть через префикс вызывать любые команды. То есть, наверное, да.
Script utils — запуск lua/moon скриптов из командной строки
А нельзя ли эту функцию выделить в отдельный файл, назвать по другому, например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.
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
Интересует, предусмотрены ли какое-то специальное АПИ для редактора, или же всё возлагается на вызываемый скрипт.NightRoman wrote: ↑Wed 27 Sep, 2017 19:10Есть вызов диалога команды PowerShell из почти любого места, в том числе из редактора. И АПИ есть через префикс вызывать любые команды. То есть, наверное, да.
Для примера возьмём такую задачу, как переформатировать текущий абзац.
1.Это может быть целиком работа одного скрипта: а)выбрать строки, относящиеся к абзацу, б)преобразовать их, и в)вставить обратно.
2.Либо это может быть работа 3х разных скриптов, и в командной строке мы как-то объединяем их вызов
3.Альтернативно, можно предоставлять вызываемому скрипту какое-то АПИ.
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
1. У меня имя "print" ни с чем ни конфликтует.
Для "вставки" текста в элементы интерфейса фара есть mf.print (или можно _G.print).
2. Чтобы использовать в своих скриптах, скопируйте исходный текст в _macroinit.lua, или создайте модуль.
И я бы тоже предпочёл иметь подобную функцию из коробки, в luafar.
- NightRoman
- Posts: 6034
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 20 times
- Been thanked: 49 times
- Contact:
Script utils — запуск lua/moon скриптов из командной строки
Не уверен, что значит специальное. Для скриптов АПИ тот же, что и для всех FarNet модулей.John Doe wrote: ↑Thu 28 Sep, 2017 07:23Интересует, предусмотрены ли какое-то специальное АПИ для редактора, или же всё возлагается на вызываемый скрипт.
Скрипт, который вы в качестве примера привели, вот:
https://github.com/nightroman/FarNet/bl ... ction-.ps1
Специальный там АПИ или нет, решите сами.
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Script utils — запуск lua/moon скриптов из командной строки
Думаю над тем, стоит ли поиск скриптов редактора ограничить одной определённой папкой.
Либо с именем, начинающимся на "editor."...
Либо с именем, начинающимся на "editor."...
- John Doe
- Бюрократ
- Posts: 12982
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 40 times
- Been thanked: 303 times
Lua shell — запуск lua/moon скриптов из командной строки
Изначально скрипт планировался весьма простым, но вот уже в фоне несколько раз переписываю его.
Следующая версия поменяет имя на "Lua shell".
Следующая версия поменяет имя на "Lua shell".
Lua shell
=========
Назначение данной утилиты — реализовать запуск lua/moon скриптов из командной строки
максимально естественным образом, наподобие команд оболочки, и наравне с ними.
Точно так же скрипты можно запускать просто по имени, не задумываясь где именно
они расположены (в текущей папке, или в любом месте PATH).
Область действия не ограничена панелями, командная строка доступна в любой области
фара, с автодополнением и историей: отовсюду можно запустить скрипт, с указанными
аргументами.
Скриптам предоставляется ряд средств, в числе которых — простое обращение к другим
скриптам доступным в PATH, что позволяет сформировать собственную экосистему,
в некотором роде альтернативную модулям Lua.
Lua shell — запуск lua/moon скриптов из командной строки
Эмм, а куда делся предмет обсуждения, сам оный скрипт?
В заголовке нет, на других этих двух страницах тоже нет
В заголовке нет, на других этих двух страницах тоже нет
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
-
- Posts: 2258
- Joined: Sat 20 Apr, 2013 00:17
- Location: Питер
- Has thanked: 134 times
- Been thanked: 241 times
- Contact:
Lua shell — запуск lua/moon скриптов из командной строки
citRiks, собсно, предмет неясен. Лично я тупо сделал ассоциацию на *.lua такие:
и аналогичные для *.moon(только moon:…)
Прекрасно работает, предмет не нужен.
Code: Select all
[x] Execute command (used for Enter):
lua:=@"!\!.!" [[!\!.!]]
[x] Execute command (used for Ctrl+PgDn):
lua:@"!\!.!" [[!\!.!]]
Прекрасно работает, предмет не нужен.
Lua shell — запуск lua/moon скриптов из командной строки
buniak_a_h,
Согласен что неясен, нo во введении описан довольно богатый функционал,
превышающий ваше простое ассоциирование, вот и хотелось взглянуть.
Там например насписано что можно передавать параметры.
А насколько мне известно, с
поправьте меня если я где ошибаюсь
Согласен что неясен, нo во введении описан довольно богатый функционал,
превышающий ваше простое ассоциирование, вот и хотелось взглянуть.
Там например насписано что можно передавать параметры.
А насколько мне известно, с
lua:@..
можно передать только один единственный строковый параметр? поправьте меня если я где ошибаюсь
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.