Yue-/MoonScript ➜ Lua

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

По F6 открывает редактор с кодом, транслированным в Lua, позиционируясь на строке, соответствующей исходной.
При наличии выделения работает именно с ним.

Полезно при написании макросов на Yue-/MoonScript, если что-то работает не так как ожидалось.



Также в теме обсуждается Исправление номеров строк в сообщениях об ошибках на соответствующие MoonScript-файлам.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

Исправление номеров строк в сообщениях об ошибках на соответствующие MoonScript-файлам.
Подменяет debug.traceback.



https://gist.github.com/johnd0e/9ee42fa ... e/main.zip

Скрипт начинает действовать только после перезапуска Фара, простой перезагрузки макросов недостаточно!
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Thu 22 May, 2025 21:08 Исправление номеров строк в сообщениях об ошибках на соответствующие MoonScript-файлам.
Где ожидать влияние этого исправления? Только в предшествующем скрипте?
Просто я взял первый попавшийся под руку .moon-файл для Фара, в последнюю строку (№120) написал NoSuchFunction! и перезагрузил макросы. Я надеялся, что исправление повлияет на номера строк в сообщении об ошибке, но получил . Или тут дело может быть в неопределённом порядке загрузки исправляющего и подопытного скриптов? И если так, то как исправить?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

HaRT wrote: Thu 22 May, 2025 22:20 Где ожидать влияние этого исправления? Только в предшествующем скрипте?
Везде (а предыдущий скрипт от этого вообще не зависит).

Если где-то не будет срабатывать, то буду дальше ковырять.
(У меня тоже выскакивали пару раз сообщения с нескорректированными строками, но пока не понял как воспроизвести)
HaRT wrote: Thu 22 May, 2025 22:20 Или тут дело может быть в неопределённом порядке загрузки исправляющего и подопытного скриптов? И если так, то как исправить?
В вашем случае да, но вообще порядок не имеет большого значения, главное что итоге скрипт загрузится и начнёт действовать.
Ошибки ведь обычно проявляются не при загрузке макросов, а уже в работе.
Но чтобы покрыть и эти случаи, можно поместить код в _macroinit.lua.

Я лично этого не делал, а завёл для подобных скриптов директорию -init-, рассчитывая на алфавитный порядок загрузки.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Thu 22 May, 2025 23:19 чтобы покрыть и эти случаи, можно поместить код в _macroinit.lua.

Я лично этого не делал, а завёл для подобных скриптов директорию -init-, рассчитывая на алфавитный порядок загрузки.
Увы, не сработало ни то, ни другое, ни переименование файла со скриптом в !fix_reverse_moonscript_lines.lua. :(
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

Забыл упомянуть: после установки скрипта надо или фар перезапустить или первую строку закомментировать.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Thu 22 May, 2025 23:19 Ошибки ведь обычно проявляются не при загрузке макросов, а уже в работе.
Увы, не вижу эффекта и «в работе»:
0. Положил файл fix_reverse_moonscript_lines.lua к скриптам.
1. В .moon-файл со строки 120 написал такой .
2. Перезагрузил скрипты.
3. Перешёл в редактор, нажал RCtrlRAlt/ — получил .

Не требуется ли скрипту какой-то специальный модуль или какая-то особо новая версия Фара? (У меня 3.0.6447.0 x86)
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Thu 22 May, 2025 23:42 Забыл упомянуть: после установки скрипта надо или фар перезапустить или первую строку закомментировать.
Перезапустил Фар, вызвал тот макрос — результат .
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

Ваш результат повторяется и у меня, это потому что traceback пустой.
(Надо разбираться почему)

Но зато если в этом же файле спровоцировать ошибку при загрузке, то вот:

Code: Select all

╔═══════════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════════╗
║ moon: C:\Apps\Far3\Profile\Macros\scripts\1.moon:7: (9) attempt to call global 'NoSuchFunction' (a nil value)   ║
║ stack traceback:                                                                                                ║
║    C:\Apps\Far3\Profile\Macros\scripts\1.moon:7: (9) in main chunk                                              ║
║    [C]: in function 'xpcall'                                                                                    ║
║    C:\Apps\Far3\Plugins\LuaMacro\utils.lua:795: in function <C:\Apps\Far3\Plugins\LuaMacro\utils.lua:772>       ║
║    [C]: in function 'RecursiveSearch'                                                                           ║
║    C:\Apps\Far3\Plugins\LuaMacro\utils.lua:864: in function <C:\Apps\Far3\Plugins\LuaMacro\utils.lua:692>       ║
║    [C]: in function 'MacroLoadAll'                                                                              ║
║    C:\Apps\Far3\Plugins\LuaMacro\LuaMacro.lua:349: in function 'Open_CommandLine'                               ║
║    C:\Apps\Far3\Plugins\LuaMacro\LuaMacro.lua:456: in function <C:\Apps\Far3\Plugins\LuaMacro\LuaMacro.lua:448> ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                                 { OK } [ Edit ]                                                 ║
╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Fri 23 May, 2025 00:03 если в этом же файле спровоцировать ошибку при загрузке, то вот
Спасибо, теперь и у меня работает! Вероятно, ключевую роль сыграл перезапуск Фара.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

John Doe wrote: Fri 23 May, 2025 00:03 (Надо разбираться почему)
Разобрался.
HaRT wrote: Thu 22 May, 2025 23:46
  1. Перешёл в редактор, нажал RCtrlRAlt/
Исправил и этот случай.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Fri 23 May, 2025 00:50 Исправил и этот случай
Спасибо
John Doe wrote: Fri 23 May, 2025 00:03 если в этом же файле спровоцировать ошибку при загрузке, то вот
К сожалению, при наличии обсуждаемого скрипта перестала работать кнопка Edit в этом диалоге — выдаёт . Если скрипт удалить, то срабатывает ожидаемо.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

HaRT wrote: Fri 23 May, 2025 01:12 К сожалению, при наличии обсуждаемого скрипта перестала работать кнопка Edit в этом диалоге
Это уже потом в Фаре скорректируем, если не найдём принципиальных проблем с текущим подходом.
https://github.com/FarGroup/FarManager/pull/959

P.S.
Я там скрипт ещё изменил, чтобы он корректировал и номера строк в частях где " in function <C:\A..." (см выше пример)
Last edited by John Doe on Tue 27 May, 2025 14:27, edited 1 time in total.
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

Yue-/MoonScript ➜ Lua

Post by HaRT »

John Doe wrote: Fri 23 May, 2025 02:08 потом в Фаре скорректируем
Ну а пока я у себя отключил подклеивание префикса moon: , который ломал открытие файла. Жаль только, что теперь файл открывается на неправильной строке (в моём тесте 85 вместо 120). Похоже, происходит повторное преобразование номера «из Lua в MoonScript».
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

Yue-/MoonScript ➜ Lua

Post by John Doe »

Сделал ещё пару исправлений
https://t.me/FarManager — Telegram чат
Post Reply

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