@@ -183,6 +183,7 @@ local function AddId (trg, src)
183183end
184184
185185local function EV_Handler (macros , filename , ...)
186+ if not macros then return end
186187 -- Get current priorities.
187188 local indexes ,priorities = {},{}
188189 for i ,m in ipairs (macros ) do
@@ -299,6 +300,10 @@ local function export_GetContentData (filename, colnames)
299300 return tOut
300301end
301302
303+ local function ProcessEvent (group , options , ...) -- todo
304+ return EV_Handler (Events [group :lower ()], options and options .filename , options , ... )
305+ end
306+
302307local ExpandKey do -- измеренное время исполнения на ключе "CtrlAltShiftF12" = ??? (Lua); 2.3uS (LuaJIT);
303308 local t = {}
304309
485490local AddEvent_fields = {" group" ," action" ," description" ," priority" ," condition" ," filemask" }
486491local function AddEvent (srctable , FileName )
487492 local group = type (srctable )== " table" and type (srctable .group )== " string" and srctable .group :lower ()
488- if not (group and Events [group ]) then return end
493+ if not group then return end
494+ Events [group ] = Events [group ] or {}
489495
490496 if type (srctable .action )~= " function" then return end
491497
@@ -724,7 +730,6 @@ local function LoadMacros (unload, paths)
724730
725731 local AreaNames = allAreas and AllAreaNames or SomeAreaNames
726732 for _ ,name in pairs (AreaNames ) do newAreas [name ]= {} end
727- for _ ,name in ipairs (EventGroups ) do Events [name ]= {} end
728733 for k in pairs (package.loaded ) do
729734 if initial_modules [k ]== nil and not package .nounload [k ] then
730735 package.loaded [k ]= nil
@@ -865,12 +870,12 @@ local function LoadMacros (unload, paths)
865870
866871 far .RecursiveSearch (DirMacros .. " internal" , " *.lua" , LoadRecordedFile , 0 )
867872
868- export .ExitFAR = Events .exitfar [ 1 ] and export_ExitFAR
869- export .ProcessDialogEvent = Events .dialogevent [ 1 ] and export_ProcessDialogEvent
870- export .ProcessEditorInput = Events .editorinput [ 1 ] and export_ProcessEditorInput
871- export .ProcessViewerEvent = Events .viewerevent [ 1 ] and export_ProcessViewerEvent
872- export .ProcessConsoleInput = Events .consoleinput [ 1 ] and export_ProcessConsoleInput
873- export .ProcessSynchroEvent = Events .folderchanged [ 1 ] and export_ProcessSynchroEvent
873+ export .ExitFAR = Events .exitfar and export_ExitFAR
874+ export .ProcessDialogEvent = Events .dialogevent and export_ProcessDialogEvent
875+ export .ProcessEditorInput = Events .editorinput and export_ProcessEditorInput
876+ export .ProcessViewerEvent = Events .viewerevent and export_ProcessViewerEvent
877+ export .ProcessConsoleInput = Events .consoleinput and export_ProcessConsoleInput
878+ export .ProcessSynchroEvent = Events .folderchanged and export_ProcessSynchroEvent
874879 if ContentColumns [1 ] then
875880 export .GetContentFields = export_GetContentFields
876881 export .GetContentData = export_GetContentData
@@ -1309,6 +1314,7 @@ return {
13091314 InitMacroSystem = InitMacroSystem ,
13101315 LoadingInProgress = function () return LoadingInProgress end ,
13111316 LoadMacros = LoadMacros ,
1317+ ProcessEvent = ProcessEvent ,
13121318 ProcessRecordedMacro = ProcessRecordedMacro ,
13131319 RunStartMacro = RunStartMacro ,
13141320 UnloadMacros = InitMacroSystem ,
0 commit comments