Victor_VG
Tracker Mod | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору LuaMacro ...r3\28\x64\Far\Profile\Macros\modules\LuaManager\init.lua:329: pattern too complex Stack Traceback =============== (1) Lua local 'Prepare1' at file '.\Far\Profile\Macros\modules\LuaManager\init.lua:329' Local variables: param = string: "action" d = table: 0x027aca38 {linedefined:1976, currentline:-1, func:function: 0x028e3d68, isvararg:false (more...)} l1 = number: 1976 l2 = number: 2500 file = string: ".\\Far\\Profile\\Macros\\modules\\LuaManager\\init.lua" fname = nil fname2 = nil fbody = nil fmoon = nil text = string: "function ManageMacrosEvents(PTable)\ -- На входе таблица с полями:\ -- MaSort,EvSort,MoSort,MISort,PrSort - сортировка макросов, обработчиков событий, модулей, пунктов меню плагинов и префиксов командной строки;\ -- параметр - строка букв, можно посмотреть в языковых файлах в cbXXXSortVariants; заглавная/строчная буква - сортировка по возрастанию/убыванию.\ -- AFilter,KFilter,GFilter,PFilter,FFilter,SFilter - фильтр областей, клавиш, групп, путей поиска модулей, файлов со скриптами, пакетов скриптов.\ -- MaShow,KMShow,EvShow,MoShow,MIShow,PrShow,PMShow,AMShow - показывать стационарные/клавиатурные макросы/обработчики событий/модули/пункты меню\ -- плагинов/префиксы командной строки/панельные модули, макросы из неактивных областей.\ -- Значения пропущенных полей берутся из конфигурации скрипта.\ --\ local function ShortArea(area) -- сворачивает список областей в короткую строку фиксированной длины\ local tbl = LMBuild>=626 and {{s=\"S\",l=\" SHELL \"},{s=\"I\",l=\" INFO \"},{s=\"Q\",l=\" QVIEW \"},{s=\"T\",l=\" TREE \"},{s=\"s\",l=\" SEARCH \"},\ {s=\"F\",l=\" FINDFOLDER \"},{s=\"V\",l=\" VIEWER \"},{s=\"E\",l=\" EDITOR \"},{s=\"D\",l=\" DIALOG \"},{s=\"m\",l=\" MENU \"},{s=\"M\",l=\" MAINMENU \"},\ {s=\"U\",l=\" USERMENU \"},{s=\"d\",l=\" DISKS \"},{s=\"A\",l=\" SHELLAUTOCOMPLETION \"},{s=\"a\",l=\" DIALOGAUTOCOMPLETION \"},{s=\"H\",l=\" HELP \"},\ {s=\"G\",l=\" GRABBER \"},{s=\"e\",l=\" DESKTOP \"}--[[,{s=\"h\",l=\" HMENU \"}--]],{s=\"O\",l=\" OTHER \"},{s=\"C\",l=\" COMMON \"}}\ or {{s=\"S\",l=\" SHELL \"},{s=\"I\",l=\" INFO \"},{s=\"Q\",l=\" QVIEW \"},{s=\"T\",l=\" TREE \"},{s=\"s\",l=\" SEARCH \"},\ {s=\"F\",l=\" FINDFOLDER \"},{s=\"V\",l=\" VIEWER \"},{s=\"E\",l=\" EDITOR \"},{s=\"D\",l=\" DIALOG \"},{s=\"m\",l=\" MENU \"},{s=\"M\",l=\" MAINMENU \"},\ {s=\"U\",l=\" USERMENU \"},{s=\"d\",l=\" DISKS \"},{s=\"A\",l=\" SHELLAUTOCOMPLETION \"},{s=\"a\",l=\" DIALOGAUTOCOMPLETION \"},{s=\"H\",l=\" HELP \"},\ {s=\"O\",l=\" OTHER \"},{s=\"C\",l=\" COMMON \"}}\ local a,au = \"\",\" \"..area:upper()..\" \"\ for _,sl in ipairs(tbl) do a = a..(au:find(sl.l) and sl.s or \"·\") end\ return a\ end\ --\ local function ShortGroup(group) -- сворачивает список областей в короткую строку фиксированной длины\ local tbl = {{s=\" DE\",l=\"DIALOGEVENT\"},{s=\" VE\",l=\"VIEWEREVENT\"},{s=\" EE\",l=\"EDITOREVENT\"},{s=\" EI\",l=\"EDITORINPUT\"},{s=\" CI\",l=\"CONSOLEINPUT\"},\ {s=\" EF\",l=\"EXITFAR\"}}\ local g,gu = \"\",\" \"..group:upper()..\" \"\ for _,sl in ipairs(tbl) do g = g..(gu:find(sl.l) and sl.s or \" · \") end\ return g\ end\ --\ local function CompareMacros(a,b) -- сравнение 2 макросов по: \"COMMON\"?, текущая?, по областям, по клавишам, по маскам файлов, по описаниям\ local as,bs,a1,b1,f = \"\",\"\"\ for c in S.SO.M:gmatch(\".\") do a1,b1 = \"\",\"\"\ if c:upper()==\"O\" then a1,b1 = not a.area:upper():cfind(\"COMMON\"),not b.area:upper():cfind(\"COMMON\")\ elseif c:upper()==\"C\" then a1,b1 = not a.area:upper():cfind(Area.Current:upper()),not b.area:upper():cfind(Area.Current:upper())\ elseif c:upper()==\"A\" then a1,b1 = ShortArea(a.area),ShortArea(b.area)\ elseif c:upper()==\"K\" then a1,b1 = a.key:upper(),b.key:upper()\ elseif c:upper()==\"F\" then a1,b1 = a.filemask or \"\",b.filemask or \"\"\ elseif c:upper()==\"D\" then a1,b1 = a.description,b.description end\ if far.LIsUpper(c) then a1,b1 = tostring(a1),tostring(b1) else a1,b1 = tostring(b1),tostring(a1) end\ a1,b1 = a1==\"nil\" and\"\"or a1,b1==\"nil\" and\"\"or b1 f = \"%-\"..math.max(a1:len(),b1:len())..\"s\" as,bs = as..f:format(a1),bs..f:format(b1)\ end\ return(as<bs)\ end\ --\ local function CompareEvents(a,b) -- сравнение 2 обработчиков событий по: 1 - по группам; 2 - по маскам файлов; 3 - по описаниям\ local as,bs,a1,b1,f = \"\",\"\"\ for c in S.SO.E:gmatch(\".\") do a1,b1 = \"\",\"\"\ |