Начиная с билда 3878 Far 3 поддерживает в макросах MoonScript — язык программирования, транслируемый в Lua.
Это позволяет писать более компактный и хорошо читаемый код (то же самое для JavaScript делает CoffeeScript).
Плагин LuaMacro автоматически загружает как *.lua, так и *.moon файлы.
Поддерживается также выполнение moon-скриптов из командной строки, см. документацию.
В дистрибутиве на официальном сайте дополнительно присутствуют утилиты moon.exe и moonc.exe (пример использования см. тут)
zg wrote:официальный сайт.
из дистрибутива нужна только moonscript.dll, её можно положить например в папку с фаром.
в %farprofile%\Macros\scripts нужно добавить lua-файл со следующим содержимым:
после этого макросы, написанные на мунскрипте и находящиеся в %farprofile%\Macros\scripts\*.moon будут загружаться и работать, как обычные lua макросы.
пока очень простой пример:
TestMoon = ->
sum = (x, y) -> x + y
s = "фываāšģ"
far.Show (s\byte 1), s\len!, sum 1, 2
Macro {area: "Shell", key: "CtrlShiftF11", description: "test moon",action: TestMoon}
Мне идея очень нравится!
Думаю, что добавление длл-ки в 200 KB, которая к тому же сжимается до 45 KB при упаковке, не слишком утяжелит дистрибутив Фара.
А почему это сразу засунуто в ядро, а не сделано как плагин (если такое возможно)? Просто тогда, наверное, надо и Far.Net делать частью Фара. Какова тут логика принятия решения?
Второе - более правильно. Загрузка также может быть вызвана другими причинами (например, расширенным вариантом lm:post). Время покажет, насколько это будет востребовано.
SQLite может и не будет никогда, хотя бы потому что никто не запрашивал, и на форуме пока толком не обсуждалось.
А вот LPeg уже доступен, но только после команды require"moonscript".
Если мне (например) понадобился только LPeg, то в нагрузку я получу и moonscript, что не очень естественно.
И что если я хочу подключить сторонний модуль LPeg: есть ли подводные камни (знаю что 0.10 и 0.12 несовместимы)?