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

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

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

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

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

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

Также возможно непосредственно исполнять набранные в строке ввода lua(/moon/yue)-выражения,
и просматривать возвращаемые значения.

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

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

Обсуждение на форуме: https://forum.farmanager.com/viewtopic.php?f=15&t=10907

Назначение

Утилиты

Установка

Опции

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

Выполнение Lua-выражений

Командная строка

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

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

API

API для обращения к другим скриптам — sh

dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

Latest post of the previous page:

В отсутствии вывода после panel.SetUserScreen если lua вызываются через LuaShell

Проблему можно увидеть в моём "форке" скрипта venv viewtopic.php?p=176769#p176769
В одном случае принт после panel.SetUserScreen() (строка 98) есть, в другом (с LuaShell) - нет
image.png
image.png (7.18 KiB) Viewed 3053 times
image.png
image.png (7.3 KiB) Viewed 3053 times
Last edited by dest on Wed 27 Dec, 2023 20:28, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

Кстати да, похоже тут ошибка в фаре.
LuaShell можно убрать, а по сути выполняется это:

Code: Select all

local function print(arg)
  win.WriteConsole(arg)
  win.WriteConsole("\n")
end

panel.GetUserScreen()
   
print("1")

panel.GetUserScreen()
print("2")
panel.SetUserScreen()

print("3")
--print("4")

panel.SetUserScreen()
Т.е. присутствует вложенные Get/SetUserScreen().
Это штатная ситуация, фар это нормально должен переваривать (пока вызовы парные).
Однако вопреки ожиданиям, на экран выводятся не все три строки, а только

Code: Select all

1

2
Edit: исправлено в 6236-7
Last edited by John Doe on Fri 29 Dec, 2023 16:23, edited 1 time in total.
https://t.me/FarManager — Telegram чат
dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

Ну тогда мантис ждёт? Я пас
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

dest wrote: Wed 27 Dec, 2023 19:26 [...]и тот, который добавляет двойные нажатия, удержания (забыл названия и файлы успешно) - вот с последним у меня приключения, начались лаги в фаре, проглатывания нажатий клавиш иногда, подвисоны. Явно в нём дело. [Во, MacroEx, от присутствующего тут мастера John Doe :Bravo: ] - удалил его и глюки эти вдруг пропали.
Уже лет 10 пользуюсь MacroEx (и не только я), без всяких нюансов. Если вы нашли условия, приводящие к проблемам, то прошу описать подробнее (в теме MacroEx).
https://t.me/FarManager — Telegram чат
Yegor
Posts: 1506
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

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

Post by Yegor »

John Doe wrote: Wed 27 Dec, 2023 22:42 Т.е. присутствует вложенные Get/SetUserScreen().
Это штатная ситуация, фар это нормально должен переваривать (пока вызовы парные).
6236?

EDIT: уточнение.
Last edited by Yegor on Thu 28 Dec, 2023 20:49, edited 1 time in total.
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

У меня 6235. Условия не знаю. Просто захожу в редактирование файла, надо прыгнуть вверх-вниз, жму PgUp/PgDn, и иногда реакции нет ни на первое, ни на второе нажатие, будто клавиши гавкнулись.
Без скрипта этих глюков нет.
Скроллинг Up/Down без скрипта со включеным Colorer дико тормозит, если пришли к концу экрана, но визуально с MacroEx тормозит ещё больше.
Не знаю в чём прикол, выяснить вряд ли смогу да и желания что-то не особо.
dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

John Doe wrote: Sun 17 Sep, 2017 15:09 3rd-party | Скачать
HTTP:404
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

Да, их я не выложил, актуализировать надо.
https://t.me/FarManager — Telegram чат
dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

John Doe wrote: Wed 18 Feb, 2026 07:54актуализировать надо
В копилку правок:
1) Это устранит ошибку скрипта cdd при нажатии del, когда список уже пуст.


2) tabular.lua ссылается на файл, который находится в другом месте:

Code: Select all

sh([[%FARPROFILE%\Macros\utils\std\core\dump.lua]],{_cmdline=_cmdline, dump=dump})()

Code: Select all

sh([[%FARPROFILE%\Macros\utils\core\dump.lua]],{_cmdline=_cmdline, dump=dump})()
По ссылка https://github.com/FarManagerLegacy/LuaShell.std директории core нет, исходный файл по инструкции https://github.com/FarManagerLegacy/LuaShell.core (и по автоустановщику в меню F2) Macros\utils\core\dump.lua

3) 3rd-party\AleXH\update.lua падает с ошибкой сертификата curl: (35) schannel: next InitializeSecurityContext failed: CRYPT_E_NO_REVOCATION_CHECK (0x80092012) - Функция отзыва не смогла произвести проверку отзыва для сертификата. (не хватает опции "-K", и хорошо что упало :laugh: , а то решил позапускать эти все скрипты, посмотреть надо ли оно мне, не доходили раньше руки... удалил, ReNewal ok)
4) то же самое с 3rd-party\BAX\table.lua что и в 2)

5) Критическое: Macros\utils\std\far\misc\grep.lua мешает работе реальному grep (MSYS/git/VS)! Удалил
Last edited by dest on Thu 19 Feb, 2026 09:03, edited 3 times in total.
Post Reply

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