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

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post 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
Last edited by John Doe on Wed 11 Dec, 2019 09:08, edited 1 time in total.

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

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

Post by John Doe »

Latest post of the previous page:

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

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

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

Post by John Doe »

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

User avatar
HaRT
Moderator
Posts: 9411
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 105 times
Been thanked: 219 times

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

Post by HaRT »

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

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

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

Post by John Doe »

buniak_a_h wrote: От чего зависит эта "стартовая кнопка" в указанном скрипте?
От расположения проверяемого скрипта: если он в Scripts, то предлагается перезагрузить макросы.
Если в другом месте - то запустить скрипт открытый в редакторе.

buniak_a_h
Posts: 1838
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

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

buniak_a_h
Posts: 1838
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

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

Code: Select all

action=function() checkMacro(); end;
Думаю, так будет правильно ...
Last edited by buniak_a_h on Wed 11 Dec, 2019 05:26, edited 2 times in total.

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

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

Post by John Doe »

Исправлено, v1.2

buniak_a_h
Posts: 1838
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

Жму download получаю 404: Not Found . ЧЯДНТ?
Last edited by buniak_a_h on Wed 11 Dec, 2019 09:41, edited 1 time in total.

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

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

Post by John Doe »

Исправлено

buniak_a_h
Posts: 1838
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

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

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

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

Post by John Doe »

Подозреваю что я его не выкладывал.
Но вы можете без особого вреда для функциональности просто закомментировать эту строку. (а две предыдущие можете попробовать раскомментировать)

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

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

Post by John Doe »

buniak_a_h wrote:
Sat 01 Feb, 2020 03:11
требуется модуль tooltip
Это был эксперимент по реализации подобия "тултипа" немодальным диалогом, чтобы на время его отображения выполнение прочих действий не останавливалось.
https://t.me/FarManager — Telegram чат

citRiks
Posts: 637
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 175 times
Been thanked: 42 times

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

Post by citRiks »

Скрипт интересный
А почему бы в него не добавить загрузку открытого макроса?
"Загрузить все" работает конечно, но не мгновенно скажем так,
а хотелось бы быстренько перезагрузить именно редактируемый макрос

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

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

Post by John Doe »

Апи не предусматривает такой возможности.
https://t.me/FarManager — Telegram чат

citRiks
Posts: 637
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 175 times
Been thanked: 42 times

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

Post by citRiks »

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


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

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

buniak_a_h
Posts: 1838
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 116 times
Been thanked: 165 times
Contact:

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

Post by buniak_a_h »

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

Post Reply

Return to “Полезные макросы и скрипты”