Lua Explorer „Advanced“

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

Re: Lua Explorer „Advanced“

Post by John Doe »

Latest post of the previous page:

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

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Lua Explorer „Advanced“

Post by Acerbic »

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

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

Re: Lua Explorer „Advanced“

Post by John Doe »

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

xarx
Posts: 123
Joined: Tue 23 Nov, 2010 12:06

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

Post 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

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

Re: Lua Explorer „Advanced“

Post by John Doe »

Не верю.
Покажите как.

xarx
Posts: 123
Joined: Tue 23 Nov, 2010 12:06

Re: Lua Explorer „Advanced“

Post 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
После сохранения сломанный и файл.

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

Re: Lua Explorer „Advanced“

Post by John Doe »

Lua Explorer к редактированию макросов отношения не имеет.
Вероятно вы хотели написать в тему Менеджер Lua-скриптов для Fara

xarx
Posts: 123
Joined: Tue 23 Nov, 2010 12:06

Re: Lua Explorer „Advanced“

Post by xarx »

John Doe wrote:Lua explorer к редактированию макросов отношения не имеет.
Вероятно вы хотели написать в тему Lua Manager
Да? Извините :-(.

Acerbic
Posts: 80
Joined: Wed 07 Apr, 2010 12:30
Been thanked: 2 times

Re: Lua Explorer „Advanced“

Post by Acerbic »

кстати работает и для отладки плагинов на lua, надо только закомментить строчку

Code: Select all

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

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

Re: Lua Explorer „Advanced“

Post by John Doe »

Ещё надо заменить два msgbox на far.Message. Достались в наследство от оригинала.

EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Lua Explorer „Advanced“

Post by EGez »


buniak_a_h
Posts: 1933
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Lua Explorer „Advanced“

Post by buniak_a_h »

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

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

Lua Explorer „Advanced“

Post 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
Last edited by John Doe on Mon 11 Nov, 2019 17:25, edited 1 time in total.

buniak_a_h
Posts: 1933
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 124 times
Been thanked: 183 times
Contact:

Lua Explorer „Advanced“

Post by buniak_a_h »

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

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

Lua Explorer „Advanced“

Post by HaRT »

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

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

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

Lua Explorer „Advanced“

Post by John Doe »

Инструкция в шапке уже 6 лет.
HaRT wrote:
Tue 05 Nov, 2019 14:10
при пере-/загрузке макросов возникала ошибка
О какой ошибке речь?

Post Reply

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