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

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

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

Post by John Doe » Mon 16 Jul, 2012 13:44

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

Таким образом, в макросах сейчас доступны:
  • Стандартные функции и библиотеки Lua.
  • В фаре используется LuaJIT (обсуждение), что (в частности) даёт доступ к библиотеке FFI (обсуждение).
  • "Надстройка" над Lua: MoonScript (Подробности и обсуждение)
  • Функции API плагинов, посредством библиотеки LuaFAR (см. luafar_manual.chm)
  • Функции старого макроязыка (API макросов) (Обновление)
    Актуальный мануал, отражающий после перехода на Lua: macroapi_manual.ru.chm.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Wed 14 Nov, 2018 18:55

Latest post of the previous page:

SUSim wrote:
Wed 14 Nov, 2018 16:46
Не понял, а где тут аргумент не-строка?
Если PPanel.FilePanel==false, то значение 2-го аргумента = false (то есть булевая величина).

Denis
Posts: 1419
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 6 times
Been thanked: 2 times

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

Post by Denis » Sun 01 Sep, 2019 18:41

В свете последних изменений сломался https://github.com/trexinc/evil-programmers LuaEditorSettingsCore,
это попытка включить подсветку diff и промотать к концу файла:

Code: Select all

╔══════════════════════════════════════════════════ Error ══════════════════════════════════════════════════╗
║ C:\MyUsers\programs\Far\x64\Plugins\Standard\luamacro\LuaMacro.dll:                                       ║
║ ...s\Far\x64\Profile\Macros\scripts\editorsettingscore.moon:511: bad argument #1 to 'len' (string         ║
║ expected, got nil)                                                                                        ║
║ stack traceback:                                                                                          ║
║    [builtin:len]: in function 'len'                                                                       ║
║    ...s\Far\x64\Profile\Macros\scripts\editorsettingscore.moon:511: in function 'Highlite'                ║
║    ...s\Far\x64\Profile\Macros\scripts\editorsettingscore.moon:834: in function 'action'                  ║
║    ...ers\programs\Far\x64\Plugins\Standard\luamacro\utils.lua:210: in function <...ers\programs\Far\x64\ ║
║ Plugins\Standard\luamacro\utils.lua:183>                                                                  ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                                  { OK }                                                   ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Last edited by Denis on Sun 01 Sep, 2019 18:45, edited 1 time in total.

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Sun 01 Sep, 2019 18:51

С moonscript проблема - показывает ошибку на 511-й строке, а всего в файле 474 строки.
Полагаю, автор быстрее меня разберётся.

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

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

Post by John Doe » Mon 21 Oct, 2019 08:21

Code: Select all

shmuel 19.10.2019 18:22:32 +0200 - build 5490

1. Panel.Item(X,Idx,8) и Panel.Item(X,Idx,10) при невалидном Idx возвращали 0, теперь false.
https://api.farmanager.com/ru/macro/macrocmd/prop_func/panels.html wrote:

Code: Select all

8	Number	"Выделен?"
10	Number	SortGroup
8 - невалиндный Idx теперь не отличается от состояния "не выделен"
10 - тут аналогично, плюс ещё вопрос: физический смысл значения кто-то может объяснить?
(в документации number, а по факту boolean, но вероятно так надо)

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

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

Post by John Doe » Mon 21 Oct, 2019 08:51

Code: Select all

22	Var	Значение Custom-колонки
Всегда пустая строка, вероятно не адаптировано для текущего апи колонок.
Last edited by John Doe on Mon 21 Oct, 2019 08:55, edited 1 time in total.

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Mon 21 Oct, 2019 09:56

John Doe wrote:
Mon 21 Oct, 2019 08:21
8 - невалиндный Idx теперь не отличается от состояния "не выделен"
Это так, но это был недокументированный артефакт, поддерживать который только для свойства номер 8 (ибо для прочих свойств такой особенности нет) не имело смысла.
John Doe wrote:
Mon 21 Oct, 2019 08:21
10 - тут аналогично, плюс ещё вопрос: физический смысл значения кто-то может объяснить?
(в документации number, а по факту boolean, но вероятно так надо)
Уже снова number (билд 5493). То, что раньше было boolean - это моя давнишняя ошибка, вследствие невникания или спешки. Удивительно, что в течение 7 лет это никому не мешало.
John Doe wrote:
Mon 21 Oct, 2019 08:51
Код: Выделить всё

