Lua Explorer — изучаем среду Lua в Far manager

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

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by John Doe »

Latest post of the previous page:

EGez wrote:Пометки таблиц? Ну, есть же колонка type, хотя, если только для наглядности - можно сделать,
Именно для наглядности, таблицы как подменю.

EGez wrote:а вот в отключении "средств редактирования" я смысла вообще не вижу.
Смысл не в том, чтобы защититься от изменений, а о том, чтобы не смущать пользователя видимостью функциональности, которая не сработает.
Речь об использовании lua_explorer в других скриптах.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by Shmuel »

EGez wrote:К дефекту еще раз, по поводу форматирования "0x%x%x", а если в таблицах еще большие числа будут? Кстати, возможны ли они, чисто технически?
1. Возможны, конечно. Приблизительный диапазон от -10^308 до +10^308.
2. Числа, для которых bit64.type() возвращает не nil, желательно показывать со всеми значащими цифрами, а не как floating point.
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by EGez »

Shmuel wrote:[. . .]
2. Числа, для которых bit64.type() возвращает не nil, желательно показывать со всеми значащими цифрами, а не как floating point.
Т.е. если tostring() не может иначе изображать 64-битное число, то мне самому этим заниматься? Может не стоит?

Code: Select all

LuaJIT/Win7(32)
macro:post print(2^46) -> 70368744177664
macro:post print(2^47) -> 1.4073748835533e+014
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by Shmuel »

EGez wrote:Т.е. если tostring() не может иначе изображать 64-битное число, то мне самому этим заниматься? Может не стоит?
Стоит или не стоит - только вам решать, как автору.
Могу предоставить код, но вы же скажете "а сам бы я конечно же не догадался..." :ha:
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by John Doe »

EGez wrote:А остальное почти все уже думалось и на когда-нибудь намечено... Надо будет todo в шапке чтоли сделать...
Добавил в свои пожелания это:
[*] возможность отключать автоматическое назначение хоткеев (как флаг при вызове)
[*] обрезать длинные строки (возможно также стоит задавать мин. ширину)
[*] показывать названий ключей без кавычек
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by John Doe »

Добавил в свой список:
[*] для функций: информация debug
- действия в меню просмотра getinfo: в первую очередь возможностью открытия редактора в месте определения функции

Учитывая бесконечность пожеланий, возможно имеет смысл предусмотреть возможность подключения к основному скрипту пользовательские расширения.
Типа пользовательская функция, вызываемая по определённому хоткею (F11).
Для разных типов значений могут быть отдельные функции.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by Shmuel »

1. Просьба сделать утилиту модулем - она чрезвычайно полезна при вызове из других скриптов.
2. В меню применять флаг FMENU_SHOWAMPERSAND.
3. В заголовке диалога редактирования удваивать амперсанды.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by John Doe »

Shmuel wrote:1. Просьба сделать утилиту модулем - она чрезвычайно полезна при вызове из других скриптов.
Предлагаю имя файла "le.lua".
Удобно будет по-быстрому набрать require"le"(sometable) в любом скрипте (в отладочных целях)
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by EGez »

Ребят, извиняйте, но новых версий пока не будет.
Дипломная и две работы :(
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Code: Select all

local function getUpValue(f,name)
  for i=1,1000 do
    local k,v = debug.getupvalue (f, i)
    if k==nil then break end
    if k==name then return v, i end
  end
end

local args = getUpValue(eval,"args")

require"le"(args.M) --lua_explorer

Code: Select all

╔═══════════════════════════ LuaMacro ════════════════════════════╗
║ C:\apps\far3\Plugins\LuaMacro\lang.lua:27: bad argument #1 to ' ║
║ GetMsg' (number expected, got nil)                              ║
╟─────────────────────────────────────────────────────────────────╢
║                             { OK }                              ║
╚═════════════════════════════════════════════════════════════════╝
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Ну и что?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Я так подозреваю что источник ошибки в lua_explorer, но сообщение невнятное, и ссылается на ваш lang.lua
Думал может вы сходу что-нибудь подскажите.
Если нет, то сам пороюсь как-нибудь на досуге.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote:Я так подозреваю что источник ошибки в lua_explorer, но сообщение невнятное, и ссылается на ваш lang.lua
Думал может вы сходу что-нибудь подскажите.
Сообщение вполне внятное.
В lang.lua всего 3 строчки кода (таблица не в счёт).
LuaFAR проверяет тип аргумента функции far.GetMsg и выдаёт ошибку при невалидном типе.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Ошибка происходит при попытке входа в args.M, по причине того, что lua explorer пытается индексировать M:

Code: Select all

	-- Far uses some properties that in fact are functions in obj.properties
	-- but they logically belong to the object itself. It's all Lua magic ;)
	if type(obj.properties) == 'table' and not rawget(obj, 'properties') then
Надо бы исправить lua explorer, например ограничив список объектов, к которым применяется эта магия
(или проще, поместить получение obj.properties в pcall)
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Lua Explorer — изучаем среду Lua в Far manager

Post by EGez »

Проект остановлен, см. http://forum.farmanager.com/viewtopic.p ... 65#p100565
Post Reply

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