zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
после перехода на Lua: macroapi_manual.ru.chm.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
Shmuel wrote: Для запуска файла-скрипта есть синтаксис lua:@filename, описанный в мануале.
Хотелось бы, чтобы при вызове lua: (без параметров) в том или ином виде (например, в виде окошка с сообщением прямо в Фаре) выводилась краткая справка по синтаксису — подобно тому, как это сделано для view:/edit:.
HaRT wrote: Хотелось бы, чтобы при вызове lua: (без параметров) в том или ином виде (например, в виде окошка с сообщением прямо в Фаре) выводилась краткая справка по синтаксису — подобно тому, как это сделано для view:/edit:.
И ещё один вопрос касающийся нормализации передаваемых путей с помощью far.ConvertPath.
При загрузке макрофайлов используется CPM_FULL (utils.lua:772), а при исполнении файлов (через lua:@) используется CPM_NATIVE (luamacro.lua:180).
Было бы удобнее в обоих случаях CPM_FULL (если конечно это различие существует не преднамерено).
CPM_FULL не работает с очень длинными путями.
CPM_NATIVE даёт не очень дружественное имя файла.
То есть сделано это преднамеренно. Но это не значит, что нельзя обсуждать и трогать.
John Doe wrote: ↑Sat 05 Aug, 2017 13:52Как это увидеть?
Замените в luamacro.lua CPM_NATIVE на CPM_FULL. Перезагрузите Фар. Скопируйте в буфер обмена строку из 100 единиц. 10 раз создавайте по F7 вложенные папки, копируя из буфера. Положите любой Lua-файл в самую вложенную папку и попробуйте запустить его через lua:@<filename>.
Полагаю, что всё-таки правильнее ориентироваться на то, как поступает с путями сам фар, то есть:
— обращается к системным функциям всегда используя префиксы
— в собственное апи префиксы не передаёт
╔════════════════════════════ LuaMacro ═════════════════════════════╗
║ ...am Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro.lua:363: ║
║ invalid format of arg. #1 ║
║ stack traceback: ║
║ [C]: in function 'error' ║
║ C:\Program Files (x86)\Far Manager\Plugins\LuaMacro\api.lua: ║
║ 301: in function 'f1' ║
║ ...am Files (x86)\Far Manager\Plugins\LuaMacro\LuaMacro.lua: ║
║ 363: in function <...am Files (x86)\Far Manager\Plugins\LuaMacro\ ║
║ LuaMacro.lua:363> ║
╟───────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═══════════════════════════════════════════════════════════════════╝
.
Наверно, это не то, что было задумано в такой ситуации?
P.S.
GetConfig wrote:Примечание:
В случае ошибки (некорректный аргумент, или Far Manager не нашёл указанной опции)
данная функция прерывает исполнение (вызывает error()).
читал.
Last edited by HaRT on Wed 09 Aug, 2017 21:22, edited 1 time in total.
Предложите лучшую формулировку, я исправлю.
Аргумент Far.Config должен иметь вид типа xxxx.yyyy (например, Viewer.ShowKeyBar), в данном случае он не соответствует требуемому шаблону (формату).