Макросы на MoonScript

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

Макросы на MoonScript

Post by John Doe »

Начиная с билда 3878 Far 3 поддерживает в макросах MoonScript — язык программирования, транслируемый в Lua.
Это позволяет писать более компактный и хорошо читаемый код (то же самое для JavaScript делает CoffeeScript).

Документация по языку: Плагин LuaMacro автоматически загружает как *.lua, так и *.moon файлы.
Поддерживается также выполнение moon-скриптов из командной строки, см. документацию.

В дистрибутиве на официальном сайте дополнительно присутствуют утилиты moon.exe и moonc.exe (пример использования см. тут)

Онлайн-компилятор тут: http://moonscript.org/compiler/
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Макросы на moonscript

Post by Shmuel »

zg wrote:официальный сайт.
из дистрибутива нужна только moonscript.dll, её можно положить например в папку с фаром.
в %farprofile%\Macros\scripts нужно добавить lua-файл со следующим содержимым:

после этого макросы, написанные на мунскрипте и находящиеся в %farprofile%\Macros\scripts\*.moon будут загружаться и работать, как обычные lua макросы.
пока очень простой пример:

Code: Select all

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 при упаковке, не слишком утяжелит дистрибутив Фара.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Макросы на moonscript

Post by zg »

тогда надо добавлять.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: Макросы на moonscript

Post by Smitis »

Тогда, наверное, надо и макросы moon автоматически загружать
Разум когда-нибудь победит.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Макросы на moonscript

Post by zg »

про это и речь.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Макросы на moonscript

Post by Shmuel »

zg wrote:тогда надо добавлять.
Длл-ки добавил, продолжение следует (не сегодня).
fml2
Posts: 534
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 2 times
Been thanked: 8 times

Re: Макросы на moonscript

Post by fml2 »

А почему это сразу засунуто в ядро, а не сделано как плагин (если такое возможно)? Просто тогда, наверное, надо и Far.Net делать частью Фара. Какова тут логика принятия решения?
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Макросы на moonscript

Post by zg »

fml2 wrote:А почему это сразу засунуто в ядро, а не сделано как плагин (если такое возможно)?
а вы первый пост совсем-совсем не читали, да?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Макросы на moonscript

Post by John Doe »

Shmuel wrote:Длл-ки добавил, продолжение следует (не сегодня).
А зависимости есть? В коде из первого сообщения упоминается lpeg, на оффсайте ещё несколько.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Макросы на moonscript

Post by Shmuel »

Для макросов зависимость - только LPeg, и она встроена в moonscript.dll.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Макросы на moonscript

Post by John Doe »

Moonscript планируется загружать безусловно, или только при наличии *.moon?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Макросы на moonscript

Post by Shmuel »

Второе - более правильно. Загрузка также может быть вызвана другими причинами (например, расширенным вариантом lm:post). Время покажет, насколько это будет востребовано.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Макросы на moonscript

Post by John Doe »

Может быть есть смысл сделать LPeg доступным независимо от moonscript? Раз уж он всё равно из коробки?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Re: Макросы на moonscript

Post by Shmuel »

Как раз сегодня думал об этом.
Но вот SQLite в коробке уже давно и до сих пор недоступна.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Макросы на moonscript

Post by John Doe »

SQLite может и не будет никогда, хотя бы потому что никто не запрашивал, и на форуме пока толком не обсуждалось.

А вот LPeg уже доступен, но только после команды require"moonscript".
Если мне (например) понадобился только LPeg, то в нагрузку я получу и moonscript, что не очень естественно.

И что если я хочу подключить сторонний модуль LPeg: есть ли подводные камни (знаю что 0.10 и 0.12 несовместимы)?
Post Reply

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