mozers Цитата: Во-первых - поздравляю с регистрацией!
Ага, спасиб, только правильние было бы поздравлять с первым сообщением, зарегистрировался я (как сам с удивлением выяснил!) с полгода назад
Цитата: Может быть тебя заинтересуют какие то из еще нерешенных вопросов ? (в шапке)
Может, особенно если пересекутся с моими пожеланиями в расширении функционала
Цитата: А насчет макросов я, честно говоря, до конца не въехал...
Где же они хранятся? С именами - ясно, а сами команды? Можно ли их выудить из памяти и записать в файл?
Хранятся в глобальной переменной glb_macros_table в виде таблицы.
Извлекаются без проблем, предлагаю вашему вниманию функции для извлечения из памяти в текущий буфер (MacroFillToBuffer) и загрузку из выделенного текста (MacroLoadFromSelection),
Код: function MacroFillToBuffer ()
for i,macro in glb_macros_table do
editor:BeginUndoAction()
editor:append("\n--- record"..i.." ---\n")
for _,val in macro do
local c,lp,wp = unpack(val)
editor:append(c..";"..wp..";"..lp.."\n")
end
editor:EndUndoAction()
end
end
function MacroLoadFromSelection ()
local macro = {}
local text = editor:GetSelText().."\n"
for str in string.gfind(text, "([^\n]*)[\n]") do
if string.sub(str, 1, 3) == "---" then
MacroAddToList(macro)
macro = {}
else
for c,wp,lp in string.gfind(str, "(%d+);(%d+);(.*)") do
table.insert(macro, {c,lp,wp})
end
end
end
MacroAddToList(macro)
end
function MacroAddToList (macro)
if table.getn(macro) > 0 then
table.insert(glb_macros_table, 1, macro)
while table.getn(glb_macros_table) > MAX_MACRO_RECORDS do
table.remove(glb_macros_table)
end
end
end