Page 2 of 4

Lua Explorer „Advanced“

Posted: Sun 05 May, 2013 20:26
by John Doe
Представляет собой развитие замечательной утилиты Lua Explorer © EGez.
Началось всё с небольшой модификации, позволяющей вызывать lua explorer из других скриптов.
Но у автора свободного времени не было, а необходимость в изменениях у меня назрела.
В частности потому что я начал применять lua explorer в Macro Browser alt. и других скриптах.

Не знаю примет ли EGez мои изменения, поэтому пока форк.
В данный момент отличия от оригинального скрипта таковы:
  1. Скрипт преобразован в модуль, имя выбрано короткое "le", для быстрого доступа.
  2. Изменения
  3. Новая функциональность
Использование:

Подробнее об использовании для отладки собственных скриптов:

P.S.
Свои пожелания уже почти полностью реализовал.
Но идеи принимаются.
Если кто пожертвует функцию для форматирования больших чисел, то включу (сам не сталкиваюсь).

Описание устарело, см. viewtopic.php?p=156615#p156615

source | download

Re: Lua Explorer „Advanced“

Posted: Thu 23 May, 2013 09:56
by Smitis

Latest post of the previous page:

John Doe wrote:Но как это связано с вопросом?
Можно ли из одного lua-плагина получить глобальную таблицу другого lua-плагина? Иначе теряется смысл делать LuaExplorer плагином.
Где-то вроде проскакивало, что плагины совершенно независимы.

Re: Lua Explorer „Advanced“

Posted: Thu 23 May, 2013 10:05
by John Doe
Smitis wrote:Можно ли из одного lua-плагина получить глобальную таблицу другого lua-плагина? Иначе теряется смысл делать LuaExplorer плагином.
Где-то вроде проскакивало, что плагины совершенно независимы.
Полагаю сейчас ничего такого не предусмотрено, но подумать над реализацией можно.
Во-первых библиотека LuaFAR могла бы предоставить какие-то средства.
Во-вторых, плагины вероятно тоже могут обмениваться данными (через C API)

Re: Lua Explorer „Advanced“

Posted: Thu 23 May, 2013 16:46
by Acerbic
Smitis wrote: Можно ли из одного lua-плагина получить глобальную таблицу другого lua-плагина? Иначе теряется смысл делать LuaExplorer плагином.
Где-то вроде проскакивало, что плагины совершенно независимы.
Даже если нельзя, то функциональность будет как минимум не хуже, чем в текущем варианте - из макроса ведь тоже таблицу плагина не посмотришь (поправьте, если не прав). Зато можно будет конфигурировать (если вдруг такая надобность появится) стандартизированным образом, из меню конфигурации плагинов. Но это всё, конечно, "если бы да кабы". В принципе, мне нет разницы, вызвать через require или Plugin.Call - вопрос вкуса.

Re: Lua Explorer „Advanced“

Posted: Thu 23 May, 2013 18:27
by John Doe
Acerbic wrote:Даже если нельзя, то функциональность будет как минимум не хуже
Если нельзя, то функциональность вообще невозможна, т.к. lua explorer показывает таблицу плагина luamacro.
Acerbic wrote:В принципе, мне нет разницы, вызвать через require или Plugin.Call - вопрос вкуса.
Отнюдь, во-первых Plugin.Call ещё надо реализовать (без понятия как).
Во-вторых через Plugin.Call невозможно передать типы lua (table,function и пр.).

Re: Lua Explorer „Advanced“ - Ломает код

Posted: Wed 29 May, 2013 14:34
by xarx
L.E.A. r2 (и тоже r1) ломает строки (string) содержащие "--". Например такой код

Code: Select all

  action = function()
    msg = "\n----- abc -----\n"..
      "c--df\n"
  end;
}
изменяет на

Code: Select all

  action = function()
    msg = "\n
      "c
  end

Re: Lua Explorer „Advanced“

Posted: Wed 29 May, 2013 14:43
by John Doe
Не верю.
Покажите как.

Re: Lua Explorer „Advanced“

Posted: Wed 29 May, 2013 16:23
by xarx
:-)

Code: Select all

Macro {
  area="Common"; key="Test"; description="...";
  action = function()
    msg = "\n----- abc -----\n"..
      "c--df\n"
  end;
}
После того из L.E.A. нажимите F4 на этом макросе, и в Macro Body вы увидите

Code: Select all

function()
    msg = "\n
      "c
  end
После сохранения сломанный и файл.

Re: Lua Explorer „Advanced“

Posted: Wed 29 May, 2013 16:54
by John Doe
Lua Explorer к редактированию макросов отношения не имеет.
Вероятно вы хотели написать в тему Менеджер Lua-скриптов для Fara