22 Var Значение Custom-колонки

Всегда пустая строка, вероятно не адаптировано для текущего апи колонок.
Это на мантис. Сейчас нет времени разбираться.
Last edited by Shmuel on Mon 21 Oct, 2019 10:06, edited 1 time in total.

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

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

Post by John Doe » Mon 21 Oct, 2019 10:07

Shmuel wrote:
Mon 21 Oct, 2019 09:56
Это так, но это был недокументированный артефакт, поддерживать который только для свойства номер 8 (ибо для прочих свойств такой особенности нет) не имело смысла.
Т.е. это исправлять не планируется? (Например nil возвращать вместо false)
Shmuel wrote:
Mon 21 Oct, 2019 09:56
Уже снова number
А что это за значение? Номер группы?
Shmuel wrote:
Mon 21 Oct, 2019 09:56
Это на мантис. Сейчас нет времени разбираться.
https://bugs.farmanager.com/view.php?id=3746

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

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

Post by John Doe » Mon 21 Oct, 2019 10:11

mf.serialize wrote:

Code: Select all

	При сохранении таблиц будут сохраняться:
	- ключи типов: `number`, `string`, `boolean`, `table`
	- значения типов: `number`, `string`, `boolean`, `table`, `int64`
Неподдерживаемые ключи/значения игнорируются.
Имхо в большинстве случаев было бы правильнее падать с ошибкой.
И для тех гипотетических случаев, когда действительно допустимо молча игнорировать - можно добавить флажок к аргументам.

Edit:
msave - аналогично.

И мне кажется допустимо несколько упростить документацию, если в статьях msave/mload вместо подробного описания сослаться на serialize/deserialize

https://bugs.farmanager.com/view.php?id=3747
Last edited by John Doe on Mon 21 Oct, 2019 10:17, edited 2 times in total.

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Mon 21 Oct, 2019 10:17

John Doe wrote:
Mon 21 Oct, 2019 10:07
Т.е. это исправлять не планируется? (Например nil возвращать вместо false)
Невалидный Idx (и другие невалидные ситуации) могут быть для всех значений 3-го параметра. Какой смысл вводить эту фичу только для свойства 8 ?
И кроме того, "политика" такова, что развитием макро-API я не занимаюсь, а только исправлением багов. Хотя из этого правила могут быть исключения.
John Doe wrote:
Mon 21 Oct, 2019 10:11
mf.serialize писал(а):
Мантис.

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Mon 21 Oct, 2019 10:22

John Doe wrote:
Mon 21 Oct, 2019 10:07
А что это за значение? Номер группы?
Это надо у Валентина спрашивать. Я поигрался, там могут быть значения 0,1...,10000,10001 - похоже, что выделено несколько диапазонов. Вы тоже можете поиграться.

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

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

Post by John Doe » Mon 21 Oct, 2019 10:23

Shmuel wrote:
Mon 21 Oct, 2019 10:17
Невалидный Idx (и другие невалидные ситуации) могут быть для всех значений 3-го параметра. Какой смысл вводить эту фичу только для свойства 8 ?
Необязательно только для 8.
Можно в таких случах возвращать nil для всех.

https://bugs.farmanager.com/view.php?id=3748
Last edited by John Doe on Mon 21 Oct, 2019 10:55, edited 1 time in total.

Shmuel
Posts: 5897
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 218 times

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

Post by Shmuel » Mon 21 Oct, 2019 10:25

John Doe wrote:
Mon 21 Oct, 2019 10:23
Необязательно только для 8.
Можно в таких случах возвращать nil для всех.
Вы правы, для этого есть Мантис.

Post Reply

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