Page 2 of 3

Проверка корректности скрипта в редакторе + выполнение

Posted: Fri 24 May, 2013 14:09
by John Doe
Набор макросов, помогающих в отладке lua-скриптов, открытых в редакторе.
Активируются только при filemask="*.lua;*.moon"

* CtrlEnter
  • Предназначен для проверки корректности редактируемого макроса.
    При наличии выделения — работает с выделением.
    Если ошибок нет, то предлагаются действия на выбор:
    • Reload All выполняет перезагрузку макросов.
      Файл предварительно сохраняется, если в процессе сохранения возникли вопросы, то макросы не перезагружаются
    • Execute выполнить сам скрипт, или выделенную часть.
      Если скрипт возвращает значения, то они отображаются.
    • Variables после исполнения скрипта или выделенной части отображает результирующие значения переменных скрипта: локальных и окружения (если присутствуют). Если скрипт возвращает значения, то они тоже отображаются.
      Требуется модуль Lua Explorer.
    Если редактируемый файл расположен не в папке scripts, то курсор устанавливается на кнопку Execute.
* CtrlShiftEnter (только при наличии выделения)
  • После исполнения выделенной части скрипта отображает список возвращённых значений (если в тексте отсутствует ключевое слово return, то оно добавляется в начало).
    Перед запуском запрашиваются значения переменных (environment), можно перечислить через запятую
При отображении возвращаемых значений возможен их дальнейший просмотр в Lua Explorer.
Требования: FAR 3 build >=4261.


source | download

Re: Проверка корректности скрипта в редакторе + выполнение

Posted: Wed 29 Jan, 2014 13:29
by John Doe

Latest post of the previous page:

Variables: функция стала проще и надёжнее (используется debug.hook). Теперь также отображаются возвращаемые значения (если есть)

Проверка корректности скрипта в редакторе + выполнение

Posted: Sun 28 Aug, 2016 14:15
by John Doe
v1.1
Из существенных изменений:
  • Поддержка Moonscript
  • Позиционирование на места ошибок
  • Добавляет в меню плагинов ряд пунктов .
    Настраивается опциями в начале файла, или настройками в пользовательском scriptscfg (пример прилагается)
  • Файл скрипта переименован

Проверка корректности скрипта в редакторе + выполнение

