Сделал на луа плагин который открывает панель при входе в файл (ctrl+pagedown или enter). Но не понял как менять заголовок панели. И путь в командной строке тоже не меняется. Подскажите плиз.
local MenuGuid = win.Uuid("d156c072-1e98-4562-b83a-cc4f85a85499")
function export.GetPluginInfo()
return {
Flags = 0,
PluginMenuGuids = MenuGuid.."",
PluginMenuStrings = { "Kuku file" },
}
end
function export.Open (OpenFrom, Guid, Item)
local s = "Open OpenFrom=".. tostring(OpenFrom)
far.Message(s)
return 1
end
function export.Analyse (Data)
local s = "Analyse FileName="..Data.FileName
far.Message(s)
return 1
end
n = 0 -- просто чтобы было заметней обновление файлов в панели
function export.GetFindData (object, handle, OpMode)
local s = "GetFindData"
far.Message(s)
local items = {}
local item = {}
item["FileName"] = ".."
item["FileAttributes"] = "d"
items[1] = item
local item = {}
item["FileName"] = "dir"..tostring(n)
item["FileAttributes"] = "d"
items[2] = item
for i=3, 20 do
local item = {}
item["FileName"] = tostring(i).."."..tostring(n)..".txt"
item["FileSize"] = 100
items[i] = item
end
n = n + 1
return items
end
function export.SetDirectory (object, handle, Dir, OpMode)
local s = "SetDirectory Dir="..Dir
far.Message(s)
return true
end
function export.GetOpenPanelInfo (object, handle)
PanelInfo = {} -- OPInfo
PanelInfo["PanelTitle"] = "LuaPanel"
PanelInfo["CurDir"] = "a\\" -- ok, enter directory, ctrl+pageup, enter "..",
return PanelInfo
end
analyselua wrote: Но не понял как менять заголовок панели. И путь в командной строке тоже не меняется. Подскажите плиз.
Far получает эти величины от плагина, вызывая export.GetOpenPanelInfo. В вашей функции значения полей PanelTitle и CurDir фиксированы (не меняются), поэтому Far их и показывает такими. Вы должны устанавливать эти значения динамически, при смене папки.
Оказалось что функция GetOpenPanelInfo вызывается каждый раз при смене папки (а не один раз как я ошибочно подумал). И поэтому она должна отдавать каждый раз новые (соответствующие текущей папке) значения переменных PanelTitle, CurDir.
local MenuGuid = win.Uuid("d156c072-1e98-4562-b83a-cc4f85a85499")
function export.GetPluginInfo()
return {
Flags = 0,
PluginMenuGuids = MenuGuid.."",
PluginMenuStrings = { "Kuku file" },
}
end
function export.Open (OpenFrom, Guid, Item)
local s = "Open OpenFrom=".. tostring(OpenFrom)
far.Message(s)
return 1
end
function export.Analyse (Data)
local s = "Analyse FileName="..Data.FileName
far.Message(s)
return 1
end
n = 0 -- просто чтобы было заметней обновление файлов в панели
function export.GetFindData (object, handle, OpMode)
local s = "GetFindData"
far.Message(s)
local items = {}
local item = {}
item["FileName"] = ".."
item["FileAttributes"] = "d"
items[1] = item
local item = {}
item["FileName"] = "dir"..tostring(n)
item["FileAttributes"] = "d"
items[2] = item
for i=3, 20 do
local item = {}
item["FileName"] = tostring(i).."."..tostring(n)..".txt"
item["FileSize"] = 100
items[i] = item
end
n = n + 1
return items
end
local name = "LuaPanel"
local PanelTitle = name
local CurDir = "a\\" -- ok, enter directory, ctrl+pageup, enter "..",
function export.SetDirectory (object, handle, Dir, OpMode)
local s = "SetDirectory Dir="..Dir
far.Message(s)
CurDir = CurDir.."\\"..Dir
PanelTitle = name.." "..CurDir
return true
end
function export.GetOpenPanelInfo (object, handle)
PanelInfo = {} -- OPInfo
PanelInfo["PanelTitle"] = PanelTitle
PanelInfo["CurDir"] = CurDir
return PanelInfo
end
Last edited by analyselua on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason:[spoiler]