Макросы на MoonScript

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

Макросы на MoonScript

Post by John Doe » Sun 20 Apr, 2014 23:49

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

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

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

Онлайн-компилятор тут: http://moonscript.org/compiler/

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Mon 21 Apr, 2014 07:31

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: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

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

Post by zg » Mon 21 Apr, 2014 08:42

тогда надо добавлять.

Smitis
Posts: 1467
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 14 times
Been thanked: 24 times
Contact:

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

Post by Smitis » Mon 21 Apr, 2014 08:53

Тогда, наверное, надо и макросы moon автоматически загружать
Разум когда-нибудь победит.

User avatar
zg
zero-gravity
Posts: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

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

Post by zg » Mon 21 Apr, 2014 09:23

про это и речь.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Mon 21 Apr, 2014 17:20

zg wrote:тогда надо добавлять.
Длл-ки добавил, продолжение следует (не сегодня).

fml2
Posts: 490
Joined: Mon 09 Jul, 2012 22:10
Has thanked: 1 time
Been thanked: 5 times

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

Post by fml2 » Mon 21 Apr, 2014 23:43

А почему это сразу засунуто в ядро, а не сделано как плагин (если такое возможно)? Просто тогда, наверное, надо и Far.Net делать частью Фара. Какова тут логика принятия решения?

User avatar
zg
zero-gravity
Posts: 5263
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 43 times
Contact:

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

Post by zg » Tue 22 Apr, 2014 00:05

fml2 wrote:А почему это сразу засунуто в ядро, а не сделано как плагин (если такое возможно)?
а вы первый пост совсем-совсем не читали, да?

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Tue 22 Apr, 2014 07:41

Shmuel wrote:Длл-ки добавил, продолжение следует (не сегодня).
А зависимости есть? В коде из первого сообщения упоминается lpeg, на оффсайте ещё несколько.

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Tue 22 Apr, 2014 07:56

Для макросов зависимость - только LPeg, и она встроена в moonscript.dll.

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Tue 22 Apr, 2014 08:35

Moonscript планируется загружать безусловно, или только при наличии *.moon?

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Tue 22 Apr, 2014 09:10

Второе - более правильно. Загрузка также может быть вызвана другими причинами (например, расширенным вариантом lm:post). Время покажет, насколько это будет востребовано.

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Tue 22 Apr, 2014 09:13

Может быть есть смысл сделать LPeg доступным независимо от moonscript? Раз уж он всё равно из коробки?

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Tue 22 Apr, 2014 09:16

Как раз сегодня думал об этом.
Но вот SQLite в коробке уже давно и до сих пор недоступна.

User avatar
John Doe
Бюрократ
Posts: 11240
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 14 times
Been thanked: 81 times

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

Post by John Doe » Tue 22 Apr, 2014 09:23

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

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

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Tue 22 Apr, 2014 09:26

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

Подводные камни будут, если сторонний LPeg будет < 0.10 или == 0.11.

Post Reply

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