Page 2 of 4

Макросы на MoonScript

Posted: Sun 20 Apr, 2014 23:49
by John Doe
Начиная с билда 3878 Far 3 поддерживает в макросах MoonScript — язык программирования, транслируемый в Lua.
Это позволяет писать более компактный и хорошо читаемый код (то же самое для JavaScript делает CoffeeScript).

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

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

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

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

Posted: Tue 22 Apr, 2014 09:26
by Shmuel

Latest post of the previous page:

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

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

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

Posted: Tue 22 Apr, 2014 09:32
by John Doe
Shmuel wrote:Подводные камни будут, если сторонний LPeg будет < 0.10 или == 0.11.
Как я понимаю, если попытаться грузить LPeg после moonscript то просто ничего не произойдёт: загрузчик вернёт таблицу ранее загруженного модуля.
А если наоборот, грузить moonscript после LPeg?
Невозможно принудительно заставить Moonscript использовать свой "внутренний" LPeg?

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

Posted: Tue 22 Apr, 2014 09:36
by Shmuel
John Doe wrote:Невозможно принудительно заставить Moonscript использовать свой "внутренний" LPeg?
Всё возможно. Только это на данном начальном этапе не самые актуальные вопросы.
Лучше сделать LPeg отдельно, да. Мне только не очень нравится всё ложить в %farhome%.

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

Posted: Tue 22 Apr, 2014 09:49
by fml2
zg wrote:а вы первый пост совсем-совсем не читали, да?
Прочитал, но неправильно понял.

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

Posted: Tue 22 Apr, 2014 11:49
by zg
John Doe wrote:А вот LPeg уже доступен, но только после команды require"moonscript".
Если мне (например) понадобился только LPeg, то в нагрузку я получу и moonscript, что не очень естественно.
какие реально это вызывает проблемы?
И что если я хочу подключить сторонний модуль LPeg: есть ли подводные камни (знаю что 0.10 и 0.12 несовместимы)?
0.10 совместима со всеми предыдущими версиями и вроде нет никаких причин использовать что-то раннее. 0.11 несовместима с 0.10. по этой причине 0.12 переименована в lpeg2 и может использоваться совместно с 0.10.

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

Posted: Tue 22 Apr, 2014 11:59
by John Doe
zg wrote:
John Doe wrote:Если мне (например) понадобился только LPeg, то в нагрузку я получу и moonscript, что не очень естественно.
какие реально это вызывает проблемы?
Если в скрипте требуется LPeg, то естественно писать require"lpeg", а не require"moonscript".
Других проблем нет.

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

Posted: Tue 22 Apr, 2014 12:12
by Wave
А можно в двух словах для тех кто не в теме, что этот мунскрипт может такого? В смысле, чем он принципиально мощнее луа, например?
P.s. бёглым взглядом, правда, вижу объектную ориентированность… Размышляю, так ли она нужна в макросах?

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

Posted: Tue 22 Apr, 2014 12:47
by zg
John Doe wrote:
zg wrote:какие реально это вызывает проблемы?
Если в скрипте требуется LPeg, то естественно писать require"lpeg", а не require"moonscript".
Других проблем нет.
вот поэтому не надо извращаться и грузить всё сразу при старте. у меня require"moonscript" выполняется за 8-9 мс. и что-то сомнительно мне, что со всякими проверками, разделением и т.д. оно в среднем станет заметно быстрее. при этом менее удобнее.
Wave wrote:А можно в двух словах для тех кто не в теме, что этот мунскрипт может такого? В смысле, чем он принципиально мощнее луа, например?
аналог coffeescript для lua.
Wave wrote:P.s. бёглым взглядом, правда, вижу объектную ориентированность… Размышляю, так ли она нужна в макросах?
кому-то нужна. плюс поддержка добавляется практически бесплатно. т.е. все биндинги к фар апи работают сразу, строки сразу нормальные, всё выполняется в той же вм, глобальные переменные доступны друг другу. почему бы нахаляву не иметь два языка вместо одного?

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

Posted: Tue 22 Apr, 2014 23:31
by Shmuel
Поддержка MoonScript уже есть "из коробки", то-есть не нужен дополнительный загрузчик, и можно сразу писать макросы и события на MoonScript в файлах *.moon.

Пока сделал загрузку MoonScript безусловной, дальше посмотрим.

Где брать moonscript.chm?

Posted: Sun 27 Apr, 2014 09:21
by gotar
Не нашел moonscript.chm

Re: Где брать moonscript.chm?

Posted: Sun 27 Apr, 2014 12:44
by Shmuel
Я тоже не нашёл. Но можно читать на сайте.

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

Posted: Mon 28 Apr, 2014 09:25
by John Doe
Сделал шапку, исправьте если что не так.

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

Posted: Mon 28 Apr, 2014 09:35
by Shmuel
В предпоследнем предложении "из" лишнее.

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

Posted: Mon 28 Apr, 2014 16:04
by SUSim
Хелп offfline нужен обязательно! Пусть, хоть на первых порах, будут перекомпилированные в CHM ссылки из заголовка!

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

Posted: Mon 28 Apr, 2014 16:12
by John Doe
Интересно а что вы предполагаете на вторых порах :-)
А так - кому нужен скачивает по ссылкам. Как и мануал Lua, кстати.
Если кто соберётся в CHM скомпилировать - милости просим, выложим в шапке.

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

Posted: Mon 28 Apr, 2014 16:24
by SUSim
По ссылке то я скачал... но htm неудобно...и хочется нормальный индекс и поиск. (я думаю для знающих это очень просто сделать)
А, вовторых я попросил бы русский :whistle:

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

Posted: Sun 11 May, 2014 00:12
by zg
вот такой макрос вызывает ошибку в фаре:

Code: Select all

C:\Program Files\far\Plugins\luamacro\moonscript.lua:677: too many pending calls/choices
официальный moon.exe выполняет без проблем.
update: lpeg.dll с luapower тоже не имеет вышеуказанной проблемы.