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.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
Например, KeyName does not match 'ConfigArea.SettingName'. Лично меня вообще сбило с толку то, что ошибка как бы происходит внутри ф-ии error(), но это, как я понимаю, мы вряд ли исправим.
LuaMacro — Lua как язык макросов
Posted: Wed 09 Aug, 2017 22:24
by Shmuel
HaRT, я не уверен, что ваша формулировка лучше (это субъективно, да). Так что пока остаётся как есть.
LuaMacro — Lua как язык макросов
Posted: Wed 09 Aug, 2017 22:31
by HaRT
Shmuel wrote: ↑Wed 09 Aug, 2017 22:24я не уверен, что ваша формулировка лучше (это субъективно, да)
Согласны ли Вы с тем, что формулировка, которая явно указывает ожидаемый формат, полезнее, чем та, которая только заявляет несоответствие (но не говорит, что нарушено)? Это как „Вы нарушили Правила Дорожного Движения!“ и „Вы нарушили пункт такой-то статьи такой-то ПДД.“
А ещё на самом деле неплохо бы указать, какая именно строка не соответствует ожидаемому формату, — чтобы читатель сразу понял, что эта ошибка имеет прямое отношение к написанному им коду.
LuaMacro — Lua как язык макросов
Posted: Wed 09 Aug, 2017 22:37
by Shmuel
Ну что ж, мысли здравые высказываете.
Если вам это не безразлично, заведите тикет на мантисе (я серьёзно).
После этого не гаснет индикатор работы макроса в левом верхнем углу.
LuaMacro — Lua как язык макросов
Posted: Sun 27 Aug, 2017 10:01
by Shmuel
John Doe wrote: ↑Sun 27 Aug, 2017 09:18После этого не гаснет индикатор работы макроса в левом верхнем углу.
Эта неисправность более серьёзна, чем просто индикатор. Надо разбираться.
Update: исправлено в LuaMacro, build 616.
LuaMacro — Lua как язык макросов
Posted: Wed 06 Sep, 2017 21:22
by SUSim
А зачем в макросах кроме поля ib народ добавляет/использует uid или это разные вещи?
Насколько критично вообще присутствие такого поля в макросе? Я конечно добавил вас свои макросы id...
Кстати макро броузер ид не показывает! Сам добил пару строк а нужно ли это?
Запятой на планшете нет или я ее не нашел!
LuaMacro — Lua как язык макросов
Posted: Wed 06 Sep, 2017 21:28
by Shmuel
uid использовал John Doe, когда "официального" id ещё не было.
Не критично, но некоторые утилиты вышеупомянутого автора лучше работают, если есть.
В штатный браузер добавить можно, но не уверен, что нужно.
LuaMacro — Lua как язык макросов
Posted: Sat 21 Oct, 2017 11:45
by John Doe
Загадочная ошибка
Есть файл "D:\Мои документы\zxcvbnmas\qwrty_io\poiua\2015\1.lua", содержимое которого с любой ошибкой, например единственный символ -.
Запускаю lua:@1.lua, вижу это:
local ErrMsg = function(msg, title, buttons, flags)
if type(msg)=="string" and not msg:utf8valid() then
local wstr = win.MultiByteToWideChar(msg, win.GetACP(), "e")
msg = wstr and win.Utf16ToUtf8(wstr) or msg
end
return far.Message(msg, title or "LuaMacro", buttons, flags or "wl")
end
P.S.
А пока тут оставлю заметку.
Смысл этой эвристики в utils.lua состоит в том, чтобы корректно отображать ошибки, полученные из разнообразных источников (2817, 2388).
Ведь юникодными являются только функции luafar, а сторонние функции с большой долей вероятности возвращают ошибки в ansi.
Не знаю возможно ли идеальное решение, но улучшить наверняка можно.
1. Различать синтаксические ошибки при загрузке, и ошибки времени исполнения. Для первых эвристика не нужна.
2. Независимо от строки сообщения, traceback всегда в utf8, значит надо их обрабатывать отдельно.
ret1 = type(ret1)=="string" and ret1 or "(error object is not a string)"
ret1 = debug.traceback(handle.coro, ret1):gsub("\n\t","\n ")
ErrMsg(ret1)
return F.MPRT_ERRORFINISH
ret1 = type(ret1)=="string" and ret1 or "(error object is not a string)"
if export.CustomErrHandler and type(export.CustomErrHandler)=="function" then
local success, errmsg = pcall(export.CustomErrHandler,handle.coro,...)
if success then return F.MPRT_ERRORFINISH end
ret1 = "Error in CustomErrHandler: "..errmsg.."\n"..ret1
end
ret1 = debug.traceback(handle.coro, ret1):gsub("\n\t","\n ")
ErrMsg(ret1)
return F.MPRT_ERRORFINISH
Это не затрагивает ошибки при загрузке макросов, и ошибки в параметрах (которые вычисляются как lua-выражения).
Но наверно и к лучшему.
Попробую погонять.
LuaMacro — Lua как язык макросов
Posted: Sun 29 Oct, 2017 18:58
by John Doe
Заметил неприятную особенность: меню при закрытии может оставаться на экране, если макрос ещё не закончен.
Увидеть можно например так: