zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
после перехода на Lua: macroapi_manual.ru.chm.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
Ребят! так нельзя принимать решения!
Я даже, не успел спросить зачем mf, и почему именно "mf"
Да и вообще, получается:
- Эксковатор ЕСТЬ - РОЕМ!!!
- Блин, одни рытвины получились.
- Ау, добровольцы есть - заровняйте, пожалуйста.
Re: Spring — внедрение Lua в качестве макроязыка
Posted: Mon 01 Oct, 2012 20:55
by Shmuel
SUSim wrote:Ребят! так нельзя принимать решения!
Я даже, не успел спросить зачем mf, и почему именно "mf"
Да и вообще, получается:
- Эксковатор ЕСТЬ - РОЕМ!!!
- Блин, одни рытвины получились.
- Ау, добровольцы есть - заровняйте, пожалуйста.
mf = "macrofunctions"
Вариантов сделать этот API есть бесчисленное множество, и тот, что выбран - не самый худший. А если устроить публичное обсуждение, навряд ли придём к консенсусу. Тем не менее, покуда ещё слом всего не закончен (до конца месяца?), можно и это ломать, наверное. Открывайте отдельную тему, и пусть все желающие высказываются.
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 19:25
by SUSim
Насчет Keys:
как-то нелогично,на мой взгляд, то нужен eval, то Keys - объединить бы их...
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 19:36
by Shmuel
SUSim wrote:Насчет Keys:
как-то нелогично,на мой взгляд, то нужен eval, то Keys - объединить бы их...
Это совершенно разные вещи, зачем их объединять?
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 20:04
by SUSim
Почему совершенно разные?
Раньше eval("F1") вызывал помощь, а теперь Keys("F1") делает тоже самое!
eval как-то привычнее, может его разломать=апгрейдить?... пока всё и так ломается...
и всё таки почему некоторы функции в mf., а некоторые напрямую? (тот же print а не mf.print) в чём логика?
кажется не в той теме обсуждение я завёл...
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 20:16
by Shmuel
SUSim wrote:Почему совершенно разные?
Раньше eval("F1") вызывал помощь, а теперь Keys("F1") делает тоже самое!
eval как-то привычнее, может его разломать=апгрейдить?... пока всё и так ломается...
То, что было раньше, теперь неважно. eval и Keys не имеют ничего общего. Ломать eval потому, что когда-то раньше он был единственным способом послать клавишу из переменной, а теперь этого уже не надо, поскольку есть специальная ф-ция Keys, было бы весьма странно.
SUSim wrote:и всё таки почему некоторы функции в mf., а некоторые напрямую? (тот же print а не mf.print) в чём логика?
Глобальными ф-циями сделаны наиболее часто употребительные (на мой субъективный взгляд). Делать все функции глобальными = засорять глобальное пространство.
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 20:46
by SUSim
по п.1
eval("Keys(\"F1\")") криво не находите? - подумаю ещё как логичнее (в принципе, меня и так как есть устраивает, я почти все свои макросы перепилил под lua, вот только куда их выкладывать? сюда или в тему макросы???)
по п.2
очень субъективно получилось, приходится задумываться писать, например, msgbox() или mf.msgbox()
может всё сделать, или mf.zzz, или просто zzz (глобальных функций не так уж и много), а еще можно и глобальные функции разделить:
типа user.msgbox, user.prompt, string.len и т.п.
Ламерский вопрос: а можно ли както предобявить библиотеку - чтобы не писать каждый раз имя таблицы,
чтобы math.sin(math.pi) выглядело как sin(Pi) и т.п.
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 20:56
by Shmuel
SUSim wrote:по п.1
eval("Keys(\"F1\")") криво не находите? - подумаю ещё как логичнее (в принципе, меня и так как есть устраивает, я почти все свои макросы перепилил под lua, вот только куда их выкладывать? сюда или в тему макросы???)
Зачем eval("Keys(\"F1\")"), почему не просто Keys("F1") ? Может я чего-то не понимаю?
SUSim wrote:по п.2
очень субъективно получилось, приходится задумываться написать, например, msgbox() или mf.msgbox()
может всё сделать, или mf.zzz, или просто zzz (глобальных функций не так уж и много), а еще можно и глобальные функции разделить:
типа user.msgbox, user prompt, string.len и т.п.
Глобальных величин уже полным-полно:
1. Lua API
2. LuaFAR API
3. Macro API
А задумываться - да, придётся, нынешняя система куда шире предыдущей. Можно и в справку поглядывать.
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 21:42
by DrKnS
Shmuel wrote:
SUSim wrote:и всё таки почему некоторы функции в mf., а некоторые напрямую? (тот же print а не mf.print) в чём логика?
Глобальными ф-циями сделаны наиболее часто употребительные (на мой субъективный взгляд). Делать все функции глобальными = засорять глобальное пространство.
Для единообразия лучше все функции сделать доступными через mf., а для наиболее часто встречающихся завести алиасы в глобальном пространстве.
Манипуляции пространствами в стиле "using namespace mf;" или "using mf::print;" в lua есть?
Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.
Posted: Thu 04 Oct, 2012 21:55
by Shmuel
DrKnS wrote:Для единообразия лучше все функции сделать доступными через mf., а для наиболее часто встречающихся завести алиасы в глобальном пространстве.
Это хорошая идея.
DrKnS wrote:Манипуляции пространствами в стиле "using namespace mf;" или "using mf::print;" в lua есть?
Есть, но делается через метатаблицы - не стоит на данном этапе, это не для начинающих, сначала пусть люди освоят более простые вещи.
P.S.
"using mf::print;" делается так (в верхней части скрипта, т.е. до первого использования):
s="";
for k,v in pairs(Editor) do
s=s..k.."\n";
end;
в s у меня попадают только фунуции, а что Свойства полями не являются? или я что-то не так делаю? (pairs(_G) есть и свойства и функции и библиотеки-таблицы)