LuaMacro — Lua как язык макросов

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

LuaMacro — Lua как язык макросов

Post by John Doe »

Проект Spring (обсуждение) влился в стабильную версию Far Manager 3.0.

Таким образом, в макросах сейчас доступны:
  • Стандартные функции и библиотеки Lua.
  • В фаре используется LuaJIT (обсуждение), что (в частности) даёт доступ к библиотеке FFI (обсуждение), и некоторые другие расширения.
  • "Надстройка" над Lua: MoonScript (Подробности и обсуждение)
  • Функции API плагинов, посредством библиотеки LuaFAR (см. luafar_manual.chm)
  • Функции старого макроязыка (API макросов) (Обновление)
    Актуальный мануал, отражающий после перехода на Lua: macroapi_manual.ru.chm.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Latest post of the previous page:

У вас тут конечно высокие материи :), но у меня вопрос по текущему состоянию.
в хелпе сказано:

Code: Select all

Editor - таблица со следующими полями:
Свойства:
  CurLine:   number
  ...
Функции:
  DelLine
  ...
так вот при

Code: Select all

s=""; 
for k,v in pairs(Editor) do 
  s=s..k.."\n"; 
end;
в s у меня попадают только фунуции, а что Свойства полями не являются? или я что-то не так делаю? (pairs(_G) есть и свойства и функции и библиотеки-таблицы)
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:в s у меня попадают только фунуции, а что Свойства полями не являются? или я что-то не так делаю? (pairs(_G) есть и свойства и функции и библиотеки-таблицы)
Ты всё делаешь так, просто эти свойства сделаны сейчас недоступны для получения. Надо будет сделать доступными.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Этот вопрос я задавал в связи с плохим знанием языка луа, точнее логику то я понял, но с плохой памятью на свойства и функции, в том числе и пресловутый регистр и состав модулей делаю макрос "Cписок завершения для LuaMacros"
Уже можно пользоваться, но доделать - а скорее переделать придётся:
Обновил
свои первые пробы я выложил в http://forum.farmanager.com/viewtopic.php?f=15&t=7075 пока правда не в первом посте, так как по мере понимания возможностей языка происходит не просто адоптация а парой полное переписывание макроса (я не из тех - "работает не трожь" :) )
Last edited by SUSim on Thu 11 Oct, 2012 18:42, edited 1 time in total.
SimSU ··· ·· -- ··· ··-
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

SUSim wrote:Этот вопрос я задавал в связи с плохим знанием языка луа, точнее логику то я понял, но с плохой памятью на свойства и функции, в том числе и пресловутый регистр и состав модулей делаю макрос "Cписок завершения для LuaMacros" ...
Рекомендации по коду "Cписок завершения для LuaMacros" отправил в лс.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:в s у меня попадают только фунуции, а что Свойства полями не являются? или я что-то не так делаю? (pairs(_G) есть и свойства и функции и библиотеки-таблицы)
Свойства сделаны доступными (начиная с ближайшей ночной сборки).
Пример использования:

Code: Select all

for k,v in pairs(Editor) do .... end            -- итерация по функциям таблицы Editor
for k,v in pairs(Editor.properties) do .... end -- итерация по "свойствам" таблицы Editor
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Shmuel wrote:

Code: Select all

for k,v in pairs(Editor) do .... end            -- итерация по функциям таблицы Editor
for k,v in pairs(Editor.properties) do .... end -- итерация по "свойствам" таблицы Editor
А зачем отделять=усложнять, в этом есть какой-то смысл? Луа то сома не делит.
При итерации pairs(Editor) не получу ли я в k кроме имен функций еще и properties?
Тип этого поля "table"?
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:А зачем отделять=усложнять, в этом есть какой-то смысл? Луа то сома не делит.
При итерации pairs(Editor) не получу ли я в k кроме имен функций еще и properties?
Тип этого поля "table"?
1. Ничего специально не отделялось, функции и свойства реально находятся в разных таблицах, иначе сделать невозможно.
2. Не получишь.
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Shmuel
1) понял (я lua только осваиваю, и у меня вызвало недоумение - например, Editor.Value работает, а в списке полей таблицы Editor поля Value нет).
2) хорошо, буду обрабатывать кроме Editor[] еще и Editor.properties[]

