Макросы на MoonScript

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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/
User avatar
cmd.exe
Posts: 378
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 181 times
Been thanked: 10 times
Contact:

Макросы на MoonScript

Post by cmd.exe »

Latest post of the previous page:

В дальнейшем в данной теме будет документация на использование Moon Script в far manager? В Энциклопедия фара очень скудное упоминание про Moon Script.
Macroapi_manual только упоминание о том что функция может использоваться и Moon Script то-же.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Макросы на MoonScript

Post by Shmuel »

cmd.exe wrote: В дальнейшем в данной теме будет документация на использование Moon Script в far manager?
Документация в теме быть не должна, в теме может быть обсуждение, примеры и т.п.

Мне до сих пор казалось, что в имеющейся документации есть всё необходимое по использованию MoonScript. Если вы полагаете, что чего-то не хватает, укажите конкретно.

Если кратко, то MoonScript в Фаре может использоваться везде, где используется Lua: в макрофайлах (расширение .moon), с комстроки (префиксы moon: и moons:) и в FAR API (флаг KMFLAGS_MOONSCRIPT). Всё это описано в документации.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Макросы на MoonScript

Post by John Doe »

Можно в moonscript разместить в одной строке последовательный вызов функций?
В lua всё просто print"a"; print"b", а перевести такое в moonscript не получается
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

функции можно и через запятую.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Макросы на MoonScript

Post by John Doe »

Yuescript is a Moonscript dialect.
https://github.com/pigpigyyy/Yuescript wrote: ...
- Support most of the features from Moonscript language. Generate Lua codes in the same way like the original compiler.
- Reserve line numbers from source file in the compiled Lua codes to help debugging.
- More features like macro, existential operator, pipe operator, Javascript-like export syntax and etc.
https://github.com/pigpigyyy/Yuescript/ ... ANGELOG.md
https://t.me/FarManager — Telegram чат
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

John Doe wrote: Sat 26 Jun, 2021 17:26 Yuescript is a Moonscript dialect.
выглядит интересно. как всегда проблемы с бом. загружалка yue макросов на moonscripte:

Code: Select all

F=far.Flags
yue=require"yue"
LoadOneFile=(FindData,FullPath)->
  process=(f,...)->
    res,msg=f ...
    far.Message msg,"YueMacro",nil,"wl" if not res
    res
  text=process yue.read_file,FullPath
  return if not text
  text=string.sub(text,4) if string.sub(text,1,3)=="\239\187\191"
  f=process yue.loadstring,text
  return if not f
  env=getfenv!
  setfenv f,env
  ok=process pcall,f,FullPath
  env.Macro,env.Event,env.NoMacro,env.NoEvent=nil,nil,nil,nil if ok
far.RecursiveSearch (win.GetEnv"farprofile").."\\Macros\\scripts","*.yue",LoadOneFile,(bit64.bor F.FRS_RECUR,F.FRS_SCANSYMLINK)
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

пул-реквест с поддержкой бом добавили, прямо захотелось в фар добавить.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Макросы на MoonScript

Post by HaRT »

zg wrote: Fri 06 Jan, 2023 17:55 teal, a typed dialect of lua.
На нём уже возможно писать скрипты для Фара (как?) или это приглашение к обсуждению?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

он по той же схеме устроен, что moonscript и yuescript, добавить загрузку несложно, примеры в этой теме есть. но я в нём какой-то пользы не увидел в случае фара, но возможно я не прав, поэтому поделился.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Макросы на MoonScript

Post by buniak_a_h »

zg wrote: Fri 06 Jan, 2023 22:49 он по той же схеме устроен, что <…> yuescript, добавить загрузку несложно, примеры в этой теме есть
Очень заинтересовал yuescript. Не такой радикальный, как moonscript, но включает вещи, обидно отсутствующие в lua (piping, Nil Coalescing). Если не сложно, дайте ссылку, как его к ФАРу подключить. Извините… Зрение катастрофически падает :-(
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

buniak_a_h wrote: Sat 07 Jan, 2023 01:53 Не такой радикальный, как moonscript
простите, что? он полностью основан на moonscript'е и большинство кода на moonscript'е является кодом на yuescript. и хотелось бы узнать, в чём радикальность moonscript'а?
buniak_a_h wrote: Sat 07 Jan, 2023 01:53 дайте ссылку, как его к ФАРу подключить
вся тема про это. особенно второе сообщение на первой странице и пятое на пятой.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Макросы на MoonScript

Post by buniak_a_h »

zg wrote: Sat 07 Jan, 2023 09:04 в чём радикальность moonscript'а?
  1. Синтаксис основан не на символах (скобках, запятых и т.п.), а на отступах, на которые многие (не очень "умные" программисты) вообще забивают!
  2. Аргументы не заключены в скобки (непривычно для писателей от фортрана до нынешних); описание функции после => с отступом.
Возможно, я не до конца изучил moonscript, но мне так показалось.
И возможно я не те примеры на yuescript смотрел (на сайте https://yuescript.org/doc/), но там, вроде, привычная структура текста (кроме, возможно, задания табличной константы)
Last edited by buniak_a_h on Sat 07 Jan, 2023 11:31, edited 1 time in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Макросы на MoonScript

Post by citRiks »

buniak_a_h, мне кажется что МунСкрипт это подражание модному питону.
Мне тоже не нравятся пробелы как элементы синтаксиса, но возможно в этом есть то преимущество что вынуждает людей писать в определенном общем формате который будет всеми читаться одинаково и поэтому всем понятен. Мне сложно читать код в разных привычках форматирования, хочется все переформатировать
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Макросы на MoonScript

Post by HaRT »

zg wrote: Fri 06 Jan, 2023 22:49 я в нём какой-то пользы не увидел в случае фара
Если бы прикручивание Teal к Фару позволило производить статический анализ типов в его скриптах (а также частично в скриптах на Луа), это само по себе было бы уже полезно для их разработки. Но оправданно это будет только при наличии раскраски синтаксиса и полноценной работе LuaCheck.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Макросы на MoonScript

Post by zg »

HaRT wrote: Sun 08 Jan, 2023 19:09Если бы прикручивание Teal к Фару позволило производить статический анализ типов в его скриптах (а также частично в скриптах на Луа), это само по себе было бы уже полезно для их разработки. Но оправданно это будет только при наличии раскраски синтаксиса и полноценной работе LuaCheck.
не очень понимаю, о чём вы.
Post Reply

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