Я сделал маленький скрипт, выводящий историю команд:
-- История команд
local obj = far.CreateSettings('far')
local enum = obj:Enum(far.Flags.FSSF_HISTORY_CMD)
--Поля: Lock, Time, File, Name, Param, PluginId
local names = {}
for _,v in ipairs(enum) do names[#names+1] = v.Name end
--return names
Menu.Show(table.concat(names,'\n'))
obj:Free()
Теперь хотелось удалить те пункты, которые начинаются с
@
.
После строки с Menu.Show добавляю удаление:
… … …
for _.v in ipairs(names) do
if v:sub(1,1) == '@' then
obj:Delete(far.Flags.FSSF_HISTORY_CMD, v) -- не работает!!!
end
end
obj:Free()
По описанию у obj:enum и obj:Delete первый параметр - Root (флаг). Но почему-то obj:Delete не срабатывает (возвращает false). Более того! Если не указать второй параметр (Name:string), то по описанию должны быть удалены все элементы. Но… Тоже не работает. То ли я чего-то не понимаю (основы!), то ли в мануале для LuaFAR3 чего-то нужного нету. Не напишете, как можно из истории удалить строку?
Не используя SQLite!