ALL
а почему никто из знатоков lua не сделал макрос типа предложенного мной&

Может можно как нибудь глобальную область ЕЩЁ разграничить?
Чтобы переменные, константы не светились в _G, и получить возможность отключить глобальные алиасы на mf.
Идея - ВСЕ фаровские функции лежат в mf. мне нравится - набирай mf.ОбщаяФункцияФАР не ошибешься.
А то список _G всё равно большой...
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:1) понял (я lua только осваиваю, и у меня вызвало недоумение - например, Editor.Value работает, а в списке полей таблицы Editor поля Value нет).
Не всё сразу. В Lua есть так называемые метатаблицы, они позволяют делать разные интересные вещи.
а почему никто из знатоков lua не сделал макрос типа предложенного мной&
Aidar давным-давно сделал утилиту наподобие этой для плагина LuaFAR for Editor, правда она немного другого плана.
Может можно как нибудь глобальную область ЕЩЁ разграничить?
Чтобы переменные, константы не светились в _G, и получить возможность отключить глобальные алиасы на mf.
Идея - ВСЕ фаровские функции лежат в mf. мне нравится - набирай mf.ОбщаяФункцияФАР не ошибешься.
А то список _G всё равно большой...
Все глобальные функции макро-API уже продублированы в таблице mf. Но если мы начнём сейчас обсуждать эту тему, мы из неё не вылезем, поэтому пусть уже будет как есть.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

SUSim wrote:раздел про обсуждение самого языка lua нужен!
Заведите тему в разделе про макросы.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Post by HaRT »

Aidar wrote:Предлагаю создать тему "Язык Lua и библиотека LuaFAR" здесь и перенести туда следующие сообщения (отбирал, начиная с 9-й страницы)
А почему именно в разделе «Обсуждение Far Manager», а не, скажем, «Обсуждение плагинов»?
Aidar wrote:Остальные сообщения лучше перенести в отдельную тему сюда.
В целом я за, непонятно только слово “остальные”.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re:

Post by Aidar »

HaRT wrote:А почему именно в разделе «Обсуждение Far Manager», а не, скажем, «Обсуждение плагинов»?
LuaFAR - библиотека + теперь часть FAR Manager. С luamacro определиться сложнее, но лучше тоже его считать частью FAR. «Обсуждение плагинов» подходит для плагинов на LuaFAR: LuaFAR for Editor и т.д.
HaRT wrote:
Aidar wrote:Остальные сообщения лучше перенести в отдельную тему сюда.
В целом я за, непонятно только слово “остальные”.
Остальные сообщения связаны (большей частью) с макросами на Lua.
Хотя некоторые сообщения были бы интересны в теме по языку Lua (например, ссылки на материалы по Lua).
Посмотрел тему с 1-й страницы - наверное, можно саму тему переименовать и переместить в "Обсуждение макросов".
User avatar
SUSim
Posts: 1636
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Shmuel wrote:Если пользоваться двоеточием вместо точки - будут использоваться функции из unicode.utf8.
Спасибо, и за пропертис тоже:). вот макрос облегчающий написание макросов в Lua формате:обновил Не знаете как писать на Lua - жмите ШифтПробел :hacking: :)

всё остальное что я наваял :) на данный момент здесь
Last edited by SUSim on Fri 12 Oct, 2012 18:37, edited 1 time in total.
SimSU ··· ·· -- ··· ··-
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by gotar »

Посмотрел я на макрос
А что в lua нет стандартных функций проверки является ли символ алфавиноцифровым? Или получения i-того символа строки?
Начало и конец слова над курсором ищется как-то уж совсем в рукопашную. Неужели для этого нет стандартных средств?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

gotar wrote:Посмотрел я на макрос
А что в lua нет стандартных функций проверки является ли символ алфавиноцифровым? Или получения i-того символа строки?
Начало и конец слова над курсором ищется как-то уж совсем в рукопашную. Неужели для этого нет стандартных средств?
Не забывайте о том, что автор макроса только начинает программировать на Lua.
Если вы знаете, как улучшить его макрос, подавайте конкретные предложения.
Post Reply

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