Тема служит для обсуждения штатных макросов из Addons\Macros.
Привёл макросы в соответствие с актуальными возможностями LuaMacro.
Прежде всего пообъединял где можно, пользуясь возможностью назначения макросу нескольких макрообластей и клавиш.
Конечно, многие макросы стоит вообще переработать, простор для улучшения есть, предлагайте.
Примечание: из обсуждения выделены следующие темы:
Macro {description="Use Ctrl-Left/Right to change current drive";
area="Shell"; key="CtrlLeft CtrlRight"; flags="EmptyCommandLine"; action = function()
local d = akey(1) == "CtrlLeft" and "Up" or "Down"
Keys('F9 Enter Up Enter '..d..' Enter Esc')
end;
}
Re: Улучшение макросов из поставки фара
Posted: Thu 21 Mar, 2013 15:22
by tstr
Вы поаккуратнее с изменениями в поставке - такой способ (вызов ф-ции на многие клавиши) не срабатывает в автоматическом добавлении описания и шорткатов в помощь.
Re: Улучшение макросов из поставки фара
Posted: Thu 21 Mar, 2013 15:27
by John Doe
Но способ-то правильный.
Если с помощью что-то не так, то пишите на мантис.
Re: Улучшение макросов из поставки фара
Posted: Thu 21 Mar, 2013 15:50
by tstr
И как таким правильным способом в помощь попадут комментарии из функции, напр. "--Find Next"?
local dir = {CtrlLeft="Up", CtrlRight="Down"}
Macro {
description="Change current drive";
area="Shell"; key="CtrlLeft CtrlRight"; flags="EmptyCommandLine";
action=function()
Keys("F9 Enter Up Enter",dir[akey(1)],"Enter Esc")
end;
}
local cyclic = true -- поменять на false чтобы выключить циклический перебор
local function JumpToSelected(dir)
for pos = APanel.CurPos+dir,(dir>0 and APanel.ItemCount or 1),dir do
if Panel.Item(0,pos,8) then Panel.SetPosIdx(0,pos) return end
end
if cyclic then Panel.SetPosIdx(0,(dir>0 and 1 or APanel.SelCount),1) end
end
-- Переместиться к следующему выделенному
Macro { description="Jump to the next selected file";
area="Shell Search"; key="CtrlShiftDown"; flags="Selection";
action=function() JumpToSelected(1) end;
}
-- Переместиться к предыдущему выделенному
Macro { description="Jump to the previous selected file";
area="Shell Search"; key="CtrlShiftUp"; flags="Selection";
action=function() JumpToSelected(-1) end;
}
-- Переместиться к последнему выделенному
Macro { description="Jump to the last selected file";
area="Shell Search"; key="CtrlShiftEnd CtrlShiftNum1"; flags="Selection";
action=function() Panel.SetPosIdx(0,APanel.SelCount,1) end;
}
-- Переместиться к первому выделенному
Macro { description="Jump to the first selected file";
area="Shell Search"; key="CtrlShiftHome CtrlShiftNum7"; flags="Selection";
action=function() Panel.SetPosIdx(0,1,1) end;
}
local cyclic = true -- set false to disable cyclic jump
local is_selected = 8
local function JumpToSelected (from, to)
for pos=from,to,from<to and 1 or -1 do
if Panel.Item(0,pos,is_selected) then return Panel.SetPosIdx(0,pos) end
end
if cyclic then JumpToSelected(APanel.ItemCount-to,to) end
end
Macro {description="Jump to the next selected file";
area="Shell Search"; key="CtrlShiftDown"; flags="Selection";
action = function() JumpToSelected(APanel.CurPos+1,APanel.ItemCount) end;
}
Macro {description="Jump to the previous selected file";
area="Shell Search"; key="CtrlShiftUp"; flags="Selection";
action = function() JumpToSelected(APanel.CurPos-1,1) end;
}
Macro {description="Jump to the first selected file";
area="Shell Search"; key="CtrlShiftHome CtrlShiftNum7"; flags="Selection";
action = function() JumpToSelected(1,APanel.ItemCount) end;
}
Macro {description="Jump to the last selected file";
area="Shell Search"; key="CtrlShiftEnd CtrlShiftNum1"; flags="Selection";
action = function() JumpToSelected(APanel.ItemCount,1) end;
}
(с) народ
Re: Улучшение макросов из поставки фара
Posted: Wed 24 Apr, 2013 17:48
by Smitis
Давно хочу спросить, а чем вызвано такое странное форматирование макросов (даже не знаю, как его назвать)?
Re: Улучшение макросов из поставки фара
Posted: Wed 24 Apr, 2013 17:51
by John Doe
Очевидно стремлением автора избежать "лишних" отступов.
Re: Улучшение макросов из поставки фара
Posted: Wed 24 Apr, 2013 18:13
by Smitis
John Doe wrote:Очевидно стремлением автора избежать "лишних" отступов.
Чем же они лишние?
Re: Улучшение макросов из поставки фара
Posted: Mon 11 Nov, 2013 08:08
by den po
shmuel 14.07.2013 00:25:05 +0200 - build 3518
1. Макросы: флаги "Selection" и "NoSelection" больше не применяются для областей редактора/вьювера/диалога.
Для этих областей следует использовать соответственно "EVSelection" и "NoEVSelection".
а тем временем с фаром до сих пор идут CtrlDel.lua и WindowsGUI.lua, в которых используется старый вариант flags="Selection"
Re: Улучшение макросов из поставки фара
Posted: Mon 11 Nov, 2013 08:21
by Shmuel
den po wrote:а тем временем с фаром до сих пор идут CtrlDel.lua и WindowsGUI.lua, в которых используется старый вариант flags="Selection"