Posted: Sun 01 Dec, 2019 23:30
by HaRT
buniak_a_h wrote: Sun 01 Dec, 2019 02:46 Добрый день.
При использовании макроса MacroCheck я заметил одну особенность: в far.Message (с тремя кнопками) иногда активной бывает первая кнопка (которая в фигурных скобках; видимо - DIF_DEFAULTBUTTON, а иногда - вторая (в исходном скрипте это - строка 169)
[…]
От чего зависит эта "стартовая кнопка" в указанном скрипте? А то очень неудобно бывает - она иногда на первой кнопке (Reload All), а иногда - на второй (Execute).
Во избежание офтопика там просьба обсуждать тут.

Проверка корректности скрипта в редакторе + выполнение

Posted: Mon 02 Dec, 2019 14:21
by John Doe
buniak_a_h wrote: От чего зависит эта "стартовая кнопка" в указанном скрипте?
От расположения проверяемого скрипта: если он в Scripts, то предлагается перезагрузить макросы.
Если в другом месте - то запустить скрипт открытый в редакторе.

Проверка корректности скрипта в редакторе + выполнение

Posted: Mon 02 Dec, 2019 15:46
by buniak_a_h
John Doe wrote: Mon 02 Dec, 2019 14:21 От расположения проверяемого скрипта: если он в Scripts, то предлагается перезагрузить макросы.
Если в другом месте - то запустить скрипт открытый в редакторе.
Спасибо, я уже поискал слово Keys и понял логику. Просто у меня для перезагрузки макросов другой скрипт используется, а "плавающая" стартовая кнопка - не удобно. Но идею я понял. Спасибо. А то иногда хочется в подтверждении "опасных" действий сделать умолчательной кнопку "Нет"; приходится менять их местами (вместо ";YesNo" указывать "No;Yes". Некузяво…)

Проверка корректности скрипта в редакторе + выполнение

Posted: Wed 11 Dec, 2019 05:24
by buniak_a_h
Новая версия FAR-а (увы, не нашёл, с какой версии. На 5511 ещё работало; на 5523 уже нет) перестала работать проверка и запуск. Проблема в том, что в макросе указано action=checkMacro;. Раньше это означало вызов без параметров. Теперь передаётся параметр - таблица. Замените, пожалуйста, action=checkMacro; на

Code: Select all

action=function() checkMacro(); end;
Думаю, так будет правильно ...

Проверка корректности скрипта в редакторе + выполнение

Posted: Wed 11 Dec, 2019 09:09
by John Doe
Исправлено, v1.2

Проверка корректности скрипта в редакторе + выполнение

Posted: Wed 11 Dec, 2019 09:39
by buniak_a_h
Жму download получаю 404: Not Found . ЧЯДНТ?

Проверка корректности скрипта в редакторе + выполнение

Posted: Wed 11 Dec, 2019 11:33
by John Doe
Исправлено

Проверка корректности скрипта в редакторе + выполнение

Posted: Sat 01 Feb, 2020 03:11
by buniak_a_h
У меня одного такая беда?
При вызове из МЕНЮ плагинов пункта [ Reload Macro ] требуется модуль tooltip . А где его берут?
Строка 126:
require"tooltip" ("(re)loaded in "..elapsed.." ms","Macros",1000)

Проверка корректности скрипта в редакторе + выполнение

Posted: Sat 01 Feb, 2020 10:11
by John Doe
Подозреваю что я его не выкладывал.
Но вы можете без особого вреда для функциональности просто закомментировать эту строку. (а две предыдущие можете попробовать раскомментировать)

Проверка корректности скрипта в редакторе + выполнение

Posted: Tue 04 Feb, 2020 09:15
by John Doe
buniak_a_h wrote: Sat 01 Feb, 2020 03:11 требуется модуль tooltip
Это был эксперимент по реализации подобия "тултипа" немодальным диалогом, чтобы на время его отображения выполнение прочих действий не останавливалось.

Проверка корректности скрипта в редакторе + выполнение

Posted: Fri 10 Apr, 2020 21:10
by citRiks
Скрипт интересный
А почему бы в него не добавить загрузку открытого макроса?
"Загрузить все" работает конечно, но не мгновенно скажем так,
а хотелось бы быстренько перезагрузить именно редактируемый макрос

Проверка корректности скрипта в редакторе + выполнение

Posted: Sat 11 Apr, 2020 07:25
by John Doe
Апи не предусматривает такой возможности.

Проверка корректности скрипта в редакторе + выполнение

Posted: Sat 11 Apr, 2020 14:03
by citRiks
John Doe,
Интересно, на поверхности АПИ вроде действительно не лежит.
Но не может же такого быть чтобы совсем нельзя было бы?
Загрузить новый макрос вроде как можно не залезая слишком глубоко:


С другой стороны, действительно не совсем понятно как удалять созданный или уже существующий.
С третьей стороны, мировая практика показывает, что все что можно добавляется то и удаляется.
Если скрестить эту странцу:
https://api.farmanager.com/ru/service_f ... ntrol.html
..с этим файлом:
%FARHOME%\Plugins\LuaMacro\utils.lua
.. то наверное что-то получится.

Как вы думаете, может открыть еще одно неуспешное рац. предложение? ))
практическая польза:
Если изменил один макрос, то не надо перезагружать все на свете

Проверка корректности скрипта в редакторе + выполнение

Posted: Sat 11 Apr, 2020 15:25
by buniak_a_h
citRiks wrote: Sat 11 Apr, 2020 14:03 Как вы думаете, может открыть еще одно неуспешное рац. предложение?
Ей бо, игра не стоит свеч. Ну, выиграете пару микросекунд … К тому же перезагрузка макросов переинициализирует локальные переменные.
Ну и:
citRiks wrote: Sat 11 Apr, 2020 14:03 мировая практика показывает, что все что можно добавляется то и удаляется.
Мировая практика как раз показывает, что это - не так. Всё, что добавляется, можно пометить на удаление (заблокированные файлы, например), или сделать невидимыми (в инете, как известно, ничего не пропадает, только прячется).
Как Вы могли заметить, макросы не удаляются, а только disable-ятся. В общем, понятно: не нужно париться с освобождением ресурсов, сборкой мусора, не надо бояться, что какой-нить хендл повторится (новому будет выделен тот, что был у старого). Многие так делают, в т.ч. и СУБД разные (запись не удаляется до регламентных работ). В нашем случае реальное удаление произойдёт после перезапуска ФАРа. Вряд ли это - то, что Вы бы хотели (перезагрузить один макрос и перезапустить ФАР) .)