Re: Lua Explorer „Advanced“

Posted: Wed 29 May, 2013 17:12
by xarx
John Doe wrote:Lua explorer к редактированию макросов отношения не имеет.
Вероятно вы хотели написать в тему Lua Manager
Да? Извините :-(.

Re: Lua Explorer „Advanced“

Posted: Tue 04 Jun, 2013 08:28
by Acerbic
кстати работает и для отладки плагинов на lua, надо только закомментить строчку

Code: Select all

assert(Far, 'This is a LuaMacro for Far manager')

Re: Lua Explorer „Advanced“

Posted: Tue 04 Jun, 2013 11:45
by John Doe
Ещё надо заменить два msgbox на far.Message. Достались в наследство от оригинала.

Re: Lua Explorer „Advanced“

Posted: Tue 17 Sep, 2013 23:06
by EGez

Lua Explorer „Advanced“

Posted: Mon 04 Nov, 2019 22:07
by buniak_a_h
John Doe, я нарвался на ошибку вызова функции в случае, если срени параметров (но не последний) - nil. Вот исправление:
  1. 161c161
  2.  
  3. <       if res[1] then  table.remove(res,1);  return res,expr
  4.  
  5. ---
  6.  
  7. >       if res[1] then  table.remove(res,1);  return res,expr,f  -- BAX, 04.11.2019
  8.  
  9. 239c239
  10.  
  11. <     local args,argstr = luaexp_prompt('CALL:'..title,
  12.  
  13. ---
  14.  
  15. >     local args,argstr, ArgFunc = luaexp_prompt('CALL:'..title,  -- BAX, 04.11.2019
  16.  
  17. 245c245
  18.  
  19. <       local res = {pcall(obj, unpack(args))}
  20.  
  21. ---
  22.  
  23. >       local res = {pcall(obj, ArgFunc())}  -- BAX, 04.11.2019
Подробности там

Lua Explorer „Advanced“

Posted: Tue 05 Nov, 2019 13:16
by John Doe
Выяснилось, что тут выложена далеко не последняя версия скрипта...
Я им не занимался уже много лет, но в записях сохранились такие изменения:
  • При вставке в таблицу, и редактировании значений теперь введённые параметры проверяются на корректность
    (количество и значение~=nil)
  • Функции Lua для работы с массивами не рассчитаны на то, что элементами массива могут быть значиния типа nil
    Теперь это учитывается.
    (При отображении возвращаемых функциями значений, возможно ещё где-то)
  • Символ с кодом 0 в ключах и значениях теперь заменяется на '\000'
  • Ctrl+I управляет режимом сортировки "различать регистр", начальное значение в опции ignore_case.
  • Не пытаемся работать с upvalues C-функций.
  • При просмотре объектов типа thread улучшено форматирование traceback.
  • * mf.msgbox -> far.Message (для возможности использования в luafar плагинах)
  • Экспериментально: расширение возможностей скрипта, путём добавления новых действий в виде BreakKeys.
    le(actions,nil,'addBrKeys')
    - actions - таблица - список действий, в том же формате, что и штатная brkeys (см.)
    - (вторым параметром обычно передаётся заголовок, в данном случае не имеет смысла)
    - 'addBrKeys' команда для импорта.
  • Из скрипта убрана работа с локальными переменными функций.
    Действия могут быть добавлены отдельным скриптом se.lua.
  • Поддержка cfgscript / ScriptsBrowser
Update: v2.4
  • Бинарные строки (непредставимые в utf-8) отображаются с псевдотипом `#string`, в кодировке Ansi.
    Редактирование тоже поддерживается.
  • Символы помечающие таблицы и функции теперь настраиваются в options.
  • Восстановлена работа jit.util.funcinfo (Shift-F3)
source | download

Lua Explorer „Advanced“

Posted: Tue 05 Nov, 2019 13:27
by buniak_a_h
John Doe wrote: Tue 05 Nov, 2019 13:16 Выяснилось, что тут выложена далеко не последняя версия скрипта...
А где последняя? В первом сообщении темы - старый... :-(

Lua Explorer „Advanced“

Posted: Tue 05 Nov, 2019 14:10
by HaRT
John Doe wrote: Tue 05 Nov, 2019 13:16 А где последняя?
В предыдущем сообщении появились ссылки.

@John Doe Не помешала бы краткая инструкция по установке.
В частности, пока я не положил le.lua в Macros\modules, при пере-/загрузке макросов возникала ошибка (предсказуемо), но сейчас не срабатывает макрос. Как починить?